Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_37.ADF » P/DBASE

P/DBASE

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_37.ADF
Filename: P/DBASE
Read OK:
File size: 1128 bytes
Load address: FFFF0E00
Exec address: FFFF802B
Duplicates

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

File contents
    1REM A database program from Basic Programming on the Electron --By Neil Cryer--page 278.
    2REM Modified for phone numbers to replace the computer box, and this box expanded to 12 didgits
    3REM When put into the 'FIND' mode       gives error message 'No such variable   in line 1880'.
    4REM Program being used on BBC Master.
   10MODE4
   20LB%=9 :REM Left character position of all boxes
   30NY%=5 :REM YPosition of name box
   40NL%=20 :REM Length of name box
   50CY%=10 :REM Y Position of Phone box
   60LC%=20 :REM Length of Phone box
   70A1%=15 :REM Y Position of first adress line
   80LA%=20 :REM Length of address box
   90A2%=17 :REM Y Position of second address line
  100A3%=19:REM Y position of third address line
  110A4%=21 :REM Y Position of fourth address line
  120PROCsetup
  130N%=100
  140entry%=0
  150DIM data$(N%)
  160blank$=STRING$(20," ")
  170FOR I%=0 TO N%
  180   data$(I%)=",,,,,,"
  190 NEXT I%
  200REPEAT
  210   PROCgetcommand("command: (E)dit, (L)oad, (S)ave, (F)ind, (X)exit")
  220   IF com$="E" THEN PROCedit
  230   IF com$="L" THEN PROCload
  240   IF com$="S" THEN PROCsave
  250   IF com$="F" THEN PROCfind
  260   IF com$="X" THEN PROCexit
  270   UNTIL com$="X"
  280END
  290:
  300DEF PROCgetcommand(s$)
  310FOR I%=25 TO 30
  320PRINT TAB(0,I%);STRING$(39," ")
  330NEXT I%
  340PRINT TAB(0,26);s$; :com$=GET$
  350ENDPROC
  360:
  370DEF PROCedit
  380REPEAT
  390  PROCdisplayone
  400  PROCgetcommand("Edit: (N)ext,(P)revious, (C)hange,(I)nsert,(D)elete, (E)nd edit")
  410 IF com$="N" AND entry%<N% AND LEN(data$(entry%))>9 THEN entry%=entry%+1 :PROCsetup
  420IF com$="P" AND entry%>0 THEN entry%=entry%-1 :PROCsetup
  430IF com$="C" THEN PROCchange
  440IF com$="D" THEN PROCdelete
  450IF com$="I" THEN PROCinsert
  460UNTIL com$="E"
  470PROCsetup
  480ENDPROC
  490:
  500DEF PROCdisplayone
  510REM determine size so far
  520FOR E%=0 TO N%
  530IF data$(E%)=",,,,,,"THEN size%=E% :E%=N%
  540NEXT E%
  550PRINT TAB(6,1);"item: ";entry%;",size: ";size%;" (max ";N%;")  "
  560entry$=data$(entry%)
  570name$=FNnext(entry$)
  580phone$=FNnext(entry$)
  590add1$=FNnext(entry$)
  600add2$=FNnext(entry$)
  610add3$=FNnext(entry$)
  620add4$=FNnext(entry$)
  630PROCinversevideo
  640PRINT TAB(LB%,NY%);name$
  650PRINT TAB(LB%,CY%);phone$
  660PRINT TAB(LB%,A1%);add1$
  670PRINT TAB(LB%,A2%);add2$
  680PRINT TAB(LB%,A3%);add3$
  690PRINT TAB(LB%,A4%);add4$
  700PROCnormalvideo
  710ENDPROC
  720:
  730DEF FNnext(s$)
  740a$=LEFT$(s$,INSTR(s$,",")-1)
  750entry$=RIGHT$(s$,LEN(entry$)-LEN(a$)-1)
  760=a$
  770:
  780 DEF PROCchange
  790name$=FNgetstring(LB%,NY%,NL%,name$)
  800phone$=FNgetstring(LB%,CY%,LC%,phone$)
  810add1$=FNgetstring(LB%,A1%,LA%,add1$)
  820add2$=FNgetstring(LB%,A2%,LA%,add2$)
  830add3$=FNgetstring(LB%,A3%,LA%,add3$)
  840add4$=FNgetstring(LB%,A4%,LA%,add4$)
  850data$(entry%)=name$+","+phone$+","+add1$+","+add2$+","+add3$+","+add4$+","
  860ENDPROC
  870:
  880 DEF FNgetstring(X,Y,L,s$)
  890PROCinversevideo
  900s$=s$
  910REM now disable cursor and copy key
  920*FX4,1
  930REPEAT
  940  PRINT TAB(X,Y);s$;" ";CHR$8;
  950   G=INKEY(10)
  960   IF G>31 AND G<123 AND G<>44 THEN s$=s$+CHR$(G)
  970   IF G=127 THEN s$=LEFT$(s$,LEN(s$)-1)
  980   IF LEN(s$)>L THEN s$=LEFT$(s$,L)
  990    UNTIL G=13 :REM (CR)
 1000PROCnormalvideo
 1010REM Re-enable cursor and copy keys
 1020*FX4,0
 1030=s$
 1040:
 1050DEF PROCbox(X,Y,L)
 1060PRINT TAB(X-1,Y);STRING$(L+2," ")
 1070ENDPROC
 1080:
 1090DEF PROCunderline(X,Y,L)
 1100PRINT TAB(X-1,Y);" ";STRING$(L,"-");" "
 1110ENDPROC
 1120:
 1130DEF PROCdrawbox(X,Y,L,L$,N%)
 1140PRINT TAB(X-1-LEN(L$),Y);L$
 1150COLOUR 0 :COLOUR 129
 1160PROCbox(X,Y-1,L)
 1170PROCbox(X,Y,L)
 1180FOR Line=1 TO N%
 1190   PRINT TAB(X-1,Y-1+2*Line);" ";STRING$(L,"-");" "
 1200   PROCbox(X,Y+2*Line,L)
 1210   NEXT Line
 1220VDU20 :REM Restore default colours
 1230ENDPROC
 1240:
 1250DEF PROCinversevideo :COLOUR 0 :COLOUR 129 :ENDPROC
 1260:
 1270DEF PROCnormalvideo :COLOUR 1 :COLOUR 128 :ENDPROC
 1280:
 1290DEF PROCsetup
 1300PROCdrawbox(9,5,20,"Name",1)
 1310PROCdrawbox(9,10,20,"Phone",1)
 1320PROCdrawbox(9,15,20,"Address",4)
 1330ENDPROC
 1340:
 1350:
 1360DEF PROCsave
 1370INPUT ' "Name of file for saving", file$
 1380 f=OPENOUT(file$)
 1390c=0
 1400REPEAT
 1410  PRINT #f,data$(c)
 1420 c=c+1
 1430  UNTIL LEN(data$(c))<10
 1440CLOSE #f
 1450ENDPROC
 1460:
 1470DEF PROCload
 1480INPUT '  "Name of file to load",file$
 1490f=OPENIN(file$)
 1500c=0
 1510REPEAT
 1520  INPUT #f,data$(c)
 1530  c=c+1
 1540  UNTIL EOF#f
 1550CLOSE #f
 1560ENDPROC
 1570:
 1580DEF PROCdelete
 1590c%=entry%
 1600 IF c%=N% THEN data$(c%)=",,,,,," :entry%=c%-1 :ENDPROC
 1610REPEAT
 1620  data$(c%)=data$(c%+1)
 1630  c%=c%+1
 1640  UNTIL LEN(data$(c%))<10
 1650PROCsetup
 1660ENDPROC
 1670:
 1680DEF PROCinsert
 1690IF size%=N% THEN ENDPROC
 1700c%=entry%
 1710r1$=data$(c%)
 1720REPEAT
 1730  rh$=data$(c%+1)
 1740   data$(c%+1)=r1$
 1750  r1$=rh$
 1760  c%=c%+1
 1770  UNTIL LEN(rh$)<10
 1780data$(entry%)="SPACE FOR INSERT,,,,,,"
 1790PROCsetup
 1800 ENDPROC
 1810:
 1820DEF PROCfind
 1830PRINT TAB(0,28);"Please enter search string";
 1840INPUT part$
 1850entry%=entry%-1
 1860REPEAT
 1870  entry%=entry%+1
 1880  UNTIL INSTR(data$(entry%),part$) OR LEN(data$ (entry%))<10
 1890IF INSTR(data$(entry%),part$)=0 THEN PRINT "NOT FOUND" :T=TIME:REPEAT UNTIL TIME-T>200 ELSE *FX138,0,69
 1900REM Last *FX was to place 'E' into the keyboard buffer
 1910ENDPROC
 1920:
 1930DEF PROCexit
 1940INPUT ' ' "Do you really wish to finish now",ans$
 1950IF INSTR("YESyes",ans$) THEN END
 1960com$="N" :ENDPROC
Z� A database program from Basic Programming on the Electron --By Neil Cryer--page 278.
a� Modified for phone numbers to replace the computer box, and this box expanded to 12 didgits
`� When put into the 'FIND' mode       gives error message 'No such variable   in line 1880'.
'� Program being used on BBC Master.

�4
1LB%=9 :� Left character position of all boxes
"NY%=5 :� YPosition of name box
( NL%=20 :� Length of name box
2%CY%=10 :� Y Position of Phone box
<!LC%=20 :� Length of Phone box
F-A1%=15 :� Y Position of first adress line
P#LA%=20 :� Length of address box
Z/A2%=17 :� Y Position of second address line
d-A3%=19:� Y position of third address line
n/A4%=21 :� Y Position of fourth address line
x
�setup
�
N%=100
�entry%=0
�� data$(N%)
�blank$=�20," ")
�� I%=0 � N%
�   data$(I%)=",,,,,,"
�	 � I%
��
�F   �getcommand("command: (E)dit, (L)oad, (S)ave, (F)ind, (X)exit")
�   � com$="E" � �edit
�   � com$="L" � �load
�   � com$="S" � �save
�   � com$="F" � �find
   � com$="X" � �exit
   � com$="X"
�
":
,� �getcommand(s$)
6� I%=25 � 30
@� �0,I%);�39," ")
J� I%
T� �0,26);s$; :com$=�
^�
h:
r� �edit
|�
�  �displayone
�T  �getcommand("Edit: (N)ext,(P)revious, (C)hange,(I)nsert,(D)elete, (E)nd edit")
�J � com$="N" � entry%<N% � �(data$(entry%))>9 � entry%=entry%+1 :�setup
�3� com$="P" � entry%>0 � entry%=entry%-1 :�setup
�� com$="C" � �change
�� com$="D" � �delete
�� com$="I" � �insert
�� com$="E"
�
�setup
��
�:
�� �displayone
�� determine size so far
� E%=0 � N%
)� data$(E%)=",,,,,,"� size%=E% :E%=N%
� E%
&=� �6,1);"item: ";entry%;",size: ";size%;" (max ";N%;")  "
0entry$=data$(entry%)
:name$=�next(entry$)
Dphone$=�next(entry$)
Nadd1$=�next(entry$)
Xadd2$=�next(entry$)
badd3$=�next(entry$)
ladd4$=�next(entry$)
v�inversevideo
�� �LB%,NY%);name$
�� �LB%,CY%);phone$
�� �LB%,A1%);add1$
�� �LB%,A2%);add2$
�� �LB%,A3%);add3$
�� �LB%,A4%);add4$
��normalvideo
��
�:
�� �next(s$)
�a$=�s$,�s$,",")-1)
�!entry$=�s$,�(entry$)-�(a$)-1)
�=a$
:
 � �change
'name$=�getstring(LB%,NY%,NL%,name$)
 )phone$=�getstring(LB%,CY%,LC%,phone$)
*'add1$=�getstring(LB%,A1%,LA%,add1$)
4'add2$=�getstring(LB%,A2%,LA%,add2$)
>'add3$=�getstring(LB%,A3%,LA%,add3$)
H'add4$=�getstring(LB%,A4%,LA%,add4$)
RNdata$(entry%)=name$+","+phone$+","+add1$+","+add2$+","+add3$+","+add4$+","
\�
f:
p � �getstring(X,Y,L,s$)
z�inversevideo
�	s$=s$
�%� now disable cursor and copy key
�
*FX4,1
��
�  � �X,Y);s$;" ";�8;
�   G=�(10)
�*   � G>31 � G<123 � G<>44 � s$=s$+�(G)
�    � G=127 � s$=�s$,�(s$)-1)
�   � �(s$)>L � s$=�s$,L)
�    � G=13 :� (CR)
��normalvideo
�$� Re-enable cursor and copy keys
�
*FX4,0
=s$
:
� �box(X,Y,L)
$� �X-1,Y);�L+2," ")
.�
8:
B� �underline(X,Y,L)
L� �X-1,Y);" ";�L,"-");" "
V�
`:
j� �drawbox(X,Y,L,L$,N%)
t� �X-1-�(L$),Y);L$
~� 0 :� 129
��box(X,Y-1,L)
��box(X,Y,L)
�� Line=1 � N%
�)   � �X-1,Y-1+2*Line);" ";�L,"-");" "
�   �box(X,Y+2*Line,L)
�
   � Line
�"�20 :� Restore default colours
��
�:
�"� �inversevideo :� 0 :� 129 :�
�:
�!� �normalvideo :� 1 :� 128 :�
:

� �setup
�drawbox(9,5,20,"Name",1)
�drawbox(9,10,20,"Phone",1)
(!�drawbox(9,15,20,"Address",4)
2�
<:
F:
P� �save
Z(� ' "Name of file for saving", file$
d f=�(file$)
nc=0
x�
�  � #f,data$(c)
�
 c=c+1
�  � �(data$(c))<10
�� #f
��
�:
�� �load
�%� '  "Name of file to load",file$
�f=�(file$)
�c=0
��
�  � #f,data$(c)
�  c=c+1
  � �#f
� #f
�
":
,
� �delete
6
c%=entry%
@1 � c%=N% � data$(c%)=",,,,,," :entry%=c%-1 :�
J�
T  data$(c%)=data$(c%+1)
^
  c%=c%+1
h  � �(data$(c%))<10
r
�setup
|�
�:
�
� �insert
�� size%=N% � �
�
c%=entry%
�r1$=data$(c%)
��
�  rh$=data$(c%+1)
�   data$(c%+1)=r1$
�
  r1$=rh$
�
  c%=c%+1
�  � �(rh$)<10
�*data$(entry%)="SPACE FOR INSERT,,,,,,"
�
�setup
 �
:
� �find
&*� �0,28);"Please enter search string";
0� part$
:entry%=entry%-1
D�
N  entry%=entry%+1
X4  � �data$(entry%),part$) � �(data$ (entry%))<10
bL� �data$(entry%),part$)=0 � � "NOT FOUND" :T=�:� � �-T>200 � *FX138,0,69
l8� Last *FX was to place 'E' into the keyboard buffer
v�
�:
�� �exit
�1� ' ' "Do you really wish to finish now",ans$
�� �"YESyes",ans$) � �
�com$="N" :�
�
00000000  0d 00 01 5a f4 20 41 20  64 61 74 61 62 61 73 65  |...Z. A database|
00000010  20 70 72 6f 67 72 61 6d  20 66 72 6f 6d 20 42 61  | program from Ba|
00000020  73 69 63 20 50 72 6f 67  72 61 6d 6d 69 6e 67 20  |sic Programming |
00000030  6f 6e 20 74 68 65 20 45  6c 65 63 74 72 6f 6e 20  |on the Electron |
00000040  2d 2d 42 79 20 4e 65 69  6c 20 43 72 79 65 72 2d  |--By Neil Cryer-|
00000050  2d 70 61 67 65 20 32 37  38 2e 0d 00 02 61 f4 20  |-page 278....a. |
00000060  4d 6f 64 69 66 69 65 64  20 66 6f 72 20 70 68 6f  |Modified for pho|
00000070  6e 65 20 6e 75 6d 62 65  72 73 20 74 6f 20 72 65  |ne numbers to re|
00000080  70 6c 61 63 65 20 74 68  65 20 63 6f 6d 70 75 74  |place the comput|
00000090  65 72 20 62 6f 78 2c 20  61 6e 64 20 74 68 69 73  |er box, and this|
000000a0  20 62 6f 78 20 65 78 70  61 6e 64 65 64 20 74 6f  | box expanded to|
000000b0  20 31 32 20 64 69 64 67  69 74 73 0d 00 03 60 f4  | 12 didgits...`.|
000000c0  20 57 68 65 6e 20 70 75  74 20 69 6e 74 6f 20 74  | When put into t|
000000d0  68 65 20 27 46 49 4e 44  27 20 6d 6f 64 65 20 20  |he 'FIND' mode  |
000000e0  20 20 20 20 20 67 69 76  65 73 20 65 72 72 6f 72  |     gives error|
000000f0  20 6d 65 73 73 61 67 65  20 27 4e 6f 20 73 75 63  | message 'No suc|
00000100  68 20 76 61 72 69 61 62  6c 65 20 20 20 69 6e 20  |h variable   in |
00000110  6c 69 6e 65 20 31 38 38  30 27 2e 0d 00 04 27 f4  |line 1880'....'.|
00000120  20 50 72 6f 67 72 61 6d  20 62 65 69 6e 67 20 75  | Program being u|
00000130  73 65 64 20 6f 6e 20 42  42 43 20 4d 61 73 74 65  |sed on BBC Maste|
00000140  72 2e 0d 00 0a 06 eb 34  0d 00 14 31 4c 42 25 3d  |r......4...1LB%=|
00000150  39 20 3a f4 20 4c 65 66  74 20 63 68 61 72 61 63  |9 :. Left charac|
00000160  74 65 72 20 70 6f 73 69  74 69 6f 6e 20 6f 66 20  |ter position of |
00000170  61 6c 6c 20 62 6f 78 65  73 0d 00 1e 22 4e 59 25  |all boxes..."NY%|
00000180  3d 35 20 3a f4 20 59 50  6f 73 69 74 69 6f 6e 20  |=5 :. YPosition |
00000190  6f 66 20 6e 61 6d 65 20  62 6f 78 0d 00 28 20 4e  |of name box..( N|
000001a0  4c 25 3d 32 30 20 3a f4  20 4c 65 6e 67 74 68 20  |L%=20 :. Length |
000001b0  6f 66 20 6e 61 6d 65 20  62 6f 78 0d 00 32 25 43  |of name box..2%C|
000001c0  59 25 3d 31 30 20 3a f4  20 59 20 50 6f 73 69 74  |Y%=10 :. Y Posit|
000001d0  69 6f 6e 20 6f 66 20 50  68 6f 6e 65 20 62 6f 78  |ion of Phone box|
000001e0  0d 00 3c 21 4c 43 25 3d  32 30 20 3a f4 20 4c 65  |..<!LC%=20 :. Le|
000001f0  6e 67 74 68 20 6f 66 20  50 68 6f 6e 65 20 62 6f  |ngth of Phone bo|
00000200  78 0d 00 46 2d 41 31 25  3d 31 35 20 3a f4 20 59  |x..F-A1%=15 :. Y|
00000210  20 50 6f 73 69 74 69 6f  6e 20 6f 66 20 66 69 72  | Position of fir|
00000220  73 74 20 61 64 72 65 73  73 20 6c 69 6e 65 0d 00  |st adress line..|
00000230  50 23 4c 41 25 3d 32 30  20 3a f4 20 4c 65 6e 67  |P#LA%=20 :. Leng|
00000240  74 68 20 6f 66 20 61 64  64 72 65 73 73 20 62 6f  |th of address bo|
00000250  78 0d 00 5a 2f 41 32 25  3d 31 37 20 3a f4 20 59  |x..Z/A2%=17 :. Y|
00000260  20 50 6f 73 69 74 69 6f  6e 20 6f 66 20 73 65 63  | Position of sec|
00000270  6f 6e 64 20 61 64 64 72  65 73 73 20 6c 69 6e 65  |ond address line|
00000280  0d 00 64 2d 41 33 25 3d  31 39 3a f4 20 59 20 70  |..d-A3%=19:. Y p|
00000290  6f 73 69 74 69 6f 6e 20  6f 66 20 74 68 69 72 64  |osition of third|
000002a0  20 61 64 64 72 65 73 73  20 6c 69 6e 65 0d 00 6e  | address line..n|
000002b0  2f 41 34 25 3d 32 31 20  3a f4 20 59 20 50 6f 73  |/A4%=21 :. Y Pos|
000002c0  69 74 69 6f 6e 20 6f 66  20 66 6f 75 72 74 68 20  |ition of fourth |
000002d0  61 64 64 72 65 73 73 20  6c 69 6e 65 0d 00 78 0a  |address line..x.|
000002e0  f2 73 65 74 75 70 0d 00  82 0a 4e 25 3d 31 30 30  |.setup....N%=100|
000002f0  0d 00 8c 0c 65 6e 74 72  79 25 3d 30 0d 00 96 0f  |....entry%=0....|
00000300  de 20 64 61 74 61 24 28  4e 25 29 0d 00 a0 13 62  |. data$(N%)....b|
00000310  6c 61 6e 6b 24 3d c4 32  30 2c 22 20 22 29 0d 00  |lank$=.20," ")..|
00000320  aa 0f e3 20 49 25 3d 30  20 b8 20 4e 25 0d 00 b4  |... I%=0 . N%...|
00000330  19 20 20 20 64 61 74 61  24 28 49 25 29 3d 22 2c  |.   data$(I%)=",|
00000340  2c 2c 2c 2c 2c 22 0d 00  be 09 20 ed 20 49 25 0d  |,,,,,".... . I%.|
00000350  00 c8 05 f5 0d 00 d2 46  20 20 20 f2 67 65 74 63  |.......F   .getc|
00000360  6f 6d 6d 61 6e 64 28 22  63 6f 6d 6d 61 6e 64 3a  |ommand("command:|
00000370  20 28 45 29 64 69 74 2c  20 28 4c 29 6f 61 64 2c  | (E)dit, (L)oad,|
00000380  20 28 53 29 61 76 65 2c  20 28 46 29 69 6e 64 2c  | (S)ave, (F)ind,|
00000390  20 28 58 29 65 78 69 74  22 29 0d 00 dc 19 20 20  | (X)exit")....  |
000003a0  20 e7 20 63 6f 6d 24 3d  22 45 22 20 8c 20 f2 65  | . com$="E" . .e|
000003b0  64 69 74 0d 00 e6 19 20  20 20 e7 20 63 6f 6d 24  |dit....   . com$|
000003c0  3d 22 4c 22 20 8c 20 f2  6c 6f 61 64 0d 00 f0 19  |="L" . .load....|
000003d0  20 20 20 e7 20 63 6f 6d  24 3d 22 53 22 20 8c 20  |   . com$="S" . |
000003e0  f2 73 61 76 65 0d 00 fa  19 20 20 20 e7 20 63 6f  |.save....   . co|
000003f0  6d 24 3d 22 46 22 20 8c  20 f2 66 69 6e 64 0d 01  |m$="F" . .find..|
00000400  04 19 20 20 20 e7 20 63  6f 6d 24 3d 22 58 22 20  |..   . com$="X" |
00000410  8c 20 f2 65 78 69 74 0d  01 0e 11 20 20 20 fd 20  |. .exit....   . |
00000420  63 6f 6d 24 3d 22 58 22  0d 01 18 05 e0 0d 01 22  |com$="X"......."|
00000430  05 3a 0d 01 2c 15 dd 20  f2 67 65 74 63 6f 6d 6d  |.:..,.. .getcomm|
00000440  61 6e 64 28 73 24 29 0d  01 36 10 e3 20 49 25 3d  |and(s$)..6.. I%=|
00000450  32 35 20 b8 20 33 30 0d  01 40 15 f1 20 8a 30 2c  |25 . 30..@.. .0,|
00000460  49 25 29 3b c4 33 39 2c  22 20 22 29 0d 01 4a 08  |I%);.39," ")..J.|
00000470  ed 20 49 25 0d 01 54 18  f1 20 8a 30 2c 32 36 29  |. I%..T.. .0,26)|
00000480  3b 73 24 3b 20 3a 63 6f  6d 24 3d be 0d 01 5e 05  |;s$; :com$=...^.|
00000490  e1 0d 01 68 05 3a 0d 01  72 0b dd 20 f2 65 64 69  |...h.:..r.. .edi|
000004a0  74 0d 01 7c 05 f5 0d 01  86 11 20 20 f2 64 69 73  |t..|......  .dis|
000004b0  70 6c 61 79 6f 6e 65 0d  01 90 54 20 20 f2 67 65  |playone...T  .ge|
000004c0  74 63 6f 6d 6d 61 6e 64  28 22 45 64 69 74 3a 20  |tcommand("Edit: |
000004d0  28 4e 29 65 78 74 2c 28  50 29 72 65 76 69 6f 75  |(N)ext,(P)reviou|
000004e0  73 2c 20 28 43 29 68 61  6e 67 65 2c 28 49 29 6e  |s, (C)hange,(I)n|
000004f0  73 65 72 74 2c 28 44 29  65 6c 65 74 65 2c 20 28  |sert,(D)elete, (|
00000500  45 29 6e 64 20 65 64 69  74 22 29 0d 01 9a 4a 20  |E)nd edit")...J |
00000510  e7 20 63 6f 6d 24 3d 22  4e 22 20 80 20 65 6e 74  |. com$="N" . ent|
00000520  72 79 25 3c 4e 25 20 80  20 a9 28 64 61 74 61 24  |ry%<N% . .(data$|
00000530  28 65 6e 74 72 79 25 29  29 3e 39 20 8c 20 65 6e  |(entry%))>9 . en|
00000540  74 72 79 25 3d 65 6e 74  72 79 25 2b 31 20 3a f2  |try%=entry%+1 :.|
00000550  73 65 74 75 70 0d 01 a4  33 e7 20 63 6f 6d 24 3d  |setup...3. com$=|
00000560  22 50 22 20 80 20 65 6e  74 72 79 25 3e 30 20 8c  |"P" . entry%>0 .|
00000570  20 65 6e 74 72 79 25 3d  65 6e 74 72 79 25 2d 31  | entry%=entry%-1|
00000580  20 3a f2 73 65 74 75 70  0d 01 ae 18 e7 20 63 6f  | :.setup..... co|
00000590  6d 24 3d 22 43 22 20 8c  20 f2 63 68 61 6e 67 65  |m$="C" . .change|
000005a0  0d 01 b8 18 e7 20 63 6f  6d 24 3d 22 44 22 20 8c  |..... com$="D" .|
000005b0  20 f2 64 65 6c 65 74 65  0d 01 c2 18 e7 20 63 6f  | .delete..... co|
000005c0  6d 24 3d 22 49 22 20 8c  20 f2 69 6e 73 65 72 74  |m$="I" . .insert|
000005d0  0d 01 cc 0e fd 20 63 6f  6d 24 3d 22 45 22 0d 01  |..... com$="E"..|
000005e0  d6 0a f2 73 65 74 75 70  0d 01 e0 05 e1 0d 01 ea  |...setup........|
000005f0  05 3a 0d 01 f4 11 dd 20  f2 64 69 73 70 6c 61 79  |.:..... .display|
00000600  6f 6e 65 0d 01 fe 1b f4  20 64 65 74 65 72 6d 69  |one..... determi|
00000610  6e 65 20 73 69 7a 65 20  73 6f 20 66 61 72 0d 02  |ne size so far..|
00000620  08 0f e3 20 45 25 3d 30  20 b8 20 4e 25 0d 02 12  |... E%=0 . N%...|
00000630  29 e7 20 64 61 74 61 24  28 45 25 29 3d 22 2c 2c  |). data$(E%)=",,|
00000640  2c 2c 2c 2c 22 8c 20 73  69 7a 65 25 3d 45 25 20  |,,,,". size%=E% |
00000650  3a 45 25 3d 4e 25 0d 02  1c 08 ed 20 45 25 0d 02  |:E%=N%..... E%..|
00000660  26 3d f1 20 8a 36 2c 31  29 3b 22 69 74 65 6d 3a  |&=. .6,1);"item:|
00000670  20 22 3b 65 6e 74 72 79  25 3b 22 2c 73 69 7a 65  | ";entry%;",size|
00000680  3a 20 22 3b 73 69 7a 65  25 3b 22 20 28 6d 61 78  |: ";size%;" (max|
00000690  20 22 3b 4e 25 3b 22 29  20 20 22 0d 02 30 18 65  | ";N%;")  "..0.e|
000006a0  6e 74 72 79 24 3d 64 61  74 61 24 28 65 6e 74 72  |ntry$=data$(entr|
000006b0  79 25 29 0d 02 3a 17 6e  61 6d 65 24 3d a4 6e 65  |y%)..:.name$=.ne|
000006c0  78 74 28 65 6e 74 72 79  24 29 0d 02 44 18 70 68  |xt(entry$)..D.ph|
000006d0  6f 6e 65 24 3d a4 6e 65  78 74 28 65 6e 74 72 79  |one$=.next(entry|
000006e0  24 29 0d 02 4e 17 61 64  64 31 24 3d a4 6e 65 78  |$)..N.add1$=.nex|
000006f0  74 28 65 6e 74 72 79 24  29 0d 02 58 17 61 64 64  |t(entry$)..X.add|
00000700  32 24 3d a4 6e 65 78 74  28 65 6e 74 72 79 24 29  |2$=.next(entry$)|
00000710  0d 02 62 17 61 64 64 33  24 3d a4 6e 65 78 74 28  |..b.add3$=.next(|
00000720  65 6e 74 72 79 24 29 0d  02 6c 17 61 64 64 34 24  |entry$)..l.add4$|
00000730  3d a4 6e 65 78 74 28 65  6e 74 72 79 24 29 0d 02  |=.next(entry$)..|
00000740  76 11 f2 69 6e 76 65 72  73 65 76 69 64 65 6f 0d  |v..inversevideo.|
00000750  02 80 15 f1 20 8a 4c 42  25 2c 4e 59 25 29 3b 6e  |.... .LB%,NY%);n|
00000760  61 6d 65 24 0d 02 8a 16  f1 20 8a 4c 42 25 2c 43  |ame$..... .LB%,C|
00000770  59 25 29 3b 70 68 6f 6e  65 24 0d 02 94 15 f1 20  |Y%);phone$..... |
00000780  8a 4c 42 25 2c 41 31 25  29 3b 61 64 64 31 24 0d  |.LB%,A1%);add1$.|
00000790  02 9e 15 f1 20 8a 4c 42  25 2c 41 32 25 29 3b 61  |.... .LB%,A2%);a|
000007a0  64 64 32 24 0d 02 a8 15  f1 20 8a 4c 42 25 2c 41  |dd2$..... .LB%,A|
000007b0  33 25 29 3b 61 64 64 33  24 0d 02 b2 15 f1 20 8a  |3%);add3$..... .|
000007c0  4c 42 25 2c 41 34 25 29  3b 61 64 64 34 24 0d 02  |LB%,A4%);add4$..|
000007d0  bc 10 f2 6e 6f 72 6d 61  6c 76 69 64 65 6f 0d 02  |...normalvideo..|
000007e0  c6 05 e1 0d 02 d0 05 3a  0d 02 da 0f dd 20 a4 6e  |.......:..... .n|
000007f0  65 78 74 28 73 24 29 0d  02 e4 16 61 24 3d c0 73  |ext(s$)....a$=.s|
00000800  24 2c a7 73 24 2c 22 2c  22 29 2d 31 29 0d 02 ee  |$,.s$,",")-1)...|
00000810  21 65 6e 74 72 79 24 3d  c2 73 24 2c a9 28 65 6e  |!entry$=.s$,.(en|
00000820  74 72 79 24 29 2d a9 28  61 24 29 2d 31 29 0d 02  |try$)-.(a$)-1)..|
00000830  f8 07 3d 61 24 0d 03 02  05 3a 0d 03 0c 0e 20 dd  |..=a$....:.... .|
00000840  20 f2 63 68 61 6e 67 65  0d 03 16 27 6e 61 6d 65  | .change...'name|
00000850  24 3d a4 67 65 74 73 74  72 69 6e 67 28 4c 42 25  |$=.getstring(LB%|
00000860  2c 4e 59 25 2c 4e 4c 25  2c 6e 61 6d 65 24 29 0d  |,NY%,NL%,name$).|
00000870  03 20 29 70 68 6f 6e 65  24 3d a4 67 65 74 73 74  |. )phone$=.getst|
00000880  72 69 6e 67 28 4c 42 25  2c 43 59 25 2c 4c 43 25  |ring(LB%,CY%,LC%|
00000890  2c 70 68 6f 6e 65 24 29  0d 03 2a 27 61 64 64 31  |,phone$)..*'add1|
000008a0  24 3d a4 67 65 74 73 74  72 69 6e 67 28 4c 42 25  |$=.getstring(LB%|
000008b0  2c 41 31 25 2c 4c 41 25  2c 61 64 64 31 24 29 0d  |,A1%,LA%,add1$).|
000008c0  03 34 27 61 64 64 32 24  3d a4 67 65 74 73 74 72  |.4'add2$=.getstr|
000008d0  69 6e 67 28 4c 42 25 2c  41 32 25 2c 4c 41 25 2c  |ing(LB%,A2%,LA%,|
000008e0  61 64 64 32 24 29 0d 03  3e 27 61 64 64 33 24 3d  |add2$)..>'add3$=|
000008f0  a4 67 65 74 73 74 72 69  6e 67 28 4c 42 25 2c 41  |.getstring(LB%,A|
00000900  33 25 2c 4c 41 25 2c 61  64 64 33 24 29 0d 03 48  |3%,LA%,add3$)..H|
00000910  27 61 64 64 34 24 3d a4  67 65 74 73 74 72 69 6e  |'add4$=.getstrin|
00000920  67 28 4c 42 25 2c 41 34  25 2c 4c 41 25 2c 61 64  |g(LB%,A4%,LA%,ad|
00000930  64 34 24 29 0d 03 52 4e  64 61 74 61 24 28 65 6e  |d4$)..RNdata$(en|
00000940  74 72 79 25 29 3d 6e 61  6d 65 24 2b 22 2c 22 2b  |try%)=name$+","+|
00000950  70 68 6f 6e 65 24 2b 22  2c 22 2b 61 64 64 31 24  |phone$+","+add1$|
00000960  2b 22 2c 22 2b 61 64 64  32 24 2b 22 2c 22 2b 61  |+","+add2$+","+a|
00000970  64 64 33 24 2b 22 2c 22  2b 61 64 64 34 24 2b 22  |dd3$+","+add4$+"|
00000980  2c 22 0d 03 5c 05 e1 0d  03 66 05 3a 0d 03 70 1b  |,"..\....f.:..p.|
00000990  20 dd 20 a4 67 65 74 73  74 72 69 6e 67 28 58 2c  | . .getstring(X,|
000009a0  59 2c 4c 2c 73 24 29 0d  03 7a 11 f2 69 6e 76 65  |Y,L,s$)..z..inve|
000009b0  72 73 65 76 69 64 65 6f  0d 03 84 09 73 24 3d 73  |rsevideo....s$=s|
000009c0  24 0d 03 8e 25 f4 20 6e  6f 77 20 64 69 73 61 62  |$...%. now disab|
000009d0  6c 65 20 63 75 72 73 6f  72 20 61 6e 64 20 63 6f  |le cursor and co|
000009e0  70 79 20 6b 65 79 0d 03  98 0a 2a 46 58 34 2c 31  |py key....*FX4,1|
000009f0  0d 03 a2 05 f5 0d 03 ac  18 20 20 f1 20 8a 58 2c  |.........  . .X,|
00000a00  59 29 3b 73 24 3b 22 20  22 3b bd 38 3b 0d 03 b6  |Y);s$;" ";.8;...|
00000a10  0e 20 20 20 47 3d a6 28  31 30 29 0d 03 c0 2a 20  |.   G=.(10)...* |
00000a20  20 20 e7 20 47 3e 33 31  20 80 20 47 3c 31 32 33  |  . G>31 . G<123|
00000a30  20 80 20 47 3c 3e 34 34  20 8c 20 73 24 3d 73 24  | . G<>44 . s$=s$|
00000a40  2b bd 28 47 29 0d 03 ca  20 20 20 20 e7 20 47 3d  |+.(G)...    . G=|
00000a50  31 32 37 20 8c 20 73 24  3d c0 73 24 2c a9 28 73  |127 . s$=.s$,.(s|
00000a60  24 29 2d 31 29 0d 03 d4  1c 20 20 20 e7 20 a9 28  |$)-1)....   . .(|
00000a70  73 24 29 3e 4c 20 8c 20  73 24 3d c0 73 24 2c 4c  |s$)>L . s$=.s$,L|
00000a80  29 0d 03 de 16 20 20 20  20 fd 20 47 3d 31 33 20  |)....    . G=13 |
00000a90  3a f4 20 28 43 52 29 0d  03 e8 10 f2 6e 6f 72 6d  |:. (CR).....norm|
00000aa0  61 6c 76 69 64 65 6f 0d  03 f2 24 f4 20 52 65 2d  |alvideo...$. Re-|
00000ab0  65 6e 61 62 6c 65 20 63  75 72 73 6f 72 20 61 6e  |enable cursor an|
00000ac0  64 20 63 6f 70 79 20 6b  65 79 73 0d 03 fc 0a 2a  |d copy keys....*|
00000ad0  46 58 34 2c 30 0d 04 06  07 3d 73 24 0d 04 10 05  |FX4,0....=s$....|
00000ae0  3a 0d 04 1a 11 dd 20 f2  62 6f 78 28 58 2c 59 2c  |:..... .box(X,Y,|
00000af0  4c 29 0d 04 24 17 f1 20  8a 58 2d 31 2c 59 29 3b  |L)..$.. .X-1,Y);|
00000b00  c4 4c 2b 32 2c 22 20 22  29 0d 04 2e 05 e1 0d 04  |.L+2," ").......|
00000b10  38 05 3a 0d 04 42 17 dd  20 f2 75 6e 64 65 72 6c  |8.:..B.. .underl|
00000b20  69 6e 65 28 58 2c 59 2c  4c 29 0d 04 4c 1d f1 20  |ine(X,Y,L)..L.. |
00000b30  8a 58 2d 31 2c 59 29 3b  22 20 22 3b c4 4c 2c 22  |.X-1,Y);" ";.L,"|
00000b40  2d 22 29 3b 22 20 22 0d  04 56 05 e1 0d 04 60 05  |-");" "..V....`.|
00000b50  3a 0d 04 6a 1b dd 20 f2  64 72 61 77 62 6f 78 28  |:..j.. .drawbox(|
00000b60  58 2c 59 2c 4c 2c 4c 24  2c 4e 25 29 0d 04 74 16  |X,Y,L,L$,N%)..t.|
00000b70  f1 20 8a 58 2d 31 2d a9  28 4c 24 29 2c 59 29 3b  |. .X-1-.(L$),Y);|
00000b80  4c 24 0d 04 7e 0e fb 20  30 20 3a fb 20 31 32 39  |L$..~.. 0 :. 129|
00000b90  0d 04 88 11 f2 62 6f 78  28 58 2c 59 2d 31 2c 4c  |.....box(X,Y-1,L|
00000ba0  29 0d 04 92 0f f2 62 6f  78 28 58 2c 59 2c 4c 29  |).....box(X,Y,L)|
00000bb0  0d 04 9c 11 e3 20 4c 69  6e 65 3d 31 20 b8 20 4e  |..... Line=1 . N|
00000bc0  25 0d 04 a6 29 20 20 20  f1 20 8a 58 2d 31 2c 59  |%...)   . .X-1,Y|
00000bd0  2d 31 2b 32 2a 4c 69 6e  65 29 3b 22 20 22 3b c4  |-1+2*Line);" ";.|
00000be0  4c 2c 22 2d 22 29 3b 22  20 22 0d 04 b0 19 20 20  |L,"-");" "....  |
00000bf0  20 f2 62 6f 78 28 58 2c  59 2b 32 2a 4c 69 6e 65  | .box(X,Y+2*Line|
00000c00  2c 4c 29 0d 04 ba 0d 20  20 20 ed 20 4c 69 6e 65  |,L)....   . Line|
00000c10  0d 04 c4 22 ef 32 30 20  3a f4 20 52 65 73 74 6f  |...".20 :. Resto|
00000c20  72 65 20 64 65 66 61 75  6c 74 20 63 6f 6c 6f 75  |re default colou|
00000c30  72 73 0d 04 ce 05 e1 0d  04 d8 05 3a 0d 04 e2 22  |rs.........:..."|
00000c40  dd 20 f2 69 6e 76 65 72  73 65 76 69 64 65 6f 20  |. .inversevideo |
00000c50  3a fb 20 30 20 3a fb 20  31 32 39 20 3a e1 0d 04  |:. 0 :. 129 :...|
00000c60  ec 05 3a 0d 04 f6 21 dd  20 f2 6e 6f 72 6d 61 6c  |..:...!. .normal|
00000c70  76 69 64 65 6f 20 3a fb  20 31 20 3a fb 20 31 32  |video :. 1 :. 12|
00000c80  38 20 3a e1 0d 05 00 05  3a 0d 05 0a 0c dd 20 f2  |8 :.....:..... .|
00000c90  73 65 74 75 70 0d 05 14  1d f2 64 72 61 77 62 6f  |setup.....drawbo|
00000ca0  78 28 39 2c 35 2c 32 30  2c 22 4e 61 6d 65 22 2c  |x(9,5,20,"Name",|
00000cb0  31 29 0d 05 1e 1f f2 64  72 61 77 62 6f 78 28 39  |1).....drawbox(9|
00000cc0  2c 31 30 2c 32 30 2c 22  50 68 6f 6e 65 22 2c 31  |,10,20,"Phone",1|
00000cd0  29 0d 05 28 21 f2 64 72  61 77 62 6f 78 28 39 2c  |)..(!.drawbox(9,|
00000ce0  31 35 2c 32 30 2c 22 41  64 64 72 65 73 73 22 2c  |15,20,"Address",|
00000cf0  34 29 0d 05 32 05 e1 0d  05 3c 05 3a 0d 05 46 05  |4)..2....<.:..F.|
00000d00  3a 0d 05 50 0b dd 20 f2  73 61 76 65 0d 05 5a 28  |:..P.. .save..Z(|
00000d10  e8 20 27 20 22 4e 61 6d  65 20 6f 66 20 66 69 6c  |. ' "Name of fil|
00000d20  65 20 66 6f 72 20 73 61  76 69 6e 67 22 2c 20 66  |e for saving", f|
00000d30  69 6c 65 24 0d 05 64 0f  20 66 3d ae 28 66 69 6c  |ile$..d. f=.(fil|
00000d40  65 24 29 0d 05 6e 07 63  3d 30 0d 05 78 05 f5 0d  |e$)..n.c=0..x...|
00000d50  05 82 13 20 20 f1 20 23  66 2c 64 61 74 61 24 28  |...  . #f,data$(|
00000d60  63 29 0d 05 8c 0a 20 63  3d 63 2b 31 0d 05 96 16  |c).... c=c+1....|
00000d70  20 20 fd 20 a9 28 64 61  74 61 24 28 63 29 29 3c  |  . .(data$(c))<|
00000d80  31 30 0d 05 a0 08 d9 20  23 66 0d 05 aa 05 e1 0d  |10..... #f......|
00000d90  05 b4 05 3a 0d 05 be 0b  dd 20 f2 6c 6f 61 64 0d  |...:..... .load.|
00000da0  05 c8 25 e8 20 27 20 20  22 4e 61 6d 65 20 6f 66  |..%. '  "Name of|
00000db0  20 66 69 6c 65 20 74 6f  20 6c 6f 61 64 22 2c 66  | file to load",f|
00000dc0  69 6c 65 24 0d 05 d2 0e  66 3d 8e 28 66 69 6c 65  |ile$....f=.(file|
00000dd0  24 29 0d 05 dc 07 63 3d  30 0d 05 e6 05 f5 0d 05  |$)....c=0.......|
00000de0  f0 13 20 20 e8 20 23 66  2c 64 61 74 61 24 28 63  |..  . #f,data$(c|
00000df0  29 0d 05 fa 0b 20 20 63  3d 63 2b 31 0d 06 04 0b  |)....  c=c+1....|
00000e00  20 20 fd 20 c5 23 66 0d  06 0e 08 d9 20 23 66 0d  |  . .#f..... #f.|
00000e10  06 18 05 e1 0d 06 22 05  3a 0d 06 2c 0d dd 20 f2  |......".:..,.. .|
00000e20  64 65 6c 65 74 65 0d 06  36 0d 63 25 3d 65 6e 74  |delete..6.c%=ent|
00000e30  72 79 25 0d 06 40 31 20  e7 20 63 25 3d 4e 25 20  |ry%..@1 . c%=N% |
00000e40  8c 20 64 61 74 61 24 28  63 25 29 3d 22 2c 2c 2c  |. data$(c%)=",,,|
00000e50  2c 2c 2c 22 20 3a 65 6e  74 72 79 25 3d 63 25 2d  |,,," :entry%=c%-|
00000e60  31 20 3a e1 0d 06 4a 05  f5 0d 06 54 1b 20 20 64  |1 :...J....T.  d|
00000e70  61 74 61 24 28 63 25 29  3d 64 61 74 61 24 28 63  |ata$(c%)=data$(c|
00000e80  25 2b 31 29 0d 06 5e 0d  20 20 63 25 3d 63 25 2b  |%+1)..^.  c%=c%+|
00000e90  31 0d 06 68 17 20 20 fd  20 a9 28 64 61 74 61 24  |1..h.  . .(data$|
00000ea0  28 63 25 29 29 3c 31 30  0d 06 72 0a f2 73 65 74  |(c%))<10..r..set|
00000eb0  75 70 0d 06 7c 05 e1 0d  06 86 05 3a 0d 06 90 0d  |up..|......:....|
00000ec0  dd 20 f2 69 6e 73 65 72  74 0d 06 9a 12 e7 20 73  |. .insert..... s|
00000ed0  69 7a 65 25 3d 4e 25 20  8c 20 e1 0d 06 a4 0d 63  |ize%=N% . .....c|
00000ee0  25 3d 65 6e 74 72 79 25  0d 06 ae 11 72 31 24 3d  |%=entry%....r1$=|
00000ef0  64 61 74 61 24 28 63 25  29 0d 06 b8 05 f5 0d 06  |data$(c%).......|
00000f00  c2 15 20 20 72 68 24 3d  64 61 74 61 24 28 63 25  |..  rh$=data$(c%|
00000f10  2b 31 29 0d 06 cc 16 20  20 20 64 61 74 61 24 28  |+1)....   data$(|
00000f20  63 25 2b 31 29 3d 72 31  24 0d 06 d6 0d 20 20 72  |c%+1)=r1$....  r|
00000f30  31 24 3d 72 68 24 0d 06  e0 0d 20 20 63 25 3d 63  |1$=rh$....  c%=c|
00000f40  25 2b 31 0d 06 ea 11 20  20 fd 20 a9 28 72 68 24  |%+1....  . .(rh$|
00000f50  29 3c 31 30 0d 06 f4 2a  64 61 74 61 24 28 65 6e  |)<10...*data$(en|
00000f60  74 72 79 25 29 3d 22 53  50 41 43 45 20 46 4f 52  |try%)="SPACE FOR|
00000f70  20 49 4e 53 45 52 54 2c  2c 2c 2c 2c 2c 22 0d 06  | INSERT,,,,,,"..|
00000f80  fe 0a f2 73 65 74 75 70  0d 07 08 06 20 e1 0d 07  |...setup.... ...|
00000f90  12 05 3a 0d 07 1c 0b dd  20 f2 66 69 6e 64 0d 07  |..:..... .find..|
00000fa0  26 2a f1 20 8a 30 2c 32  38 29 3b 22 50 6c 65 61  |&*. .0,28);"Plea|
00000fb0  73 65 20 65 6e 74 65 72  20 73 65 61 72 63 68 20  |se enter search |
00000fc0  73 74 72 69 6e 67 22 3b  0d 07 30 0b e8 20 70 61  |string";..0.. pa|
00000fd0  72 74 24 0d 07 3a 13 65  6e 74 72 79 25 3d 65 6e  |rt$..:.entry%=en|
00000fe0  74 72 79 25 2d 31 0d 07  44 05 f5 0d 07 4e 15 20  |try%-1..D....N. |
00000ff0  20 65 6e 74 72 79 25 3d  65 6e 74 72 79 25 2b 31  | entry%=entry%+1|
00001000  0d 07 58 34 20 20 fd 20  a7 64 61 74 61 24 28 65  |..X4  . .data$(e|
00001010  6e 74 72 79 25 29 2c 70  61 72 74 24 29 20 84 20  |ntry%),part$) . |
00001020  a9 28 64 61 74 61 24 20  28 65 6e 74 72 79 25 29  |.(data$ (entry%)|
00001030  29 3c 31 30 0d 07 62 4c  e7 20 a7 64 61 74 61 24  |)<10..bL. .data$|
00001040  28 65 6e 74 72 79 25 29  2c 70 61 72 74 24 29 3d  |(entry%),part$)=|
00001050  30 20 8c 20 f1 20 22 4e  4f 54 20 46 4f 55 4e 44  |0 . . "NOT FOUND|
00001060  22 20 3a 54 3d 91 3a f5  20 fd 20 91 2d 54 3e 32  |" :T=.:. . .-T>2|
00001070  30 30 20 8b 20 2a 46 58  31 33 38 2c 30 2c 36 39  |00 . *FX138,0,69|
00001080  0d 07 6c 38 f4 20 4c 61  73 74 20 2a 46 58 20 77  |..l8. Last *FX w|
00001090  61 73 20 74 6f 20 70 6c  61 63 65 20 27 45 27 20  |as to place 'E' |
000010a0  69 6e 74 6f 20 74 68 65  20 6b 65 79 62 6f 61 72  |into the keyboar|
000010b0  64 20 62 75 66 66 65 72  0d 07 76 05 e1 0d 07 80  |d buffer..v.....|
000010c0  05 3a 0d 07 8a 0b dd 20  f2 65 78 69 74 0d 07 94  |.:..... .exit...|
000010d0  31 e8 20 27 20 27 20 22  44 6f 20 79 6f 75 20 72  |1. ' ' "Do you r|
000010e0  65 61 6c 6c 79 20 77 69  73 68 20 74 6f 20 66 69  |eally wish to fi|
000010f0  6e 69 73 68 20 6e 6f 77  22 2c 61 6e 73 24 0d 07  |nish now",ans$..|
00001100  9e 19 e7 20 a7 22 59 45  53 79 65 73 22 2c 61 6e  |... ."YESyes",an|
00001110  73 24 29 20 8c 20 e0 0d  07 a8 0f 63 6f 6d 24 3d  |s$) . .....com$=|
00001120  22 4e 22 20 3a e1 0d ff                           |"N" :...|
00001128
P/DBASE.m0
P/DBASE.m1
P/DBASE.m2
P/DBASE.m4
P/DBASE.m5