Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape18a_acorn_eu_1991_january.wav » WrdBase

WrdBase

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape18a_acorn_eu_1991_january.wav
Filename: WrdBase
Read OK:
File size: 3CA9 bytes
Load address: FFFFFFFF
Exec address: FFFFFFFF
Duplicates

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

File contents
--------------------------------------
REM.. COMPRES
REM.. BY C J Waldock
REM.. (C) The Micro User
REM.. Compresses segment commands
REM..  and strips out REMS.
REM.. Put segment program in TEXT.
REM.. Save result on ANOTHER disc
REM..  in $ directory.

REM.. set constant carriage return
 R$=chr$13

REM.. TEXT may be changed to SEGMENT
 select text
 cursor down 4

cls
vdu10,10,10
print"     Working . . . please wait"

REM.. strip REMs
repeat
 find "REM##"
 cursor at 0
 fkey 3
 find R$
 cursor right
 fkey 3
 fkey 7
until EOT

REM.. Now convert common commands
REM.. to their minimum form

A$="repeat"
B$="r."
procCHANGE

A$="dothis"
B$="d."
procCHANGE

A$="times "
B$="t."
procCHANGE

A$="endproc"
B$="e."
procCHANGE

A$="cursor "
B$="c."
procCHANGE

A$="delete "
B$="de."
procCHANGE

A$="at "
B$="a."
procCHANGE

A$="left "
B$="l."
procCHANGE

A$="left"
B$="l."
procCHANGE

A$="right "
B$="r."
procCHANGE

A$="right"
B$="r."
procCHANGE

A$="up "
B$="u."
procCHANGE

A$="up"
B$="u."
procCHANGE

A$="down "
B$="d."
procCHANGE

A$="down"
B$="d."
procCHANGE

A$="select "
B$="s."
procCHANGE

A$="text"
B$="te."
procCHANGE

A$="delete "
B$="de."
procCHANGE

A$="if "
B$="i."
procCHANGE

A$="then "
B$="t."
procCHANGE

A$=" t."
B$="t."
procCHANGE

A$="display"
B$="di."
procCHANGE

A$="goto "
B$="g."
procCHANGE

A$="print "
B$="p."
procCHANGE

A$="print"
B$="p."
procCHANGE

A$="fkey "
B$="fk."
procCHANGE

A$="chr$ "
B$="c."
procCHANGE

A$="chr$"
B$="c."
procCHANGE

A$="vdu "
B$="v."
procCHANGE

A$="until "
B$="u."
procCHANGE

A$="false"
B$="fa."
procCHANGE

A$="find "
B$="f."
procCHANGE

A$="type "
B$="ty."
procCHANGE

A$="top"
B$="t."
procCHANGE

A$="bottom"
B$="b."
procCHANGE

A$="replace "
B$="repl."
procCHANGE

A$="segment "
B$="s."
procCHANGE

REM.. remove double line spacing
cursor top
repeat
 replace R$+R$,R$
until EOT

print
print"Any COMMAND words found in "
print"QUOTES will also be compressed."
print"You need to go through and expand these"
print"(if any), by hand."
print
print"Save working files on another disc"
print
print"- save in $.(default) directory."
print
print"Press any key to continue"
G%=get
display
END

.CHANGE
 cursor top
 repeat
 replace A$,B$
 until EOT
endproc
---------------------------------------
REM: INTEGRI by C J Waldock
REM  (c) MICRO USER 1990
REM: checks database file for integrity
REM: stops with beep if first character
REM: of a record is not ">"

select text
cursor top
cursor down 4
repeat
  S$=gct$
  cursor left
  if S$<>">" then goto END
  cursor down 9
until false

.END
vdu 7
display
end
---------------------------------------
REM "D.REGISTR"
REM BY C J Waldock
REM (C) The Micro User
REM Prints attendance register

REM NEC P2200 printer

REM send line feeds to printer
 oscli"FX6"

REM set MARGINS on printer LM5,RM96
 vdu2,1,27,1,108,1,5,1,27,1,81,1,96,3

REM set 84/360 LINE PITCH
 vdu2,1,28,1,51,1,84,3

REM set 12 CPI UNDERLINED
 vdu2,1,27,1,33,1,129,3

REM:C%:max lines THEN line cntr
 C%=0
REM L%:margin width
 L%=6
REM M%:max name length
 M%=0
REM N%:max char names THEN No.of cols
 N%=0
REM O%:lines per page - MAX 40
 O%=30
REM P%:length of name to print
 P%=0
REM Q%:number of pages
 Q%=0
REM S%:number of spaces after name
 S%=0
REM T% page ctr
 T%=0
REM D% spaces before line number
 D%=0

procWORKING
procCOUNT
procNEWPAGE

.CYCLE
 REM incr line ctr
  C%=C%+1
 procPAD
 procPR
 cursor down
  if C%modO%=0 then procNEWPAGE
  if C%=Z% then goto END
goto CYCLE

.PAD
 REM find D% - characters in number 'C'
  D%=Lenstr$C%
 REM D$=spaces to right-justify No.
  D$=""
   if D%=2 then D$=" "
   if D%=1 then D$="  "
endproc

.NEWPAGE
  cls
  vdu10,10,10
  print "PAPER READY - Y/N?"
  print
  print "A negative response ends program" 
   Z$=gck$
    if Z$="y" then Z$="Y"
    if Z$<>"Y"then goto END
REM: increment page counter T%
 T%=T%+1
 vdu2
  print "     CLUB REGISTER - page "+str$T%+"/"+str$Q%
  print
  print
  print
  print
 vdu3
endproc

.PR
 REM find next record
  find">"
 REM get name
  cursor down 2
  G$=glt$
  P$=glt$+" "+G$
 REM start printing line
  vdu2
   REM right justified line No.+ name
   print D$+str$C%+"  "+P$;
   procSPACES
   procCOLS
   REM 'print'gives CR to complete line
    print
 REM turn off printer
  vdu3
endproc

.SPACES
 REM (M%=maximum name length)
 P%=lenP$
 S%=1+M%-P%
  if S%=0 then endproc
 REM print S% spaces after name
  dothis
   print " ";
  times S%
endproc

.COLS
REM print 3-char. columns after name
 print "|";
 dothis
  print"  |";
 times N%
endproc

.WORKING
 cls
 vdu10,10,10
 print "     WORKING . . . please wait"
endproc

.COUNT
REM find max name length M%
REM find number of names C%
 select text
 cursor top
 find ">"
 cursor down 2
 dothis
  REM: increment page count
   C%=C%+1
  REM:N%=surname + forename length
   N%=lenglt$+lenglt$
   REM:M% is longest name length
    if N%>M% then M%=N%
  cursor down 7
 until EOT
  REM convert N% to cols (L% = margin)
  REM allows 3 chars per register column 
   N%=(80-L%-M%)/3
  REM Find Q%:number of pages 
  REM O% = lines per page
   Q%=(C%+O%-1)/O%
  REM Z%=max lines
   Z%=C%
  REM clear line ctr: C%
   C%=0
  cursor top
endproc

.END
display
---------------------------------------
REM.. D.ROUTINE
REM.. BY C J Waldock
REM.. (C) The Micro User
REM.. see procHELP for information

REM.. Set constant R$,carriage return
 R$=chr$ 13
REM.. Set constant N$,newline
 N$=R$+chr$ 10
REM.. Q$=prompt for input
 Q$=" ==> "
REM.. message M$
 M$=N$+"To continue PRESS ANY KEY"+Q$

REM.. see endmarkers complete
 procZZZ

REM.. get left margin to print a record
 procLM

select text
 if EOT then procHOM
 if SOT then cursor down 4
procLOC

 REM.. M1 starts main loop
.M1
  cursor at 0
  display 
 REM.. get option from keyboard
  A%=get
 REM.. change UPPERCASE to LOWERCASE
  if A%>64 and A%<91 then A%=A%+32
REM.. Rather than actual values like REM..  108 ASC"l" may be inserted
 if A%=108 then goto LN
 if A%=110 then goto NX
 if A%=98 then goto BK
 if A%=112 then goto PR
 if A%=115 then goto SCH
 if A%=114 then goto REP
 if A%=102 then goto FIN
 if A%=116 then procLOC 
 if A%=117 then goto UP
 if A%=100 then goto DEL
 if A%=99 then goto COP
 if A%=97 then goto ADD
 if A%=105 then goto INS
 if A%=101 then goto END
 if A%=104 then goto HELP
goto M1

.ZZZ
 REM.. First wipe out text at end
  select text
  cursor top
  find ">END"
  fkey 3
  cursor bottom
  fkey 3
  fkey 7
 REM.. then insert end markers required
 REM.. and lines to make .LOC work
 REM.. when at ">END"
  type">END"+R$+R$
  type "zzz"
  dothis
   type R$
  times 7
endproc

.LN
 cursor down
 cursor at 0
goto M1

.UP
 cursor at 0
 cursor up
goto M1

.LOC
 REM.. find start of next record
  cursor right
  find ">"
 REM..cursor to start of current record
  cursor up 9
endproc

.INS
  REM.. get new line of text
   cls
   v.10,10,10 
   print "Type replacement for line ";     print "- ""Q"" to abort"
   print N$+Q$;
   G$=glk$
  REM.. allow abort
   if G$="Q" or G$="q"then goto M1
  REM.. wipe out old line
   cursor at 0
   fkey 3
   cursor at 39
   fkey 3
   fkey 7
  REM.. insert new line
   type G$
   cursor right
goto M1

 REM.. jump to next record
.NX
 if SOT then cursor down 4
 if EOT=0 then cursor down 9
goto M1

 REM.. jump back a record
.BK
 cursor up 9
 if SOT then cursor down 4
goto M1

 REM.. cursor to first record
.HOM
 select text
 cursor top  
 cursor at 0
 cursor down 4
endproc

.HELP
 cls
 vdu 10
p."       MOVING through DATA"
p."       -------------------"
p."Press""L"" to move down a LINE"
p."Press""T"" to go to TOP of record"
p."Press""U"" to go UP a line"
p."Press""N"" to move to NEXT record"
p."Press""B"" to move BACK"
p."Press""S"" to SEARCH for word(s)"
p."Press""R"" to REPEAT search"
p."Press""F"" to FIND PLACE for new record"
p."       PRINTING A RECORD"
p."       -----------------"
p."Press""P"" to PRINT a name and address"
p."       MANIPULATING DATA"
p."       -----------------"
p."Press""C"" to COPY record"
p."Press""D"" to DELETE record"
p."Press""A"" to ADD record"
p."Press""I"" to INSERT line change"
p."       LEAVING ROUTINE"
p."       ---------------"
p."Press""E"" TO END operation"
 print M$
 G%=get
goto M1

 REM.. finds place for new record
.FIN
 cls
 vdu 10,10,10
 print "Enter SURNAME to insert"
 pr. "(Only initial letter as Capital)"
 print Q$;
 S$=glk$
 REM.. the "seek" process
  procHOM 
  cursor down 2
  repeat  
    if S$<=glt$ then goto F1
   cursor down 8
  until false 
 .F1
  cursor up 3
 REM.. set X%, flag to be used by .ADD
  X%=1
goto M1

 REM.. copy a record
.COP
 procLOC
 REM.. mark record to copy
  fkey 3
  cursor down 9
  cursor at 0
  fkey 3
 REM.. now use fkey to copy marked text
  fkey 9
  delete markers
  cursor at 0
goto M1

 REM.. search for text string S$
.SCH
 procHOM
 cls
 vdu 10,10,10
 print "ENTER character(s) to find"
 print "(CARE with capitals)"
 print
 print Q$;
 S$=glk$
 find S$
  if EOT then goto NOTFD
goto M1 

 REM.. repeat a search for text
.REP
 cursor down 9
 find S$
  if EOT then goto NOTFD
goto M1

 REM: advise when search reaches EOT
.NOTFD
 cls
 vdu 10,10,10,7
 pr. "I couldn't find the text sought"
 print M$
 G%=get
 procHOM
goto M1

 REM.. print individual record
.PR
 procLOC
 cursor down 3
 REM.. printer on
  vdu 2
   print L$+glt$+" ";
   cursor up 2
   print glt$
   cursor down
   dothis
    G$=glt$
     if G$<>"" then print L$+G$
   times 3
   print
   print
  REM.. printer off
  vdu 3
  cursor down 2
goto M1

 REM: create left margin string: L$
.LM
 L$=""
 cls
 vdu 10,10,10 
 print "Enter LEFT MARGIN width"
 print "Press E and SHIFT-f9 to reset"
 print
 print Q$;
 O$=glk$
  if VALO$=0 then endproc
 dothis
  L$=L$+" "
 times valO$
 REM.. enable carriage retns on printer
  oscli"FX6"
endproc

 REM.. prompts for and accepts data
 REM.. for each record field (line)
.ADD
 cls
 print N$+N$+"Code(s)"+Q$;
  A$=">"+glk$+R$
 print N$+"Date of Birth"
 pr. "(If a JUNIOR use form YR.MO.DA)"
 print "(If an ADULT enter 99)"
 print Q$;
  B$=glk$+R$
 print N$+"Surname"+Q$;
 REM.. flag X% uses surname from .FIN
  if X%=1 then C$=S$+R$
  if X%=1 then print C$
  if X%=0 then C$=glk$+R$
 print N$+"Title and forename"+Q$;
  D$=glk$+R$
 print N$+"Address Line 1"+Q$;
  E$=glk$+R$
 print N$+"Address Line 2"+Q$;
  G$=glk$+R$
 print N$+"TOWN"+Q$;
  H$=glk$+R$
 print N$+"Phone, Notes"+Q$;
  J$=glk$+R$
 procLOC
 type A$+B$+C$+D$+E$+G$+H$+J$+R$
 REM.. cancel flag X%
  X%=0
goto M1

.DEL
 cls
 vdu 10,10,10,7
 print "DELETES RECORD - ARE YOU SURE";
 print " Y/N?"
 print
 print Q$;
 Z$=gck$
  if Z$="y" then Z$="Y"
  if Z$<>"Y" then goto M1
 procLOC
 REM.. first mark entire record
  cursor up
  fkey 3
  cursor down 9
  fkey 3
 REM.. fkey deletes marked text
  fkey 7
  cursor down
goto M1

.END 
 vdu 7
 display
---------------------------------------
REM.. D.SELLIST  
REM.. BY C J Waldock
REM.. (C) The Micro User
REM.. Selectively lists
REM..  fields from records
REM..  of a file placed in TEXT.

 procINIT

.correct
 procCHOOSE
 procCHECK
  if X$<>"Y" then goto correct

repeat
 procSELECT
until false


.INIT
 REM.. ensure records present
  select text
   if SOT AND EOT then procEMPTY
 REM.. see if file to be saved first
  cls
  vdu10,10,10,7
  pr. "RECORDS in text will be DELETED"
  print "   as the program works"
  pr. "Do you want to save them first";
  print ": Y/N? ";
  Y$=gck$
   if Y$="y"then Y$="Y"
  print Y$
   if Y$="Y" then goto ABORT
 REM.. set constants, carriage return
  R$=chr$13
 REM..   and comma+space
  K$=", "
 REM.. reset number of optional lines
  L%=0
 REM.. wipe segment 1
  select segment 1
  delete text
 REM.. return to text
  select text
  cursor top
  cursor down 4
endproc

.EMPTY
 cls
 vdu10,10,10,7
 print "     There is no data in TEXT"
 print
 print "    for the program to work on"
 print
 print "    press key to RETURN to Text"
 G%=get
 di.
end

.ABORT
 select text
 vdu10,10,10,7
 p."press key then save data in text"
 G%=get
 display
END

 REM.. user selects fields to be listed
.CHOOSE
 REM.. reset flags F%
  F%=0
 REM.. I% will set flags
  I%=1
 REM.. get print instructions
  cls
  vdu10,10,10
  print "Print Codeline - Y/N? ";
  procSETFLAG
  print "Print Date of birth - Y/N? ";
  procSETFLAG
  print "Print Address Line 1 - Y/N? ";
  procSETFLAG
  print "Print Address Line 2 - Y/N? ";
  procSETFLAG
  print "Print Town? - Y/N? ";
  procSETFLAG
  print "Print Phone number - Y/N? ";
  procSETFLAG
endproc

.SETFLAG
 REM.. get Y/N response
  X$=gck$
  if X$="y" then X$="Y"
  print X$
  print
 REM.. set flag for record line (field)
  if X$="Y" then F%=F% OR I%
 REM.. add to number of optional lines
  if X$="Y" then L%=L%+1
 REM.. I% is 1, 2, 4, 8, 16, 32 in turn
  I%=I%*2
endproc

.CHECK
 print
 print"Are the above choices ";
 print"correct - Y/N? ";
 X$=gck$
 if X$="y" then X$="Y"
 print X$
endproc

 REM.. proc selects fields as chosen
 REM.. and adds to list in segment 1
.SELECT
  select text
 REM.. Reset print string P$ which is
 REM..  to be built up 
 REM..  from fields to be listed.
  P$=""
 REM.. Reset counter of fields
 REM..  added to P$.
  M%=0
 REM.. set opening marker for delete
  fkey 3
 REM.. read first four lines (fields)
  A$=glt$
   if A$=">END" then goto END
  B$=GLT$
   if B$="99" then B$="Adult"
  C$=glt$
  D$=glt$

 REM.. start print string P$ with name
  P$=P$+D$+" "+C$+K$

 REM.. fields must be passed to
 REM.. BUILDSTRING as E$

 REM.. code field
  E$=A$
  if (F% AND 1)=1 then procBUILDSTRING

REM.. read next four fields in turn
REM.. and add to P$ if flag set

 REM.. date_of_birth field
 REM.. can be moved to precede name.
  E$=B$
  if (F% AND 2)=2 then procBUILDSTRING

 REM.. address line 1
  E$=glt$
  if (F% AND 4)=4 then procBUILDSTRING

 REM.. address line 2
  E$=glt$
  if (F% AND 8)=8 then procBUILDSTRING

 REM.. town
  E$=glt$
  if (F% AND 16)=16 then procBUILDSTRING
 REM.. phone number
  E$=glt$
  if (F% AND 32)=32 then procBUILDSTRING
 REM.. complete P$ with carriage return
  P$=P$+R$

 REM.. step over last line of record
  cursor down

 REM.. Set closing marker
  fkey 3
 REM..   and delete record just read.
  fkey 7

 REM.. add P$ to segment 1
  select segment 1
  type P$
  display
endproc

.BUILDSTRING
  P$=P$+E$
  REM.. increment counter, fields added
   M%=M%+1
  REM.. if less than limit add K$
   if M%<L% and E$<>"" then P$=P$+K$
endproc

.END
 select text
 delete text
 select segment 1
 vdu7
 display
END
---------------------------------------
REM.. D.STATS
REM.. BY C J Waldock
REM.. (C) The Micro User
REM.. analyzes adults and juniors
REM.. analyzes paid and unpaid

REM A%=all members
 A%=0
REM B%=adults paid
 B%=0
REM C%=adults unpaid
 C%=0
REM D%=juniors paid
 D%=0
REM E%=juniors unpaid
 E%=0

cls
vdu10,10,10
print"     WORKING . . . please wait"

select text
cursor top
repeat
 find ">"
 cursor right
 REM.. get code character
 REM.. for paid (*) or unpaid(/)
  C$=gct$
 REM.. go to start of next line
  G$=glt$
 REM.. get year value (birthdate)
  T%=VALglt$
 REM.. add to appropriate count
   if C$<>"E" then A%=A%+1
   if T%=99 and C$="*"then B%=B%+1
   if T%=99 and C$="/" then C%=C%+1 
   if T%<>99 and C$="*"then D%=D%+1
   if T%<>99 and C$="/" then E%=E%+1 
until EOT

cls
vdu10,10,10
print "    ADULTS paid:   ";
G$=str$B%
procRJ
print "    JUNIORS paid:  ";
G$=str$D%
procRJ
print "    ADULTS unpaid: ";
G$=str$C%
procRJ
print "    JUNIORS unpaid:";
G$=str$E%
procRJ
print"    All members:   ";
G$=str$A%
procRJ
print
print"Press any key to continue"
G$=gck$
di.
end

.RJ
 REM.. right-justifies string G$
 G%=5-lenG$
 dothis
  print" ";
 timesG%
 printG$
endproc
---------------------------------------
00000000  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000020  2d 2d 2d 2d 2d 2d 0d 52  45 4d 2e 2e 20 43 4f 4d  |------.REM.. COM|
00000030  50 52 45 53 0d 52 45 4d  2e 2e 20 42 59 20 43 20  |PRES.REM.. BY C |
00000040  4a 20 57 61 6c 64 6f 63  6b 0d 52 45 4d 2e 2e 20  |J Waldock.REM.. |
00000050  28 43 29 20 54 68 65 20  4d 69 63 72 6f 20 55 73  |(C) The Micro Us|
00000060  65 72 0d 52 45 4d 2e 2e  20 43 6f 6d 70 72 65 73  |er.REM.. Compres|
00000070  73 65 73 20 73 65 67 6d  65 6e 74 20 63 6f 6d 6d  |ses segment comm|
00000080  61 6e 64 73 0d 52 45 4d  2e 2e 20 20 61 6e 64 20  |ands.REM..  and |
00000090  73 74 72 69 70 73 20 6f  75 74 20 52 45 4d 53 2e  |strips out REMS.|
000000a0  0d 52 45 4d 2e 2e 20 50  75 74 20 73 65 67 6d 65  |.REM.. Put segme|
000000b0  6e 74 20 70 72 6f 67 72  61 6d 20 69 6e 20 54 45  |nt program in TE|
000000c0  58 54 2e 0d 52 45 4d 2e  2e 20 53 61 76 65 20 72  |XT..REM.. Save r|
000000d0  65 73 75 6c 74 20 6f 6e  20 41 4e 4f 54 48 45 52  |esult on ANOTHER|
000000e0  20 64 69 73 63 0d 52 45  4d 2e 2e 20 20 69 6e 20  | disc.REM..  in |
000000f0  24 20 64 69 72 65 63 74  6f 72 79 2e 0d 0d 52 45  |$ directory...RE|
00000100  4d 2e 2e 20 73 65 74 20  63 6f 6e 73 74 61 6e 74  |M.. set constant|
00000110  20 63 61 72 72 69 61 67  65 20 72 65 74 75 72 6e  | carriage return|
00000120  0d 20 52 24 3d 63 68 72  24 31 33 0d 0d 52 45 4d  |. R$=chr$13..REM|
00000130  2e 2e 20 54 45 58 54 20  6d 61 79 20 62 65 20 63  |.. TEXT may be c|
00000140  68 61 6e 67 65 64 20 74  6f 20 53 45 47 4d 45 4e  |hanged to SEGMEN|
00000150  54 0d 20 73 65 6c 65 63  74 20 74 65 78 74 0d 20  |T. select text. |
00000160  63 75 72 73 6f 72 20 64  6f 77 6e 20 34 0d 0d 63  |cursor down 4..c|
00000170  6c 73 0d 76 64 75 31 30  2c 31 30 2c 31 30 0d 70  |ls.vdu10,10,10.p|
00000180  72 69 6e 74 22 20 20 20  20 20 57 6f 72 6b 69 6e  |rint"     Workin|
00000190  67 20 2e 20 2e 20 2e 20  70 6c 65 61 73 65 20 77  |g . . . please w|
000001a0  61 69 74 22 0d 0d 52 45  4d 2e 2e 20 73 74 72 69  |ait"..REM.. stri|
000001b0  70 20 52 45 4d 73 0d 72  65 70 65 61 74 0d 20 66  |p REMs.repeat. f|
000001c0  69 6e 64 20 22 52 45 4d  23 23 22 0d 20 63 75 72  |ind "REM##". cur|
000001d0  73 6f 72 20 61 74 20 30  0d 20 66 6b 65 79 20 33  |sor at 0. fkey 3|
000001e0  0d 20 66 69 6e 64 20 52  24 0d 20 63 75 72 73 6f  |. find R$. curso|
000001f0  72 20 72 69 67 68 74 0d  20 66 6b 65 79 20 33 0d  |r right. fkey 3.|
00000200  20 66 6b 65 79 20 37 0d  75 6e 74 69 6c 20 45 4f  | fkey 7.until EO|
00000210  54 0d 0d 52 45 4d 2e 2e  20 4e 6f 77 20 63 6f 6e  |T..REM.. Now con|
00000220  76 65 72 74 20 63 6f 6d  6d 6f 6e 20 63 6f 6d 6d  |vert common comm|
00000230  61 6e 64 73 0d 52 45 4d  2e 2e 20 74 6f 20 74 68  |ands.REM.. to th|
00000240  65 69 72 20 6d 69 6e 69  6d 75 6d 20 66 6f 72 6d  |eir minimum form|
00000250  0d 0d 41 24 3d 22 72 65  70 65 61 74 22 0d 42 24  |..A$="repeat".B$|
00000260  3d 22 72 2e 22 0d 70 72  6f 63 43 48 41 4e 47 45  |="r.".procCHANGE|
00000270  0d 0d 41 24 3d 22 64 6f  74 68 69 73 22 0d 42 24  |..A$="dothis".B$|
00000280  3d 22 64 2e 22 0d 70 72  6f 63 43 48 41 4e 47 45  |="d.".procCHANGE|
00000290  0d 0d 41 24 3d 22 74 69  6d 65 73 20 22 0d 42 24  |..A$="times ".B$|
000002a0  3d 22 74 2e 22 0d 70 72  6f 63 43 48 41 4e 47 45  |="t.".procCHANGE|
000002b0  0d 0d 41 24 3d 22 65 6e  64 70 72 6f 63 22 0d 42  |..A$="endproc".B|
000002c0  24 3d 22 65 2e 22 0d 70  72 6f 63 43 48 41 4e 47  |$="e.".procCHANG|
000002d0  45 0d 0d 41 24 3d 22 63  75 72 73 6f 72 20 22 0d  |E..A$="cursor ".|
000002e0  42 24 3d 22 63 2e 22 0d  70 72 6f 63 43 48 41 4e  |B$="c.".procCHAN|
000002f0  47 45 0d 0d 41 24 3d 22  64 65 6c 65 74 65 20 22  |GE..A$="delete "|
00000300  0d 42 24 3d 22 64 65 2e  22 0d 70 72 6f 63 43 48  |.B$="de.".procCH|
00000310  41 4e 47 45 0d 0d 41 24  3d 22 61 74 20 22 0d 42  |ANGE..A$="at ".B|
00000320  24 3d 22 61 2e 22 0d 70  72 6f 63 43 48 41 4e 47  |$="a.".procCHANG|
00000330  45 0d 0d 41 24 3d 22 6c  65 66 74 20 22 0d 42 24  |E..A$="left ".B$|
00000340  3d 22 6c 2e 22 0d 70 72  6f 63 43 48 41 4e 47 45  |="l.".procCHANGE|
00000350  0d 0d 41 24 3d 22 6c 65  66 74 22 0d 42 24 3d 22  |..A$="left".B$="|
00000360  6c 2e 22 0d 70 72 6f 63  43 48 41 4e 47 45 0d 0d  |l.".procCHANGE..|
00000370  41 24 3d 22 72 69 67 68  74 20 22 0d 42 24 3d 22  |A$="right ".B$="|
00000380  72 2e 22 0d 70 72 6f 63  43 48 41 4e 47 45 0d 0d  |r.".procCHANGE..|
00000390  41 24 3d 22 72 69 67 68  74 22 0d 42 24 3d 22 72  |A$="right".B$="r|
000003a0  2e 22 0d 70 72 6f 63 43  48 41 4e 47 45 0d 0d 41  |.".procCHANGE..A|
000003b0  24 3d 22 75 70 20 22 0d  42 24 3d 22 75 2e 22 0d  |$="up ".B$="u.".|
000003c0  70 72 6f 63 43 48 41 4e  47 45 0d 0d 41 24 3d 22  |procCHANGE..A$="|
000003d0  75 70 22 0d 42 24 3d 22  75 2e 22 0d 70 72 6f 63  |up".B$="u.".proc|
000003e0  43 48 41 4e 47 45 0d 0d  41 24 3d 22 64 6f 77 6e  |CHANGE..A$="down|
000003f0  20 22 0d 42 24 3d 22 64  2e 22 0d 70 72 6f 63 43  | ".B$="d.".procC|
00000400  48 41 4e 47 45 0d 0d 41  24 3d 22 64 6f 77 6e 22  |HANGE..A$="down"|
00000410  0d 42 24 3d 22 64 2e 22  0d 70 72 6f 63 43 48 41  |.B$="d.".procCHA|
00000420  4e 47 45 0d 0d 41 24 3d  22 73 65 6c 65 63 74 20  |NGE..A$="select |
00000430  22 0d 42 24 3d 22 73 2e  22 0d 70 72 6f 63 43 48  |".B$="s.".procCH|
00000440  41 4e 47 45 0d 0d 41 24  3d 22 74 65 78 74 22 0d  |ANGE..A$="text".|
00000450  42 24 3d 22 74 65 2e 22  0d 70 72 6f 63 43 48 41  |B$="te.".procCHA|
00000460  4e 47 45 0d 0d 41 24 3d  22 64 65 6c 65 74 65 20  |NGE..A$="delete |
00000470  22 0d 42 24 3d 22 64 65  2e 22 0d 70 72 6f 63 43  |".B$="de.".procC|
00000480  48 41 4e 47 45 0d 0d 41  24 3d 22 69 66 20 22 0d  |HANGE..A$="if ".|
00000490  42 24 3d 22 69 2e 22 0d  70 72 6f 63 43 48 41 4e  |B$="i.".procCHAN|
000004a0  47 45 0d 0d 41 24 3d 22  74 68 65 6e 20 22 0d 42  |GE..A$="then ".B|
000004b0  24 3d 22 74 2e 22 0d 70  72 6f 63 43 48 41 4e 47  |$="t.".procCHANG|
000004c0  45 0d 0d 41 24 3d 22 20  74 2e 22 0d 42 24 3d 22  |E..A$=" t.".B$="|
000004d0  74 2e 22 0d 70 72 6f 63  43 48 41 4e 47 45 0d 0d  |t.".procCHANGE..|
000004e0  41 24 3d 22 64 69 73 70  6c 61 79 22 0d 42 24 3d  |A$="display".B$=|
000004f0  22 64 69 2e 22 0d 70 72  6f 63 43 48 41 4e 47 45  |"di.".procCHANGE|
00000500  0d 0d 41 24 3d 22 67 6f  74 6f 20 22 0d 42 24 3d  |..A$="goto ".B$=|
00000510  22 67 2e 22 0d 70 72 6f  63 43 48 41 4e 47 45 0d  |"g.".procCHANGE.|
00000520  0d 41 24 3d 22 70 72 69  6e 74 20 22 0d 42 24 3d  |.A$="print ".B$=|
00000530  22 70 2e 22 0d 70 72 6f  63 43 48 41 4e 47 45 0d  |"p.".procCHANGE.|
00000540  0d 41 24 3d 22 70 72 69  6e 74 22 0d 42 24 3d 22  |.A$="print".B$="|
00000550  70 2e 22 0d 70 72 6f 63  43 48 41 4e 47 45 0d 0d  |p.".procCHANGE..|
00000560  41 24 3d 22 66 6b 65 79  20 22 0d 42 24 3d 22 66  |A$="fkey ".B$="f|
00000570  6b 2e 22 0d 70 72 6f 63  43 48 41 4e 47 45 0d 0d  |k.".procCHANGE..|
00000580  41 24 3d 22 63 68 72 24  20 22 0d 42 24 3d 22 63  |A$="chr$ ".B$="c|
00000590  2e 22 0d 70 72 6f 63 43  48 41 4e 47 45 0d 0d 41  |.".procCHANGE..A|
000005a0  24 3d 22 63 68 72 24 22  0d 42 24 3d 22 63 2e 22  |$="chr$".B$="c."|
000005b0  0d 70 72 6f 63 43 48 41  4e 47 45 0d 0d 41 24 3d  |.procCHANGE..A$=|
000005c0  22 76 64 75 20 22 0d 42  24 3d 22 76 2e 22 0d 70  |"vdu ".B$="v.".p|
000005d0  72 6f 63 43 48 41 4e 47  45 0d 0d 41 24 3d 22 75  |rocCHANGE..A$="u|
000005e0  6e 74 69 6c 20 22 0d 42  24 3d 22 75 2e 22 0d 70  |ntil ".B$="u.".p|
000005f0  72 6f 63 43 48 41 4e 47  45 0d 0d 41 24 3d 22 66  |rocCHANGE..A$="f|
00000600  61 6c 73 65 22 0d 42 24  3d 22 66 61 2e 22 0d 70  |alse".B$="fa.".p|
00000610  72 6f 63 43 48 41 4e 47  45 0d 0d 41 24 3d 22 66  |rocCHANGE..A$="f|
00000620  69 6e 64 20 22 0d 42 24  3d 22 66 2e 22 0d 70 72  |ind ".B$="f.".pr|
00000630  6f 63 43 48 41 4e 47 45  0d 0d 41 24 3d 22 74 79  |ocCHANGE..A$="ty|
00000640  70 65 20 22 0d 42 24 3d  22 74 79 2e 22 0d 70 72  |pe ".B$="ty.".pr|
00000650  6f 63 43 48 41 4e 47 45  0d 0d 41 24 3d 22 74 6f  |ocCHANGE..A$="to|
00000660  70 22 0d 42 24 3d 22 74  2e 22 0d 70 72 6f 63 43  |p".B$="t.".procC|
00000670  48 41 4e 47 45 0d 0d 41  24 3d 22 62 6f 74 74 6f  |HANGE..A$="botto|
00000680  6d 22 0d 42 24 3d 22 62  2e 22 0d 70 72 6f 63 43  |m".B$="b.".procC|
00000690  48 41 4e 47 45 0d 0d 41  24 3d 22 72 65 70 6c 61  |HANGE..A$="repla|
000006a0  63 65 20 22 0d 42 24 3d  22 72 65 70 6c 2e 22 0d  |ce ".B$="repl.".|
000006b0  70 72 6f 63 43 48 41 4e  47 45 0d 0d 41 24 3d 22  |procCHANGE..A$="|
000006c0  73 65 67 6d 65 6e 74 20  22 0d 42 24 3d 22 73 2e  |segment ".B$="s.|
000006d0  22 0d 70 72 6f 63 43 48  41 4e 47 45 0d 0d 52 45  |".procCHANGE..RE|
000006e0  4d 2e 2e 20 72 65 6d 6f  76 65 20 64 6f 75 62 6c  |M.. remove doubl|
000006f0  65 20 6c 69 6e 65 20 73  70 61 63 69 6e 67 0d 63  |e line spacing.c|
00000700  75 72 73 6f 72 20 74 6f  70 0d 72 65 70 65 61 74  |ursor top.repeat|
00000710  0d 20 72 65 70 6c 61 63  65 20 52 24 2b 52 24 2c  |. replace R$+R$,|
00000720  52 24 0d 75 6e 74 69 6c  20 45 4f 54 0d 0d 70 72  |R$.until EOT..pr|
00000730  69 6e 74 0d 70 72 69 6e  74 22 41 6e 79 20 43 4f  |int.print"Any CO|
00000740  4d 4d 41 4e 44 20 77 6f  72 64 73 20 66 6f 75 6e  |MMAND words foun|
00000750  64 20 69 6e 20 22 0d 70  72 69 6e 74 22 51 55 4f  |d in ".print"QUO|
00000760  54 45 53 20 77 69 6c 6c  20 61 6c 73 6f 20 62 65  |TES will also be|
00000770  20 63 6f 6d 70 72 65 73  73 65 64 2e 22 0d 70 72  | compressed.".pr|
00000780  69 6e 74 22 59 6f 75 20  6e 65 65 64 20 74 6f 20  |int"You need to |
00000790  67 6f 20 74 68 72 6f 75  67 68 20 61 6e 64 20 65  |go through and e|
000007a0  78 70 61 6e 64 20 74 68  65 73 65 22 0d 70 72 69  |xpand these".pri|
000007b0  6e 74 22 28 69 66 20 61  6e 79 29 2c 20 62 79 20  |nt"(if any), by |
000007c0  68 61 6e 64 2e 22 0d 70  72 69 6e 74 0d 70 72 69  |hand.".print.pri|
000007d0  6e 74 22 53 61 76 65 20  77 6f 72 6b 69 6e 67 20  |nt"Save working |
000007e0  66 69 6c 65 73 20 6f 6e  20 61 6e 6f 74 68 65 72  |files on another|
000007f0  20 64 69 73 63 22 0d 70  72 69 6e 74 0d 70 72 69  | disc".print.pri|
00000800  6e 74 22 2d 20 73 61 76  65 20 69 6e 20 24 2e 28  |nt"- save in $.(|
00000810  64 65 66 61 75 6c 74 29  20 64 69 72 65 63 74 6f  |default) directo|
00000820  72 79 2e 22 0d 70 72 69  6e 74 0d 70 72 69 6e 74  |ry.".print.print|
00000830  22 50 72 65 73 73 20 61  6e 79 20 6b 65 79 20 74  |"Press any key t|
00000840  6f 20 63 6f 6e 74 69 6e  75 65 22 0d 47 25 3d 67  |o continue".G%=g|
00000850  65 74 0d 64 69 73 70 6c  61 79 0d 45 4e 44 0d 0d  |et.display.END..|
00000860  2e 43 48 41 4e 47 45 0d  20 63 75 72 73 6f 72 20  |.CHANGE. cursor |
00000870  74 6f 70 0d 20 72 65 70  65 61 74 0d 20 72 65 70  |top. repeat. rep|
00000880  6c 61 63 65 20 41 24 2c  42 24 0d 20 75 6e 74 69  |lace A$,B$. unti|
00000890  6c 20 45 4f 54 0d 65 6e  64 70 72 6f 63 0d 2d 2d  |l EOT.endproc.--|
000008a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000008c0  2d 2d 2d 2d 2d 0d 52 45  4d 3a 20 49 4e 54 45 47  |-----.REM: INTEG|
000008d0  52 49 20 62 79 20 43 20  4a 20 57 61 6c 64 6f 63  |RI by C J Waldoc|
000008e0  6b 0d 52 45 4d 20 20 28  63 29 20 4d 49 43 52 4f  |k.REM  (c) MICRO|
000008f0  20 55 53 45 52 20 31 39  39 30 0d 52 45 4d 3a 20  | USER 1990.REM: |
00000900  63 68 65 63 6b 73 20 64  61 74 61 62 61 73 65 20  |checks database |
00000910  66 69 6c 65 20 66 6f 72  20 69 6e 74 65 67 72 69  |file for integri|
00000920  74 79 0d 52 45 4d 3a 20  73 74 6f 70 73 20 77 69  |ty.REM: stops wi|
00000930  74 68 20 62 65 65 70 20  69 66 20 66 69 72 73 74  |th beep if first|
00000940  20 63 68 61 72 61 63 74  65 72 0d 52 45 4d 3a 20  | character.REM: |
00000950  6f 66 20 61 20 72 65 63  6f 72 64 20 69 73 20 6e  |of a record is n|
00000960  6f 74 20 22 3e 22 0d 0d  73 65 6c 65 63 74 20 74  |ot ">"..select t|
00000970  65 78 74 0d 63 75 72 73  6f 72 20 74 6f 70 0d 63  |ext.cursor top.c|
00000980  75 72 73 6f 72 20 64 6f  77 6e 20 34 0d 72 65 70  |ursor down 4.rep|
00000990  65 61 74 0d 20 20 53 24  3d 67 63 74 24 0d 20 20  |eat.  S$=gct$.  |
000009a0  63 75 72 73 6f 72 20 6c  65 66 74 0d 20 20 69 66  |cursor left.  if|
000009b0  20 53 24 3c 3e 22 3e 22  20 74 68 65 6e 20 67 6f  | S$<>">" then go|
000009c0  74 6f 20 45 4e 44 0d 20  20 63 75 72 73 6f 72 20  |to END.  cursor |
000009d0  64 6f 77 6e 20 39 0d 75  6e 74 69 6c 20 66 61 6c  |down 9.until fal|
000009e0  73 65 0d 0d 2e 45 4e 44  0d 76 64 75 20 37 0d 64  |se...END.vdu 7.d|
000009f0  69 73 70 6c 61 79 0d 65  6e 64 0d 2d 2d 2d 2d 2d  |isplay.end.-----|
00000a00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000a20  2d 2d 0d 52 45 4d 20 22  44 2e 52 45 47 49 53 54  |--.REM "D.REGIST|
00000a30  52 22 0d 52 45 4d 20 42  59 20 43 20 4a 20 57 61  |R".REM BY C J Wa|
00000a40  6c 64 6f 63 6b 0d 52 45  4d 20 28 43 29 20 54 68  |ldock.REM (C) Th|
00000a50  65 20 4d 69 63 72 6f 20  55 73 65 72 0d 52 45 4d  |e Micro User.REM|
00000a60  20 50 72 69 6e 74 73 20  61 74 74 65 6e 64 61 6e  | Prints attendan|
00000a70  63 65 20 72 65 67 69 73  74 65 72 0d 0d 52 45 4d  |ce register..REM|
00000a80  20 4e 45 43 20 50 32 32  30 30 20 70 72 69 6e 74  | NEC P2200 print|
00000a90  65 72 0d 0d 52 45 4d 20  73 65 6e 64 20 6c 69 6e  |er..REM send lin|
00000aa0  65 20 66 65 65 64 73 20  74 6f 20 70 72 69 6e 74  |e feeds to print|
00000ab0  65 72 0d 20 6f 73 63 6c  69 22 46 58 36 22 0d 0d  |er. oscli"FX6"..|
00000ac0  52 45 4d 20 73 65 74 20  4d 41 52 47 49 4e 53 20  |REM set MARGINS |
00000ad0  6f 6e 20 70 72 69 6e 74  65 72 20 4c 4d 35 2c 52  |on printer LM5,R|
00000ae0  4d 39 36 0d 20 76 64 75  32 2c 31 2c 32 37 2c 31  |M96. vdu2,1,27,1|
00000af0  2c 31 30 38 2c 31 2c 35  2c 31 2c 32 37 2c 31 2c  |,108,1,5,1,27,1,|
00000b00  38 31 2c 31 2c 39 36 2c  33 0d 0d 52 45 4d 20 73  |81,1,96,3..REM s|
00000b10  65 74 20 38 34 2f 33 36  30 20 4c 49 4e 45 20 50  |et 84/360 LINE P|
00000b20  49 54 43 48 0d 20 76 64  75 32 2c 31 2c 32 38 2c  |ITCH. vdu2,1,28,|
00000b30  31 2c 35 31 2c 31 2c 38  34 2c 33 0d 0d 52 45 4d  |1,51,1,84,3..REM|
00000b40  20 73 65 74 20 31 32 20  43 50 49 20 55 4e 44 45  | set 12 CPI UNDE|
00000b50  52 4c 49 4e 45 44 0d 20  76 64 75 32 2c 31 2c 32  |RLINED. vdu2,1,2|
00000b60  37 2c 31 2c 33 33 2c 31  2c 31 32 39 2c 33 0d 0d  |7,1,33,1,129,3..|
00000b70  52 45 4d 3a 43 25 3a 6d  61 78 20 6c 69 6e 65 73  |REM:C%:max lines|
00000b80  20 54 48 45 4e 20 6c 69  6e 65 20 63 6e 74 72 0d  | THEN line cntr.|
00000b90  20 43 25 3d 30 0d 52 45  4d 20 4c 25 3a 6d 61 72  | C%=0.REM L%:mar|
00000ba0  67 69 6e 20 77 69 64 74  68 0d 20 4c 25 3d 36 0d  |gin width. L%=6.|
00000bb0  52 45 4d 20 4d 25 3a 6d  61 78 20 6e 61 6d 65 20  |REM M%:max name |
00000bc0  6c 65 6e 67 74 68 0d 20  4d 25 3d 30 0d 52 45 4d  |length. M%=0.REM|
00000bd0  20 4e 25 3a 6d 61 78 20  63 68 61 72 20 6e 61 6d  | N%:max char nam|
00000be0  65 73 20 54 48 45 4e 20  4e 6f 2e 6f 66 20 63 6f  |es THEN No.of co|
00000bf0  6c 73 0d 20 4e 25 3d 30  0d 52 45 4d 20 4f 25 3a  |ls. N%=0.REM O%:|
00000c00  6c 69 6e 65 73 20 70 65  72 20 70 61 67 65 20 2d  |lines per page -|
00000c10  20 4d 41 58 20 34 30 0d  20 4f 25 3d 33 30 0d 52  | MAX 40. O%=30.R|
00000c20  45 4d 20 50 25 3a 6c 65  6e 67 74 68 20 6f 66 20  |EM P%:length of |
00000c30  6e 61 6d 65 20 74 6f 20  70 72 69 6e 74 0d 20 50  |name to print. P|
00000c40  25 3d 30 0d 52 45 4d 20  51 25 3a 6e 75 6d 62 65  |%=0.REM Q%:numbe|
00000c50  72 20 6f 66 20 70 61 67  65 73 0d 20 51 25 3d 30  |r of pages. Q%=0|
00000c60  0d 52 45 4d 20 53 25 3a  6e 75 6d 62 65 72 20 6f  |.REM S%:number o|
00000c70  66 20 73 70 61 63 65 73  20 61 66 74 65 72 20 6e  |f spaces after n|
00000c80  61 6d 65 0d 20 53 25 3d  30 0d 52 45 4d 20 54 25  |ame. S%=0.REM T%|
00000c90  20 70 61 67 65 20 63 74  72 0d 20 54 25 3d 30 0d  | page ctr. T%=0.|
00000ca0  52 45 4d 20 44 25 20 73  70 61 63 65 73 20 62 65  |REM D% spaces be|
00000cb0  66 6f 72 65 20 6c 69 6e  65 20 6e 75 6d 62 65 72  |fore line number|
00000cc0  0d 20 44 25 3d 30 0d 0d  70 72 6f 63 57 4f 52 4b  |. D%=0..procWORK|
00000cd0  49 4e 47 0d 70 72 6f 63  43 4f 55 4e 54 0d 70 72  |ING.procCOUNT.pr|
00000ce0  6f 63 4e 45 57 50 41 47  45 0d 0d 2e 43 59 43 4c  |ocNEWPAGE...CYCL|
00000cf0  45 0d 20 52 45 4d 20 69  6e 63 72 20 6c 69 6e 65  |E. REM incr line|
00000d00  20 63 74 72 0d 20 20 43  25 3d 43 25 2b 31 0d 20  | ctr.  C%=C%+1. |
00000d10  70 72 6f 63 50 41 44 0d  20 70 72 6f 63 50 52 0d  |procPAD. procPR.|
00000d20  20 63 75 72 73 6f 72 20  64 6f 77 6e 0d 20 20 69  | cursor down.  i|
00000d30  66 20 43 25 6d 6f 64 4f  25 3d 30 20 74 68 65 6e  |f C%modO%=0 then|
00000d40  20 70 72 6f 63 4e 45 57  50 41 47 45 0d 20 20 69  | procNEWPAGE.  i|
00000d50  66 20 43 25 3d 5a 25 20  74 68 65 6e 20 67 6f 74  |f C%=Z% then got|
00000d60  6f 20 45 4e 44 0d 67 6f  74 6f 20 43 59 43 4c 45  |o END.goto CYCLE|
00000d70  0d 0d 2e 50 41 44 0d 20  52 45 4d 20 66 69 6e 64  |...PAD. REM find|
00000d80  20 44 25 20 2d 20 63 68  61 72 61 63 74 65 72 73  | D% - characters|
00000d90  20 69 6e 20 6e 75 6d 62  65 72 20 27 43 27 0d 20  | in number 'C'. |
00000da0  20 44 25 3d 4c 65 6e 73  74 72 24 43 25 0d 20 52  | D%=Lenstr$C%. R|
00000db0  45 4d 20 44 24 3d 73 70  61 63 65 73 20 74 6f 20  |EM D$=spaces to |
00000dc0  72 69 67 68 74 2d 6a 75  73 74 69 66 79 20 4e 6f  |right-justify No|
00000dd0  2e 0d 20 20 44 24 3d 22  22 0d 20 20 20 69 66 20  |..  D$="".   if |
00000de0  44 25 3d 32 20 74 68 65  6e 20 44 24 3d 22 20 22  |D%=2 then D$=" "|
00000df0  0d 20 20 20 69 66 20 44  25 3d 31 20 74 68 65 6e  |.   if D%=1 then|
00000e00  20 44 24 3d 22 20 20 22  0d 65 6e 64 70 72 6f 63  | D$="  ".endproc|
00000e10  0d 0d 2e 4e 45 57 50 41  47 45 0d 20 20 63 6c 73  |...NEWPAGE.  cls|
00000e20  0d 20 20 76 64 75 31 30  2c 31 30 2c 31 30 0d 20  |.  vdu10,10,10. |
00000e30  20 70 72 69 6e 74 20 22  50 41 50 45 52 20 52 45  | print "PAPER RE|
00000e40  41 44 59 20 2d 20 59 2f  4e 3f 22 0d 20 20 70 72  |ADY - Y/N?".  pr|
00000e50  69 6e 74 0d 20 20 70 72  69 6e 74 20 22 41 20 6e  |int.  print "A n|
00000e60  65 67 61 74 69 76 65 20  72 65 73 70 6f 6e 73 65  |egative response|
00000e70  20 65 6e 64 73 20 70 72  6f 67 72 61 6d 22 20 0d  | ends program" .|
00000e80  20 20 20 5a 24 3d 67 63  6b 24 0d 20 20 20 20 69  |   Z$=gck$.    i|
00000e90  66 20 5a 24 3d 22 79 22  20 74 68 65 6e 20 5a 24  |f Z$="y" then Z$|
00000ea0  3d 22 59 22 0d 20 20 20  20 69 66 20 5a 24 3c 3e  |="Y".    if Z$<>|
00000eb0  22 59 22 74 68 65 6e 20  67 6f 74 6f 20 45 4e 44  |"Y"then goto END|
00000ec0  0d 52 45 4d 3a 20 69 6e  63 72 65 6d 65 6e 74 20  |.REM: increment |
00000ed0  70 61 67 65 20 63 6f 75  6e 74 65 72 20 54 25 0d  |page counter T%.|
00000ee0  20 54 25 3d 54 25 2b 31  0d 20 76 64 75 32 0d 20  | T%=T%+1. vdu2. |
00000ef0  20 70 72 69 6e 74 20 22  20 20 20 20 20 43 4c 55  | print "     CLU|
00000f00  42 20 52 45 47 49 53 54  45 52 20 2d 20 70 61 67  |B REGISTER - pag|
00000f10  65 20 22 2b 73 74 72 24  54 25 2b 22 2f 22 2b 73  |e "+str$T%+"/"+s|
00000f20  74 72 24 51 25 0d 20 20  70 72 69 6e 74 0d 20 20  |tr$Q%.  print.  |
00000f30  70 72 69 6e 74 0d 20 20  70 72 69 6e 74 0d 20 20  |print.  print.  |
00000f40  70 72 69 6e 74 0d 20 76  64 75 33 0d 65 6e 64 70  |print. vdu3.endp|
00000f50  72 6f 63 0d 0d 2e 50 52  0d 20 52 45 4d 20 66 69  |roc...PR. REM fi|
00000f60  6e 64 20 6e 65 78 74 20  72 65 63 6f 72 64 0d 20  |nd next record. |
00000f70  20 66 69 6e 64 22 3e 22  0d 20 52 45 4d 20 67 65  | find">". REM ge|
00000f80  74 20 6e 61 6d 65 0d 20  20 63 75 72 73 6f 72 20  |t name.  cursor |
00000f90  64 6f 77 6e 20 32 0d 20  20 47 24 3d 67 6c 74 24  |down 2.  G$=glt$|
00000fa0  0d 20 20 50 24 3d 67 6c  74 24 2b 22 20 22 2b 47  |.  P$=glt$+" "+G|
00000fb0  24 0d 20 52 45 4d 20 73  74 61 72 74 20 70 72 69  |$. REM start pri|
00000fc0  6e 74 69 6e 67 20 6c 69  6e 65 0d 20 20 76 64 75  |nting line.  vdu|
00000fd0  32 0d 20 20 20 52 45 4d  20 72 69 67 68 74 20 6a  |2.   REM right j|
00000fe0  75 73 74 69 66 69 65 64  20 6c 69 6e 65 20 4e 6f  |ustified line No|
00000ff0  2e 2b 20 6e 61 6d 65 0d  20 20 20 70 72 69 6e 74  |.+ name.   print|
00001000  20 44 24 2b 73 74 72 24  43 25 2b 22 20 20 22 2b  | D$+str$C%+"  "+|
00001010  50 24 3b 0d 20 20 20 70  72 6f 63 53 50 41 43 45  |P$;.   procSPACE|
00001020  53 0d 20 20 20 70 72 6f  63 43 4f 4c 53 0d 20 20  |S.   procCOLS.  |
00001030  20 52 45 4d 20 27 70 72  69 6e 74 27 67 69 76 65  | REM 'print'give|
00001040  73 20 43 52 20 74 6f 20  63 6f 6d 70 6c 65 74 65  |s CR to complete|
00001050  20 6c 69 6e 65 0d 20 20  20 20 70 72 69 6e 74 0d  | line.    print.|
00001060  20 52 45 4d 20 74 75 72  6e 20 6f 66 66 20 70 72  | REM turn off pr|
00001070  69 6e 74 65 72 0d 20 20  76 64 75 33 0d 65 6e 64  |inter.  vdu3.end|
00001080  70 72 6f 63 0d 0d 2e 53  50 41 43 45 53 0d 20 52  |proc...SPACES. R|
00001090  45 4d 20 28 4d 25 3d 6d  61 78 69 6d 75 6d 20 6e  |EM (M%=maximum n|
000010a0  61 6d 65 20 6c 65 6e 67  74 68 29 0d 20 50 25 3d  |ame length). P%=|
000010b0  6c 65 6e 50 24 0d 20 53  25 3d 31 2b 4d 25 2d 50  |lenP$. S%=1+M%-P|
000010c0  25 0d 20 20 69 66 20 53  25 3d 30 20 74 68 65 6e  |%.  if S%=0 then|
000010d0  20 65 6e 64 70 72 6f 63  0d 20 52 45 4d 20 70 72  | endproc. REM pr|
000010e0  69 6e 74 20 53 25 20 73  70 61 63 65 73 20 61 66  |int S% spaces af|
000010f0  74 65 72 20 6e 61 6d 65  0d 20 20 64 6f 74 68 69  |ter name.  dothi|
00001100  73 0d 20 20 20 70 72 69  6e 74 20 22 20 22 3b 0d  |s.   print " ";.|
00001110  20 20 74 69 6d 65 73 20  53 25 0d 65 6e 64 70 72  |  times S%.endpr|
00001120  6f 63 0d 0d 2e 43 4f 4c  53 0d 52 45 4d 20 70 72  |oc...COLS.REM pr|
00001130  69 6e 74 20 33 2d 63 68  61 72 2e 20 63 6f 6c 75  |int 3-char. colu|
00001140  6d 6e 73 20 61 66 74 65  72 20 6e 61 6d 65 0d 20  |mns after name. |
00001150  70 72 69 6e 74 20 22 7c  22 3b 0d 20 64 6f 74 68  |print "|";. doth|
00001160  69 73 0d 20 20 70 72 69  6e 74 22 20 20 7c 22 3b  |is.  print"  |";|
00001170  0d 20 74 69 6d 65 73 20  4e 25 0d 65 6e 64 70 72  |. times N%.endpr|
00001180  6f 63 0d 0d 2e 57 4f 52  4b 49 4e 47 0d 20 63 6c  |oc...WORKING. cl|
00001190  73 0d 20 76 64 75 31 30  2c 31 30 2c 31 30 0d 20  |s. vdu10,10,10. |
000011a0  70 72 69 6e 74 20 22 20  20 20 20 20 57 4f 52 4b  |print "     WORK|
000011b0  49 4e 47 20 2e 20 2e 20  2e 20 70 6c 65 61 73 65  |ING . . . please|
000011c0  20 77 61 69 74 22 0d 65  6e 64 70 72 6f 63 0d 0d  | wait".endproc..|
000011d0  2e 43 4f 55 4e 54 0d 52  45 4d 20 66 69 6e 64 20  |.COUNT.REM find |
000011e0  6d 61 78 20 6e 61 6d 65  20 6c 65 6e 67 74 68 20  |max name length |
000011f0  4d 25 0d 52 45 4d 20 66  69 6e 64 20 6e 75 6d 62  |M%.REM find numb|
00001200  65 72 20 6f 66 20 6e 61  6d 65 73 20 43 25 0d 20  |er of names C%. |
00001210  73 65 6c 65 63 74 20 74  65 78 74 0d 20 63 75 72  |select text. cur|
00001220  73 6f 72 20 74 6f 70 0d  20 66 69 6e 64 20 22 3e  |sor top. find ">|
00001230  22 0d 20 63 75 72 73 6f  72 20 64 6f 77 6e 20 32  |". cursor down 2|
00001240  0d 20 64 6f 74 68 69 73  0d 20 20 52 45 4d 3a 20  |. dothis.  REM: |
00001250  69 6e 63 72 65 6d 65 6e  74 20 70 61 67 65 20 63  |increment page c|
00001260  6f 75 6e 74 0d 20 20 20  43 25 3d 43 25 2b 31 0d  |ount.   C%=C%+1.|
00001270  20 20 52 45 4d 3a 4e 25  3d 73 75 72 6e 61 6d 65  |  REM:N%=surname|
00001280  20 2b 20 66 6f 72 65 6e  61 6d 65 20 6c 65 6e 67  | + forename leng|
00001290  74 68 0d 20 20 20 4e 25  3d 6c 65 6e 67 6c 74 24  |th.   N%=lenglt$|
000012a0  2b 6c 65 6e 67 6c 74 24  0d 20 20 20 52 45 4d 3a  |+lenglt$.   REM:|
000012b0  4d 25 20 69 73 20 6c 6f  6e 67 65 73 74 20 6e 61  |M% is longest na|
000012c0  6d 65 20 6c 65 6e 67 74  68 0d 20 20 20 20 69 66  |me length.    if|
000012d0  20 4e 25 3e 4d 25 20 74  68 65 6e 20 4d 25 3d 4e  | N%>M% then M%=N|
000012e0  25 0d 20 20 63 75 72 73  6f 72 20 64 6f 77 6e 20  |%.  cursor down |
000012f0  37 0d 20 75 6e 74 69 6c  20 45 4f 54 0d 20 20 52  |7. until EOT.  R|
00001300  45 4d 20 63 6f 6e 76 65  72 74 20 4e 25 20 74 6f  |EM convert N% to|
00001310  20 63 6f 6c 73 20 28 4c  25 20 3d 20 6d 61 72 67  | cols (L% = marg|
00001320  69 6e 29 0d 20 20 52 45  4d 20 61 6c 6c 6f 77 73  |in).  REM allows|
00001330  20 33 20 63 68 61 72 73  20 70 65 72 20 72 65 67  | 3 chars per reg|
00001340  69 73 74 65 72 20 63 6f  6c 75 6d 6e 20 0d 20 20  |ister column .  |
00001350  20 4e 25 3d 28 38 30 2d  4c 25 2d 4d 25 29 2f 33  | N%=(80-L%-M%)/3|
00001360  0d 20 20 52 45 4d 20 46  69 6e 64 20 51 25 3a 6e  |.  REM Find Q%:n|
00001370  75 6d 62 65 72 20 6f 66  20 70 61 67 65 73 20 0d  |umber of pages .|
00001380  20 20 52 45 4d 20 4f 25  20 3d 20 6c 69 6e 65 73  |  REM O% = lines|
00001390  20 70 65 72 20 70 61 67  65 0d 20 20 20 51 25 3d  | per page.   Q%=|
000013a0  28 43 25 2b 4f 25 2d 31  29 2f 4f 25 0d 20 20 52  |(C%+O%-1)/O%.  R|
000013b0  45 4d 20 5a 25 3d 6d 61  78 20 6c 69 6e 65 73 0d  |EM Z%=max lines.|
000013c0  20 20 20 5a 25 3d 43 25  0d 20 20 52 45 4d 20 63  |   Z%=C%.  REM c|
000013d0  6c 65 61 72 20 6c 69 6e  65 20 63 74 72 3a 20 43  |lear line ctr: C|
000013e0  25 0d 20 20 20 43 25 3d  30 0d 20 20 63 75 72 73  |%.   C%=0.  curs|
000013f0  6f 72 20 74 6f 70 0d 65  6e 64 70 72 6f 63 0d 0d  |or top.endproc..|
00001400  2e 45 4e 44 0d 64 69 73  70 6c 61 79 0d 2d 2d 2d  |.END.display.---|
00001410  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001430  2d 2d 2d 2d 0d 52 45 4d  2e 2e 20 44 2e 52 4f 55  |----.REM.. D.ROU|
00001440  54 49 4e 45 0d 52 45 4d  2e 2e 20 42 59 20 43 20  |TINE.REM.. BY C |
00001450  4a 20 57 61 6c 64 6f 63  6b 0d 52 45 4d 2e 2e 20  |J Waldock.REM.. |
00001460  28 43 29 20 54 68 65 20  4d 69 63 72 6f 20 55 73  |(C) The Micro Us|
00001470  65 72 0d 52 45 4d 2e 2e  20 73 65 65 20 70 72 6f  |er.REM.. see pro|
00001480  63 48 45 4c 50 20 66 6f  72 20 69 6e 66 6f 72 6d  |cHELP for inform|
00001490  61 74 69 6f 6e 0d 0d 52  45 4d 2e 2e 20 53 65 74  |ation..REM.. Set|
000014a0  20 63 6f 6e 73 74 61 6e  74 20 52 24 2c 63 61 72  | constant R$,car|
000014b0  72 69 61 67 65 20 72 65  74 75 72 6e 0d 20 52 24  |riage return. R$|
000014c0  3d 63 68 72 24 20 31 33  0d 52 45 4d 2e 2e 20 53  |=chr$ 13.REM.. S|
000014d0  65 74 20 63 6f 6e 73 74  61 6e 74 20 4e 24 2c 6e  |et constant N$,n|
000014e0  65 77 6c 69 6e 65 0d 20  4e 24 3d 52 24 2b 63 68  |ewline. N$=R$+ch|
000014f0  72 24 20 31 30 0d 52 45  4d 2e 2e 20 51 24 3d 70  |r$ 10.REM.. Q$=p|
00001500  72 6f 6d 70 74 20 66 6f  72 20 69 6e 70 75 74 0d  |rompt for input.|
00001510  20 51 24 3d 22 20 3d 3d  3e 20 22 0d 52 45 4d 2e  | Q$=" ==> ".REM.|
00001520  2e 20 6d 65 73 73 61 67  65 20 4d 24 0d 20 4d 24  |. message M$. M$|
00001530  3d 4e 24 2b 22 54 6f 20  63 6f 6e 74 69 6e 75 65  |=N$+"To continue|
00001540  20 50 52 45 53 53 20 41  4e 59 20 4b 45 59 22 2b  | PRESS ANY KEY"+|
00001550  51 24 0d 0d 52 45 4d 2e  2e 20 73 65 65 20 65 6e  |Q$..REM.. see en|
00001560  64 6d 61 72 6b 65 72 73  20 63 6f 6d 70 6c 65 74  |dmarkers complet|
00001570  65 0d 20 70 72 6f 63 5a  5a 5a 0d 0d 52 45 4d 2e  |e. procZZZ..REM.|
00001580  2e 20 67 65 74 20 6c 65  66 74 20 6d 61 72 67 69  |. get left margi|
00001590  6e 20 74 6f 20 70 72 69  6e 74 20 61 20 72 65 63  |n to print a rec|
000015a0  6f 72 64 0d 20 70 72 6f  63 4c 4d 0d 0d 73 65 6c  |ord. procLM..sel|
000015b0  65 63 74 20 74 65 78 74  0d 20 69 66 20 45 4f 54  |ect text. if EOT|
000015c0  20 74 68 65 6e 20 70 72  6f 63 48 4f 4d 0d 20 69  | then procHOM. i|
000015d0  66 20 53 4f 54 20 74 68  65 6e 20 63 75 72 73 6f  |f SOT then curso|
000015e0  72 20 64 6f 77 6e 20 34  0d 70 72 6f 63 4c 4f 43  |r down 4.procLOC|
000015f0  0d 0d 20 52 45 4d 2e 2e  20 4d 31 20 73 74 61 72  |.. REM.. M1 star|
00001600  74 73 20 6d 61 69 6e 20  6c 6f 6f 70 0d 2e 4d 31  |ts main loop..M1|
00001610  0d 20 20 63 75 72 73 6f  72 20 61 74 20 30 0d 20  |.  cursor at 0. |
00001620  20 64 69 73 70 6c 61 79  20 0d 20 52 45 4d 2e 2e  | display . REM..|
00001630  20 67 65 74 20 6f 70 74  69 6f 6e 20 66 72 6f 6d  | get option from|
00001640  20 6b 65 79 62 6f 61 72  64 0d 20 20 41 25 3d 67  | keyboard.  A%=g|
00001650  65 74 0d 20 52 45 4d 2e  2e 20 63 68 61 6e 67 65  |et. REM.. change|
00001660  20 55 50 50 45 52 43 41  53 45 20 74 6f 20 4c 4f  | UPPERCASE to LO|
00001670  57 45 52 43 41 53 45 0d  20 20 69 66 20 41 25 3e  |WERCASE.  if A%>|
00001680  36 34 20 61 6e 64 20 41  25 3c 39 31 20 74 68 65  |64 and A%<91 the|
00001690  6e 20 41 25 3d 41 25 2b  33 32 0d 52 45 4d 2e 2e  |n A%=A%+32.REM..|
000016a0  20 52 61 74 68 65 72 20  74 68 61 6e 20 61 63 74  | Rather than act|
000016b0  75 61 6c 20 76 61 6c 75  65 73 20 6c 69 6b 65 20  |ual values like |
000016c0  52 45 4d 2e 2e 20 20 31  30 38 20 41 53 43 22 6c  |REM..  108 ASC"l|
000016d0  22 20 6d 61 79 20 62 65  20 69 6e 73 65 72 74 65  |" may be inserte|
000016e0  64 0d 20 69 66 20 41 25  3d 31 30 38 20 74 68 65  |d. if A%=108 the|
000016f0  6e 20 67 6f 74 6f 20 4c  4e 0d 20 69 66 20 41 25  |n goto LN. if A%|
00001700  3d 31 31 30 20 74 68 65  6e 20 67 6f 74 6f 20 4e  |=110 then goto N|
00001710  58 0d 20 69 66 20 41 25  3d 39 38 20 74 68 65 6e  |X. if A%=98 then|
00001720  20 67 6f 74 6f 20 42 4b  0d 20 69 66 20 41 25 3d  | goto BK. if A%=|
00001730  31 31 32 20 74 68 65 6e  20 67 6f 74 6f 20 50 52  |112 then goto PR|
00001740  0d 20 69 66 20 41 25 3d  31 31 35 20 74 68 65 6e  |. if A%=115 then|
00001750  20 67 6f 74 6f 20 53 43  48 0d 20 69 66 20 41 25  | goto SCH. if A%|
00001760  3d 31 31 34 20 74 68 65  6e 20 67 6f 74 6f 20 52  |=114 then goto R|
00001770  45 50 0d 20 69 66 20 41  25 3d 31 30 32 20 74 68  |EP. if A%=102 th|
00001780  65 6e 20 67 6f 74 6f 20  46 49 4e 0d 20 69 66 20  |en goto FIN. if |
00001790  41 25 3d 31 31 36 20 74  68 65 6e 20 70 72 6f 63  |A%=116 then proc|
000017a0  4c 4f 43 20 0d 20 69 66  20 41 25 3d 31 31 37 20  |LOC . if A%=117 |
000017b0  74 68 65 6e 20 67 6f 74  6f 20 55 50 0d 20 69 66  |then goto UP. if|
000017c0  20 41 25 3d 31 30 30 20  74 68 65 6e 20 67 6f 74  | A%=100 then got|
000017d0  6f 20 44 45 4c 0d 20 69  66 20 41 25 3d 39 39 20  |o DEL. if A%=99 |
000017e0  74 68 65 6e 20 67 6f 74  6f 20 43 4f 50 0d 20 69  |then goto COP. i|
000017f0  66 20 41 25 3d 39 37 20  74 68 65 6e 20 67 6f 74  |f A%=97 then got|
00001800  6f 20 41 44 44 0d 20 69  66 20 41 25 3d 31 30 35  |o ADD. if A%=105|
00001810  20 74 68 65 6e 20 67 6f  74 6f 20 49 4e 53 0d 20  | then goto INS. |
00001820  69 66 20 41 25 3d 31 30  31 20 74 68 65 6e 20 67  |if A%=101 then g|
00001830  6f 74 6f 20 45 4e 44 0d  20 69 66 20 41 25 3d 31  |oto END. if A%=1|
00001840  30 34 20 74 68 65 6e 20  67 6f 74 6f 20 48 45 4c  |04 then goto HEL|
00001850  50 0d 67 6f 74 6f 20 4d  31 0d 0d 2e 5a 5a 5a 0d  |P.goto M1...ZZZ.|
00001860  20 52 45 4d 2e 2e 20 46  69 72 73 74 20 77 69 70  | REM.. First wip|
00001870  65 20 6f 75 74 20 74 65  78 74 20 61 74 20 65 6e  |e out text at en|
00001880  64 0d 20 20 73 65 6c 65  63 74 20 74 65 78 74 0d  |d.  select text.|
00001890  20 20 63 75 72 73 6f 72  20 74 6f 70 0d 20 20 66  |  cursor top.  f|
000018a0  69 6e 64 20 22 3e 45 4e  44 22 0d 20 20 66 6b 65  |ind ">END".  fke|
000018b0  79 20 33 0d 20 20 63 75  72 73 6f 72 20 62 6f 74  |y 3.  cursor bot|
000018c0  74 6f 6d 0d 20 20 66 6b  65 79 20 33 0d 20 20 66  |tom.  fkey 3.  f|
000018d0  6b 65 79 20 37 0d 20 52  45 4d 2e 2e 20 74 68 65  |key 7. REM.. the|
000018e0  6e 20 69 6e 73 65 72 74  20 65 6e 64 20 6d 61 72  |n insert end mar|
000018f0  6b 65 72 73 20 72 65 71  75 69 72 65 64 0d 20 52  |kers required. R|
00001900  45 4d 2e 2e 20 61 6e 64  20 6c 69 6e 65 73 20 74  |EM.. and lines t|
00001910  6f 20 6d 61 6b 65 20 2e  4c 4f 43 20 77 6f 72 6b  |o make .LOC work|
00001920  0d 20 52 45 4d 2e 2e 20  77 68 65 6e 20 61 74 20  |. REM.. when at |
00001930  22 3e 45 4e 44 22 0d 20  20 74 79 70 65 22 3e 45  |">END".  type">E|
00001940  4e 44 22 2b 52 24 2b 52  24 0d 20 20 74 79 70 65  |ND"+R$+R$.  type|
00001950  20 22 7a 7a 7a 22 0d 20  20 64 6f 74 68 69 73 0d  | "zzz".  dothis.|
00001960  20 20 20 74 79 70 65 20  52 24 0d 20 20 74 69 6d  |   type R$.  tim|
00001970  65 73 20 37 0d 65 6e 64  70 72 6f 63 0d 0d 2e 4c  |es 7.endproc...L|
00001980  4e 0d 20 63 75 72 73 6f  72 20 64 6f 77 6e 0d 20  |N. cursor down. |
00001990  63 75 72 73 6f 72 20 61  74 20 30 0d 67 6f 74 6f  |cursor at 0.goto|
000019a0  20 4d 31 0d 0d 2e 55 50  0d 20 63 75 72 73 6f 72  | M1...UP. cursor|
000019b0  20 61 74 20 30 0d 20 63  75 72 73 6f 72 20 75 70  | at 0. cursor up|
000019c0  0d 67 6f 74 6f 20 4d 31  0d 0d 2e 4c 4f 43 0d 20  |.goto M1...LOC. |
000019d0  52 45 4d 2e 2e 20 66 69  6e 64 20 73 74 61 72 74  |REM.. find start|
000019e0  20 6f 66 20 6e 65 78 74  20 72 65 63 6f 72 64 0d  | of next record.|
000019f0  20 20 63 75 72 73 6f 72  20 72 69 67 68 74 0d 20  |  cursor right. |
00001a00  20 66 69 6e 64 20 22 3e  22 0d 20 52 45 4d 2e 2e  | find ">". REM..|
00001a10  63 75 72 73 6f 72 20 74  6f 20 73 74 61 72 74 20  |cursor to start |
00001a20  6f 66 20 63 75 72 72 65  6e 74 20 72 65 63 6f 72  |of current recor|
00001a30  64 0d 20 20 63 75 72 73  6f 72 20 75 70 20 39 0d  |d.  cursor up 9.|
00001a40  65 6e 64 70 72 6f 63 0d  0d 2e 49 4e 53 0d 20 20  |endproc...INS.  |
00001a50  52 45 4d 2e 2e 20 67 65  74 20 6e 65 77 20 6c 69  |REM.. get new li|
00001a60  6e 65 20 6f 66 20 74 65  78 74 0d 20 20 20 63 6c  |ne of text.   cl|
00001a70  73 0d 20 20 20 76 2e 31  30 2c 31 30 2c 31 30 20  |s.   v.10,10,10 |
00001a80  0d 20 20 20 70 72 69 6e  74 20 22 54 79 70 65 20  |.   print "Type |
00001a90  72 65 70 6c 61 63 65 6d  65 6e 74 20 66 6f 72 20  |replacement for |
00001aa0  6c 69 6e 65 20 22 3b 20  20 20 20 20 70 72 69 6e  |line ";     prin|
00001ab0  74 20 22 2d 20 22 22 51  22 22 20 74 6f 20 61 62  |t "- ""Q"" to ab|
00001ac0  6f 72 74 22 0d 20 20 20  70 72 69 6e 74 20 4e 24  |ort".   print N$|
00001ad0  2b 51 24 3b 0d 20 20 20  47 24 3d 67 6c 6b 24 0d  |+Q$;.   G$=glk$.|
00001ae0  20 20 52 45 4d 2e 2e 20  61 6c 6c 6f 77 20 61 62  |  REM.. allow ab|
00001af0  6f 72 74 0d 20 20 20 69  66 20 47 24 3d 22 51 22  |ort.   if G$="Q"|
00001b00  20 6f 72 20 47 24 3d 22  71 22 74 68 65 6e 20 67  | or G$="q"then g|
00001b10  6f 74 6f 20 4d 31 0d 20  20 52 45 4d 2e 2e 20 77  |oto M1.  REM.. w|
00001b20  69 70 65 20 6f 75 74 20  6f 6c 64 20 6c 69 6e 65  |ipe out old line|
00001b30  0d 20 20 20 63 75 72 73  6f 72 20 61 74 20 30 0d  |.   cursor at 0.|
00001b40  20 20 20 66 6b 65 79 20  33 0d 20 20 20 63 75 72  |   fkey 3.   cur|
00001b50  73 6f 72 20 61 74 20 33  39 0d 20 20 20 66 6b 65  |sor at 39.   fke|
00001b60  79 20 33 0d 20 20 20 66  6b 65 79 20 37 0d 20 20  |y 3.   fkey 7.  |
00001b70  52 45 4d 2e 2e 20 69 6e  73 65 72 74 20 6e 65 77  |REM.. insert new|
00001b80  20 6c 69 6e 65 0d 20 20  20 74 79 70 65 20 47 24  | line.   type G$|
00001b90  0d 20 20 20 63 75 72 73  6f 72 20 72 69 67 68 74  |.   cursor right|
00001ba0  0d 67 6f 74 6f 20 4d 31  0d 0d 20 52 45 4d 2e 2e  |.goto M1.. REM..|
00001bb0  20 6a 75 6d 70 20 74 6f  20 6e 65 78 74 20 72 65  | jump to next re|
00001bc0  63 6f 72 64 0d 2e 4e 58  0d 20 69 66 20 53 4f 54  |cord..NX. if SOT|
00001bd0  20 74 68 65 6e 20 63 75  72 73 6f 72 20 64 6f 77  | then cursor dow|
00001be0  6e 20 34 0d 20 69 66 20  45 4f 54 3d 30 20 74 68  |n 4. if EOT=0 th|
00001bf0  65 6e 20 63 75 72 73 6f  72 20 64 6f 77 6e 20 39  |en cursor down 9|
00001c00  0d 67 6f 74 6f 20 4d 31  0d 0d 20 52 45 4d 2e 2e  |.goto M1.. REM..|
00001c10  20 6a 75 6d 70 20 62 61  63 6b 20 61 20 72 65 63  | jump back a rec|
00001c20  6f 72 64 0d 2e 42 4b 0d  20 63 75 72 73 6f 72 20  |ord..BK. cursor |
00001c30  75 70 20 39 0d 20 69 66  20 53 4f 54 20 74 68 65  |up 9. if SOT the|
00001c40  6e 20 63 75 72 73 6f 72  20 64 6f 77 6e 20 34 0d  |n cursor down 4.|
00001c50  67 6f 74 6f 20 4d 31 0d  0d 20 52 45 4d 2e 2e 20  |goto M1.. REM.. |
00001c60  63 75 72 73 6f 72 20 74  6f 20 66 69 72 73 74 20  |cursor to first |
00001c70  72 65 63 6f 72 64 0d 2e  48 4f 4d 0d 20 73 65 6c  |record..HOM. sel|
00001c80  65 63 74 20 74 65 78 74  0d 20 63 75 72 73 6f 72  |ect text. cursor|
00001c90  20 74 6f 70 20 20 0d 20  63 75 72 73 6f 72 20 61  | top  . cursor a|
00001ca0  74 20 30 0d 20 63 75 72  73 6f 72 20 64 6f 77 6e  |t 0. cursor down|
00001cb0  20 34 0d 65 6e 64 70 72  6f 63 0d 0d 2e 48 45 4c  | 4.endproc...HEL|
00001cc0  50 0d 20 63 6c 73 0d 20  76 64 75 20 31 30 0d 70  |P. cls. vdu 10.p|
00001cd0  2e 22 20 20 20 20 20 20  20 4d 4f 56 49 4e 47 20  |."       MOVING |
00001ce0  74 68 72 6f 75 67 68 20  44 41 54 41 22 0d 70 2e  |through DATA".p.|
00001cf0  22 20 20 20 20 20 20 20  2d 2d 2d 2d 2d 2d 2d 2d  |"       --------|
00001d00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 22 0d 70 2e 22  |-----------".p."|
00001d10  50 72 65 73 73 22 22 4c  22 22 20 74 6f 20 6d 6f  |Press""L"" to mo|
00001d20  76 65 20 64 6f 77 6e 20  61 20 4c 49 4e 45 22 0d  |ve down a LINE".|
00001d30  70 2e 22 50 72 65 73 73  22 22 54 22 22 20 74 6f  |p."Press""T"" to|
00001d40  20 67 6f 20 74 6f 20 54  4f 50 20 6f 66 20 72 65  | go to TOP of re|
00001d50  63 6f 72 64 22 0d 70 2e  22 50 72 65 73 73 22 22  |cord".p."Press""|
00001d60  55 22 22 20 74 6f 20 67  6f 20 55 50 20 61 20 6c  |U"" to go UP a l|
00001d70  69 6e 65 22 0d 70 2e 22  50 72 65 73 73 22 22 4e  |ine".p."Press""N|
00001d80  22 22 20 74 6f 20 6d 6f  76 65 20 74 6f 20 4e 45  |"" to move to NE|
00001d90  58 54 20 72 65 63 6f 72  64 22 0d 70 2e 22 50 72  |XT record".p."Pr|
00001da0  65 73 73 22 22 42 22 22  20 74 6f 20 6d 6f 76 65  |ess""B"" to move|
00001db0  20 42 41 43 4b 22 0d 70  2e 22 50 72 65 73 73 22  | BACK".p."Press"|
00001dc0  22 53 22 22 20 74 6f 20  53 45 41 52 43 48 20 66  |"S"" to SEARCH f|
00001dd0  6f 72 20 77 6f 72 64 28  73 29 22 0d 70 2e 22 50  |or word(s)".p."P|
00001de0  72 65 73 73 22 22 52 22  22 20 74 6f 20 52 45 50  |ress""R"" to REP|
00001df0  45 41 54 20 73 65 61 72  63 68 22 0d 70 2e 22 50  |EAT search".p."P|
00001e00  72 65 73 73 22 22 46 22  22 20 74 6f 20 46 49 4e  |ress""F"" to FIN|
00001e10  44 20 50 4c 41 43 45 20  66 6f 72 20 6e 65 77 20  |D PLACE for new |
00001e20  72 65 63 6f 72 64 22 0d  70 2e 22 20 20 20 20 20  |record".p."     |
00001e30  20 20 50 52 49 4e 54 49  4e 47 20 41 20 52 45 43  |  PRINTING A REC|
00001e40  4f 52 44 22 0d 70 2e 22  20 20 20 20 20 20 20 2d  |ORD".p."       -|
00001e50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001e60  22 0d 70 2e 22 50 72 65  73 73 22 22 50 22 22 20  |".p."Press""P"" |
00001e70  74 6f 20 50 52 49 4e 54  20 61 20 6e 61 6d 65 20  |to PRINT a name |
00001e80  61 6e 64 20 61 64 64 72  65 73 73 22 0d 70 2e 22  |and address".p."|
00001e90  20 20 20 20 20 20 20 4d  41 4e 49 50 55 4c 41 54  |       MANIPULAT|
00001ea0  49 4e 47 20 44 41 54 41  22 0d 70 2e 22 20 20 20  |ING DATA".p."   |
00001eb0  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
00001ec0  2d 2d 2d 2d 2d 22 0d 70  2e 22 50 72 65 73 73 22  |-----".p."Press"|
00001ed0  22 43 22 22 20 74 6f 20  43 4f 50 59 20 72 65 63  |"C"" to COPY rec|
00001ee0  6f 72 64 22 0d 70 2e 22  50 72 65 73 73 22 22 44  |ord".p."Press""D|
00001ef0  22 22 20 74 6f 20 44 45  4c 45 54 45 20 72 65 63  |"" to DELETE rec|
00001f00  6f 72 64 22 0d 70 2e 22  50 72 65 73 73 22 22 41  |ord".p."Press""A|
00001f10  22 22 20 74 6f 20 41 44  44 20 72 65 63 6f 72 64  |"" to ADD record|
00001f20  22 0d 70 2e 22 50 72 65  73 73 22 22 49 22 22 20  |".p."Press""I"" |
00001f30  74 6f 20 49 4e 53 45 52  54 20 6c 69 6e 65 20 63  |to INSERT line c|
00001f40  68 61 6e 67 65 22 0d 70  2e 22 20 20 20 20 20 20  |hange".p."      |
00001f50  20 4c 45 41 56 49 4e 47  20 52 4f 55 54 49 4e 45  | LEAVING ROUTINE|
00001f60  22 0d 70 2e 22 20 20 20  20 20 20 20 2d 2d 2d 2d  |".p."       ----|
00001f70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 22 0d 70 2e 22  |-----------".p."|
00001f80  50 72 65 73 73 22 22 45  22 22 20 54 4f 20 45 4e  |Press""E"" TO EN|
00001f90  44 20 6f 70 65 72 61 74  69 6f 6e 22 0d 20 70 72  |D operation". pr|
00001fa0  69 6e 74 20 4d 24 0d 20  47 25 3d 67 65 74 0d 67  |int M$. G%=get.g|
00001fb0  6f 74 6f 20 4d 31 0d 0d  20 52 45 4d 2e 2e 20 66  |oto M1.. REM.. f|
00001fc0  69 6e 64 73 20 70 6c 61  63 65 20 66 6f 72 20 6e  |inds place for n|
00001fd0  65 77 20 72 65 63 6f 72  64 0d 2e 46 49 4e 0d 20  |ew record..FIN. |
00001fe0  63 6c 73 0d 20 76 64 75  20 31 30 2c 31 30 2c 31  |cls. vdu 10,10,1|
00001ff0  30 0d 20 70 72 69 6e 74  20 22 45 6e 74 65 72 20  |0. print "Enter |
00002000  53 55 52 4e 41 4d 45 20  74 6f 20 69 6e 73 65 72  |SURNAME to inser|
00002010  74 22 0d 20 70 72 2e 20  22 28 4f 6e 6c 79 20 69  |t". pr. "(Only i|
00002020  6e 69 74 69 61 6c 20 6c  65 74 74 65 72 20 61 73  |nitial letter as|
00002030  20 43 61 70 69 74 61 6c  29 22 0d 20 70 72 69 6e  | Capital)". prin|
00002040  74 20 51 24 3b 0d 20 53  24 3d 67 6c 6b 24 0d 20  |t Q$;. S$=glk$. |
00002050  52 45 4d 2e 2e 20 74 68  65 20 22 73 65 65 6b 22  |REM.. the "seek"|
00002060  20 70 72 6f 63 65 73 73  0d 20 20 70 72 6f 63 48  | process.  procH|
00002070  4f 4d 20 0d 20 20 63 75  72 73 6f 72 20 64 6f 77  |OM .  cursor dow|
00002080  6e 20 32 0d 20 20 72 65  70 65 61 74 20 20 0d 20  |n 2.  repeat  . |
00002090  20 20 20 69 66 20 53 24  3c 3d 67 6c 74 24 20 74  |   if S$<=glt$ t|
000020a0  68 65 6e 20 67 6f 74 6f  20 46 31 0d 20 20 20 63  |hen goto F1.   c|
000020b0  75 72 73 6f 72 20 64 6f  77 6e 20 38 0d 20 20 75  |ursor down 8.  u|
000020c0  6e 74 69 6c 20 66 61 6c  73 65 20 0d 20 2e 46 31  |ntil false . .F1|
000020d0  0d 20 20 63 75 72 73 6f  72 20 75 70 20 33 0d 20  |.  cursor up 3. |
000020e0  52 45 4d 2e 2e 20 73 65  74 20 58 25 2c 20 66 6c  |REM.. set X%, fl|
000020f0  61 67 20 74 6f 20 62 65  20 75 73 65 64 20 62 79  |ag to be used by|
00002100  20 2e 41 44 44 0d 20 20  58 25 3d 31 0d 67 6f 74  | .ADD.  X%=1.got|
00002110  6f 20 4d 31 0d 0d 20 52  45 4d 2e 2e 20 63 6f 70  |o M1.. REM.. cop|
00002120  79 20 61 20 72 65 63 6f  72 64 0d 2e 43 4f 50 0d  |y a record..COP.|
00002130  20 70 72 6f 63 4c 4f 43  0d 20 52 45 4d 2e 2e 20  | procLOC. REM.. |
00002140  6d 61 72 6b 20 72 65 63  6f 72 64 20 74 6f 20 63  |mark record to c|
00002150  6f 70 79 0d 20 20 66 6b  65 79 20 33 0d 20 20 63  |opy.  fkey 3.  c|
00002160  75 72 73 6f 72 20 64 6f  77 6e 20 39 0d 20 20 63  |ursor down 9.  c|
00002170  75 72 73 6f 72 20 61 74  20 30 0d 20 20 66 6b 65  |ursor at 0.  fke|
00002180  79 20 33 0d 20 52 45 4d  2e 2e 20 6e 6f 77 20 75  |y 3. REM.. now u|
00002190  73 65 20 66 6b 65 79 20  74 6f 20 63 6f 70 79 20  |se fkey to copy |
000021a0  6d 61 72 6b 65 64 20 74  65 78 74 0d 20 20 66 6b  |marked text.  fk|
000021b0  65 79 20 39 0d 20 20 64  65 6c 65 74 65 20 6d 61  |ey 9.  delete ma|
000021c0  72 6b 65 72 73 0d 20 20  63 75 72 73 6f 72 20 61  |rkers.  cursor a|
000021d0  74 20 30 0d 67 6f 74 6f  20 4d 31 0d 0d 20 52 45  |t 0.goto M1.. RE|
000021e0  4d 2e 2e 20 73 65 61 72  63 68 20 66 6f 72 20 74  |M.. search for t|
000021f0  65 78 74 20 73 74 72 69  6e 67 20 53 24 0d 2e 53  |ext string S$..S|
00002200  43 48 0d 20 70 72 6f 63  48 4f 4d 0d 20 63 6c 73  |CH. procHOM. cls|
00002210  0d 20 76 64 75 20 31 30  2c 31 30 2c 31 30 0d 20  |. vdu 10,10,10. |
00002220  70 72 69 6e 74 20 22 45  4e 54 45 52 20 63 68 61  |print "ENTER cha|
00002230  72 61 63 74 65 72 28 73  29 20 74 6f 20 66 69 6e  |racter(s) to fin|
00002240  64 22 0d 20 70 72 69 6e  74 20 22 28 43 41 52 45  |d". print "(CARE|
00002250  20 77 69 74 68 20 63 61  70 69 74 61 6c 73 29 22  | with capitals)"|
00002260  0d 20 70 72 69 6e 74 0d  20 70 72 69 6e 74 20 51  |. print. print Q|
00002270  24 3b 0d 20 53 24 3d 67  6c 6b 24 0d 20 66 69 6e  |$;. S$=glk$. fin|
00002280  64 20 53 24 0d 20 20 69  66 20 45 4f 54 20 74 68  |d S$.  if EOT th|
00002290  65 6e 20 67 6f 74 6f 20  4e 4f 54 46 44 0d 67 6f  |en goto NOTFD.go|
000022a0  74 6f 20 4d 31 20 0d 0d  20 52 45 4d 2e 2e 20 72  |to M1 .. REM.. r|
000022b0  65 70 65 61 74 20 61 20  73 65 61 72 63 68 20 66  |epeat a search f|
000022c0  6f 72 20 74 65 78 74 0d  2e 52 45 50 0d 20 63 75  |or text..REP. cu|
000022d0  72 73 6f 72 20 64 6f 77  6e 20 39 0d 20 66 69 6e  |rsor down 9. fin|
000022e0  64 20 53 24 0d 20 20 69  66 20 45 4f 54 20 74 68  |d S$.  if EOT th|
000022f0  65 6e 20 67 6f 74 6f 20  4e 4f 54 46 44 0d 67 6f  |en goto NOTFD.go|
00002300  74 6f 20 4d 31 0d 0d 20  52 45 4d 3a 20 61 64 76  |to M1.. REM: adv|
00002310  69 73 65 20 77 68 65 6e  20 73 65 61 72 63 68 20  |ise when search |
00002320  72 65 61 63 68 65 73 20  45 4f 54 0d 2e 4e 4f 54  |reaches EOT..NOT|
00002330  46 44 0d 20 63 6c 73 0d  20 76 64 75 20 31 30 2c  |FD. cls. vdu 10,|
00002340  31 30 2c 31 30 2c 37 0d  20 70 72 2e 20 22 49 20  |10,10,7. pr. "I |
00002350  63 6f 75 6c 64 6e 27 74  20 66 69 6e 64 20 74 68  |couldn't find th|
00002360  65 20 74 65 78 74 20 73  6f 75 67 68 74 22 0d 20  |e text sought". |
00002370  70 72 69 6e 74 20 4d 24  0d 20 47 25 3d 67 65 74  |print M$. G%=get|
00002380  0d 20 70 72 6f 63 48 4f  4d 0d 67 6f 74 6f 20 4d  |. procHOM.goto M|
00002390  31 0d 0d 20 52 45 4d 2e  2e 20 70 72 69 6e 74 20  |1.. REM.. print |
000023a0  69 6e 64 69 76 69 64 75  61 6c 20 72 65 63 6f 72  |individual recor|
000023b0  64 0d 2e 50 52 0d 20 70  72 6f 63 4c 4f 43 0d 20  |d..PR. procLOC. |
000023c0  63 75 72 73 6f 72 20 64  6f 77 6e 20 33 0d 20 52  |cursor down 3. R|
000023d0  45 4d 2e 2e 20 70 72 69  6e 74 65 72 20 6f 6e 0d  |EM.. printer on.|
000023e0  20 20 76 64 75 20 32 0d  20 20 20 70 72 69 6e 74  |  vdu 2.   print|
000023f0  20 4c 24 2b 67 6c 74 24  2b 22 20 22 3b 0d 20 20  | L$+glt$+" ";.  |
00002400  20 63 75 72 73 6f 72 20  75 70 20 32 0d 20 20 20  | cursor up 2.   |
00002410  70 72 69 6e 74 20 67 6c  74 24 0d 20 20 20 63 75  |print glt$.   cu|
00002420  72 73 6f 72 20 64 6f 77  6e 0d 20 20 20 64 6f 74  |rsor down.   dot|
00002430  68 69 73 0d 20 20 20 20  47 24 3d 67 6c 74 24 0d  |his.    G$=glt$.|
00002440  20 20 20 20 20 69 66 20  47 24 3c 3e 22 22 20 74  |     if G$<>"" t|
00002450  68 65 6e 20 70 72 69 6e  74 20 4c 24 2b 47 24 0d  |hen print L$+G$.|
00002460  20 20 20 74 69 6d 65 73  20 33 0d 20 20 20 70 72  |   times 3.   pr|
00002470  69 6e 74 0d 20 20 20 70  72 69 6e 74 0d 20 20 52  |int.   print.  R|
00002480  45 4d 2e 2e 20 70 72 69  6e 74 65 72 20 6f 66 66  |EM.. printer off|
00002490  0d 20 20 76 64 75 20 33  0d 20 20 63 75 72 73 6f  |.  vdu 3.  curso|
000024a0  72 20 64 6f 77 6e 20 32  0d 67 6f 74 6f 20 4d 31  |r down 2.goto M1|
000024b0  0d 0d 20 52 45 4d 3a 20  63 72 65 61 74 65 20 6c  |.. REM: create l|
000024c0  65 66 74 20 6d 61 72 67  69 6e 20 73 74 72 69 6e  |eft margin strin|
000024d0  67 3a 20 4c 24 0d 2e 4c  4d 0d 20 4c 24 3d 22 22  |g: L$..LM. L$=""|
000024e0  0d 20 63 6c 73 0d 20 76  64 75 20 31 30 2c 31 30  |. cls. vdu 10,10|
000024f0  2c 31 30 20 0d 20 70 72  69 6e 74 20 22 45 6e 74  |,10 . print "Ent|
00002500  65 72 20 4c 45 46 54 20  4d 41 52 47 49 4e 20 77  |er LEFT MARGIN w|
00002510  69 64 74 68 22 0d 20 70  72 69 6e 74 20 22 50 72  |idth". print "Pr|
00002520  65 73 73 20 45 20 61 6e  64 20 53 48 49 46 54 2d  |ess E and SHIFT-|
00002530  66 39 20 74 6f 20 72 65  73 65 74 22 0d 20 70 72  |f9 to reset". pr|
00002540  69 6e 74 0d 20 70 72 69  6e 74 20 51 24 3b 0d 20  |int. print Q$;. |
00002550  4f 24 3d 67 6c 6b 24 0d  20 20 69 66 20 56 41 4c  |O$=glk$.  if VAL|
00002560  4f 24 3d 30 20 74 68 65  6e 20 65 6e 64 70 72 6f  |O$=0 then endpro|
00002570  63 0d 20 64 6f 74 68 69  73 0d 20 20 4c 24 3d 4c  |c. dothis.  L$=L|
00002580  24 2b 22 20 22 0d 20 74  69 6d 65 73 20 76 61 6c  |$+" ". times val|
00002590  4f 24 0d 20 52 45 4d 2e  2e 20 65 6e 61 62 6c 65  |O$. REM.. enable|
000025a0  20 63 61 72 72 69 61 67  65 20 72 65 74 6e 73 20  | carriage retns |
000025b0  6f 6e 20 70 72 69 6e 74  65 72 0d 20 20 6f 73 63  |on printer.  osc|
000025c0  6c 69 22 46 58 36 22 0d  65 6e 64 70 72 6f 63 0d  |li"FX6".endproc.|
000025d0  0d 20 52 45 4d 2e 2e 20  70 72 6f 6d 70 74 73 20  |. REM.. prompts |
000025e0  66 6f 72 20 61 6e 64 20  61 63 63 65 70 74 73 20  |for and accepts |
000025f0  64 61 74 61 0d 20 52 45  4d 2e 2e 20 66 6f 72 20  |data. REM.. for |
00002600  65 61 63 68 20 72 65 63  6f 72 64 20 66 69 65 6c  |each record fiel|
00002610  64 20 28 6c 69 6e 65 29  0d 2e 41 44 44 0d 20 63  |d (line)..ADD. c|
00002620  6c 73 0d 20 70 72 69 6e  74 20 4e 24 2b 4e 24 2b  |ls. print N$+N$+|
00002630  22 43 6f 64 65 28 73 29  22 2b 51 24 3b 0d 20 20  |"Code(s)"+Q$;.  |
00002640  41 24 3d 22 3e 22 2b 67  6c 6b 24 2b 52 24 0d 20  |A$=">"+glk$+R$. |
00002650  70 72 69 6e 74 20 4e 24  2b 22 44 61 74 65 20 6f  |print N$+"Date o|
00002660  66 20 42 69 72 74 68 22  0d 20 70 72 2e 20 22 28  |f Birth". pr. "(|
00002670  49 66 20 61 20 4a 55 4e  49 4f 52 20 75 73 65 20  |If a JUNIOR use |
00002680  66 6f 72 6d 20 59 52 2e  4d 4f 2e 44 41 29 22 0d  |form YR.MO.DA)".|
00002690  20 70 72 69 6e 74 20 22  28 49 66 20 61 6e 20 41  | print "(If an A|
000026a0  44 55 4c 54 20 65 6e 74  65 72 20 39 39 29 22 0d  |DULT enter 99)".|
000026b0  20 70 72 69 6e 74 20 51  24 3b 0d 20 20 42 24 3d  | print Q$;.  B$=|
000026c0  67 6c 6b 24 2b 52 24 0d  20 70 72 69 6e 74 20 4e  |glk$+R$. print N|
000026d0  24 2b 22 53 75 72 6e 61  6d 65 22 2b 51 24 3b 0d  |$+"Surname"+Q$;.|
000026e0  20 52 45 4d 2e 2e 20 66  6c 61 67 20 58 25 20 75  | REM.. flag X% u|
000026f0  73 65 73 20 73 75 72 6e  61 6d 65 20 66 72 6f 6d  |ses surname from|
00002700  20 2e 46 49 4e 0d 20 20  69 66 20 58 25 3d 31 20  | .FIN.  if X%=1 |
00002710  74 68 65 6e 20 43 24 3d  53 24 2b 52 24 0d 20 20  |then C$=S$+R$.  |
00002720  69 66 20 58 25 3d 31 20  74 68 65 6e 20 70 72 69  |if X%=1 then pri|
00002730  6e 74 20 43 24 0d 20 20  69 66 20 58 25 3d 30 20  |nt C$.  if X%=0 |
00002740  74 68 65 6e 20 43 24 3d  67 6c 6b 24 2b 52 24 0d  |then C$=glk$+R$.|
00002750  20 70 72 69 6e 74 20 4e  24 2b 22 54 69 74 6c 65  | print N$+"Title|
00002760  20 61 6e 64 20 66 6f 72  65 6e 61 6d 65 22 2b 51  | and forename"+Q|
00002770  24 3b 0d 20 20 44 24 3d  67 6c 6b 24 2b 52 24 0d  |$;.  D$=glk$+R$.|
00002780  20 70 72 69 6e 74 20 4e  24 2b 22 41 64 64 72 65  | print N$+"Addre|
00002790  73 73 20 4c 69 6e 65 20  31 22 2b 51 24 3b 0d 20  |ss Line 1"+Q$;. |
000027a0  20 45 24 3d 67 6c 6b 24  2b 52 24 0d 20 70 72 69  | E$=glk$+R$. pri|
000027b0  6e 74 20 4e 24 2b 22 41  64 64 72 65 73 73 20 4c  |nt N$+"Address L|
000027c0  69 6e 65 20 32 22 2b 51  24 3b 0d 20 20 47 24 3d  |ine 2"+Q$;.  G$=|
000027d0  67 6c 6b 24 2b 52 24 0d  20 70 72 69 6e 74 20 4e  |glk$+R$. print N|
000027e0  24 2b 22 54 4f 57 4e 22  2b 51 24 3b 0d 20 20 48  |$+"TOWN"+Q$;.  H|
000027f0  24 3d 67 6c 6b 24 2b 52  24 0d 20 70 72 69 6e 74  |$=glk$+R$. print|
00002800  20 4e 24 2b 22 50 68 6f  6e 65 2c 20 4e 6f 74 65  | N$+"Phone, Note|
00002810  73 22 2b 51 24 3b 0d 20  20 4a 24 3d 67 6c 6b 24  |s"+Q$;.  J$=glk$|
00002820  2b 52 24 0d 20 70 72 6f  63 4c 4f 43 0d 20 74 79  |+R$. procLOC. ty|
00002830  70 65 20 41 24 2b 42 24  2b 43 24 2b 44 24 2b 45  |pe A$+B$+C$+D$+E|
00002840  24 2b 47 24 2b 48 24 2b  4a 24 2b 52 24 0d 20 52  |$+G$+H$+J$+R$. R|
00002850  45 4d 2e 2e 20 63 61 6e  63 65 6c 20 66 6c 61 67  |EM.. cancel flag|
00002860  20 58 25 0d 20 20 58 25  3d 30 0d 67 6f 74 6f 20  | X%.  X%=0.goto |
00002870  4d 31 0d 0d 2e 44 45 4c  0d 20 63 6c 73 0d 20 76  |M1...DEL. cls. v|
00002880  64 75 20 31 30 2c 31 30  2c 31 30 2c 37 0d 20 70  |du 10,10,10,7. p|
00002890  72 69 6e 74 20 22 44 45  4c 45 54 45 53 20 52 45  |rint "DELETES RE|
000028a0  43 4f 52 44 20 2d 20 41  52 45 20 59 4f 55 20 53  |CORD - ARE YOU S|
000028b0  55 52 45 22 3b 0d 20 70  72 69 6e 74 20 22 20 59  |URE";. print " Y|
000028c0  2f 4e 3f 22 0d 20 70 72  69 6e 74 0d 20 70 72 69  |/N?". print. pri|
000028d0  6e 74 20 51 24 3b 0d 20  5a 24 3d 67 63 6b 24 0d  |nt Q$;. Z$=gck$.|
000028e0  20 20 69 66 20 5a 24 3d  22 79 22 20 74 68 65 6e  |  if Z$="y" then|
000028f0  20 5a 24 3d 22 59 22 0d  20 20 69 66 20 5a 24 3c  | Z$="Y".  if Z$<|
00002900  3e 22 59 22 20 74 68 65  6e 20 67 6f 74 6f 20 4d  |>"Y" then goto M|
00002910  31 0d 20 70 72 6f 63 4c  4f 43 0d 20 52 45 4d 2e  |1. procLOC. REM.|
00002920  2e 20 66 69 72 73 74 20  6d 61 72 6b 20 65 6e 74  |. first mark ent|
00002930  69 72 65 20 72 65 63 6f  72 64 0d 20 20 63 75 72  |ire record.  cur|
00002940  73 6f 72 20 75 70 0d 20  20 66 6b 65 79 20 33 0d  |sor up.  fkey 3.|
00002950  20 20 63 75 72 73 6f 72  20 64 6f 77 6e 20 39 0d  |  cursor down 9.|
00002960  20 20 66 6b 65 79 20 33  0d 20 52 45 4d 2e 2e 20  |  fkey 3. REM.. |
00002970  66 6b 65 79 20 64 65 6c  65 74 65 73 20 6d 61 72  |fkey deletes mar|
00002980  6b 65 64 20 74 65 78 74  0d 20 20 66 6b 65 79 20  |ked text.  fkey |
00002990  37 0d 20 20 63 75 72 73  6f 72 20 64 6f 77 6e 0d  |7.  cursor down.|
000029a0  67 6f 74 6f 20 4d 31 0d  0d 2e 45 4e 44 20 0d 20  |goto M1...END . |
000029b0  76 64 75 20 37 0d 20 64  69 73 70 6c 61 79 0d 2d  |vdu 7. display.-|
000029c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000029e0  2d 2d 2d 2d 2d 2d 0d 52  45 4d 2e 2e 20 44 2e 53  |------.REM.. D.S|
000029f0  45 4c 4c 49 53 54 20 20  0d 52 45 4d 2e 2e 20 42  |ELLIST  .REM.. B|
00002a00  59 20 43 20 4a 20 57 61  6c 64 6f 63 6b 0d 52 45  |Y C J Waldock.RE|
00002a10  4d 2e 2e 20 28 43 29 20  54 68 65 20 4d 69 63 72  |M.. (C) The Micr|
00002a20  6f 20 55 73 65 72 0d 52  45 4d 2e 2e 20 53 65 6c  |o User.REM.. Sel|
00002a30  65 63 74 69 76 65 6c 79  20 6c 69 73 74 73 0d 52  |ectively lists.R|
00002a40  45 4d 2e 2e 20 20 66 69  65 6c 64 73 20 66 72 6f  |EM..  fields fro|
00002a50  6d 20 72 65 63 6f 72 64  73 0d 52 45 4d 2e 2e 20  |m records.REM.. |
00002a60  20 6f 66 20 61 20 66 69  6c 65 20 70 6c 61 63 65  | of a file place|
00002a70  64 20 69 6e 20 54 45 58  54 2e 0d 0d 20 70 72 6f  |d in TEXT... pro|
00002a80  63 49 4e 49 54 0d 0d 2e  63 6f 72 72 65 63 74 0d  |cINIT...correct.|
00002a90  20 70 72 6f 63 43 48 4f  4f 53 45 0d 20 70 72 6f  | procCHOOSE. pro|
00002aa0  63 43 48 45 43 4b 0d 20  20 69 66 20 58 24 3c 3e  |cCHECK.  if X$<>|
00002ab0  22 59 22 20 74 68 65 6e  20 67 6f 74 6f 20 63 6f  |"Y" then goto co|
00002ac0  72 72 65 63 74 0d 0d 72  65 70 65 61 74 0d 20 70  |rrect..repeat. p|
00002ad0  72 6f 63 53 45 4c 45 43  54 0d 75 6e 74 69 6c 20  |rocSELECT.until |
00002ae0  66 61 6c 73 65 0d 0d 0d  2e 49 4e 49 54 0d 20 52  |false....INIT. R|
00002af0  45 4d 2e 2e 20 65 6e 73  75 72 65 20 72 65 63 6f  |EM.. ensure reco|
00002b00  72 64 73 20 70 72 65 73  65 6e 74 0d 20 20 73 65  |rds present.  se|
00002b10  6c 65 63 74 20 74 65 78  74 0d 20 20 20 69 66 20  |lect text.   if |
00002b20  53 4f 54 20 41 4e 44 20  45 4f 54 20 74 68 65 6e  |SOT AND EOT then|
00002b30  20 70 72 6f 63 45 4d 50  54 59 0d 20 52 45 4d 2e  | procEMPTY. REM.|
00002b40  2e 20 73 65 65 20 69 66  20 66 69 6c 65 20 74 6f  |. see if file to|
00002b50  20 62 65 20 73 61 76 65  64 20 66 69 72 73 74 0d  | be saved first.|
00002b60  20 20 63 6c 73 0d 20 20  76 64 75 31 30 2c 31 30  |  cls.  vdu10,10|
00002b70  2c 31 30 2c 37 0d 20 20  70 72 2e 20 22 52 45 43  |,10,7.  pr. "REC|
00002b80  4f 52 44 53 20 69 6e 20  74 65 78 74 20 77 69 6c  |ORDS in text wil|
00002b90  6c 20 62 65 20 44 45 4c  45 54 45 44 22 0d 20 20  |l be DELETED".  |
00002ba0  70 72 69 6e 74 20 22 20  20 20 61 73 20 74 68 65  |print "   as the|
00002bb0  20 70 72 6f 67 72 61 6d  20 77 6f 72 6b 73 22 0d  | program works".|
00002bc0  20 20 70 72 2e 20 22 44  6f 20 79 6f 75 20 77 61  |  pr. "Do you wa|
00002bd0  6e 74 20 74 6f 20 73 61  76 65 20 74 68 65 6d 20  |nt to save them |
00002be0  66 69 72 73 74 22 3b 0d  20 20 70 72 69 6e 74 20  |first";.  print |
00002bf0  22 3a 20 59 2f 4e 3f 20  22 3b 0d 20 20 59 24 3d  |": Y/N? ";.  Y$=|
00002c00  67 63 6b 24 0d 20 20 20  69 66 20 59 24 3d 22 79  |gck$.   if Y$="y|
00002c10  22 74 68 65 6e 20 59 24  3d 22 59 22 0d 20 20 70  |"then Y$="Y".  p|
00002c20  72 69 6e 74 20 59 24 0d  20 20 20 69 66 20 59 24  |rint Y$.   if Y$|
00002c30  3d 22 59 22 20 74 68 65  6e 20 67 6f 74 6f 20 41  |="Y" then goto A|
00002c40  42 4f 52 54 0d 20 52 45  4d 2e 2e 20 73 65 74 20  |BORT. REM.. set |
00002c50  63 6f 6e 73 74 61 6e 74  73 2c 20 63 61 72 72 69  |constants, carri|
00002c60  61 67 65 20 72 65 74 75  72 6e 0d 20 20 52 24 3d  |age return.  R$=|
00002c70  63 68 72 24 31 33 0d 20  52 45 4d 2e 2e 20 20 20  |chr$13. REM..   |
00002c80  61 6e 64 20 63 6f 6d 6d  61 2b 73 70 61 63 65 0d  |and comma+space.|
00002c90  20 20 4b 24 3d 22 2c 20  22 0d 20 52 45 4d 2e 2e  |  K$=", ". REM..|
00002ca0  20 72 65 73 65 74 20 6e  75 6d 62 65 72 20 6f 66  | reset number of|
00002cb0  20 6f 70 74 69 6f 6e 61  6c 20 6c 69 6e 65 73 0d  | optional lines.|
00002cc0  20 20 4c 25 3d 30 0d 20  52 45 4d 2e 2e 20 77 69  |  L%=0. REM.. wi|
00002cd0  70 65 20 73 65 67 6d 65  6e 74 20 31 0d 20 20 73  |pe segment 1.  s|
00002ce0  65 6c 65 63 74 20 73 65  67 6d 65 6e 74 20 31 0d  |elect segment 1.|
00002cf0  20 20 64 65 6c 65 74 65  20 74 65 78 74 0d 20 52  |  delete text. R|
00002d00  45 4d 2e 2e 20 72 65 74  75 72 6e 20 74 6f 20 74  |EM.. return to t|
00002d10  65 78 74 0d 20 20 73 65  6c 65 63 74 20 74 65 78  |ext.  select tex|
00002d20  74 0d 20 20 63 75 72 73  6f 72 20 74 6f 70 0d 20  |t.  cursor top. |
00002d30  20 63 75 72 73 6f 72 20  64 6f 77 6e 20 34 0d 65  | cursor down 4.e|
00002d40  6e 64 70 72 6f 63 0d 0d  2e 45 4d 50 54 59 0d 20  |ndproc...EMPTY. |
00002d50  63 6c 73 0d 20 76 64 75  31 30 2c 31 30 2c 31 30  |cls. vdu10,10,10|
00002d60  2c 37 0d 20 70 72 69 6e  74 20 22 20 20 20 20 20  |,7. print "     |
00002d70  54 68 65 72 65 20 69 73  20 6e 6f 20 64 61 74 61  |There is no data|
00002d80  20 69 6e 20 54 45 58 54  22 0d 20 70 72 69 6e 74  | in TEXT". print|
00002d90  0d 20 70 72 69 6e 74 20  22 20 20 20 20 66 6f 72  |. print "    for|
00002da0  20 74 68 65 20 70 72 6f  67 72 61 6d 20 74 6f 20  | the program to |
00002db0  77 6f 72 6b 20 6f 6e 22  0d 20 70 72 69 6e 74 0d  |work on". print.|
00002dc0  20 70 72 69 6e 74 20 22  20 20 20 20 70 72 65 73  | print "    pres|
00002dd0  73 20 6b 65 79 20 74 6f  20 52 45 54 55 52 4e 20  |s key to RETURN |
00002de0  74 6f 20 54 65 78 74 22  0d 20 47 25 3d 67 65 74  |to Text". G%=get|
00002df0  0d 20 64 69 2e 0d 65 6e  64 0d 0d 2e 41 42 4f 52  |. di..end...ABOR|
00002e00  54 0d 20 73 65 6c 65 63  74 20 74 65 78 74 0d 20  |T. select text. |
00002e10  76 64 75 31 30 2c 31 30  2c 31 30 2c 37 0d 20 70  |vdu10,10,10,7. p|
00002e20  2e 22 70 72 65 73 73 20  6b 65 79 20 74 68 65 6e  |."press key then|
00002e30  20 73 61 76 65 20 64 61  74 61 20 69 6e 20 74 65  | save data in te|
00002e40  78 74 22 0d 20 47 25 3d  67 65 74 0d 20 64 69 73  |xt". G%=get. dis|
00002e50  70 6c 61 79 0d 45 4e 44  0d 0d 20 52 45 4d 2e 2e  |play.END.. REM..|
00002e60  20 75 73 65 72 20 73 65  6c 65 63 74 73 20 66 69  | user selects fi|
00002e70  65 6c 64 73 20 74 6f 20  62 65 20 6c 69 73 74 65  |elds to be liste|
00002e80  64 0d 2e 43 48 4f 4f 53  45 0d 20 52 45 4d 2e 2e  |d..CHOOSE. REM..|
00002e90  20 72 65 73 65 74 20 66  6c 61 67 73 20 46 25 0d  | reset flags F%.|
00002ea0  20 20 46 25 3d 30 0d 20  52 45 4d 2e 2e 20 49 25  |  F%=0. REM.. I%|
00002eb0  20 77 69 6c 6c 20 73 65  74 20 66 6c 61 67 73 0d  | will set flags.|
00002ec0  20 20 49 25 3d 31 0d 20  52 45 4d 2e 2e 20 67 65  |  I%=1. REM.. ge|
00002ed0  74 20 70 72 69 6e 74 20  69 6e 73 74 72 75 63 74  |t print instruct|
00002ee0  69 6f 6e 73 0d 20 20 63  6c 73 0d 20 20 76 64 75  |ions.  cls.  vdu|
00002ef0  31 30 2c 31 30 2c 31 30  0d 20 20 70 72 69 6e 74  |10,10,10.  print|
00002f00  20 22 50 72 69 6e 74 20  43 6f 64 65 6c 69 6e 65  | "Print Codeline|
00002f10  20 2d 20 59 2f 4e 3f 20  22 3b 0d 20 20 70 72 6f  | - Y/N? ";.  pro|
00002f20  63 53 45 54 46 4c 41 47  0d 20 20 70 72 69 6e 74  |cSETFLAG.  print|
00002f30  20 22 50 72 69 6e 74 20  44 61 74 65 20 6f 66 20  | "Print Date of |
00002f40  62 69 72 74 68 20 2d 20  59 2f 4e 3f 20 22 3b 0d  |birth - Y/N? ";.|
00002f50  20 20 70 72 6f 63 53 45  54 46 4c 41 47 0d 20 20  |  procSETFLAG.  |
00002f60  70 72 69 6e 74 20 22 50  72 69 6e 74 20 41 64 64  |print "Print Add|
00002f70  72 65 73 73 20 4c 69 6e  65 20 31 20 2d 20 59 2f  |ress Line 1 - Y/|
00002f80  4e 3f 20 22 3b 0d 20 20  70 72 6f 63 53 45 54 46  |N? ";.  procSETF|
00002f90  4c 41 47 0d 20 20 70 72  69 6e 74 20 22 50 72 69  |LAG.  print "Pri|
00002fa0  6e 74 20 41 64 64 72 65  73 73 20 4c 69 6e 65 20  |nt Address Line |
00002fb0  32 20 2d 20 59 2f 4e 3f  20 22 3b 0d 20 20 70 72  |2 - Y/N? ";.  pr|
00002fc0  6f 63 53 45 54 46 4c 41  47 0d 20 20 70 72 69 6e  |ocSETFLAG.  prin|
00002fd0  74 20 22 50 72 69 6e 74  20 54 6f 77 6e 3f 20 2d  |t "Print Town? -|
00002fe0  20 59 2f 4e 3f 20 22 3b  0d 20 20 70 72 6f 63 53  | Y/N? ";.  procS|
00002ff0  45 54 46 4c 41 47 0d 20  20 70 72 69 6e 74 20 22  |ETFLAG.  print "|
00003000  50 72 69 6e 74 20 50 68  6f 6e 65 20 6e 75 6d 62  |Print Phone numb|
00003010  65 72 20 2d 20 59 2f 4e  3f 20 22 3b 0d 20 20 70  |er - Y/N? ";.  p|
00003020  72 6f 63 53 45 54 46 4c  41 47 0d 65 6e 64 70 72  |rocSETFLAG.endpr|
00003030  6f 63 0d 0d 2e 53 45 54  46 4c 41 47 0d 20 52 45  |oc...SETFLAG. RE|
00003040  4d 2e 2e 20 67 65 74 20  59 2f 4e 20 72 65 73 70  |M.. get Y/N resp|
00003050  6f 6e 73 65 0d 20 20 58  24 3d 67 63 6b 24 0d 20  |onse.  X$=gck$. |
00003060  20 69 66 20 58 24 3d 22  79 22 20 74 68 65 6e 20  | if X$="y" then |
00003070  58 24 3d 22 59 22 0d 20  20 70 72 69 6e 74 20 58  |X$="Y".  print X|
00003080  24 0d 20 20 70 72 69 6e  74 0d 20 52 45 4d 2e 2e  |$.  print. REM..|
00003090  20 73 65 74 20 66 6c 61  67 20 66 6f 72 20 72 65  | set flag for re|
000030a0  63 6f 72 64 20 6c 69 6e  65 20 28 66 69 65 6c 64  |cord line (field|
000030b0  29 0d 20 20 69 66 20 58  24 3d 22 59 22 20 74 68  |).  if X$="Y" th|
000030c0  65 6e 20 46 25 3d 46 25  20 4f 52 20 49 25 0d 20  |en F%=F% OR I%. |
000030d0  52 45 4d 2e 2e 20 61 64  64 20 74 6f 20 6e 75 6d  |REM.. add to num|
000030e0  62 65 72 20 6f 66 20 6f  70 74 69 6f 6e 61 6c 20  |ber of optional |
000030f0  6c 69 6e 65 73 0d 20 20  69 66 20 58 24 3d 22 59  |lines.  if X$="Y|
00003100  22 20 74 68 65 6e 20 4c  25 3d 4c 25 2b 31 0d 20  |" then L%=L%+1. |
00003110  52 45 4d 2e 2e 20 49 25  20 69 73 20 31 2c 20 32  |REM.. I% is 1, 2|
00003120  2c 20 34 2c 20 38 2c 20  31 36 2c 20 33 32 20 69  |, 4, 8, 16, 32 i|
00003130  6e 20 74 75 72 6e 0d 20  20 49 25 3d 49 25 2a 32  |n turn.  I%=I%*2|
00003140  0d 65 6e 64 70 72 6f 63  0d 0d 2e 43 48 45 43 4b  |.endproc...CHECK|
00003150  0d 20 70 72 69 6e 74 0d  20 70 72 69 6e 74 22 41  |. print. print"A|
00003160  72 65 20 74 68 65 20 61  62 6f 76 65 20 63 68 6f  |re the above cho|
00003170  69 63 65 73 20 22 3b 0d  20 70 72 69 6e 74 22 63  |ices ";. print"c|
00003180  6f 72 72 65 63 74 20 2d  20 59 2f 4e 3f 20 22 3b  |orrect - Y/N? ";|
00003190  0d 20 58 24 3d 67 63 6b  24 0d 20 69 66 20 58 24  |. X$=gck$. if X$|
000031a0  3d 22 79 22 20 74 68 65  6e 20 58 24 3d 22 59 22  |="y" then X$="Y"|
000031b0  0d 20 70 72 69 6e 74 20  58 24 0d 65 6e 64 70 72  |. print X$.endpr|
000031c0  6f 63 0d 0d 20 52 45 4d  2e 2e 20 70 72 6f 63 20  |oc.. REM.. proc |
000031d0  73 65 6c 65 63 74 73 20  66 69 65 6c 64 73 20 61  |selects fields a|
000031e0  73 20 63 68 6f 73 65 6e  0d 20 52 45 4d 2e 2e 20  |s chosen. REM.. |
000031f0  61 6e 64 20 61 64 64 73  20 74 6f 20 6c 69 73 74  |and adds to list|
00003200  20 69 6e 20 73 65 67 6d  65 6e 74 20 31 0d 2e 53  | in segment 1..S|
00003210  45 4c 45 43 54 0d 20 20  73 65 6c 65 63 74 20 74  |ELECT.  select t|
00003220  65 78 74 0d 20 52 45 4d  2e 2e 20 52 65 73 65 74  |ext. REM.. Reset|
00003230  20 70 72 69 6e 74 20 73  74 72 69 6e 67 20 50 24  | print string P$|
00003240  20 77 68 69 63 68 20 69  73 0d 20 52 45 4d 2e 2e  | which is. REM..|
00003250  20 20 74 6f 20 62 65 20  62 75 69 6c 74 20 75 70  |  to be built up|
00003260  20 0d 20 52 45 4d 2e 2e  20 20 66 72 6f 6d 20 66  | . REM..  from f|
00003270  69 65 6c 64 73 20 74 6f  20 62 65 20 6c 69 73 74  |ields to be list|
00003280  65 64 2e 0d 20 20 50 24  3d 22 22 0d 20 52 45 4d  |ed..  P$="". REM|
00003290  2e 2e 20 52 65 73 65 74  20 63 6f 75 6e 74 65 72  |.. Reset counter|
000032a0  20 6f 66 20 66 69 65 6c  64 73 0d 20 52 45 4d 2e  | of fields. REM.|
000032b0  2e 20 20 61 64 64 65 64  20 74 6f 20 50 24 2e 0d  |.  added to P$..|
000032c0  20 20 4d 25 3d 30 0d 20  52 45 4d 2e 2e 20 73 65  |  M%=0. REM.. se|
000032d0  74 20 6f 70 65 6e 69 6e  67 20 6d 61 72 6b 65 72  |t opening marker|
000032e0  20 66 6f 72 20 64 65 6c  65 74 65 0d 20 20 66 6b  | for delete.  fk|
000032f0  65 79 20 33 0d 20 52 45  4d 2e 2e 20 72 65 61 64  |ey 3. REM.. read|
00003300  20 66 69 72 73 74 20 66  6f 75 72 20 6c 69 6e 65  | first four line|
00003310  73 20 28 66 69 65 6c 64  73 29 0d 20 20 41 24 3d  |s (fields).  A$=|
00003320  67 6c 74 24 0d 20 20 20  69 66 20 41 24 3d 22 3e  |glt$.   if A$=">|
00003330  45 4e 44 22 20 74 68 65  6e 20 67 6f 74 6f 20 45  |END" then goto E|
00003340  4e 44 0d 20 20 42 24 3d  47 4c 54 24 0d 20 20 20  |ND.  B$=GLT$.   |
00003350  69 66 20 42 24 3d 22 39  39 22 20 74 68 65 6e 20  |if B$="99" then |
00003360  42 24 3d 22 41 64 75 6c  74 22 0d 20 20 43 24 3d  |B$="Adult".  C$=|
00003370  67 6c 74 24 0d 20 20 44  24 3d 67 6c 74 24 0d 0d  |glt$.  D$=glt$..|
00003380  20 52 45 4d 2e 2e 20 73  74 61 72 74 20 70 72 69  | REM.. start pri|
00003390  6e 74 20 73 74 72 69 6e  67 20 50 24 20 77 69 74  |nt string P$ wit|
000033a0  68 20 6e 61 6d 65 0d 20  20 50 24 3d 50 24 2b 44  |h name.  P$=P$+D|
000033b0  24 2b 22 20 22 2b 43 24  2b 4b 24 0d 0d 20 52 45  |$+" "+C$+K$.. RE|
000033c0  4d 2e 2e 20 66 69 65 6c  64 73 20 6d 75 73 74 20  |M.. fields must |
000033d0  62 65 20 70 61 73 73 65  64 20 74 6f 0d 20 52 45  |be passed to. RE|
000033e0  4d 2e 2e 20 42 55 49 4c  44 53 54 52 49 4e 47 20  |M.. BUILDSTRING |
000033f0  61 73 20 45 24 0d 0d 20  52 45 4d 2e 2e 20 63 6f  |as E$.. REM.. co|
00003400  64 65 20 66 69 65 6c 64  0d 20 20 45 24 3d 41 24  |de field.  E$=A$|
00003410  0d 20 20 69 66 20 28 46  25 20 41 4e 44 20 31 29  |.  if (F% AND 1)|
00003420  3d 31 20 74 68 65 6e 20  70 72 6f 63 42 55 49 4c  |=1 then procBUIL|
00003430  44 53 54 52 49 4e 47 0d  0d 52 45 4d 2e 2e 20 72  |DSTRING..REM.. r|
00003440  65 61 64 20 6e 65 78 74  20 66 6f 75 72 20 66 69  |ead next four fi|
00003450  65 6c 64 73 20 69 6e 20  74 75 72 6e 0d 52 45 4d  |elds in turn.REM|
00003460  2e 2e 20 61 6e 64 20 61  64 64 20 74 6f 20 50 24  |.. and add to P$|
00003470  20 69 66 20 66 6c 61 67  20 73 65 74 0d 0d 20 52  | if flag set.. R|
00003480  45 4d 2e 2e 20 64 61 74  65 5f 6f 66 5f 62 69 72  |EM.. date_of_bir|
00003490  74 68 20 66 69 65 6c 64  0d 20 52 45 4d 2e 2e 20  |th field. REM.. |
000034a0  63 61 6e 20 62 65 20 6d  6f 76 65 64 20 74 6f 20  |can be moved to |
000034b0  70 72 65 63 65 64 65 20  6e 61 6d 65 2e 0d 20 20  |precede name..  |
000034c0  45 24 3d 42 24 0d 20 20  69 66 20 28 46 25 20 41  |E$=B$.  if (F% A|
000034d0  4e 44 20 32 29 3d 32 20  74 68 65 6e 20 70 72 6f  |ND 2)=2 then pro|
000034e0  63 42 55 49 4c 44 53 54  52 49 4e 47 0d 0d 20 52  |cBUILDSTRING.. R|
000034f0  45 4d 2e 2e 20 61 64 64  72 65 73 73 20 6c 69 6e  |EM.. address lin|
00003500  65 20 31 0d 20 20 45 24  3d 67 6c 74 24 0d 20 20  |e 1.  E$=glt$.  |
00003510  69 66 20 28 46 25 20 41  4e 44 20 34 29 3d 34 20  |if (F% AND 4)=4 |
00003520  74 68 65 6e 20 70 72 6f  63 42 55 49 4c 44 53 54  |then procBUILDST|
00003530  52 49 4e 47 0d 0d 20 52  45 4d 2e 2e 20 61 64 64  |RING.. REM.. add|
00003540  72 65 73 73 20 6c 69 6e  65 20 32 0d 20 20 45 24  |ress line 2.  E$|
00003550  3d 67 6c 74 24 0d 20 20  69 66 20 28 46 25 20 41  |=glt$.  if (F% A|
00003560  4e 44 20 38 29 3d 38 20  74 68 65 6e 20 70 72 6f  |ND 8)=8 then pro|
00003570  63 42 55 49 4c 44 53 54  52 49 4e 47 0d 0d 20 52  |cBUILDSTRING.. R|
00003580  45 4d 2e 2e 20 74 6f 77  6e 0d 20 20 45 24 3d 67  |EM.. town.  E$=g|
00003590  6c 74 24 0d 20 20 69 66  20 28 46 25 20 41 4e 44  |lt$.  if (F% AND|
000035a0  20 31 36 29 3d 31 36 20  74 68 65 6e 20 70 72 6f  | 16)=16 then pro|
000035b0  63 42 55 49 4c 44 53 54  52 49 4e 47 0d 20 52 45  |cBUILDSTRING. RE|
000035c0  4d 2e 2e 20 70 68 6f 6e  65 20 6e 75 6d 62 65 72  |M.. phone number|
000035d0  0d 20 20 45 24 3d 67 6c  74 24 0d 20 20 69 66 20  |.  E$=glt$.  if |
000035e0  28 46 25 20 41 4e 44 20  33 32 29 3d 33 32 20 74  |(F% AND 32)=32 t|
000035f0  68 65 6e 20 70 72 6f 63  42 55 49 4c 44 53 54 52  |hen procBUILDSTR|
00003600  49 4e 47 0d 20 52 45 4d  2e 2e 20 63 6f 6d 70 6c  |ING. REM.. compl|
00003610  65 74 65 20 50 24 20 77  69 74 68 20 63 61 72 72  |ete P$ with carr|
00003620  69 61 67 65 20 72 65 74  75 72 6e 0d 20 20 50 24  |iage return.  P$|
00003630  3d 50 24 2b 52 24 0d 0d  20 52 45 4d 2e 2e 20 73  |=P$+R$.. REM.. s|
00003640  74 65 70 20 6f 76 65 72  20 6c 61 73 74 20 6c 69  |tep over last li|
00003650  6e 65 20 6f 66 20 72 65  63 6f 72 64 0d 20 20 63  |ne of record.  c|
00003660  75 72 73 6f 72 20 64 6f  77 6e 0d 0d 20 52 45 4d  |ursor down.. REM|
00003670  2e 2e 20 53 65 74 20 63  6c 6f 73 69 6e 67 20 6d  |.. Set closing m|
00003680  61 72 6b 65 72 0d 20 20  66 6b 65 79 20 33 0d 20  |arker.  fkey 3. |
00003690  52 45 4d 2e 2e 20 20 20  61 6e 64 20 64 65 6c 65  |REM..   and dele|
000036a0  74 65 20 72 65 63 6f 72  64 20 6a 75 73 74 20 72  |te record just r|
000036b0  65 61 64 2e 0d 20 20 66  6b 65 79 20 37 0d 0d 20  |ead..  fkey 7.. |
000036c0  52 45 4d 2e 2e 20 61 64  64 20 50 24 20 74 6f 20  |REM.. add P$ to |
000036d0  73 65 67 6d 65 6e 74 20  31 0d 20 20 73 65 6c 65  |segment 1.  sele|
000036e0  63 74 20 73 65 67 6d 65  6e 74 20 31 0d 20 20 74  |ct segment 1.  t|
000036f0  79 70 65 20 50 24 0d 20  20 64 69 73 70 6c 61 79  |ype P$.  display|
00003700  0d 65 6e 64 70 72 6f 63  0d 0d 2e 42 55 49 4c 44  |.endproc...BUILD|
00003710  53 54 52 49 4e 47 0d 20  20 50 24 3d 50 24 2b 45  |STRING.  P$=P$+E|
00003720  24 0d 20 20 52 45 4d 2e  2e 20 69 6e 63 72 65 6d  |$.  REM.. increm|
00003730  65 6e 74 20 63 6f 75 6e  74 65 72 2c 20 66 69 65  |ent counter, fie|
00003740  6c 64 73 20 61 64 64 65  64 0d 20 20 20 4d 25 3d  |lds added.   M%=|
00003750  4d 25 2b 31 0d 20 20 52  45 4d 2e 2e 20 69 66 20  |M%+1.  REM.. if |
00003760  6c 65 73 73 20 74 68 61  6e 20 6c 69 6d 69 74 20  |less than limit |
00003770  61 64 64 20 4b 24 0d 20  20 20 69 66 20 4d 25 3c  |add K$.   if M%<|
00003780  4c 25 20 61 6e 64 20 45  24 3c 3e 22 22 20 74 68  |L% and E$<>"" th|
00003790  65 6e 20 50 24 3d 50 24  2b 4b 24 0d 65 6e 64 70  |en P$=P$+K$.endp|
000037a0  72 6f 63 0d 0d 2e 45 4e  44 0d 20 73 65 6c 65 63  |roc...END. selec|
000037b0  74 20 74 65 78 74 0d 20  64 65 6c 65 74 65 20 74  |t text. delete t|
000037c0  65 78 74 0d 20 73 65 6c  65 63 74 20 73 65 67 6d  |ext. select segm|
000037d0  65 6e 74 20 31 0d 20 76  64 75 37 0d 20 64 69 73  |ent 1. vdu7. dis|
000037e0  70 6c 61 79 0d 45 4e 44  0d 2d 2d 2d 2d 2d 2d 2d  |play.END.-------|
000037f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003810  0d 52 45 4d 2e 2e 20 44  2e 53 54 41 54 53 0d 52  |.REM.. D.STATS.R|
00003820  45 4d 2e 2e 20 42 59 20  43 20 4a 20 57 61 6c 64  |EM.. BY C J Wald|
00003830  6f 63 6b 0d 52 45 4d 2e  2e 20 28 43 29 20 54 68  |ock.REM.. (C) Th|
00003840  65 20 4d 69 63 72 6f 20  55 73 65 72 0d 52 45 4d  |e Micro User.REM|
00003850  2e 2e 20 61 6e 61 6c 79  7a 65 73 20 61 64 75 6c  |.. analyzes adul|
00003860  74 73 20 61 6e 64 20 6a  75 6e 69 6f 72 73 0d 52  |ts and juniors.R|
00003870  45 4d 2e 2e 20 61 6e 61  6c 79 7a 65 73 20 70 61  |EM.. analyzes pa|
00003880  69 64 20 61 6e 64 20 75  6e 70 61 69 64 0d 0d 52  |id and unpaid..R|
00003890  45 4d 20 41 25 3d 61 6c  6c 20 6d 65 6d 62 65 72  |EM A%=all member|
000038a0  73 0d 20 41 25 3d 30 0d  52 45 4d 20 42 25 3d 61  |s. A%=0.REM B%=a|
000038b0  64 75 6c 74 73 20 70 61  69 64 0d 20 42 25 3d 30  |dults paid. B%=0|
000038c0  0d 52 45 4d 20 43 25 3d  61 64 75 6c 74 73 20 75  |.REM C%=adults u|
000038d0  6e 70 61 69 64 0d 20 43  25 3d 30 0d 52 45 4d 20  |npaid. C%=0.REM |
000038e0  44 25 3d 6a 75 6e 69 6f  72 73 20 70 61 69 64 0d  |D%=juniors paid.|
000038f0  20 44 25 3d 30 0d 52 45  4d 20 45 25 3d 6a 75 6e  | D%=0.REM E%=jun|
00003900  69 6f 72 73 20 75 6e 70  61 69 64 0d 20 45 25 3d  |iors unpaid. E%=|
00003910  30 0d 0d 63 6c 73 0d 76  64 75 31 30 2c 31 30 2c  |0..cls.vdu10,10,|
00003920  31 30 0d 70 72 69 6e 74  22 20 20 20 20 20 57 4f  |10.print"     WO|
00003930  52 4b 49 4e 47 20 2e 20  2e 20 2e 20 70 6c 65 61  |RKING . . . plea|
00003940  73 65 20 77 61 69 74 22  0d 0d 73 65 6c 65 63 74  |se wait"..select|
00003950  20 74 65 78 74 0d 63 75  72 73 6f 72 20 74 6f 70  | text.cursor top|
00003960  0d 72 65 70 65 61 74 0d  20 66 69 6e 64 20 22 3e  |.repeat. find ">|
00003970  22 0d 20 63 75 72 73 6f  72 20 72 69 67 68 74 0d  |". cursor right.|
00003980  20 52 45 4d 2e 2e 20 67  65 74 20 63 6f 64 65 20  | REM.. get code |
00003990  63 68 61 72 61 63 74 65  72 0d 20 52 45 4d 2e 2e  |character. REM..|
000039a0  20 66 6f 72 20 70 61 69  64 20 28 2a 29 20 6f 72  | for paid (*) or|
000039b0  20 75 6e 70 61 69 64 28  2f 29 0d 20 20 43 24 3d  | unpaid(/).  C$=|
000039c0  67 63 74 24 0d 20 52 45  4d 2e 2e 20 67 6f 20 74  |gct$. REM.. go t|
000039d0  6f 20 73 74 61 72 74 20  6f 66 20 6e 65 78 74 20  |o start of next |
000039e0  6c 69 6e 65 0d 20 20 47  24 3d 67 6c 74 24 0d 20  |line.  G$=glt$. |
000039f0  52 45 4d 2e 2e 20 67 65  74 20 79 65 61 72 20 76  |REM.. get year v|
00003a00  61 6c 75 65 20 28 62 69  72 74 68 64 61 74 65 29  |alue (birthdate)|
00003a10  0d 20 20 54 25 3d 56 41  4c 67 6c 74 24 0d 20 52  |.  T%=VALglt$. R|
00003a20  45 4d 2e 2e 20 61 64 64  20 74 6f 20 61 70 70 72  |EM.. add to appr|
00003a30  6f 70 72 69 61 74 65 20  63 6f 75 6e 74 0d 20 20  |opriate count.  |
00003a40  20 69 66 20 43 24 3c 3e  22 45 22 20 74 68 65 6e  | if C$<>"E" then|
00003a50  20 41 25 3d 41 25 2b 31  0d 20 20 20 69 66 20 54  | A%=A%+1.   if T|
00003a60  25 3d 39 39 20 61 6e 64  20 43 24 3d 22 2a 22 74  |%=99 and C$="*"t|
00003a70  68 65 6e 20 42 25 3d 42  25 2b 31 0d 20 20 20 69  |hen B%=B%+1.   i|
00003a80  66 20 54 25 3d 39 39 20  61 6e 64 20 43 24 3d 22  |f T%=99 and C$="|
00003a90  2f 22 20 74 68 65 6e 20  43 25 3d 43 25 2b 31 20  |/" then C%=C%+1 |
00003aa0  0d 20 20 20 69 66 20 54  25 3c 3e 39 39 20 61 6e  |.   if T%<>99 an|
00003ab0  64 20 43 24 3d 22 2a 22  74 68 65 6e 20 44 25 3d  |d C$="*"then D%=|
00003ac0  44 25 2b 31 0d 20 20 20  69 66 20 54 25 3c 3e 39  |D%+1.   if T%<>9|
00003ad0  39 20 61 6e 64 20 43 24  3d 22 2f 22 20 74 68 65  |9 and C$="/" the|
00003ae0  6e 20 45 25 3d 45 25 2b  31 20 0d 75 6e 74 69 6c  |n E%=E%+1 .until|
00003af0  20 45 4f 54 0d 0d 63 6c  73 0d 76 64 75 31 30 2c  | EOT..cls.vdu10,|
00003b00  31 30 2c 31 30 0d 70 72  69 6e 74 20 22 20 20 20  |10,10.print "   |
00003b10  20 41 44 55 4c 54 53 20  70 61 69 64 3a 20 20 20  | ADULTS paid:   |
00003b20  22 3b 0d 47 24 3d 73 74  72 24 42 25 0d 70 72 6f  |";.G$=str$B%.pro|
00003b30  63 52 4a 0d 70 72 69 6e  74 20 22 20 20 20 20 4a  |cRJ.print "    J|
00003b40  55 4e 49 4f 52 53 20 70  61 69 64 3a 20 20 22 3b  |UNIORS paid:  ";|
00003b50  0d 47 24 3d 73 74 72 24  44 25 0d 70 72 6f 63 52  |.G$=str$D%.procR|
00003b60  4a 0d 70 72 69 6e 74 20  22 20 20 20 20 41 44 55  |J.print "    ADU|
00003b70  4c 54 53 20 75 6e 70 61  69 64 3a 20 22 3b 0d 47  |LTS unpaid: ";.G|
00003b80  24 3d 73 74 72 24 43 25  0d 70 72 6f 63 52 4a 0d  |$=str$C%.procRJ.|
00003b90  70 72 69 6e 74 20 22 20  20 20 20 4a 55 4e 49 4f  |print "    JUNIO|
00003ba0  52 53 20 75 6e 70 61 69  64 3a 22 3b 0d 47 24 3d  |RS unpaid:";.G$=|
00003bb0  73 74 72 24 45 25 0d 70  72 6f 63 52 4a 0d 70 72  |str$E%.procRJ.pr|
00003bc0  69 6e 74 22 20 20 20 20  41 6c 6c 20 6d 65 6d 62  |int"    All memb|
00003bd0  65 72 73 3a 20 20 20 22  3b 0d 47 24 3d 73 74 72  |ers:   ";.G$=str|
00003be0  24 41 25 0d 70 72 6f 63  52 4a 0d 70 72 69 6e 74  |$A%.procRJ.print|
00003bf0  0d 70 72 69 6e 74 22 50  72 65 73 73 20 61 6e 79  |.print"Press any|
00003c00  20 6b 65 79 20 74 6f 20  63 6f 6e 74 69 6e 75 65  | key to continue|
00003c10  22 0d 47 24 3d 67 63 6b  24 0d 64 69 2e 0d 65 6e  |".G$=gck$.di..en|
00003c20  64 0d 0d 2e 52 4a 0d 20  52 45 4d 2e 2e 20 72 69  |d...RJ. REM.. ri|
00003c30  67 68 74 2d 6a 75 73 74  69 66 69 65 73 20 73 74  |ght-justifies st|
00003c40  72 69 6e 67 20 47 24 0d  20 47 25 3d 35 2d 6c 65  |ring G$. G%=5-le|
00003c50  6e 47 24 0d 20 64 6f 74  68 69 73 0d 20 20 70 72  |nG$. dothis.  pr|
00003c60  69 6e 74 22 20 22 3b 0d  20 74 69 6d 65 73 47 25  |int" ";. timesG%|
00003c70  0d 20 70 72 69 6e 74 47  24 0d 65 6e 64 70 72 6f  |. printG$.endpro|
00003c80  63 0d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |c.--------------|
00003c90  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003ca0  2d 2d 2d 2d 2d 2d 2d 2d  2d                       |---------|
00003ca9
WrdBase.m0
WrdBase.m1
WrdBase.m2
WrdBase.m4
WrdBase.m5