10 REM DBASE2 FOR THE T102 15 REM (C) 1987 TOM MOREHOUSE 20 CLS:CLEAR1000,62690:MAXFILES=2 25 DIMFD$(20),DA$(500),RC$(500) 30 PRINT @136,"DBASE2" 31 BEEP 40 GOSUB 10000:REM TIME DELAY 43 GOSUB 10000 44 GOTO6000 50 CLS:PRINT:PRINT"CURRENT FILES ARE: ":PRINT:FILES 51 PRINT"CREATE NEW FILE (Y/N)";:B$=INPUT$(1):IFB$="Y"ORB$="y"THENGOTO60 52 IFB$="N"ORB$="n"THENGOTO53ELSEGOTO51 53 PRINT:INPUT"FILE TO APPEND";FI$ 54 IF FI$ = "" THEN BEEP:PRINT "PROCESS ENDED":GOTO 1130 55 OPEN FI$ FOR INPUT AS 1:LINEINPUT#1,FN$:CLS:CLOSE1:REM GET FIELD NAMES FROM LIST TOP 56 PRINT:PRINT"FIELDS IN *** ";FI$;" *** ":PRINT:PRINTFN$:PRINT:GOSUB5000:GOSUB2000:GOTO1000 60 CLS:INPUT"FILE NAME";FI$ 70 INPUT "HOW MANY FIELDS PER RECORD";N 80 FOR X = 1 TO N 90 PRINT "NAME OF FIELD #";X;:INPUT FD$(X):IFX=N THEN GOTO 94 92 FN$=FN$+FD$(X)+",":NEXTX 94 FN$=FN$+FD$(X) 100 OPENFI$FOROUTPUTAS1:PRINT#1,FN$:CLOSE1:Y=1:GOSUB5000:GOTO1010 120 CLS 130 BEEP 140 GOSUB 10000 1000 REM APPEND ROUTINE 1002 OPEN FI$ FOR INPUT AS2 1003 LINE INPUT #2,Z$:C=C+1 1004 IF EOF(2)THEN GOTO 1006 1005 GOTO1003 1006 CLOSE2:Y=C 1007 LR$=Z$ 1010 REM RECORD COUNTER 1015 OPEN FI$ FOR APPEND AS 1 1020 Z=Z+1:REM FIELD COUNTER 1030 CLS 1040 PRINTFI$:PRINT@14,"RECORD #";Y:PRINT"ENTER 'ZZ' TO END" 1042 PRINT" (LAST ENTRY WAS: ";LR$;")" 1049 PRINT 1050 PRINTFD$(Z);:INPUT DA$(Z) 1060 IF DA$(Z)="ZZ"ORDA$(Z)="zz" THEN GOTO 1130 1065 LR$=DA$(Z) 1070 IF Z=FL THEN GOTO 1090 1080 RC$(Y)=RC$(Y)+DA$(Z)+",":GOTO1020 1090 RC$(Y)=RC$(Y)+DA$(Z) 1110 PRINT#1,RC$(Y) 1115 CLOSE1:Z=0 1120 Y=Y+1:GOTO 1010 1130 CLOSE1:CLS 1140 GOSUB 10000 1150 PRINT:PRINT"FILE ";FI$;" CLOSED" 1160 GOSUB 10000 1170 PRINT"PROCESSING FINISHED" 1180 GOSUB 10000 1190 CLEAR256,60416:MENU 2000 PRINT"ANY KEY TO PROCEED..." 2005 L$=INKEY$:IFL$=""THEN2005 2010 RETURN 5000 LN=LEN(FN$) 5001 OPEN FI$ FOR INPUT AS 1 5002 FORX=1TOLN 5003 T$=MID$(FN$,X,1) 5004 IF T$=","THEND=D+1 5005 NEXTX 5009 FL=D+1 5010 FORX=1TOFL:INPUT#1,FD$(X):NEXTX 5020 CLOSE1:RETURN 6000 PRINT:INPUT"PRINT A FILE (Y/N)";P$ 6005 IFP$<>"Y"ANDP$<>"y"THENGOTO50 6010 REM DATA FILE PRINTER 6020 REM (C) 1987 TOM MOREHOUSE 6030 CLS:PRINT@175,"DBASE PRINTER" 6040 FORX=1TO500:NEXTX 6050 CLS:FILES:PRINT@240,"FILE TO PRINT";:INPUTF$ 6055 IFF$=""THENGOTO6500 6060 OPENF$FORINPUTAS1 6070 LINEINPUT#1,FD$ 6075 CLOSE1 6100 INPUT"PAGE WIDTH (80/132)";W 6110 IFW<>80ANDW<>132THENGOTO6100 6115 CLS:PRINT@1,FD$:PRINT 6120 INPUT"NUMBER OF FIELDS TO PRINT";N 6122 CLS:DIMFL(N) 6130 FORX=1TON 6132 CLS:PRINT@1,FD$:PRINT 6135 PRINT@240,CK;"COLUMNS OUT OF ";W 6140 PRINT@40,"LENGTH OF FIELD";X;:INPUTFL(X) 6145 CK=CK+FL(X):IFCK>WTHENGOTO7000 6150 NEXTX 6160 CLS 6170 PRINT"HIT SPACE BAR WHEN READY" 6180 R$=INKEY$:IFR$=""THENGOTO6180 6190 PRINT@180,"PRINTING" 6200 OPENF$FORINPUTAS1 6205 LPRINT F$,DATE$,TIME$:LPRINT 6210 FORX=1TON 6220 INPUT#1,A$ 6229 Y=((FL(X)))-(LEN(A$)):IFY<1THENY=1 6230 LPRINTA$;SPACE$(Y); 6235 NEXTX 6240 LPRINTCHR$(13); 6250 IFEOF(1)THENGOTO6500ELSEGOTO6210 6500 CLS:PRINT@175,"OUTPUT COMPLETED" 6510 BEEP:CLOSE:MENU 7000 BEEP:PRINT" ** PAGE WIDTH EXCEEDED **":CK=0:GOTO6130 10000 FORT=1TO250:NEXTT:RETURN