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:
- AEW website » mu » mu_5_25_discs_Micro_User_08_11_D-MU08_11.ssd » WrdBase
- Personal collection » Acorn tapes » Electron_User » Electron_User_tape18a_acorn_eu_1991_january.wav » WrdBase
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