Listing of file='CHECKB.BAS;01' on disk='vmedia/chip_110-sector.ccvf'
10 REM CHECKBOOK MINDER / C.BELL 15 CLEAR 4500:DIM CA$(99),DR(1):CA= 0:BD= 0:ZLLOC= - 1 16 FOR I= 1 TO 7:READ TPE$(I):NEXT I 17 DATA "BALANCE FORWARD","ADJUSTMENT","DEPOSIT (OUTSTD)","DEPOSIT (CLEARED)" 18 DATA "CHECK (OUTSTD)","CHECK (CLEARED)","CHECK CANCELED" 45 BALFWD= 0:ALLOC= 0:TDAY$= "":FV= - 1 47 PLOT 12 48 PRINT "CHECKING ACCOUNT MAINTENANCE UTILITY (JAN 82)" 49 PRINT :PRINT :VF= - 1 50 INPUT "ENTER TODAY'S DATE (MMDDYY): ";DATE$ 55 GOSUB 9450:IF LEN (DATE$)= 0 THEN GOTO 50 56 TDAY$= DATE$ 60 FC$= "CHKB"+ RIGHT$ (DATE$,2)+ ".YTD":FL= 1:FL$= "CHART.ACT" 61 PRINT 62 PRINT "CONFIRM TODAYS DATE IS "+ LEFT$ (DATE$,2)+ "/"+ MID$ (DATE$,3,2)+ "/"+ RIGHT$ (DATE$,2)+ ": "; 65 INPUT "";ANS$ 70 IF LEFT$ (ANS$,1)< > "Y" THEN GOTO 50 72 PLOT 6,6,12 73 PRINT "":PRINT " COMPUCOLOR II CHECKING ACCOUNT MAINTENENCE UTILITY (JAN 82)" 74 PRINT TAB( 10);"SELECT FUNCTION FROM FOLLOWING MENU..." 75 PRINT :IF FV> 0 THEN 80 77 PRINT TAB( 15);"INIT INITIALIZE LEDGER DATASET." 78 PRINT TAB( 15);"LOAD LOAD THE LEDGER INTO MEMORY." 79 IF FV< 0 THEN GOTO 87 80 PRINT TAB( 15);"ADD ADD NEW TRANSACTION TO LEDGER." 82 PRINT TAB( 15);"EDIT MODIFY EXISTING TRANSACTIONS." 83 PRINT TAB( 15);"RECON RECONCILE ACCOUNT WITH BANK." 84 PRINT TAB( 15);"LIST LIST CHECK REG OR CHART OF ACCTS." 85 PRINT TAB( 15);"DELET DELETE LAST TRANSACTION IN LEDGER." 87 PRINT TAB( 15);"END END PROGRAM EXECUTION." 88 PRINT :INPUT ">>=> ";ANS$ 89 IF ANS$= "INIT" THEN GOSUB 5300:GOTO 72 90 IF ANS$= "LOAD" THEN GOSUB 5400:GOTO 72 92 IF ANS$= "END" THEN PRINT "":PLOT 12:END :GOTO 92 96 IF ANS$= "EDIT" THEN GOSUB 8000:GOTO 72 97 IF ANS$= "ADD" THEN GOSUB 9500:GOTO 72 98 IF ANS$= "RECON" THEN GOSUB 3000:GOTO 72 99 IF ANS$= "DELET" THEN GOSUB 9520:FOR ZZ= 1 TO 900:NEXT ZZ:GOTO 72 100 IF ANS$= "LIST" THEN GOSUB 4000:GOTO 72 110 PRINT "FUNCTION '"+ ANS$+ "' NOT SUPPORTED.":GOTO 88 3000 PLOT 12:PRINT TAB( 10);"BANK RECONCILATION ROUTINE" 3005 PRINT 3010 PRINT TAB( 15);"(1) CHECK CLEARED." 3015 PRINT TAB( 15);"(2) DEPOSIT CLEARED" 3020 PRINT TAB( 15);"(3) RECONCILE TO BANK STATEMENT BALANCE." 3025 PRINT "":INPUT "SELECT 1, 2, OR 3: ";TN 3027 IF TN= 0 THEN RETURN 3030 IF TN< 1 OR TN> 3 THEN GOTO 3025 3035 ON TN GOSUB 3100,3200,3300 3040 GOTO 3000 3100 PRINT :INPUT "ENTER 1ST CHECK NUMBER: ";TC$ 3105 PRINT "SEARCHING FROM CURRENT POSITION IN FILE...":SR= 0 3110 FOR CP= CPTO ALLOC 3120 EL= CP:GOSUB 5500:IF TYPE< > 5 THEN 3130 3124 IF SR= 1 THEN GOTO 3140 3125 IF TC$= CK$ OR VAL (TC$)= VAL (CK$) THEN GOTO 3140 3130 NEXT CP 3131 CP= CP- 1 3135 IF SR= 0 THEN INPUT "CHECK NOT LOCATED.";ANS$:RETURN 3136 INPUT "END OF CHECK CLEARED PROCESSING.";ANS$:RETURN 3140 SR= 1:NL= 1:GOSUB 4055 3145 PRINT :INPUT "HAS THIS CHECK CLEARED ('*' TO END)? ";ANS$ 3150 IF LEFT$ (ANS$,1)= "*" THEN RETURN 3151 IF LEFT$ (ANS$,1)< > "Y" THEN 3130 3155 TYPE= 6:EL= CP:GOSUB 9905:GOTO 3130 3200 PRINT :INPUT "ENTER DEPOSIT AMOUNT:";TA 3205 PRINT "SEARCHING FROM CURRENT FILE POSITION..." 3210 FOR CP= CP TO ALLOC 3220 EL= CP:GOSUB 5500:IF TYPE< > 3 THEN 3230 3225 IF TA= AMT THEN GOTO 3240 3230 NEXT CP 3235 INPUT "DEPOSIT NOT LOCATED.";ANS$:RETURN 3240 NL= 1:GOSUB 4055 3245 PRINT :INPUT "IS THIS THE DEPOSIT: ";ANS$ 3250 IF LEFT$ (ANS$,1)< > "Y" THEN RETURN 3255 TYPE= 4:EL= CP:GOSUB 9905:RETURN 3300 PLOT 12:PRINT "DEVELOPING CROSS BANK STATEMENT TRIAL BALANCE" 3301 PRINT 3305 EL= ALLOC:GOSUB 5500:TB= BALFWD:ZB= BALFWD 3306 OD= 0:OC= 0:CD= 0:DD= 0 3307 PRINT "YOUR ENDING BANK BALANCE: ";:AMT= TB:GOSUB 5000:PRINT "":PRINT "" 3310 FOR EL= ALLOC TO FV STEP - 1 3315 GOSUB 5500 3316 IF TYPE= 3 THEN OD= OD+ 1:DD= DD+ AMT:TB= TB- AMT 3317 IF TYPE= 5 THEN OC= OC+ 1:CD= CD+ AMT:TB= TB- AMT 3320 NEXT EL 3325 PRINT "";OD;" OUTSTANDING DEPOSITS VALUED AT "; 3326 AMT= DD:GOSUB 5000:PRINT 3330 PRINT :PRINT "";OC;" OUTSTANDING CHECKS VALUED AT "; 3331 AMT= CD:GOSUB 5000:PRINT 3335 PRINT "":PRINT "":PRINT "THIS YEILDS A TRIAL BALANCE OF "; 3340 AMT= TB:GOSUB 5000 3345 PRINT :INPUT "DOES THIS AMT VERIFY WITH YOUR BANK STATEMENT: ";ANS$ 3350 IF LEFT$ (ANS$,1)< > "Y" THEN RETURN 3355 AMT= ZB:DATE$= TDAY$:CK$= "":TYPE= 1:DESC$= "BAL RECONCILED":BALFWD= ZB:CHART= 255 3360 GOSUB 9900:INPUT "NEW BALANCE FORWARD ESTABLISHED.";ANS$:RETURN 4000 REM LIST ROUTINE 4005 PLOT 6,6,12:PRINT TAB( 10);"'LIST COMMAND'--SELECT ONE OF THE FOLLOWING:" 4010 PRINT :PRINT TAB( 15);"REG LIST CHECK REGISTER BY PAGE." 4015 PRINT TAB( 15);"ACCTS CHART OF ACCOUNTS." 4020 PRINT TAB( 15);"SCAN SCAN FOR SPECIFIC ENTRY." 4022 PRINT TAB( 15);"PRINT PRINT SECTION OF CHECK REGISTER." 4025 PRINT :INPUT ">>=> ";ANS$ 4026 IF ANS$= "END" OR ANS$= "0" THEN RETURN 4030 IF ANS$= "ACCTS" THEN RQ= 1:GOTO 6000 4035 IF ANS$= "SCAN" THEN 4200 4040 IF ANS$= "REG" THEN GOTO 4050 4042 IF ANS$= "PRINT" THEN GOTO 4150 4045 PRINT "ERROR.":GOTO 4025 4050 REM LIST CHECK REGISTER 4052 NL= 5:IF CP= 0 THEN CP= ALLOC:REM START AT BOTTOM 4054 GOSUB 4055:GOTO 4110 4055 PLOT 12 4056 PLOT 6,6 4060 FOR EL= CP- NL+ 1 TO CP:IF EL< FV THEN EL= FV 4061 IF EL= FV THEN PRINT "=====(TOP)============================================(TOP)=====" 4065 GOSUB 5500:IF TYPE< 1 THEN GOTO 4105:REM DESEGMENT THIS ENTRY 4070 PRINT "(";EL;") "; 4071 IF CK< > 0 THEN PRINT "CK:"; RIGHT$ ("0000"+ CK$,5);" ";:GOTO 4073 4072 PRINT "CK: N/A "; 4073 PRINT DATE$; 4075 PRINT TAB( 31);TPE$(TYPE); 4076 IF TYPE= 1 THEN BALFWD= AMT 4080 PRINT TAB( 52):GOSUB 5000:PRINT "" 4085 PRINT DESC$;TAB( 52);"___________" 4090 IF CHART= 255 THEN PRINT :PRINT TAB( 52);"";:GOTO 4100 4095 PRINT CA$(CHART);TAB( 52);""; 4100 SA= AMT:AMT= BALFWD:GOSUB 5000:AMT= SA 4102 PRINT "" 4103 IF EL= ALLOC THEN PRINT "=====(BOTTOM)======================================(BOTTOM)=====":RETURN 4104 PRINT "================================================================" 4105 NEXT EL:RETURN 4110 INPUT "ENTER REPOSITION VALUE: ";RV 4115 IF RV= 0 THEN RETURN 4120 CP= CP+ RV 4125 IF CP> ALLOC THEN CP= ALLOC 4130 IF CP< FV THEN CP= FV 4135 GOTO 4054 4150 REM PRINT CKREG 4152 NL= 1:GOSUB 4055:PRINT "" 4154 INPUT "CONFIRM INTENT TO PRINT STARTING AT THIS TRANSACTION: ";ANS$ 4156 IF LEFT$ (ANS$,1)< > "Y" THEN PRINT "USE LIST MODE TO REPOSITION.":RETURN 4158 INPUT "HOW MANY ENTRIES TO LIST? ";NL 4160 IF NL< 1 THEN 4158 4161 IF (CP+ NL)> ALLOC THEN NL= ALLOC- CP 4162 CP= CP+ NL:INPUT "READY PRINTER THEN PRESS RETURN:";WQ$ 4164 PLOT 14,27,18,4,15,27,13:GOSUB 4055:POKE 33265,0:RETURN 4200 REM FILE SCAN 4205 PLOT 6,6,12:PRINT "CHECKBOOK SCAN ROUTINE":PRINT 4210 PRINT TAB( 10);"(1) SCAN ON CHECK NUMBER" 4215 PRINT TAB( 10);"(2) SCAN ON TRANSACTION AMOUNT" 4220 PRINT TAB( 10);"(3) SCAN ON CHART OF ACCOUNTS." 4221 PRINT TAB( 10);"(4) SCAN ON TRANSACTION TYPE." 4223 PRINT :INPUT "SELECT TYPE (1-4): ";NN 4224 IF NN< 2 OR NN> 4 THEN 4234 4225 DR(0)= 010101:DR(1)= VAL (TDAY$):INPUT "CARE TO SELECT BY DATE:";ANS$:IF LEFT$ (ANS$,1)< > "Y" THEN 4234 4226 KD= DATE:KD$= DATE$:INPUT "ENTER START DATE RANGE: ";DATE$:GOSUB 9450 4227 IF LEN (DATE$)< > 0 THEN DR(0)= VAL (DATE$) 4228 INPUT "ENTER ENDING DATE RANGE: ";DATE$:GOSUB 9450 4229 IF LEN (DATE$)< > 0 THEN DR(1)= VAL (DATE$) 4230 DATE= KD:DATE$= KD$ 4234 ON NN+ 1 GOTO 4240,4300,4400,4500,4600 4235 GOTO 4225 4240 RETURN 4300 NL= 1:PRINT :INPUT "ENTER CHECK NUMBER TO FIND: ";TCN 4305 PLOT 12:PRINT "SCANNING:":FOR EL= FV TO ALLOC:GOSUB 5500 4310 IF CK= TCN THEN CP= EL:GOSUB 4056:REM PRINT IT. 4315 NEXT EL:GOTO 4580 4400 NL= 1:PRINT :INPUT "ENTER AMOUNT: ";TM 4405 PLOT 12:PRINT "SCANNING:":TM= ABS (TM):FOR EL= FV TO ALLOC:GOSUB 5500 4410 IF ABS (AMT)= TM AND DR(0)< = DATE AND DR(1)> = DATE THEN CP= EL:GOSUB 4056:REM PRINT MATCH 4415 NEXT EL:GOTO 4580 4500 RQ= 0:FOR UI= 0 TO 9:GOSUB 6000:UD(UI)= TC:IF TC< 0 OR TC> 254 THEN 4502 4501 NEXT UI 4502 IF UI= 0 THEN PRINT "LIST REQUESTED FOR 'NOT-ENCODED' TYPES.":UI= - 1:GOTO 4505 4503 UI= UI- 1:PRINT "CONFIRM INTENT TO SCAN THE FOLLOWING: ":FOR UJ= 0 TO UI:PRINT CA$(UD(UJ)):NEXT UJ 4504 PRINT :INPUT "(YES OR NO): ";ANS$:IF LEFT$ (ANS$,1)< > "Y" THEN 4500 4505 INPUT "PAUSE BY PAGE?";ANS$:PS= - 1:IF LEFT$ (ANS$,1)= "Y" THEN PS= 0 4506 INPUT "OUTPUT TO SCREEN OR PRINTER? ";ANS$:IF LEFT$ (ANS$,1)< > "P" THEN 4509 4507 INPUT "READY PRINTER THEN PRESS RETURN:";WQ$ 4508 PLOT 14,27,18,4,15,27,13 4509 PRINT "SCANNING:":NL= 1:TA= 0:NN= 0:MM= 0:M1= 0:M2= 0:M3= 0 4510 FOR CP= FV TO ALLOC:EL= CP:GOSUB 5500 4511 IF TYPE< 5 THEN 4550 4512 IF UI= - 1 AND CHART< 255 THEN 4550 4513 IF UI= - 1 THEN 4520 4514 FOR UJ= 0 TO UI:IF CHART= UD(UJ) THEN 4520 4515 NEXT UJ:GOTO 4550 4520 IF NN= 0 AND PEEK (33265)= 0 THEN PLOT 12 4521 IF DATE< DR(0) OR DATE> DR(1) THEN 4550 4525 MM= MM+ 1:GOSUB 4056 4526 IF TYPE= 5 THEN TA= TA+ AMT:M1= M1+ 1 4527 IF TYPE= 6 THEN TA= TA+ AMT:M3= M3+ 1 4528 IF TYPE= 7 THEN M2= M2+ 1 4530 NN= NN+ 1:IF NN= 5 THEN NN= 0:IF PS= 0 THEN INPUT "PRESS RETURN TO VIEW MORE.";UU$ 4550 NEXT CP 4551 POKE 33265,0 4552 IF NN> 4 THEN INPUT "PRESS RETURN TO SEE TOTALS:";UU$:PLOT 12 4555 PS= 0:PRINT "END OF FILE REACHED." 4560 PRINT "THERE WERE ";MM;" CHECKS ISSUED." 4565 PRINT "TOTALING ";:AMT= TA:GOSUB 5000:PRINT " AND AVERAGING ";:AMT= 0:IF MM< > 0 THEN AMT= TA/ MM 4566 GOSUB 5000:PRINT 4570 PRINT "OF THESE, ";M1;" ARE OUTSTANDING ";M2;" ARE CANCELED," 4575 PRINT "AND ";M3;" HAVE CLEARED THE BANK." 4576 IF M2> 0 THEN PRINT "(CANCELED CHECKS ARE NOT TOTALED IN AMOUNT)" 4580 PRINT :INPUT "PRESS RETURN TO RETURN TO MAIN MENU.";UU$:RETURN 4600 NL= 1:PLOT 12:PRINT "SELECT WHICH TRANSACTION TYPE" 4601 FOR YT= 1 TO 7:PRINT YT,TPE$(YT):PLOT 6,6:NEXT YT 4602 PRINT :INPUT "WHICH TYPE: ";YT:IF YT< 1 OR YT> 7 THEN 4602 4603 PLOT 12:PRINT "SELECTING ";TPE$(YT) 4605 FOR EL= FV TO ALLOC:GOSUB 5500 4611 IF TYPE= YT AND DR(0)< = DATE AND DR(1)> = DATE THEN CP= EL:GOSUB 4056:REM PRINT MATCH 4620 NEXT EL:GOTO 4580 5000 REM SUBROUTINE TO FORMAT VALUE IN AMT TO $ 5005 IF AMT> - .005 AND AMT< .005 THEN AMT= 0 5010 D1= INT (ABS (AMT)):IF AMT< 0 THEN D1= - D1 5015 E1= INT ((1.005+ ABS (AMT)- ABS (D1))* 100) 5020 PRINT "$";RIGHT$ (" "+ STR$ (D1)+ "."+ RIGHT$ (STR$ (E1),2),10); 5025 RETURN 5100 REM FILE MGMT ROUTINE 5105 REM INPUTS: FL$=FILE NAME,RBA=REL BYTE FOR START OF STRING 5110 REM INPUTS: FL=FILE #,RW=0 THEN READ, 1=WRITE 5115 REM IN/OUT: WK$=INPUT OR OUTPUT STRING 5120 FILE "T",5125:GOTO 5145 5125 FILE "E",FL,ER,LN 5130 PRINT "DISK ERROR IN FILE MANAGER." 5135 PRINT "FILE-";FL,"ERROR-";ER,"LINE#-";LN 5140 PRINT "EXECUTION TERMINATED.":END 5145 IF RBA> 0 THEN GOTO 5160 5150 IF RBA< 0 THEN FILE "C",FL:RETURN 5155 FILE "R",FL,FL$,1 5160 REM CALCULATE BUFFER # 5165 BN= INT (RBA/ 128)+ 1:START= RBA- ((BN- 1)* 128)+ 1 5170 GET FL,BN;BF$[128] 5175 IF RW= 1 THEN GOTO 5215:REM FILE WRITE REQUEST 5180 BF$= MID$ (BF$,START):REM TRUNCATE TO START OF STRING 5185 LG= ASC (LEFT$ (BF$,1)):RBA= RBA+ LG+ 1:REM STRING LENGTH 5190 IF LG< LEN (BF$) THEN WK$= MID$ (BF$,2,LG):RETURN 5195 WK$= MID$ (BF$,2):REM 1ST OF STRING 5200 GET FL,BN+ 1;BF$[128] 5205 WK$= WK$+ LEFT$ (BF$,(LG- LEN (WK$))) 5210 RETURN 5215 REM FILE WRITE ROUTINE 5220 RBA= RBA+ LEN (WK$)+ 1 5225 WK$= CHR$ (LEN (WK$))+ WK$:REM START WITH STRING LENGTH BYTE 5230 IF (LEN (WK$)+ START- 1)> 128 THEN GOTO 5250:REM SPANNED RECORD 5235 IF START> 1 THEN BF$= LEFT$ (BF$,START- 1)+ WK$+ MID$ (BF$,START+ LEN (WK$)):GOTO 5245 5240 BF$= WK$+ MID$ (BF$,START+ LEN (WK$)):GOTO 5245 5245 PUT FL,BN;BF$[128]:RETURN 5250 RL= START+ LEN (WK$)- 129:REM CALC RESIDUAL LENGTH 5255 L1= LEN (WK$)- RL:REM CALC LENGTH FIRST SEGMENT 5260 BF$= LEFT$ (BF$,START- 1)+ LEFT$ (WK$,L1) 5265 PUT FL,BN;BF$[128]:GET FL,BN+ 1;BF$[128] 5270 BF$= RIGHT$ (WK$,RL)+ MID$ (BF$,RL+ 1) 5275 PUT FL,BN+ 1;BF$[128] 5280 RETURN 5300 REM FILE INITIALIZATION 5305 PLOT 12:INPUT "CONFIRM INTENT TO INITIALIZE YTD FILE: ";ANS$ 5310 IF LEFT$ (ANS$,1)< > "Y" THEN RETURN 5312 INPUT "HOW MANY 128 BYTE BLOCKS FOR CHART OF ACCTS FILE: ";BLK 5313 IF BLK< 1 OR BLK> 399 THEN PRINT "INVALID FILE SIZE.":GOTO 5312 5314 FILE "N",FL$,BL,128,7 5319 INPUT "HOW MANY 128 BYTE BLOCKS FOR CHECK FILEND : ";BLK 5320 IF BLK< 1 OR BLK> 399 THEN PRINT "INVALID FILE SIZE.":GOTO 5319 5321 BLK= BLK* 4:REM # OF RECORDS 5322 BLK= INT ((BLK+ 31)/ 32)* 32 5323 PRINT "SPACE ALLOCATED FOR ";BLK;" RECORDS IN FILE." 5325 FILE "N",FC$,BLK,32,32 5326 FILE "R",2,FC$,2 5327 FV= 2:ALLOC= 1:PUT 2,1;FV,ALLOC 5330 PLOT 12:PRINT "FILE ";FC$;" IS ALLOCATED.":PRINT 5332 PRINT "LOAD THE CHART OF ACCOUNTS":GOSUB 9015 5335 PRINT "CHART OF ACCOUNTS IS ESTABLISHED." 5340 PRINT :INPUT "ENTER INITIAL BALANCE: ";AMT 5345 PRINT "CONFIRM INITIAL BALANCE OF ";:GOSUB 5000 5350 INPUT ":";ANS$ 5355 IF LEFT$ (ANS$,1)< > "Y" THEN GOTO 5340 5357 INPUT "ENTER DATE ESTABLISHED: ";DATE$:GOSUB 9450:IF LEN (DATE$)= 0 THEN DATE$= TDAY$ 5360 TYPE= 1:CK$= "":DESC$= "BALANCE FORWRD":CHART= 255 5361 BALFWD= AMT 5365 GOSUB 9900 5370 RETURN 5400 REM LOAD CHART OF ACCTS AND OPEN CK FILE 5401 FILE "R",2,FC$,5:GET 2,1;FV,ALLOC:CP= ALLOC 5402 RBA= 0:RW= 0 5405 FOR ZLLOC= 0 TO 99 5410 GOSUB 5100:REM READ ONE RECORD 5415 CA$(ZLLOC)= WK$:IF LEN (WK$)= 0 THEN ZLLOC= ZLLOC- 1:RBA= - 1:GOSUB 5100:RETURN 5420 NEXT ZLLOC 5425 PRINT "CHART OF ACCTS ARRAY OVERFLOW.":END 5500 REM DESEGMENT RECORD 5502 REM INPUT EL (ENTRY LOCASOR) 5505 REM RETURNS TYPE,CK$,AMT,DATE$,DESC$ 5506 IF EL> ALLOC THEN EL= ALLOC 5510 GET 2,EL;CK,DATE,AMT,BALFWD,TYPE$[1],CHART$[1],DESC$[14] 5515 TYPE= ASC (TYPE$) 5516 IF TYPE= 0 THEN RETURN 5540 CK$= STR$ (CK) 5545 ST$= STR$ (DATE):IF DATE> 100000 THEN ST$= MID$ (ST$,2) 5550 DATE$= LEFT$ (ST$,2)+ "/"+ MID$ (ST$,3,2)+ "/"+ RIGHT$ (ST$,2) 5557 CHART= ASC (CHART$) 5560 RETURN 6000 REM LIST CHART OF ACCOUNTS ROUTINE... 6005 REM INPUT=RQ 0=LIST WITH RESPONSE 6010 REM 1=LIST WITHOUT RESPONSE 6020 EL= - 1:SWT= 0 6022 PLOT 12 6023 PRINT " CHART OF ACCOUNTS.....":PRINT 6025 FOR I= 1 TO 10 6030 EL= EL+ 1:IF EL> ZLLOC THEN GOTO 6109 6045 PRINT "(";EL+ 1;"). ";CA$(EL);"" 6050 PRINT 6105 NEXT I 6109 IF RQ= 0 THEN GOTO 6112 6110 PRINT :INPUT "***";ZZ$:IF EL< ZLLOC THEN GOTO 6022 6111 RETURN 6112 PRINT :INPUT "SELECT ENTRY OR HIT RETURN: ";TC:IF TC- 1> ZLLOC THEN 6112 6113 IF TC> 0 THEN TC= TC- 1:RETURN :REM CHOICE IS IN TC. 6114 IF TC< 0 THEN GOTO 6020 6115 IF EL< ZLLOC THEN GOTO 6022 6120 TC= - 1:RETURN :REM NONE CHOSEN 8000 REM EDIT TRANSACTION AT CP 8001 PLOT 12:INPUT "EDIT TRANSACTIONS OR CHART OF ACCOUNTS: ";ANS$:IF LEFT$ (ANS$,1)= "T" THEN 8005 8002 IF LEFT$ (ANS$,1)= "C" OR LEFT$ (ANS$,1)= "A" THEN 8700 8003 GOTO 8001 8005 NL= 1:GOSUB 4055:PRINT "" 8006 INPUT "CONFIRM INTENT TO EDIT THIS TRANSACTION: ";ANS$ 8009 IF LEFT$ (ANS$,1)= "Y" THEN GOTO 8050 8012 INPUT "ENTER REPOSITION OR END: ";ANS$ 8015 IF LEFT$ (ANS$,1)= "E" OR ANS$= "0" THEN RETURN 8018 IF LEFT$ (ANS$,1)< > "R" THEN GOTO 8012 8021 PRINT "SYSTEM WILL ENTER 'LIST' MODE FOR REPOSITIONING," 8024 PRINT "USE THE 'LIST' COMMAND POSITIONING FACILITY TO PLACE THE" 8027 PRINT "TRANSACTION WHICH YOU DESIRE TO EDIT AS THE LAST TRANSACTION" 8030 PRINT "ON THE PAGE. THEN PRESS THE RETURN KEY TO RETURN TO 'EDIT." 8033 PRINT :INPUT "PRESS ENTER TO EXIT TO EDIT ";ANS$ 8036 GOSUB 4050:GOTO 8005 8050 IF TYPE= 2 OR TYPE> 4 THEN PRINT :INPUT "ENTER CK#,DATE,AMT,DESC,CHART,STATUS, OR END: ";ANS$ 8051 IF TYPE= 3 OR TYPE= 4 THEN PRINT :INPUT "ENTER DATE,AMT,DESC,STATUS, OR END: ";ANS$ 8052 IF TYPE= 1 THEN PRINT :INPUT "ENTER DATE,AMT,DESC, OR END: ";ANS$ 8056 IF ANS$= "0" THEN GOTO 8050 8059 IF ANS$= "END" THEN RETURN 8062 IF ANS$= "CK#" THEN GOTO 8200 8065 IF ANS$= "DATE" THEN GOTO 8250 8068 IF ANS$= "AMT" THEN GOTO 8300 8071 IF ANS$= "DESC" THEN GOTO 8350 8074 IF ANS$= "CHART" THEN GOTO 8400 8077 IF ANS$= "STATUS" THEN GOTO 8450 8080 PRINT "VERB '";ANS$;"' IS NOT RECOGNIZED.":GOTO 8050 8100 INPUT "CONFIRM INTENT TO REPLACE THIS TRANSACTION: ";ANS$ 8106 IF LEFT$ (ANS$,1)< > "Y" THEN GOTO 8050 8109 EL= CP:GOSUB 9905 8110 NL= 1:GOSUB 4055:PRINT "" 8120 GOTO 8050 8200 PRINT "CHECK NUMBER WAS '";CK$;"'." 8203 INPUT "ENTER NEW CHECK NUMBER:";CK$ 8206 GOTO 8100 8250 PRINT "DATE WAS '";DATE$;"'." 8255 INPUT "ENTER NEW DATE: ";DATE$:GOSUB 9450:GOTO 8100 8300 REM CHANGE THE AMT FIELD AND ADJUST THE REMAINING BALANCES 8303 OA= AMT:OB= BALFWD:OC= CP 8306 BALFWD= BALFWD- AMT:REM SET TO PREV BAL FWD 8309 PRINT "TRANACTION AMOUNT IS ";:GOSUB 5000:PRINT "." 8312 INPUT "ENTER NEW AMOUNT: ";AMT 8313 IF TYPE> 4 AND AMT> 0 THEN AMT= - AMT 8314 IF (TYPE= 3 OR TYPE= 4) AND (AMT< 0) THEN AMT= - AMT 8315 PRINT "TRANACTION AMOUNT IS ";:GOSUB 5000:PRINT "." 8318 INPUT "CONFIRM THIS TRANSACTION AMOUNT: ";ANS$ 8321 IF LEFT$ (ANS$,1)< > "Y" THEN BALFWD= OB:AMT= OA:GOTO 8050 8330 IF TYPE< > 7 THEN BALFWD= BALFWD+ AMT 8331 EL= CP:GOSUB 9905:REM UPDATE THIS TRANSACTION 8333 IF CP= ALLOC OR TYPE= 0 THEN GOTO 8050 8336 BD= 1:FOR EL= CP+ 1 TO ALLOC 8339 OB= BALFWD:GOSUB 5500 8341 IF TYPE= 1 OR TYPE= 7 THEN BALFWD= OB:GOTO 8343 8342 BALFWD= OB+ AMT 8343 GOSUB 9905 8345 NEXT EL:BD= 0:CP= OC:FILE "D",2 8346 EL= CP:GOSUB 5500 8348 GOTO 8050 8350 PRINT "PREVIOUS DESC WAS '";DESC$;"'." 8355 INPUT "ENTER NEW DESC: ";DESC$:GOTO 8100 8400 RQ= 0:GOSUB 6000:CHART= 0:IF TC> 0 THEN CHART= TC 8405 GOTO 8100 8450 PRINT "PRESENT STATUS IS '";TPE$(TYPE);"'." 8453 IF TYPE< 3 THEN PRINT "THIS TYPE MAY NOT BE ALTERED.":GOTO 8050 8456 IF TYPE> 4 THEN GOTO 8500 8459 PRINT "SELECT!O E OF THE FOLLOWING:" 8462 PRINT :PRINT "(1) ";TPE$(3):PRINT "(2) ";TPE$(4) 8465 PRINT :INPUT "ENTER 1 OR 2: ";ZI 8468 IF ZI< 1 OR ZI> 2 THEN GOTO 8465 8471 TYPE= ZI+ 2:GOTO 8100 8500 PRINT "SELECT ONE OF THE FOLLOWING1" 8505 PRINT :PRINT "(1) ";TPE$(5):PRINT "(2) ";TPE$(6) 8510 PRINT "(3) ";TPE$(7) 8512 PRINT :INPUT "ENTER 1, 2, OR 3: ";ZI 8515 IF ZI< 1 OR ZI> 3 THEN GOTO 8512 8520 OT= TYPE:TYPE= ZI+ 4 8525 IF OT< > 7 AND TYPE< > 7 THEN GOTO 8100 8530 REM CHANGE BALANCES FOR CANCELED CHECK 8535 IF OT< > 7 THEN BALFWD= BALFWD- AMT 8540 GOTO 8330 8700 REM EDIT A CHART OF ACCOUNTS ENTRY 8710 RQ= 0:GOSUB 6000:CHART= 0:IF TC< 0 THEN RETURN 8715 PLOT 12:PRINT "ACCOUNT DESCRIPTION WAS '";CA$(TC);"'." 8720 PRINT :PRINT "ENTER A NEW DESCRIPTION OR NULL TO LEAVE AS IS." 8725 INPUT ":";ANS$:IF ANS$= "" OR ANS$= "0" THEN RETURN 8730 CA$(TC)= ANS$ 8735 GOTO 9100 9015 REM THIS IS ADD TO CHART OF ACCTS 9025 FOR ZLLOC= ZLLOC+ 1 TO 99 9030 PRINT :PRINT "ENTER ACCT DESCRIPTION (OR PRESS RETURN TO END)" 9031 INPUT ":";CA$(ZLLOC) 9035 IF CA$(ZLLOC)= "0" THEN ZLLOC = ZLLOC- 1:GOTO 9100 9040 NEXT ZLLOC 9045 PRINT "CHART OF ACCTS IS NOW FULL." 9100 RBA= 0:RW= 1 9110 FOR IZ= 0 TO ZLLOC:WK$= CA$(IZ):GOSUB 5100:NEXT IZ 9120 WK$= "":GOSUB 5100:RBA= - 1:GOSUB 5100 9130 PRINT "CHART OF ACCOUNTS STORED TO DISK." 9140 RETURN 9400 REM PRINT MENU OF TRANSACTION TYPE 9405 PLOT 12 9410 PRINT "SELECT TRANSACTION TYPE":PRINT 9416 PRINT TAB( 10);"(1) CHECK ISSUED." 9420 PRINT TAB( 10);"(2) DEPOSIT MADE." 9425 PRINT TAB( 10);"(3) ADJUSTMENT" 9427 PRINT TAB( 10);"(4) CHART OF ACCOUNTS" 9428 PRINT TAB( 10);"(5) SET VERIFY SWITCH ON" 9429 PRINT TAB( 10);"(6) SET VERIFY SWITCH OFF" 9430 PRINT :PRINT "ENTER 1, 2, 3, OR 4: ":INPUT "(PRESS RETURN TO END ADDITIONS)";TR 9431 IF TR= 5 THEN VF= - 1 9432 IF TR= 6 THEN VF= 0 9435 IF TR< 0 OR TR> 4 THEN GOTO 9405 9440 RETURN 9450 REM EDIT DATE 9452 IF DATE$= "0" AND LEN (TDAY$)> 0 THEN DATE$= TDAY$:RETURN 9455 IF LEN (DATE$)< > 6 THEN GOTO 9490 9460 IF LEFT$ (DATE$,2)< "01" OR LEFT$ (DATE$,2)> "12" THEN GOTO 9490 9465 IF MID$ (DATE$,3,2)< "01" OR MID$ (DATE$,3,2)> "31" THEN GOTO 9490 9470 IF RIGHT$ (DATE$,2)< "80" OR RIGHT$ (DATE$,2)> "99" THEN GOTO 9490 9475 RETURN 9490 PRINT "BAD DATE.":DATE$= "":RETURN 9500 REM ADD NEW TRANSACTION. 9505 GOSUB 9400:REM GET TRANSACTION TYPE 9507 IF TR= 0 THEN RETURN 9510 ON TR GOSUB 9600,9700,9800,9015:REM CHECK,DEPOSIT,ADJUSTMENT,CHART OF ACT 9511 IF NOT VF THEN 9505 9512 NL= 1:GOSUB 4055:INPUT "DELETE, EDIT, OR END: ";ANS$:IF LEFT$ (ANS$,2)= "EN" OR ANS$= "0" THEN 9505 9515 IF LEFT$ (ANS$,2)= "ED" THEN GOSUB 8050:GOTO 9505 9519 GOSUB 9520:GOTO 9505 9520 NL= 1:GOSUB 4055:INPUT "CONFIRM INTENT TO DELETE: ";ANS$:IF LEFT$ (ANS$,1)< > "Y" THEN PRINT "DELETE ABORTED":RETURN 9530 ALLOC= ALLOC- 1:CP= ALLOC:EL= ALLOC:PUT 2,1,5;ALLOC:FILE "D",2:PRINT "ENTRY DELETED.":RETURN 9600 REM ADD CHECK TO LEDGER 9602 EL= ALLOC:GOSUB 5500 9605 PLOT 12:PRINT "ADD NEW CHECK TO LEDGER":PRINT 9610 INPUT "ENTER CHECK NUMBER: ";CK$ 9611 IF CK$= "*" THEN RETURN 9615 INPUT "ENTER DATE ISSUED: ";DATE$:GOSUB 9450:IF LEN (DATE$)= 0 THEN GOTO 9615 9619 CHART= 255 9620 INPUT "REF TO CHART OF ACCOUNTS? ";ANS$:IF LEFT$ (ANS$,1)< > "Y" THEN GOTO 9630 9625 RQ= 0:GOSUB 6000:CHART= TC:IF CHART= - 1 THEN CHART= 255 9626 IF TC> = 0THEN PLOT 12:PRINT "ACCOUNT SELECTED: "+ CA$(TC) 9630 INPUT "ENTER DESCRIPTION: ";DESC$ 9631 IF DESC$= "0" THEN DESC$= "":IF CHART= 255 THEN PRINT "DESCRIPTION IS REQUIRED.":GOTO 9630 9633 IF LEN (DESC$)> 14 THEN PRINT "DESCR SHORTENED TO 14 CHARS--'";LEFT$ (DESC$,14);"'." 9635 INPUT "ENTER AMOUNT OF CHECK: ";AMT:IF AMT< = 0 THEN GOTO 9635 9640 AMT= - AMT 9642 TYPE= 5 9645 BALFWD= BALFWD+ AMT:GOSUB 9900:REM ADD THE TRANSACTION 9660 CP= ALLOC:RETURN 9700 REM ADD DEPOSIT TO LEDGER 9702 EL= ALLOC:GOSUB 5500 9705 PLOT 12:PRINT "ADD DEPOSIT TO LEDGER":PRINT 9715 INPUT "ENTER DATE ISSUED: ";DATE$:GOSUB 9450:IF LEN (DATE$)= 0 THEN GOTO 9715 9730 INPUT "ANY COMMENT: ";DESC$:IF DESC$= "0" THEN DESC$= "" 9735 INPUT "ENTER AMOUNT OF DEPOSIT: ";AMT:IF AMT< = 0 THEN GOTO 9735 9742 TYPE= 3:CK$= "":CHART= 255 9745 GOTO 9645 9800 REM ADD AN ADJUSTMENT 9802 EL= ALLOC:GOSUB 5500 9805 PLOT 12:PRINT "ADD ADJUSTMENT TO ACCOUNT.":PRINT 9815 INPUT "ENTER DATE ISSUED: ";DATE$:GOSUB 9450:IF LEN (DATE$)= 0 THEN GOTO 9815 9830 INPUT "TYPE OF ADJUSTMENT: ";DESC$:IF DESC$= "0" THEN GOTO 9830 9835 INPUT "ENTER AMOUNT OF ADKUSTMENT: ";AMT:IF AMT= 0 THEN GOTO 9835 9836 PRINT "CONFIRM ADJUSTMENT TO ACCOUNT IN AMOUNT OF "; 9837 GOSUB 5000:PRINT 9838 PRINT " FOR '"+ DESC$+ "";:INPUT ":";ANS$ 9839 IF LEFT$ (ANS$,1)< > "Y" THEN GOTO 9800 9840 TYPE= 2:CK$= "":CHART= 255 9845 GOTO 9645 9900 REM ADD THE TRANSACTION 9901 ALLOC= ALLOC+ 1:PUT 2,1,5;ALLOC 9902 EL= ALLOC:GOSUB 9905:RETURN 9905 IF LEN (DATE$)= 8 AND MID$ (DATE$,3,1)= "/" THEN DATE$= LEFT$ (DATE$,2)+ MID$ (DATE$,4,2)+ RIGHT$ (DATE$,2) 9906 DATE= VAL (DATE$) 9910 TYPE$= CHR$ (TYPE):CK= VAL (CK$) 9925 CHART$= CHR$ (CHART) 9929 PUT 2,EL;CK,DATE,AMT,BALFWD,TYPE$[1],CHART$[1],DESC$[14] 9930 IF BD= 0 THEN FILE "D",2 9935 RETURN