Compucolor.org – Virtual Media

Listing of file='CHEQPR.BAS;01' on disk='vmedia/utility_2-sector.ccvf'

10 REM  LATER VERSION
12 INPUT "MOUNT DATA DISK (IF DESIRED):HIT RETURN WHEN READY:";F$
15 CLEAR 135:PLOT 6,6,12,15,3,27,10:PRINT "CLIENT"
16 PLOT 15,27,18,7,15
17 GOSUB  9000:PLOT 12,15
20 INPUT "ENTER DATE OF NEXT TRANSACTION (D,M,Y)  ";CD,CM,CY
25 PLOT 6,2
30 FILE "T",500
40 FILE "R",1,"BAL"+ RIGHT$ (STR$ (CY),2)+ ".RND",1
45 IF ER= 14AND CM< > 1THEN PUT 1,CM- 1;BF,BF
50 RESTORE 100:FOR I= 1TO CM:READ F$:NEXT I
60 FILE "R",2,F$+ RIGHT$ (STR$ (CY),2)+ ".RND",6
65 IF CM= 1AND ER= 14THEN 2200
70 IF ER= 14THEN GET 1,CM- 1,5;PB
80 IF ER= 14THEN PUT 1,CM;0,PB,CHR$ (0)[1],"V"[1]
100 DATA JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
103 PLOT 12,6,69:GOTO 110
105 PLOT  6,6,3,5,31:INPUT "PRESS RETURN WHEN YOU ARE READY TO CONTINUE";QQ
107 GOTO 114
110 PRINT
114 PLOT 12,6,7:PRINT SPC( 10);"DAILY JOURNAL"
115 PLOT 10,10,6,6
120 PRINT "1 )  ENTER NEW WITHDRAWAL":PRINT
130 PRINT "2 )  AMEND WITHDRAWAL":PRINT
140 PRINT "3 )  ENTER DEPOSIT":PRINT
150 PRINT "4 )  AMEND DEPOSIT":PRINT
160 PRINT "5 )  BALANCE FOR MONTH":PRINT
170 PRINT "6 )  DISPLAY YEAR BY CATEGORY":PRINT
175 PRINT "7 )  RESTART THIS PROGRAM":PRINT
180 PRINT "8 )  END THIS PROGRAM"
185 PLOT 10,10,10:INPUT "WHICH DO YOU WISH TO DO? ";SB
190 ON SBGOTO 1000,3000,2000,4000,5000,6000,15
195 FILE "C",1,2:END
200 DMY= D+ 32* M+ 416* Y:RETURN
220 Y= INT (DMY/ 416)
230 M= INT ((DMY- Y* 416)/ 32)
240 D= DMY- 416* Y- 32* M
250 RETURN
260 AM= INT (VAL (AM$)* 100+ .5):RETURN
270 IF AM> = 0THEN SG$= "":AM= ABS (AM)
275 IF AM< 0THEN SG$= "-":AM= ABS (AM)
280 A1$= STR$ (INT (AM/ 100))
290 A2$= "."+ RIGHT$ (STR$ (AM+ 100- INT (AM/ 100)* 100),2)
300 AM$= RIGHT$ ("          "+ SG$+ A1$+ A2$,12):RETURN
500 FILE "E",FL,ER,LN
505 IF LN= 525THEN INPUT "BALANCE FORWARD ";BF:BF= INT (BF* 100+ .5):GOTO 40
510 ON FLGOTO 520,560
520 IF ER= 14THEN FILE "N","BAL"+ RIGHT$ (STR$ (CY),2)+ ".RND",12,10,12
525 FILE "R",3,"BAL"+ RIGHT$ (STR$ (CY- 1),2)+ ".RND",1:GET 3,12,5;BF:FILE "C",3
530 IF ER< > 14THEN PRINT "DISK ERROR":END
533 M$= RIGHT$ (STR$ (M),2):D$= RIGHT$ (STR$ (D),2):Y$= RIGHT$ (STR$ (Y),2)
550 GOTO 40
560 IF ER< > 14THEN 530
580 INPUT "NUMBER OF CHEQUES ANTICIPATED ";NC
590 FILE "N",F$+ RIGHT$ (STR$ (CY),2)+ ".RND",INT ((NC/ 4)+ .8)* 4,32,4:GOTO 60
900 REM
1000 PLOT 12,6,2,10
1010 PRINT " 1 )              "
1015 PRINT " 2 )              "
1020 PRINT " 3 )              "
1035 PRINT " 4 )              "
1040 PRINT " 5 )              "
1045 PRINT " 6 )              "
1050 PRINT " 7 )              "
1055 PRINT " 8 )              "
1060 PRINT " 9 )              "
1065 PRINT "10 )              "
1070 PRINT "11 )              "
1075 PRINT "12 )              "
1080 PRINT "13 )              "
1085 PRINT "14 )              "
1090 PRINT "15 )              "
1095 PRINT "16 )              "
1100 PRINT "17 )              "
1105 PRINT "18 )              "
1110 PRINT "19 )              "
1115 PRINT "20 )              "
1145 IF SB= 6THEN RETURN
1150 GET 1,CM,9;NC$[1]:NC= ASC (NC$):NC= NC+ 1
1200 PRINT :PRINT :INPUT "DATE OF CHEQUE	(D,M,Y) ";D,M,Y
1210 IF M< > CMTHEN RA= 1220:GOTO 8000
1220 GOSUB 200
1225 PUT 1,CM,9;CHR$ (NC)[1]
1230 PUT 2,NC;DMY
1240 INPUT "CHEQUE NUMBER		";CN
1260 INPUT "NAME OF PAYEE		";PY$
1280 INPUT "CATEGORY		";CT
1300 INPUT "AMOUNT OF CHEQUE		";AM$
1310 GOSUB 260
1320 PUT 2,NC,5;CN,PY$[15],CHR$ (CT)[1],- AM
1330 GOSUB 7000
1340 AM= PB
1350 GOSUB 270
1355 REM :GOSUB8500
1360 PRINT "BALANCE			$";
1361 IF  SG$= "-"THEN PLOT 17
1363 IF  SG$= ""THEN PLOT 20
1365 PRINT AM$:PLOT 23
1367 FOR I= 1TO 1000:NEXT I
1370 GOTO 105
1900 REM
2000 PLOT 12,6,2,10
2010 PRINT "1 )                   "
2020 PRINT "2 )                   "
2030 PRINT "3 )                   "
2040 PRINT "4 )                   "
2050 PRINT "5 )                   "
2055 IF SB= 6THEN RETURN
2060 PLOT 6,1,10,10
2062 GET 1,CM,9;NC$[1]
2065 NC= ASC (NC$)+ 1
2068 PUT 1,CM,9;CHR$ (NC)[1]
2070 INPUT "DATE OF DEPOSIT  (D,M,Y) ";D,M,Y
2080 IF M< > CMTHEN RA= 2090:GOTO 8000
2090 GOSUB 200
2120 INPUT "NAME OF PAYER            ";PY$
2140 INPUT "CATEGORY		";CT
2160 INPUT "AMOUNT OF DEPOSIT       $";AM$
2170 GOSUB 260
2180 PUT 2,NC;DMY,0,PY$[15],CHR$ (CT)[1],AM
2190 GOTO 1330
2200 PUT 1,1;BF,BF,CHR$ (1)[1],"V"[1]
2210 PUT 2,1;416* CY+ 32,0,"BAL FROM LST YR"[15],CHR$ (0)[1],BF,BF
2220 GOTO 1330
3000 INPUT "INPUT CHEQUE DATE ";D,M,Y
3020 IF CM< > MTHEN 3200
3030 GET 1,CM,9;NC$[1]:FE= ASC (NC$)
3040 INPUT "CHEQUE NUMBER ";CN
3050 FOR NC= 1TO FE
3060 GET 2,NC;DMY,CK
3070 IF CK= CNTHEN 1260
3080 NEXT NC
3090 PRINT "NOT FOUND "
3100 FOR I= 1TO 500:NEXT I:GOTO 110
3200 FILE "C",2:RESTORE 100
3210 FOR I= 1TO M:READ M$:NEXT I
3220 FILE "R",2,M$+ RIGHT$ (STR$ (Y),2)+ ".RND",6
3225 CM= M
3230 IF CY= YTHEN 3030
3240 FILE "C",1:FILE "R",1,"BAL"+ "RIGHT$(STR$(Y),2)+".RND ",1
3250 CY= Y:GOTO 3030
4000 REM
4010 INPUT "INPUT DATE OF DEPOSIT ";D,M,Y
4020 IF M< > CMTHEN 4200
4030 GET 1,CM,9;NC$[1]
4040 LM= ASC (NC$)
4050 GOSUB 200
4060 FOR NC= 1TO LM
4070 GET 2,NC;CD,DV$[20],AM
4080 IF CD= DMYAND AM> 0THEN 2120
4090 NEXT NC
4100 PRINT "NOT FOUND":FOR I= 1TO 500:NEXT I:GOTO 110
4200 RESTORE 100
4210 FOR I= 1TO M:READ M$:NEXT I
4220 FILE "C",2
4230 FILE "R",2,M$+ RIGHT$ (STR$ (Y),2)+ ".RND",6
4240 CM= M:IF Y= CYTHEN 4020
4250 FILE "C",1
4260 FILE "R",1,"BAL"+ RIGHT$ (STR$ (Y),2)+ ".RND",1
4270 CY= Y:GOTO 4020
5000 PLOT 12,10
5002 FLG= PEEK (33265):REM  SAVE THE BASIC OUTPUT IN FLG
5003 PLOT 27,13:REM  SET TERMINAL MODE. ALL OUTPUT TO SERIAL PORT
5005 IF CM= 1THEN PB= 0:GOTO 5020
5010 GET 1,CM- 1,5;PB
5020 GET 1,CM,9;NC$[1]
5030 NC= ASC (NC$)
5031 PLOT 6,7
5032 PLOT 6,12
5033 PRINT TAB( 14)"STATEMENT"
5034 PLOT 6,3
5035 PRINT
5040 PRINT "DATE";SPC( 6);"NUMBER";SPC( 3);"PAYEE/PAYER";SPC( 5);"CAT";SPC( 6);"AMOUNT";SPC( 5);"BALANCE"
5050 PLOT 10,10:IF SB= 6THEN RETURN
5060 AM= PB:GOSUB 270
5070 GOSUB  8500
5085 PRINT "BALANCE FROM PREVIOUS MONTH";TAB( 46)CHR(9);CHR$ (9);CHR$ (9);
5086 IF  SG$= "-"THEN PLOT 17
5087 IF  SG$= ""THEN PLOT 20
5088 PRINT "  "+ AM$"":PLOT 23
5090 IF NC= 0THEN 5250
5100 FOR I= 1TO NC
5110 GET 2,I;DMY,CN,PY$[15],CT$[1],AM
5115 IF AM> 0THEN CN= - 1
5120 BL= AM+ PB:PB= BL
5125 AM= ABS (AM)
5130 GOSUB 220:GOSUB 270
5135 M$= RIGHT$ (STR$ (M),2):D$= RIGHT$ (STR$ (D),2):Y$= RIGHT$ (STR$ (Y),2)
5140 DT$= D$+ "/"+ M$+ "/"+ Y$+ " "
5150 IF CN> 0THEN CN$= RIGHT$ ("      "+ STR$ (CN),8)
5160 IF CN= - 1THEN CN$= " DEPOSIT"
5165 CN$= CN$+ "  "
5170 PRINT DT$;CN$;PY$;RIGHT$ ("   "+ STR$ (ASC (CT$)),4);AM$;
5180 AM= BL:GOSUB 270
5185 GOSUB  8500
5186 IF  SG$= "-"THEN PLOT 17
5187 IF  SG$= ""THEN PLOT 20
5190 PRINT AM$:PLOT 23
5195 IF I/ 3= INT (I/ 3)THEN PLOT 10
5197 IF SB= 6THEN RETURN
5200 NEXT I
5230 PRINT :PRINT "                   RECEIVED THE ABOVE AMOUNT              ^ "
5233 PRINT
5235 PRINT TAB( 50)"____________"
5240 PLOT 6,7
5241 POKE 33265,FLG:REM  RESTORE THE CONTENTS OF BASIC OUTPUT
5245 PRINT :PRINT :PRINT
5250 PLOT  6,6,3,5,31:INPUT "PRESS RETURN WHEN YOU ARE READY TO CONTINUE";QQ
5300 GOTO 110
5500 RETURN
6000 INPUT "DISPLAY CHEQUES OR DEPOSITS? ";T$
6002 IF T$= "C"THEN GOSUB 900
6003 IF T$= "D"THEN GOSUB 1900
6005 T= 1:IF LEFT$ (T$,1)= "C"THEN T= - 1
6010 INPUT "CATEGORY NUMBER ";SK
6015 BL= 0:YT= 0:PB= 0:RESTORE 100
6017 FLG= PEEK (33265)
6018 PLOT 27,13
6019 PLOT 6,3
6020 FOR I= 1TO 12
6030 GET 1,I,9;NC$[1],V$[1]
6035 READ M$
6040 IF V$< > "V"THEN 6500
6045 PLOT 10:GOSUB 5040
6050 FILE "C",2:MT= 0
6070 FILE "R",2,M$+ RIGHT$ (STR$ (CY),2)+ ".RND",3
6080 NC= ASC (NC$)
6090 FOR J= 1TO NC
6100 GET 2,J;DMY,CN,PY$[15],CT$[1],AM
6105 IF T= 1THEN CN= - 1
6107 IF AM= 0THEN 6300
6110 IF AM/ ABS (AM)< > TTHEN 6300
6120 IF ASC (CT$)< > SKTHEN 6300
6130 AM= ABS (AM):GOSUB 5120
6300 NEXT J
6350 PLOT 10,10:MT= BL- YT:AM= MT:GOSUB 270
6355 GOSUB  8500
6360 PRINT "MONTHLY TOTAL";AM$:PLOT 23
6370 YT= YT+ MT
6500 NEXT I
6550 AM= YT:GOSUB 270
6560 PRINT "YEARLY TOTAL ";AM$:POKE 33265,FLG:PLOT 23
6600 FILE "C",2:RESTORE 100:FOR I= 1TO CM:READ M$:NEXT I
6620 FILE "R",2,M$+ RIGHT$ (STR$ (CY),2)+ ".RND",6
6690 FOR I= 1TO 1000:NEXT I
6700 GOTO 110
7000 REM
7010 GET 1,CM,9;NC$[1]
7020 NC= ASC (NC$)
7030 PB= 0:F= 0
7040 FOR I= 1TO NC
7050 GET 2,I;CD,CN,DV$[16],AM
7055 GET 2,NC;ND,NN,DN$[16],NM
7060 IF ND> CDTHEN 7100
7070 IF NN> CNAND ND= CDTHEN 7100
7080 PUT 2,I;ND,NN,DN$[16],NM
7085 PUT 2,NC;CD,CN,DV$[16],AM
7088 IF I< NCTHEN F= 1
7090 AM= NM
7100 BL= AM+ PB
7110 PUT 2,I,29;BL
7120 PB= BL
7130 NEXT I
7135 IF F= 1THEN 7030
7140 PUT 1,CM;PB
7145 IF CM= 1THEN PUT 1,CM,5;PB
7150 FOR I= CMTO 12
7160 GET 1,I;AM,BL,N$[1],V$[1]
7162 IF I= 1THEN PB= 0:GOTO 7180
7165 GET 1,I- 1,5;PB
7170 IF V$< > "V"THEN RETURN
7180 BL= PB+ AM
7190 PUT 1,I;AM,BL,N$[1],"V"[1]
7195 PB= BL
7200 NEXT I
7210 RETURN
8000 REM
8010 NC= NC- 1:GOSUB 7030
8015 BL= PB
8020 IF Y< > CYTHEN 8200
8040 FILE "C",2:FILE "T",8100
8050 RESTORE 100
8060 FOR I= 1TO M:READ M$:NEXT I
8070 FILE "R",2,M$+ RIGHT$ (STR$ (Y),2)+ ".RND",6
8075 CM= M:GET 1,CM,9;NC$[1]:NC= ASC (NC$):NC= NC+ 1:PUT 1,CM,9;CHR$ (NC)[1]
8080 RESTORE 8090:FOR I= 1TO 5:READ RT:IF RT< > RATHEN NEXT I
8085 ON IGOTO 1220,2090
8090 DATA 1220,2090
8095 PRINT "RETURN ERROR":END
8100 INPUT "NUMBER OF ANTICIPATED ITEMS ";NI
8105 FILE "E",FL,ER,LN
8110 FILE "N",M$+ RIGHT$ (STR$ (Y),2)+ ".RND",INT ((NI/ 4)+ .8)* 4,32,4
8115 PUT 1,M;0,BL,CHR$ (0)[1],"V"[1]
8120 GOTO 8070
8200 FILE "T",8300
8210 FILE "C",1,2
8220 FILE "R",1,"BAL"+ RIGHT$ (STR$ (Y),2)+ ".RND",1
8230 CD= D:CM= M:CY= Y
8240 GOTO 50
8300 AM= BL:GOSUB 270:PRINT "YEAR DESIRED IS NOT ON DISK, CURRENT BALANCE IS";AM$:PLOT 23
8310 INPUT "DO YOU WISH TO CONTINUE? (YOU MAY WANT TO MOUNT ANOTHER DISK)";A$
8315 IF LEFT$ (A$,1)= "N"THEN END
8320 BF= BL:CD= D:CM= M:CY= Y
8325 PLOT 6,7
8330 GOTO 30
8500 REM :IF SG$ = "" THEN PLOT20
8510 REM :IF SG$ = "-" THEN PLOT17
8520 RETURN
9000 FOR  N= 1 TO  1500:NEXT N:RETURN