1 REM ******************************************* 2 ' 3 ' ACCOUNTS PAYABLE 4 ' Version 2.0 5 ' 6 ' WRITTEN BY BRUCE LEVISON 7 ' SEPTEMBER 1979 8 ' 9 REM ******************************************* 10 ' 12 ' 01/10/81 Fixed the bug in the initialization routine 13 ' by adding the automatic initilization 14 ' of data files when they are empty. The program 15 ' now takes care of the initialization automatically. (BL) 16 ' 100 WIDTH 64 120 YES=-1 : NO=0 : ESCAPE=1 170 HD$="AC.# ACCOUNT TOTAL BALANCE DATE DUE" 180 HC$="AC.# ACCOUNT PAYMENT CHK NUM CHK DATE" 190 SP$="---- -------------------- --------- --------- --------" 200 TR$=STRING$(64,45) 205 M1$="MENU.FIN" 210 F1$="CURRENT.PAY" : F2$="HISTORY.PAY" 220 F6$="########" 230 F5$="####" 240 F9$="\ \" 250 F8$="$$#####.##" 260 F7$="\ \" 262 Z$=F1$: GOSUB 50000 'Initialize files to empty if 266 Z$=F2$: GOSUB 50000 'necessary 270 PRINT: AF=1 : GOSUB 2600: DATE$=Z$: 'INPUT DATE 280 PRINT CHR$(12);STRING$(2,10) 290 PRINT "ACCOUNTS PAYABLE SYSTEM";TAB(50);DATE$ 300 PRINT:PRINT 310 PRINT "ALLOWABLE OPTIONS ARE:" 320 PRINT 330 PRINT "A=ENTER A NEW ACCOUNT";TAB(36);"B=ENTER A NEW BILL" 340 PRINT "C=PAY A BILL";TAB(36);"D=PAYMENT (NOT WITH BILL)" 350 PRINT "E=PRINT BILLS DUE THIS MONTH";TAB(36);"F=LIST CURRENT ACCOUNTS" 360 PRINT "G=LIST ACCOUNT HISTORY";TAB(36);"H=LIST SPECIFIC ACCOUNT" 370 PRINT "I=EDIT AN ACCOUNT";TAB(36);"J=RUN SYSTEM MENU" 375 PRINT "K=END PROGRAM" 380 PRINT:PRINT:PRINT:PRINT 390 PRINT "OPTION (?=LIST OPTIONS) ? "; : OP$=INPUT$(1): PRINT OP$ 400 IF OP$="?" THEN 280 410 OP=ASC(OP$)-64 420 IF OP < 1 OR OP > 11 OR OP<>INT(OP) THEN 390 430 ON OP GOSUB 1000,2000,3000,4000,5000,6000,7000,8000,8500,20000,25000 440 PRINT: PRINT: TT=0: AF=0: FL=0: Z=0: Z$="": CLOSE 445 BALANCE=0: BALANCE$="": TOTAL.DUE=0: TOTAL.DUE$="" 450 GOTO 390 1000 ' ENTER A NEW ACCOUNT 1010 PRINT: LINE INPUT "ACCOUNT NAME ? "; ACCOUNT.NAMEX$ : IF ACCOUNT.NAMEX$="ESCAPE" THEN RETURN 1020 INPUT "CLASSIFICATION TYPE NUMBER ? ", Z$ : IF Z$="?" THEN GOSUB 3810 : GOTO 1020 1030 IF VAL(Z$)<0 OR (VAL(Z$)>25 AND VAL (Z$)<>99) OR VAL (Z$)<>INT(VAL(Z$)) THEN PRINT: PRINT "No such classification number": PRINT: GOSUB 3810: GOTO 1020 1040 TYPE=VAL(Z$) 1050 OPEN "R",1,F1$,64 : GOSUB 9000 : 'FIELD 1060 GET #1,1 : WREC = VAL(WREC$) 1070 TOTAL.DUE=0 : BALANCE=0 : DUE.DATEX$="" : ACCOUNT.NO=WREC -1 1080 GOSUB 10000 : GOSUB 10500 : 'PUT & INCREMENT 1090 PRINT : PRINT "ACCOUNT NUMBER"; ACCOUNT.NO; "ASSIGNED" 1100 CLOSE : RETURN 2000 ' ENTER NEW BILL TO BE PAID 2010 OPEN "R",1,F1$,64 : GOSUB 9000 : AF=2 : GOTO 12000: 'FIELD + INPUT ACCOUNT NO. 2020 INPUT "AMOUNT OF BILL ? ", TOTAL.DUE 2030 AF=2 : GOSUB 2600 : 'INPUT DATE 2040 DUE.DATEX$=Z$: BALANCE = VAL(BALANCE$) + TOTAL.DUE 2050 PRINT "NEW BALANCE IS";: PRINT USING F8$;BALANCE 2060 GOSUB 10000 : CLOSE : RETURN 2400 ' YES/NO 2410 RESPONSE$=INPUT$(1): PRINT RESPONSE$ 2420 ANSWER = 2 2440 IF LEFT$(RESPONSE$,1) ="Y" THEN ANSWER=YES 2450 IF LEFT$(RESPONSE$,1)="N" THEN ANSWER=NO 2460 IF LEFT$(RESPONSE$,1)="E" THEN ANSWER=ESCAPE: GOTO 440 2470 IF ANSWER<>2 THEN RETURN 2480 PRINT : PRINT "Please respond 'YES' or 'NO'"; 2490 GOTO 2410 2500 ' ACCOUNT NOT FOUND 2510 PRINT : PRINT "ACCOUNT NOT FOUND" 2520 GOSUB 3700: RETURN: 'PRINT ACCOUNT NUMBERS TO CRT 2600 ' CHECK DATE 2605 IF AF=1 THEN INPUT "TODAYS DATE ? ",Z$ 2610 IF AF=2 THEN INPUT "DUE DATE ? ",Z$ 2620 IF AF=3 THEN INPUT "DATE OF PAYMENT ? ",Z$ 2630 IF AF=4 THEN INPUT "DATE OF CHECK ? ",Z$ 2640 IF AF=5 THEN INPUT "DATE PAYED ? ",Z$ 2650 IF AF=6 THEN INPUT "DATE WRITTEN ? ",Z$ 2660 IF LEN(Z$)=0 AND AF<>1 THEN Z$=DATE$ : GOTO 2680 2670 IF LEN(Z$)<>8 OR MID$(Z$,6,1)<>"/" THEN PRINT : PRINT "FORMAT IS mm/dd/yy" : GOTO 2600 2680 AF=0 : RETURN 2700 ' PRINT CRT HEADER 2705 PRINT CHR$(12): PRINT: PRINT 2710 PRINT TAB(5);Z$;TAB(46);"DATE: ";DATE$ :PRINT : PRINT 2715 IF FL=1 THEN PRINT HC$: PRINT SP$: RETURN 2720 PRINT HD$ : PRINT SP$: RETURN 2750 ' PRINT LINE PRINTER HEADERS 2760 LPRINT CHR$(14); : LPRINT TAB(1);Z$; : LPRINT CHR$(15); : LPRINT TAB(34);"DATE: ";DATE$ : LPRINT : LPRINT 2765 IF FL=1 THEN LPRINT HC$: LPRINT SP$: RETURN 2770 LPRINT HD$ : LPRINT SP$: RETURN 2780 ' PRINT TRAILER 2790 PRINT TR$: RETURN 2795 ' PRINT LPRINTER TRAILER 2800 LPRINT STRING$(64,"-"): RETURN 3000 ' PAY A BILL 3010 OPEN "R",1,F1$,64 : GOSUB 9000 : AF=3 : GOTO 12000 3020 BALANCE=VAL(BALANCE$) 3030 PRINT "BALANCE DUE IS";: PRINT USING F8$;BALANCE 3040 INPUT "AMOUNT OF PAYMENT ? ",Z 3050 PRINT "PAYMENT BY CHECK "; : GOSUB 2400 : IF ANSWER=YES THEN GOTO 3100 3060 CHECK.NO=0 3070 AF=3 : GOSUB 2600 : 'INPUT DATE 3090 GOTO 3130 3100 INPUT "CHECK NUMBER ? ", CHECK.NO 3110 AF=4 : GOSUB 2600: ' INPUT DATE 3130 DUE.DATEX$=Z$ : BALANCE=BALANCE-Z : TOTAL.DUE=VAL(TOTAL.DUE$) 3140 GOSUB 10000 : CLOSE : 'PUT 3150 OPEN "R",1,F2$,64 : GOSUB 9000 : GET#1,1 : WREC=VAL(WREC$) 3160 TOTAL.DUE=Z : BALANCE=CHECK.NO 3170 GOSUB 10000 : GOSUB 10500 : 'PUT/INCREMENT 3180 CLOSE : RETURN 3420 ' RECORD WRITE TO CRT SUBROUTINE 3440 PRINT USING F5$;VAL(ACCOUNT.NO$); : PRINT " "; 3450 PRINT USING F9$;ACCOUNT.NAME$; 3460 PRINT USING F8$;VAL(TOTAL.DUE$); : PRINT SPC(2); 3470 IF FL=1 THEN PRINT " ";: PRINT USING F6$;VAL(BALANCE$); : PRINT SPC(4); : GOTO 3490 3480 PRINT USING F8$;VAL(BALANCE$);: PRINT SPC(3); 3490 PRINT USING F7$;DUE.DATE$ 3500 RETURN 3520 ' PRINT ON LINE PRINTER SUBROUTINE 3530 LPRINT USING F5$;VAL(ACCOUNT.NO$); : LPRINT SPC(2); 3540 LPRINT USING F9$;ACCOUNT.NAME$; 3550 LPRINT USING F8$;VAL(TOTAL.DUE$); : LPRINT SPC(2); 3560 IF FL=1 THEN LPRINT " ";: LPRINT USING F6$;VAL(BALANCE$); : LPRINT SPC(4); : GOTO 3580 3570 LPRINT USING F8$;VAL(BALANCE$); : LPRINT SPC(3); 3580 LPRINT USING F7$;DUE.DATE$ 3590 RETURN 3700 ' PRINT ACCOUNT NUMBERS TO CRT 3710 OPEN "R",3,F1$,64: FIELD #3,4 AS AA$,4 AS BB$,30 AS CC$: PRINT 3720 PRINT "Account numbers are: ": PRINT: GET #3,1: WREC=VAL(AA$): RECORDS=1 3725 PRINT USING F5$;YES;: PRINT " = ";: PRINT USING F9$;"MICELLANEOUS", 3727 PRINT USING F5$;NO;: PRINT " = ";: PRINT USING F9$;"CASH", 3730 WHILE (WREC-1)-RECORDS<>0 3740 RECORDS=RECORDS+1: GET #3,RECORDS 3750 PRINT USING F5$;VAL(BB$); : PRINT " = "; : PRINT USING F9$;CC$, 3760 WEND 3770 CLOSE #3: PRINT: PRINT 3780 RETURN 3810 ' PRINT TYPE CLASSIFICATION NUMBERS TO CRT 3820 ' 3830 PRINT: PRINT "CLASSIFICATIONS ARE." : PRINT 3840 PRINT "0-CASH";TAB(30);"1-GROCERY & DRUGIST" 3850 PRINT "2-CLOTHS";TAB(30);"3-DRY CLEANERS" 3860 PRINT "4-CREDIT CARDS";TAB(30);"5-MORGATGE & UTILITIES" 3870 PRINT "6-TELEPHONE";TAB(30);"7-DOGS" 3880 PRINT "8-DOCTORS";TAB(30);"9-DENTIST" 3890 PRINT "10-BEAUTY (HAIRDRESSER)";TAB(30);"11-SUBSCRIPTIONS" 3900 PRINT "12-CHARITY";TAB(30);"13-TAXES/FED" 3910 PRINT "14-TAXES/STATE";TAB(30);"15-LARGE PURCHASE" 3915 PRINT "16-HOUSEKEEPER";TAB(30);"17-WORK RELATED" 3920 PRINT "18-INSURANCE";TAB(30);"19-JEWLERY" 3924 PRINT "20-GIFTS ";TAB(30);"21-AUTOMOBILE" 3925 PRINT TAB(13);"99-MISCELLANEOUS" 3928 REM IF YOU ADD MORE THAN 25 CLASSIFICATION TYPES LINES 1030 AND 4050 MUST BE CORRECTED 3929 PRINT 3930 RETURN 4000 ' PAYMENT (NOT WITH BILL) 4010 PRINT : PRINT "FOR 'CASH','MISCELLANEOUS' OR 'ACCOUNT' ? "; : OP$=INPUT$(1): PRINT OP$: IF LEFT$(OP$,1)="E" THEN RETURN 4020 IF LEFT$(OP$,1)="A" THEN GOTO 4210 4030 IF LEFT$(OP$,1)="C" THEN GOTO 4080 4032 IF LEFT$(OP$,1)<>"M" THEN PRINT "You must enter 'C','M' or 'A'": GOTO 4010 4035 ' Micellaneous 4040 INPUT "CLASSIFICATION TYPE NUMBER ? ",Z$ : IF Z$="?" THEN GOSUB 3820: GOTO 4040 4050 IF VAL(Z$)<0 OR (VAL(Z$)>25 AND VAL(Z$)<>99) OR VAL (Z$)<>INT(VAL(Z$)) THEN PRINT : PRINT "No such classification number" : PRINT: GOSUB 3810: GOTO 4040 4060 TYPE=VAL(Z$) : ACCOUNT.NO=-1 4070 INPUT "FOR WHAT (Payee) ? ",ACCOUNT.NAMEX$ 4075 ' Cash 4080 PRINT "PAYMENT BY CHECK ? "; : GOSUB 2400 4085 IF LEFT$(OP$,1)="M" THEN 4100 4090 ACCOUNT.NO=0 : ACCOUNT.NAMEX$="CASH" : TYPE=0 4100 IF ANSWER=YES THEN GOTO 4130 4110 INPUT "AMOUNT OF PAYMENT ? ", TOTAL.DUE : BALANCE=0 4120 AF=5 : GOSUB 2600 : GOTO 4160 4130 INPUT "AMOUNT OF CHECK ? ", TOTAL.DUE 4140 INPUT "CHECK NUMBER ? ", BALANCE 4150 AF=6 : GOSUB 2600 : 'INPUT DATE 4160 DUE.DATEX$=Z$ 4170 OPEN "R",1,F2$,64 : GOSUB 9000 4180 GET #1,1 : WREC=VAL(WREC$) 4190 GOSUB 10000 : GOSUB 10500 : 'PUT & INCREMENT 4200 CLOSE: PRINT: PRINT "ANOTHER WITHOUT A BILL ? ";: GOSUB 2400: IF ANSWER=YES THEN 4000 ELSE RETURN 4205 ' Account 4210 OPEN "R",1,F1$,64 : GOSUB 9000 : 'FIELD 4220 AF=4 : GOTO 12000 : 'INPUT ACCOUNT# 4260 CLOSE 4270 PRINT : PRINT "PAYMENT BY CHECK ? "; : GOSUB 2400 : GOTO 4100 5000 ' BILLS DUE THIS MONTH 5005 PRINT "TTY ? ";: GOSUB 2400: IF ANSWER=YES THEN AF=1 5010 OPEN "R",1,F1$,64 : GOSUB 9000 : 'OPEN AND FIELD 5030 Z$="BILLS DUE THIS MONTH" 5040 IF AF=1 THEN GOSUB 2750 : 'PRINT LPRINTER HEADER 5050 GOSUB 2700 : 'PRINT CRT HEADER 5060 TT=0 : GET #1,1 5070 FOR WREC=2 TO VAL(WREC$)-1 5080 GET #1,WREC 5090 IF VAL(BALANCE$)=0 THEN 5110 5100 IF LEFT$(DUE.DATE$,2)<=LEFT$(DATE$,2) THEN GOSUB 3420 : TT=TT+VAL(BALANCE$) : IF AF=1 THEN GOSUB 3520 5110 NEXT WREC : GOSUB 2790: IF AF=1 THEN GOSUB 2800: 'PRINT TRAILER 5120 IF AF=1 THEN LPRINT TAB(44);: LPRINT USING F8$; TT: LPRINT CHR$(12) 5130 PRINT TAB(44);: PRINT USING F8$; TT: PRINT 5140 CLOSE: RETURN 6000 ' LIST CURRENT ACCOUNTS 6010 PRINT "PRINT ON TTY ? ";: GOSUB 2400: IF ANSWER=YES THEN AF=1 6020 OPEN "R",1,F1$,64: GOSUB 9000: Z$="CURRENT ACCOUNTS" 6030 IF AF=1 THEN GOSUB 2750: 'LPRINT HEADER 6040 GOSUB 2700: 'PRINT HEADER 6050 TT=0: GET #1,1 6060 FOR WREC=2 TO VAL(WREC$)-1 6070 GET #1,WREC: TT=TT+VAL(BALANCE$) 6075 IF AF=1 THEN GOSUB 3520 6080 GOSUB 3420 6090 NEXT WREC 6100 GOSUB 2790: 'PRINT TRAILER 6110 IF AF=1 THEN GOSUB 2800: LPRINT TAB(44);: LPRINT USING F8$;TT: LPRINT CHR$(12) 6120 PRINT TAB(44);: PRINT USING F8$;TT 6125 PRINT STRING$(3,23) 6130 CLOSE: RETURN 7000 ' LIST ACCOUNT HISTORY 7010 PRINT "PRINT ON TTY ? ";: GOSUB 2400: IF ANSWER=YES THEN Z=1 7015 OPEN "R",1,F2$,64: GOSUB 9000 7020 AF=5: GOTO 12000: 'INPUT ACCOUNT NUMBER 7030 Z$="ACCOUNT HISTORY": TT=0: FL=1 7050 IF Z=1 THEN GOSUB 2750: 'LPRINT HEADER 7060 GOSUB 2700: 'PRINT HEADER 7070 GET #1,1 7080 FOR WREC=2 TO VAL(WREC$)-1 7090 GET #1,WREC 7100 IF VAL(ACCOUNT.NO$)=ACCOUNT.NO THEN GOSUB 3420: TT=TT+VAL(TOTAL.DUE$): IF Z=1 THEN GOSUB 3520 7110 NEXT WREC 7120 GOSUB 2780: IF Z=1 THEN GOSUB 2800: LPRINT TAB(32);: LPRINT USING F8$;TT: LPRINT CHR$(12) 7130 PRINT TAB(32);: PRINT USING F8$;TT: PRINT 7140 CLOSE 1: RETURN 8000 ' LIST SPECIFIC ACCOUNT 8010 PRINT "TTY ? ";: GOSUB 2400: IF ANSWER=YES THEN FL=1 8020 OPEN "R",1,F1$,64: GOSUB 9000: AF=8: GOTO 12000 8025 Z$="SPECIFIC ACCOUNT" 8030 GOSUB 2700: GOSUB 3420: IF FL=1 THEN GOSUB 2750: GOSUB 3520: GOSUB 2800 8040 GOSUB 2780 8050 CLOSE: RETURN 8500 ' EDIT AN ACCOUNT 8510 PRINT: PRINT "IS IT A CURRENT ACCOUNT TO BE EDITED ? ";: GOSUB 2400: IF ANSWER=NO THEN GOTO 8570 8520 OPEN "R",1,F1$,64: GOSUB 9000 8530 AF=6: GOTO 12000: 'GET ACCOUNT NUMBER 8540 PRINT: GOSUB 3420: PRINT TYPE$: 'PRINT TO CRT 8550 PRINT: PRINT "THIS TO BE EDITED ? ";: GOSUB 2400: IF ANSWER=NO THEN 2500: GOTO 8500 8560 GOTO 8650 8570 FL=1: OPEN "R",1,F2$,64: GOSUB 9000 8580 AF=7: GOTO 12000: 'GET ACCOUNT NUMBER 8590 GET #1,1: Z=VAL(WREC$) 8600 FOR WREC=2 TO Z 8610 GET #1,WREC: IF ACCOUNT.NO=VAL(ACCOUNT.NO$) THEN PRINT: GOSUB 3420: PRINT TYPE$: GOTO 8640 8620 NEXT WREC 8630 PRINT: PRINT "ACCOUNT NOT FOUND": CLOSE: GOTO 8500 8640 PRINT: PRINT "THIS TO BE EDITED ? ";: GOSUB 2400: IF ANSWER=NO THEN 8620 8650 PRINT "CHANGE WHAT FIELD ? ";: Z$=INPUT$(1): PRINT Z$: IF VAL(Z$)<1 OR VAL(Z$)>6 THEN PRINT: PRINT "The fields are numbered 1 thru 6": GOTO 8650 8660 Z=VAL(Z$) 8670 IF Z=1 THEN PRINT "ARE YOU SURE YOU WANT TO CHANGE THE ACCOUNT NUMBER ? ";: GOSUB 2400: IF ANSWER=N0 THEN 8650 8675 PRINT "RETYPE FIELD";Z; 8680 IF Z=1 THEN INPUT ACCOUNT.NO: LSET ACCOUNT.NO$=STR$(ACCOUNT.NO) 8690 IF Z=2 THEN INPUT ACCOUNT.NAMEX$: LSET ACCOUNT.NAME$=ACCOUNT.NAMEX$ 8700 IF Z=3 THEN INPUT TOTAL.DUE: LSET TOTAL.DUE$=STR$(TOTAL.DUE) 8710 IF Z=4 THEN INPUT BALANCE: LSET BALANCE$=STR$(BALANCE) 8720 IF Z=5 THEN INPUT DUE.DATEX$: LSET DUE.DATE$=DUE.DATEX$ 8730 IF Z=6 THEN INPUT TYPE: LSET TYPE$=MID$(STR$(TYPE),2) 8740 PUT #1,WREC: CLOSE: RETURN 9000 ' FIELD 9010 FIELD #1, 4 AS WREC$,4 AS ACCOUNT.NO$,30 AS ACCOUNT.NAME$,8 AS TOTAL.DUE$,8 AS BALANCE$,8 AS DUE.DATE$,2 AS TYPE$ 9020 FIELD #1,64 AS ZZ$ 9030 RETURN 10000 ' PUT DATA RECORD 10010 LSET ZZ$=STRING$(64,CHR$(32)) 10020 LSET WREC$=STR$(WREC) 10030 LSET ACCOUNT.NO$=STR$(ACCOUNT.NO) 10040 LSET ACCOUNT.NAME$=ACCOUNT.NAMEX$ 10050 LSET TOTAL.DUE$=STR$(TOTAL.DUE) 10060 LSET BALANCE$=STR$(BALANCE) 10070 LSET DUE.DATE$=DUE.DATEX$ 10080 IF LEFT$(STR$(TYPE),1)=" " THEN LSET TYPE$=MID$(STR$(TYPE),2) ELSE LSET TYPE$=STR$(TYPE) 10090 PUT #1,WREC : RETURN 10400 ' INCREMENT AND PUT NEXT AVAILABLE RECORD COUNTER 10500 LSET ZZ$=STRING$(64,CHR$(32)) 10510 LSET WREC$=STR$(WREC+1) 10520 PUT #1,1 : RETURN 12000 ' INPUT ACCOUNT NUMBER AND GET RECORD 12010 PRINT: INPUT "ACCOUNT NUMBER ? ",Z$ : IF LEFT$(Z$,1)="E" THEN CLOSE : RETURN 12020 IF LEFT$(Z$,1)="?" THEN GOSUB 3700: GOTO 12010 12030 IF VAL(Z$)=0 AND (AF=2 OR AF=3 OR AF=4) THEN PRINT: PRINT "You've entered a value that evaluates to zero": PRINT "Enter a NUMBER that is greater than zero.": PRINT SPC(21);"or": PRINT "If the account is CASH then use OPTION D.": GOTO 12010 12035 IF AF=7 THEN ACCOUNT.NO=VAL(Z$): AF=0: GOTO 8590 12050 ACCOUNT.NO=VAL(Z$) : WREC=ACCOUNT.NO+1 12055 IF AF=5 THEN 12075 12060 GET #1,WREC 12070 IF LEFT$(ACCOUNT.NAME$,1)=CHR$(0) THEN GOSUB 2500 : GOTO 12010 12075 IF AF=5 THEN ACCOUNT.NO=VAL(Z$): AF=0: GOTO 7030 12076 IF AF=6 THEN AF=0: GOTO 8540 12077 IF AF=8 THEN AF=0: GOTO 8025 12080 PRINT : PRINT "ACCOUNT NUMBER";ACCOUNT.NO;"IS ";ACCOUNT.NAME$ 12090 PRINT "CORRECT ? "; : GOSUB 2400 : IF ANSWER=NO THEN GOTO 12010 12100 ACCOUNT.NAMEX$=ACCOUNT.NAME$ : TYPE=VAL(TYPE$) 12110 IF AF=2 THEN AF=0 : GOTO 2020 12120 IF AF=3 THEN AF=0 : GOTO 3020 12130 IF AF=4 THEN AF=0 : GOTO 4260 20000 ' RUN SYSTEM MENU 20010 CLOSE 20020 RUN M1$ 25000 RESET: END 50000 ' INITIALIZE FILES TO EMPTY 50005 OPEN "R",1,Z$,64 50010 IF LOF(1)>0 THEN CLOSE: RETURN 50013 PRINT 50014 PRINT "Initializing ";Z$ 50020 FIELD #1,4 AS WREC$,60 AS ZZ$ 50030 LSET WREC$="2": PUT #1,1 50040 CLOSE: RETURN INT 50014 PRINT "Initializing ";Z$ 50020 FIELD #1,