3 SCREEN0:CLS:CALL17034:PRINTCHR$(27)"Q"CHR$(27)"q":LINE(1,3)-(238,35),1,B:PRINT@57,"DATAbee":PRINT@97,"10/18/88":PRINT@123,"Copyright 1988 by Howard H. Sprow 6 CALL16954:PRINT@280,CHR$(27)"pCommand Line | "; 9 CLEAR1100:MAXFILES=2:DEFSNGA-U:MX=15:DIMF$(MX),FT$(MX),F(MX),FP(MX),FL(MX),CM$(10):R1$=CHR$(13):Q$=CHR$(34):E$=CHR$(27):FORI=0TO10:CM$(I)=SPACE$(39):NEXT:NB$="No database in USE. 10 DIMCS$(17),CS(17):FORI=1TO17:READCS$(I),CS(I):NEXT 12 ONERRORGOTO594:GOTO48 18 PRINT@303,E$+"pRec:";:PRINTUSING"####";RN;:PRINT" of ";:PRINTUSING"####";NR;:PRINTE$+"q";:CALL16949:RETURN 27 X$="":X=VARPTR(X$):A=INT(PT/256):B=PT-A*256:POKEX,LL:POKEX+1,B:POKEX+2,A:RETURN 36 PT=RP+OF+(SZ+2)*(RN-1):LL=SZ:GOSUB27:RC$=X$:RETURN 42 FORI=0TOSZ-1:POKERP+OF+(SZ+2)*(RN-1)+I,ASC(MID$(RC$,I+1,1)):NEXT:RETURN 48 CALL16954:PRINT@280,CHR$(27)"pCommand Line|";:GOSUB18:RE$=SPACE$(38):CM=0 51 PRINT@240,".";:SP=241:RO=0:I1=1:GOSUB81:IFUPTHENCM=CM+1:GOSUB72:GOTO51 54 IFDNTHENCM=CM-1:GOSUB72:GOTO51 57 IFRE$=""THENPRINT:GOTO48ELSEIFRE$=E$THEN48 60 GOSUB66:GOSUB213:GOSUB480:CLOSE2:GOTO48 66 FORI=10TO1STEP-1:CM$(I)=CM$(I-1):NEXT:CM$(1)=RE$+SPACE$(39-LEN(RE$)):CM$(0)=SPACE$(39):CM=0:RETURN 72 IFCM<0THENCM=0ELSEIFCM>10THENCM=10 75 RE$=LEFT$(CM$(CM),38):RETURN 81 PP=SP 82 LN=LEN(RE$):UP=0:DN=0:CALL17583:IFROTHENPRINTE$+"p";ELSEPRINTE$+"q"; 84 PRINT@SP,E$+"P"+RE$; 87 IFPP>SP+LN-1THENPP=SP+LN-1ELSEIFPPSPTHENPP=PP-1:PRINT@PP," ";:GOTO87ELSEPRINT@PP," ";:GOTO87 111 IFR$=CHR$(30)THENUP=1:GOTO120 114 IFR$=CHR$(31)THENDN=1:GOTO120 117 PRINTR$;:PP=PP+1:GOTO87 120 LL=LN:PT=65024+SP:GOSUB27:RE$=X$:IFI1THENI2=INSTR(1,RE$," "):IFI2THENRE$=LEFT$(RE$,I2-1) 123 I1=0 126 PRINT@SP+LN,E$+"q";:RETURN 132 IFFN$=""THENPRINTNB$:RETURN 135 RN=NR+1:CLS:CALL16954:PRINT@280,E$"pAPPEND "E$"q"E$"Q";:OP$="A" 138 RC$=SPACE$(SZ):GOTO159 144 IFFN$=""THENPRINTNB$:RETURN 147 IFNR=0THENPRINT"No records.":RETURN 150 IFRE$="EDIT"THEN156 153 I=VAL(MID$(RE$,5)):IFI>0ANDI<=NRTHENRN=I:CALL16954:GOSUB18ELSEBEEP:RETURN 156 CLS:CALL16954:PRINT@280,E$"pEDIT "E$"Q";:OP$="E":GOSUB36 159 GOSUB18 162 FORI=1TONF:PRINT@240,I". "LEFT$(F$(I),10)" ("MID$(F$(I),12,4)")":PRINT:RE$=MID$(RC$,FP(I),FL(I)):SP=200:LN=FL(I):RO=1:GOSUB81:IFRE$=E$THENIFOP$="A"THENRN=NR:RETURNELSERETURN 165 IFLEN(RE$)"N"THEN180 171 FORJ=1TOFL(I):IFLEFT$(RE$,1)=" "THENRE$=RIGHT$(RE$,LEN(RE$)-1):NEXTELSENEXT 174 XX=FL(I):FORJ=1TOXX:IFRIGHT$(RE$,1)=" "THENRE$=LEFT$(RE$,LEN(RE$)-1):NEXTELSENEXT 177 RE$=SPACE$(FL(I)-LEN(RE$))+RE$ 180 MID$(RC$,FP(I),FL(I))=RE$:PRINT:NEXT 183 PRINT"ENTER to write or ESC? 186 R$=INKEY$:IFR$=CHR$(13)THEN192ELSEIFR$=CHR$(27)THENRETURNELSE186 192 IFOP$="A"THENCLOSE1:OPENFN$FORAPPENDAS1:PRINT#1,RC$:CLOSE1:NR=NR+1:RN=NR:GOTO198ELSEGOSUB42 198 RN=RN+1:IFRN>NRTHENRN=NR 207 RETURN 213 FORK=1TOLEN(RE$):C=ASC(MID$(RE$,K,1)):IFC>96ANDC<123THENMID$(RE$,K,1)=CHR$(C-32):NEXTELSENEXT 216 RETURN 222 IFFN$=""THENPRINTNB$:RETURNELSEGOSUB288 225 PRINT#2,"Structure of database: "FN$:PRINT#2,"Number of records: "NR 228 PRINT#2,"Field Field Name Type Width":PRINT#2,"===== ========== ==== =====":FORI=1TONF:PRINT#2,USING"#####";I;:PRINT" ";:PRINT#2,F$(I):NEXT:PRINT#2,"":CLOSE2:RETURN 237 NG=0:FORI=1TOMX:F(I)=0:NEXT:GOSUB630:INPUT"Field list(1,2,3,etc)";F(1),F(2),F(3),F(4),F(5),F(6),F(7),F(8),F(9),F(10),F(11),F(12),F(13),F(14),F(15) 240 CK=0:FORI=1TOMX:CK=CK+F(I):IFF(I)<0ORF(I)>NFTHENNG=1 243 NEXT:IFCK=0THENFORI=1TONF:F(I)=I:NEXT 246 RETURN 255 NG=0:CF=0:CO=0:CD$="":CX$="":GOSUB630:INPUT"Search condition(1='XX')";CX$ 258 IFCX$=""THENRETURN 261 X1=INSTR(CX$,"<>"):IFX1THENCO=4:GOTO267 264 X1=INSTR(CX$,"<"):IFX1THENCO=1ELSEX1=INSTR(CX$,"="):IFX1THENCO=2ELSEX1=INSTR(CX$,">"):IFX1THENCO=3ELSENG=1:RETURN 267 CF=VAL(LEFT$(CX$,X1-1)):IFCF<0ORCF>NFTHENNG=1 270 IFCO=4THENCD$=MID$(CX$,X1+2)ELSECD$=MID$(CX$,X1+1) 273 IFLEFT$(CD$,1)="'"ANDLEN(CD$)>1THENCD$=MID$(CD$,2) 276 IFRIGHT$(CD$,1)="'"ANDLEN(CD$)>1THENCD$=LEFT$(CD$,LEN(CD$)-1) 279 IFMID$(F$(CF),12,1)="D"THENCD$=CD$+" ":CD$=MID$(CD$,7,4)+"/"+LEFT$(CD$,5) 282 RETURN 288 NG=0:LINEINPUT"Output device(not RAM)?";RE$ 291 IFRE$=""THENDR$="LCD:"ELSEGOSUB213:DR$=RE$ 294 IFINSTR(1,DR$,":")=0ORLEFT$(DR$,3)="RAM"THENNG=1:RETURN 297 OPENDR$FOROUTPUTAS2:RETURN 303 NG=0:IFFN$=""THENPRINTNB$:RETURNELSEIFNR=0THENRETURN 306 GOSUB237:IFNGTHEN318 309 GOSUB255:IFNGTHEN318 312 GOSUB288:IFNGTHEN318 315 GOTO324 318 PRINT"Invalid command.":RETURN 324 FORI=1TONF:FT$(I)="\ \":VX=VAL(RIGHT$(F$(I),2)):IFVX>10THENFT$(I)="\"+SPACE$(VX-2)+"\" 327 NEXT 330 PRINT#2,"REC# ";:FORI=1TOMX:IFF(I)THENPRINT#2,USINGFT$(F(I));LEFT$(F$(F(I)),10);:PRINT#2," "; 333 NEXT:PRINT#2,"":PRINT#2,"" 336 FORI=1TONR:RN=I:GOSUB36:GOSUB393:IFNGTHEN342 339 PRINT#2,USING"#### ";RN;:FORJ=1TOMX:IFF(J)THENPRINT#2,USINGFT$(F(J));MID$(RC$,FP(F(J)),FL(F(J)));:PRINT#2," ";:NEXTELSENEXT:PRINT#2,"" 341 IFINKEY$=CHR$(27)THENI=NR 342 NEXT:PRINT#2,"":CLOSE2:RETURN 348 NG=0:IFFN$=""THENPRINTNB$:RETURNELSEIFNR=0THENRETURN 351 GOSUB255:IFNGTHEN318 354 H$=RE$:GOSUB288:RE$=H$:IFNGTHEN318 357 CT=0:SU=0:FORI=1TONR:RN=I:GOSUB36:GOSUB393:IFNGTHEN363 360 CT=CT+1:IFSATHENSU=SU+VAL(MID$(RC$,FP(SA),FL(SA))) 363 NEXT 366 PRINT#2,CT"records ":IFLEFT$(RE$,3)="SUM"THENPRINT#2,LEFT$(F$(SA),10):PRINT#2,"Sum"SUELSEIFLEFT$(RE$,7)="AVERAGE"THENPRINT#2,LEFT$(F$(SA),10):PRINT#2,"Average"SU/CT 369 PRINT#2,"":CLOSE2:RETURN 375 IFFN$=""THENPRINTNB$:RETURNELSEIFNR=0THENRETURN 378 SA=0:GOSUB630:INPUT"Field #";SA 381 IFSA<1ORSA>MX ORMID$(F$(SA),12,1)<>"N"THEN318 384 GOTO348 393 NG=1:IFCD$=""THENNG=0:RETURNELSEIFCF=0THENNG=1:V1=RN:V2=VAL(CD$):ONCOGOTO423,426,429,432 396 TY$=MID$(F$(CF),12,1):IFTY$="C"THENS1$=MID$(RC$,FP(CF),LEN(CD$)):ONCOGOTO408,411,414,417 399 IFTY$="N"THENV1=VAL(MID$(RC$,FP(CF),FL(CF))):V2=VAL(CD$):ONCOGOTO423,426,429,432 402 IFTY$="D"THEND1$=MID$(RC$,FP(CF),FL(CF)):GOSUB441:S1$=D2$:ONCOGOTO408,411,414,417 408 NG=(S1$CD$)+1:RETURN 417 NG=(S1$<>CD$)+1:RETURN 423 NG=(V1V2)+1:RETURN 432 NG=(V1<>V2)+1:RETURN 441 D2$=RIGHT$(D1$,4)+"/"+LEFT$(D1$,5):RETURN 447 IFFN$=""THENPRINTNB$:RETURNELSEGOSUB288:IFNGTHEN318 450 GOSUB36:FORI=1TONF:PRINT#2,LEFT$(F$(I),10)" "MID$(RC$,FP(I),FL(I)):NEXT:CLOSE2:RETURN 456 GOSUB255:IFNGTHEN318ELSEKF=CF:KO=CO:KD$=CD$:RN=1 459 GOSUB36:GOSUB393:IFNG=0THEN465 462 IFRN0ANDI<=NRTHENRN=I:RETURNELSEBEEP:RETURN 528 IFLEFT$(RE$,3)=CS$(5)THENGOSUB543:RETURN 531 IFLEFT$(RE$,7)=CS$(12)THENGOSUB447:RETURN 532 I=VAL(RE$):IFI>0ANDI<=NRTHENRN=I:RETURN 534 PRINT"Unrecognized command.":UR=1:RETURN 543 CLOSE1:NN$=MID$(RE$,5):IFINSTR(1,NN$,".")THENNN$=LEFT$(NN$,INSTR(1,NN$,".")-1) 546 NN$=NN$+SPACE$(6):NN$=LEFT$(NN$,6):OPENNN$FORINPUTAS1:I=1:FN$=NN$ 549 LINEINPUT#1,F$(I):IFF$(I)=CHR$(255)THENF$(I)="":NF=I-1:GOTO552ELSEI=I+1:GOTO549 552 FORI=1TONF:FL(I)=VAL(MID$(F$(I),17,2)):NEXT:FP(1)=1:FORI=2TONF:FP(I)=FP(I-1)+FL(I-1):NEXT:SZ=0:FORI=1TONF:SZ=SZ+VAL(MID$(F$(I),17,2)):NEXT 555 PT=63919:LL=220:GOSUB27:FORI=1TO220STEP11:CK$=MID$(X$,I,11):IFMID$(CK$,4,6)=FN$ANDASC(LEFT$(CK$,1))=194THENRP=ASC(MID$(CK$,2,1))+256*ASC(MID$(CK$,3,1)):I=220 558 NEXT 561 CLOSE1:OPENFN$FORINPUTAS1:OF=0 564 IFEOF(1)THEN570 567 RC$=INPUT$(1,1):OF=OF+1:IFRC$<>CHR$(255)THEN564ELSEOF=OF+2 570 CLOSE1:OPENFN$FORINPUTAS1:NR=0 573 IFEOF(1)THENCLOSE1:GOTO585ELSELINEINPUT#1,RC$ 576 IFRC$<>CHR$(255)THEN573 579 IFEOF(1)THENCLOSE1:GOTO585 582 LINEINPUT#1,RC$:NR=NR+1:PRINTE$"Q";:CALL16954:GOSUB18:GOTO579 585 CALL16954:PRINT@293,E$"p"FN$E$"q";:GOSUB18:IFNRTHENRN=1ELSERN=0 588 RETURN 594 PRINT"Error"ERR"Line"ERL:CLOSE:RESUME48 600 CLS:FORI=1TO15:PRINT@CS(I),CS$(I):NEXT:LINE(0,40)-(239,40),1:PRINT@240,".";:I=1 603 PRINT@CS(I),"";:PRINTCHR$(27)"P"; 606 R$=INKEY$:IFR$=""THEN606ELSER=ASC(R$) 609 IFR=27THENCLS:RE$="":RETURNELSEIFR=13THEN621 612 IFR=28ORR=32THENI=I+1ELSEIFR=29THENI=I-1ELSEIFR=31THENI=I+3ELSEIFR=30THENI=I-3 615 IFI<1THENI=15ELSEIFI>15THENI=1 618 GOTO603 621 RE$=CS$(I):IFI=4ORI=5ORI=8THENPP=242+LEN(RE$):RE$=RE$+SPACE$(38-LEN(RE$)):SP=241:RO=0:I1=1:GOSUB82:GOSUB213:GOSUB66:RETURNELSEPRINT@241,RE$:GOSUB66:RETURN 624 DATAAPPEND,0,DIR,12,AVERAGE,23,EDIT,40,USE,52,COUNT,63,LIST,80,GO,92,SUM,103,LOCATE,120,QUIT,132,DISPLAY,143,CONT,160,?,172,DISPLAY STRUCTURE,183,FILES,0,MENU,0 630 CLS:J=0:K=0:FORI=1TOMX:IFI=6THENJ=0:K=13ELSEIFI=11THENJ=0:K=26 633 PRINT@K+J,USING"##";I;:PRINTLEFT$(F$(I),10):J=J+40:NEXT:PRINT:LINE(0,40)-(239,40),1:RETURN