PI QG 10 REM DATABASE 128
HC 36 IFCKO0THENGOSUB394
FG 40 FAST: CLR:G0SUB16:SLOW:INPUT"ICLR}{DOWN}HOW t SPACE }MANY FIELDS IN EACH RECORD? 0
{4 LEFTjll;F:IFF=0THEN68 CB 42 FAST: GOSUB24:SLOW:FORI=1TOF
MC 44 PRINT"{HOME}{4 DOWN}{RVS}FIELD #";I:PRINT"
{DOWN}TITLE ?{29 SPACES}"
AF 46 PRINT"LENGTH{31 SPACES}{HOME}"
MP 47 PRINT"{5 DOWN}";TAB(6);:INPUTF$(I):PRINTTAB(
6);:INPUTL%(I)
DA 48 IF F$(l)="" OR L%(l)=0 THEN PRINT "EACH FIEL D MUST HAVE A TITLE AND LENGTH":I=F:SLEEP3:G OTO40
QJ 49 NEXT I
HH 50 REM *** COMPUTE # RECORDS ***
MC 52 FORJ=0TOF:RL=RL+L%(J):NEXTJ:RL=RL+3*(F+l)+5:
R=INT((MEM-12*(F+1)-2100)/RL)
SG 54 PRINT"{DOWN} YOUR SELECTIONS WILL ALLOW APPR OX"
XS 56 PRINTR;"RECORDS.{2 SPACES}{RVS}A{OFF}CCEPT O R {RVS}R{OFF}EJECT?"
HG 58 GOSUB30:IFA$="R"THEN38
PG 60 IFA$="A"THENGOSUB26:CK=1:GOTO68
DK 62 GOTO58 | j
HG 64 REM *** MENU *** '—'
PC 68 SLOW: PRINT"{CLR} {RVS}{8 SPACES}DATABASE 12
8 MENU{14 SPACES}" , >
EP 70 PRINT"{4 DOWN}{5 SPACES}{RVS}A{OFF}DD [_j
{16 SPACES}{RVS}P{OFF}RINT"
SG 72 PRINT"{DOWN}{5 SPACES}{RVS}C{OFF}REATE
{13 SPACES}{RVS}R{OFF}EAD" \ j
DA 74 PRINT"{DOWN}{5 SPACES}{RVS}D{OFF}ELETE *—' {13 SPACES}{RVS}S{OFF}ORT"
GH 76 PRINT"{DOWN}{5 SPACES}{RVS}F{OFF}IND , .
{15 SPACES}{RVS}V{OFF}IEW" LJ
76
u
FF
BE 78 PRINT"{DOWN}{5 SPACES}{RVS}H{OFF}OUSEKEEPING {7 SPACES}{RVS}W{OFF}RITE"
HC 80 PRINT"{DOWN}{5 SPACES}{RVS}M{OFF}ODIFY
MP 90 PRINT"{5 DOWN} {RVS}{6 SPACES}PRESS THE APPR OPRIATE KEY{7 SPACES}"
DS 92 PRINT"{2 SPACES}THERE ARE";X;"RECORDS IN MEM ORY"
OX 94 IF R>0THENPRINT"{2 SPACES}SPACE FOR";R-X;"MO RE RECORDStUP}" {RVS}RETURN{OFF} KEY AFTER EACH ENTRY{DOWN}
MM 126 PRINT"PRESS {RVS}RETURN{OFF} WITHOUT ANY EN TRY TO STOP{2 DOWN}"
XX 128 PRINT"{RVSjRECORD NUMBER ";I;"{DOWN}"
FS 130 FORN=1TOF
DF 132 PRINTF$(N);"{3 SPACES}>{3 LEFT}";:INPUTREC$
(I,N):IFREC$(I,N)=""THENREC$(I,N)=">"
GQ 134 IFLEN(REC$(I,N))>L%(N)THENGOSUB140:GOTO132 BF 136 IFREC$(I,1)=">"THENX=I-1:CK=1:GOTO68
SE 138 NEXTN:K%(I)=I:NEXTI:X=R:CK=1:GOTO68
AF 140 PRINT"CANNOT EXCEED{RVS}";L%(N);" CHARACTER S":RETURN
XA 142 REM *** SAVE ***
GF 144 PRINT"{CLR}{DOWN}ENTER NAME OF CURRENT FILE TO BE SAVED"
SE 146 PRINT"(12 CHARACTERS MAX).{2 SPACES}ANY EXI STING FILE"
CG 148 PRINT"WITH THE SAME NAME WILL BE SCRATCHED.
n
BX 149 PRINT"JUST PRESS {RVS}X{OFF} AND <RETURN> T O ABORT.{2 DOWN}"
RK 150 PRINT"{2 SPACES}";NF$:INPUT"{UP}";NF$:IFNF$
="" OR LEFT$(NF$#1)="X"THEN68
MK 152 SCRATCH "DB- "+LEFT$(NF$,8)+" OLD":PRINT"
{DOWN}SCRATCHING OLD FILE"
77
a
Chapter 2 (
SA 153 RENAME "DB- M+NF$ TO "DB- "+LEFT$(NF$,8)+"
{SPACE}OLD":PRINT"{DOWN}RENAMING CURRENT FI
LE" \ I
AD 156 DOPEN#5,"DB- "+NF$ + ",S ",W:PRINT "{DOWNjSAVI <—*
NG NEW FILE AS ";NF$:GOSUB414
KB 158 PRINT#5,R;CR$;F;CR$;X:FORN=1TOF:PRINT#5,F$( .
N);CR$;L%(N):NEXTN J_J
RX 160 FORI=1TOX:PRINT"{DOWN}SAVING RECORD #M;I;M 12 UP}11
XE 162 FORN=1TOF:PRINT#5,REC$(I,N) :NEXTN:NEXTI:PRI DX 164 FORI=1TOX:PRINT"{DOWN}SAVING POINTERS";I;MNT
{2 UP}":PRINT#5,K%(I):NEXTI
EH 166 PRINT#5,E$:PRINT#5:DCLOSE:CK=0:PRINT"
{2 DOWN}":GOSUB414:SLEEP2:GOTO 68 FK 168 REM *** LOAD ***
FA 170 IFCKO0THENGOSUB394
CQ 172 CLR:GOSUB 16:PRINT"ICLR}{DOWN}ENTER NAME OF FILE TO BE LOADED":PRINT"PRESS <RETURN> TO ABORT {2 DOWN}":INPUT NF$:IFNF$=""THEN68 KM 174 DOPEN#5#"DB- "+NF$+",S":GOSUB414:IF DS=62 T
HEN SLEEP1:GOTO 68
XP 176 INPUT#5,R,F,X:GOSUB24:GOSUB26:FORN=1TOF:INP UT#5,F$(N),L%(N):NEXTN
ED 178 FORI=1TOX:PRINT"{DOWN]READING RECORD #";I;M 12 UPj"
AC 180 FORN=1TOF:INPUT#5,REC$(I,N):NEXTN:NEXTI:PRI NT
FB 182 FORI=1TOX:PRINT"{DOWN}READING POINTERS";I;"
{2 UP}":INPUT#5,K%(I):NEXTI
FB 184 INPUT#5,E$:IF E$<>"EOF"THEN GOSUB 414
MK 186 DCLOSE:PRINT"{2 DOWN}":G0SUB414:SLEEP2:GOTO 68
HQ 190 REM *** VIEW ***
DB 192 INPUT"{CLR}{3 DOWN}VIEW STARTING WITH WHICH RECORD";L$:I=VAL(L$):IFL$=CHR$(13)THENI=1 SJ 194 IFI=0THEN68
JX 196 IFI>XTHEN68 I
RG 198 PRINT"{CLR}{2 DOWN}{RVS}RECORD NUMBER{OFF}" '—
;I;" {RVS}IN FILE{OFF} ";NF$7"{2 DOWN}"
AR 200 FORN=1TOF:PRINT F$(N);": {RVS}";REC$(K%(I), j /
N):NEXTN ( i
SG 202 PRINT"{DOWN} {RVS}N{OFF}EXT, {RVS}L{OFF}AST , {RVS}P{OFF}RINT# {RVS}F{OFF}IND# {RVS}E
{OFF}XIT TO MENU" J|
MP 204 GOSUB30:IFA$="N"THENI=I+1:GOTO194 S
EQ 206 IFA$="L"THENI=I-1:GOTO194
BM 208 IFA$="P"THENGOSUB 600:1=1+1:GOTO194 ) /
u
n
AH 216 INPUT"{DOWN}JUMP TO RECORD NUMBER";I:GOT019
4
HG 218 PRINT"{CLR}{4 SPACES}{RVS}FIND RECORDS WITH
COMMON ITEMS {DOWN)11
BB 220 FORN=1TOF: PRINT" {RVS} " ;N; lf {OFF} ";F$(N):NE
XTN
BK 222 INPUT"{DOWN}WHICH FIELD IS TO BE SEARCHED?
{SPACE}0 {4 LEFr}H;SF:IFSF=0THEN68
IFSF<10RSF>FTHENPRINT"{3 UP}":GOTO222PRINT"{DOWN}ENTER {RVSjCOMMON ITEM{OFF} ":P RINT"{DOWN}(THE ENTIRE STRING IS NOT REQUIR
ED)"
PRINT"{DOWN}{RVS}";F$(SF);"{OFF} ";:INPUTT$
FORI = 1TOX .-PRINT" {DOWN JSEARCHING RECORD"; I; "
{2 UP}"
PRINT"{CLR}{DOWN}MODIFY WHICH RECORD? ENTER lRVS}#{0FF}{2 SPACES}0R {RVS}A{OFF}LL
PRINT"{CLR}{DOWN}T0 MODIFY RECORD NUMBER";I
;", MAKE CHANGES"
PRINT"AS EACH FIELD IS DISPLAYED,THEN {RVS}
RETURN{OFF}{DOWN}"
FORN=1TOF:PRINTF$(N)":":PRINT"{3 SPACES}
{RVS}";REC$(K%(I)#N)
IF LEN(REC$(K%(I),N))>36 THEN PRINT"{UP}";
PRINT"{UP} ";:INPUTREC$( K% (I) , N )
IFLEN(REC$(K%(I),N))>L%(N)THENGOSUB140:GOTO
LJ
Chapter 2 I ,
XS 272 PRINTM{CLR}{DOWN}DELETE WHICH RECORD? ENTER
u
{RVS} # {OFF} OR {RVS}A{OFF}LL{2 DOWN}11
KD 274 INPUTDR$:IFDR$=D$THEN68 ) (
JD 276 IFDR$=IIAIITHENDR$=D$:GOTO282 '—i
EJ 278 I=VAL(DR$):DR$=D$:IFI>XTHENGOSUB348:GOTO274
GF 280 GOSUB284:GOTO68 , «
FF 282 FORI=1TOX:GOSUB284:NEXTI:GOTO68 j j
DX 284 PRINTM{CLR}{2 DOWN }TO DELETE RECORD NUMBER11
;I;M, PRESS"
QK 286 PRINTMlRVS}SHIFr{OFF} {RVS}D{OFF}, PRESS {RVSJSPACE BAR{OFF} TO ADVANCE{DOWN}"
CH 288 FORN=1TOF:PRINTF$(N);M{3 SPACES}{RVS}";REC$
(K%(I),N):NEXTN
RC 290 GOSUB30:IFA$="D"THEN294 XA 292 CK=1:RETURN
MP 294 PRINT"{2 DOWNjDELETING RECORD11; I: PRINT"
{DOWN} {RVS}RECORDS MAY NOW BE OUT OF ORDER11 MX 295 FORZZ=1TO1000:NEXT
JF 296 FORN=1TOF:REC$(K%(I),N)=REC$(X,N) :REC$(X,N)
=MM:NEXTN
JB 298 FORJ=1TOX:IFK%(J)=XTHENK%(J)=K%(X):K%(X)=0:
X=X-1:GOTO292 QP 299 NEXT J
HX 302 REM *** SORT ***
PH 304 PRINTM{CLR}{DOWN}{RVS}{4 SPACES}SORT RECORD S IN ASCENDING ORDER{3 SPACES}{DOWN}"
XX 306 FOR N=1TOF:PRINT" {RVS}";N;"{OFF} ";F$(N):N
EXTN
FD 308 INPUT"{DOWN}WHICH FIELD IS TO BE SORTED? 0 {SPACE}{4 LEFT}";SF:IFSF=0THEN68
JE 310 IFSF>FTHENPRINT"{3 UP}M:GOTO 308 SR 312 M=X
HQ 324 IFREC$(K%(I),SF)<=REC$(K%(L),SF)THEN328 ] (
SB 326 T%(N)=K%(I):K%(I)=K%(L):K%(L)=T%(N):I=I-M:I {—f
FI>0THEN320
GH 328 J=J+1:IFJ>KTHEN314 | /
CP 330 GOTO318 LJ
GE 332 REM *** EXIT ***
SC 334 PRINT"{CLR}{2 DOWN} {RVS}YOU HAVE NOT SAVED
YOUR CHANGES 1" /" I
JR 336 PRINT "{2 DOWN} DO YOU REALLY WANT TO QUIT? ^
{SPACE}{RVS}Y{OFF} OR {RVS}N{OFF}
HK 338 GOSUB30:IFA$=MYM THEN344 ) ;
DS 340 GOTO68 LJ
80
u
EJ 341 PRINT"{CLR}":GOTO336
MH 344 PRINT"{CLR}{2 DOWN}DATABASE TERMINATED":END
j| MD 348 PRINT "NO SUCH RECORD EXISTS": RETURN
* PK 350 IFR>0THENRETURN
XD 352 PRINT"{CLR}{DOWN}NO FILES IN MEMORY":SLEEP
p-^ {SPACE}3:GOTO68
! 1 SE 356 REM *** PRINT MENU ***
MM 358 PRINT"{CLR}{RVS}{14 SPACES}PRINT MENU {15 SPACES]"
QJ 360 PRINTTAB(12)"{6 DOWN}{RVS}L{OFF}1ST"
JQ 362 PRINTTAB(12)"{DOWN}{RVS}M{OFF}AILING LABELS HF 364 PRINTTAB(12)"{DOWN}{RVS}E{OFF}XIT TO MAIN M
ENU"
DR 365 PRINT"{10 DOWN}{RVS}{39 SPACES}"
QA 366 GOSUB30:IFA$="L"THEN500 PF 368 IFA$="M"THEN 550
ER 370 IFA$="E"THEN 68 AS 372 GOTO372
DR 392 REM *** WARNING ***
SD 394 PRINT"{CLR}{DOWN}{RED}{RVS}THIS WILL DESTRO
Y THE FILE IN MEMORY1{3 SPACES}{GRN}QR 396 PRINT"{2 DOWN}SAVE THE FILE FIRST? {RVS}Y
{OFF} OR {RVS}N{OFF}":GOSUB30:IFA$="N"THENR
ETURN RX 398 GOTO142
MC 400 REM *** NEW DISK ***
GK 402 PRINT"{CLR}{DOWN} ARE YOU SURE? {RVS}Y{OFFj OR {RVS}N{OFF}
BQ 404 GOSUB30:IFA$="N"THEN68 KG 406 IFA$o"Y"THEN68
pc 410 header "database",140:print" {clr} {3 down}
16 spaces Formatting "
KD 411 GOTO68
XA 412 REM *** DISK ERROR ***
MH 413 IF TT=1 THEN END
CH 414 PRINTDS$:IFDS>01ANDDS<20 THENSLEEP2:GOTO68:
/ ] ELSE RETURN
KF 422 PRINT"{CLR}":DIRECTORY"DB-*"
RA 456 PRINTTAB(25)"PRESS {RVS}ANY KEY{OFF}":GOSUB
f] 30:GOTO68
L J MS 460 REM *** HOUSEKEEPING MENU ***
QA 462 PRINT"{CLR} {RVS}{8 SPACES}HOUSEKEEPING MEN r^ U{14 SPACES}"
j \ EM 464 PRINT"{4 DOWN}{5 SPACES}{RVS}D{OFFjIRECTORY
ii
SE 468 PRINT"{DOWN}{5 SPACES}{RVS}E{OFF}XIT TO BAS
T IC"
n
81LJ
Chapter 2 , ,
SK 470 PRINT"{DOWN}{5 SPACES}{RVS}FIOFFjORMAT DISK
LJ
ii
SK 472 PRINT11 {DOWN} {5 SPACES } {RVS}M{ OFF }AIN MENU11 j f SH 474 PRINT11 {DOWN} I 5 SPACES} {RVS }S{OFF }CRATCH FIL <—\
E"
AE 476 PRINT"{DOWN} , »