10 REM LIST BUDGETRE.BAS 20 REM ! Utg}va 1.0 83-05-24 30 REM ! av (c) BO SEHLBERG 40 REM ! Minne 16 Kbytes 50 REM ++++++++++++++++++++++++++++++++ 60 REM OBS PROGRAMMET BEST]R AV TRE DELAR 70 REM BUDGET,BUDGETV],BUDGETRE 80 REM 90 REM Screened by C R LERIN. 100 REM 110 DIM M$(12%)=5% 120 DIM R(12%) 130 DIM V$(50%)=7% 140 DIM S(12%) 150 DIM T(12%,50%) 160 M$(1%)="JANUA" : M$(2%)="FEBRU" : M$(3%)="MARS" : M$(4%)="APRIL" : M$(5%)="MAJ" : M$(6%)="JUNI" 170 M$(7%)="JULI" : M$(8%)="AUGUS" : M$(9%)="SEPTE" : M$(10%)="OKTOB" : M$(11%)="NOVEM" : M$(12%)="DECEM" 180 ; CHR$(12%) : ; CUR(8%,0%);"ANGE NUVARANDE M]NAD!" 190 GOSUB 2170 : GOSUB 2370 200 IF M%=0% THEN 180 210 N%=M% 220 ONERRORGOTO 220 230 ; CHR$(12%) 240 ; " ********* HEMBUDGET *********" : ; 250 ; " V[LJ VAD DU VILL G\RA:" : ; 260 ; "1=SKRIV UT TABELL" 270 ; "2=SKRIV UT M]NADS-OCH ACC.RESULTAT" 280 ; "3=[NDRA F\REG]ENDE M]NADS ACC.RESULTAT" 290 ; "4=SPARA RESULTAT P] KASSETT" 300 ; "5=LADDA NYA DATA FR]N KASSETT" 310 INPUT S% 320 IF S%<1% OR S%>5% THEN 220 330 ONERRORGOTO 0 340 ON S% GOTO 350,1020,960,2550,2770 350 REM UTSKRIFT AV KONTOPLAN 360 ; CHR$(12%) 370 GOSUB 2060 : ; "Ange m}nad!" : ; CUR(22%,20%); 380 GOSUB 2170 : GOSUB 2270 : GOSUB 2370 390 IF M%=0% THEN 370 400 ; CHR$(12%) : A%=M% : D%=16% 410 FOR J%=10% TO 34% STEP 6% : ; CUR(0%,J%);M$(M%) 420 M%=M%+1% : IF M%>12% THEN M%=M%-12% 430 NEXT J% 440 FOR I%=1% TO 18% : ; CUR(I%,0%);RIGHT$(NUM$(I%),2%) : ; CUR(I%,2%);V$(I%); 450 ; TAB(9%);""; : ; TAB(15%);""; : ; TAB(21%);""; : ; TAB(27%);""; : ; TAB(33%);"" : NEXT I% 460 M%=A% : FOR I%=1% TO 5% 470 FOR B%=1% TO 18% 480 ; CUR(B%,D%-LEN(NUM$(T(M%,B%))));RIGHT$(NUM$(T(M%,B%)),2) 490 NEXT B% : B%=18% 500 D%=D%+6% : M%=M%+1% : IF M%>12% THEN M%=M%-12% 510 NEXT I% 520 ; CUR(19%,0%);"RESULTAT" : ; CUR(20%,0%);"ACC.,RES" 530 D%=15% : M%=A% 540 FOR I%=1% TO 5% : ; CUR(19%,D%-LEN(NUM$(R(M%))));R(M%) 550 M%=M%+1% : IF M%>12% THEN M%=M%-12% 560 D%=D%+6% : NEXT I% : GOSUB 2100 570 GOSUB 2060 : ; "Vill du {ndra n}got p} den visade delen av kontoplanen?(J/N)";CUR(22%,30%); 580 GET S$ 590 IF S$="J" OR S$="j" THEN 720 600 GOSUB 2270 610 D%=15% : M%=A% 620 FOR I%=1% TO 5% : ; CUR(20%,D%-LEN(NUM$(S(M%))));S(M%) 630 M%=M%+1% : IF M%>12% THEN M%=M%-12% 640 D%=D%+6% : NEXT I% 650 GOSUB 2060 : ; "Vill du se n}got utanf|r bilden?(J/N)" : ; CUR(22%,30%); 660 GET S$ 670 IF S$="J" OR S$="j" THEN 1500 680 GOSUB 2060 : ; "Vill du tillbaka till menyn?(J/N)" : ; CUR(22%,30%); 690 GET S$ 700 IF S$="J" OR S$="j" THEN 220 710 GOTO 570 720 GOSUB 2060 : ; "[ndring av rubrik p} bilden?(J/N)" : ; CUR(22%,30%); 730 GET S$ 740 IF S$="J" OR S$="j" THEN 790 750 GOSUB 2060 : ; "[ndring av in- eller utbetalningar(J/N)" : ; CUR(22%,30%); 760 GET S$ 770 IF S$="J" OR S$="j" THEN 1110 780 GOTO 650 790 REM [NDRING AV RUBRIK 800 GOSUB 2060 : ; "Ange radnr.(1-9=inbetaln. 10-50=utbetaln.)" : ; CUR(22%,28%); 810 INPUT S$ 820 IF ASC(S$)<48% OR ASC(S$)>57% THEN 790 830 IF VAL(S$)>B% OR VAL(S$)12% THEN M%=M%-12% 1070 ; M$(M%); : ; TAB(20%-LEN(NUM$(R(M%))));R(M%); : ; TAB(39%-LEN(NUM$(S(M%))));S(M%) 1080 NEXT I% 1090 ; CUR(21%,0%);"Tryck RETURN f|r att forts{tta" 1100 INPUT S$ : GOTO 220 1110 REM [NDRING AV KONTOPLAN 1120 GOSUB 2060 : ; "Ange m}nad!" : ; CUR(22%,20%); 1130 GOSUB 2170 : GOSUB 2370 1140 IF M%=0% THEN 1120 1150 S%=A% : IF M%-S%<0% THEN M%=M%+12% 1160 S%=M%-S%+1% : IF M%>12% THEN M%=M%-12% 1170 IF S%<1% OR S%>5% THEN 400 1180 ON S% GOTO 1190,1200,1210,1220,1230 1190 D%=16% : GOTO 1240 1200 D%=22% : GOTO 1240 1210 D%=28% : GOTO 1240 1220 D%=34% : GOTO 1240 1230 D%=40% : GOTO 1240 1240 GOSUB 2060 : ; "Ange radnummer!(Endast p} bild)" : ; CUR(22%,20%); 1250 INPUT S$ 1260 IF ASC(S$)<49% OR ASC(S$)>57% THEN 1240 1270 IF S$="" THEN 1240 1280 IF VAL(S$)>B% OR VAL(S$)=50% THEN 1520 1600 B%=B%+1% 1610 M%=CALL(64141%) : M%=A% 1620 ; CUR(18%,1%);" " 1630 ; CUR(18%,0%);RIGHT$(NUM$(B%),2%) : ; CUR(18%,2%);V$(B%) 1640 FOR I%=16% TO 40% STEP 6% 1650 ; CUR(18%,I%-6%);" " 1660 ; CUR(18%,I%-LEN(NUM$(T(M%,B%))));RIGHT$(NUM$(T(M%,B%)),2) 1670 M%=M%+1% : IF M%>12% THEN M%=M%-12% 1680 NEXT I% 1690 GOTO 1520 1700 REM SCROLLA NED 1710 IF B%=18% THEN 1520 1720 B%=B%-1% 1730 M%=CALL(64161%) : M%=A% 1740 ; CUR(1%,1%);" " 1750 ; CUR(1%,0%);RIGHT$(NUM$(B%-17%),2%) : ; CUR(1%,2%);V$(B%-17%) 1760 FOR I%=16% TO 40% STEP 6% 1770 ; CUR(1%,I%-6%);" " 1780 ; CUR(1%,I%-LEN(NUM$(T(M%,B%-17%))));RIGHT$(NUM$(T(M%,B%-17%)),2) 1790 M%=M%+1% : IF M%>12% THEN M%=M%-12% 1800 NEXT I% 1810 GOTO 1520 1820 REM SCROLLA V[NSTER 1830 A%=A%+1% : IF A%>12% THEN A%=A%-12% 1840 S%=CALL(64181%,64239%) 1850 M%=A%+4% : IF M%>12% THEN M%=M%-12% 1860 ; CUR(0%,34%);" " : ; CUR(0%,34%);M$(M%) 1870 FOR I%=1% TO 18% 1880 ; CUR(I%,34%);" " 1890 ; CUR(I%,40%-LEN(NUM$(T(M%,B%-18%+I%))));RIGHT$(NUM$(T(M%,B%-18%+I%)),2) 1900 NEXT I% 1910 ; CUR(19%,33%);" " : ; CUR(19%,40%-1%-LEN(NUM$(R(M%))));R(M%) 1920 ; CUR(20%,33%);" " : ; CUR(20%,40%-1%-LEN(NUM$(S(M%))));S(M%) 1930 GOTO 1520 1940 REM SCROLLA H\GER 1950 A%=A%-1% : IF A%<1% THEN A%=A%+12% 1960 S%=CALL(64181%,64224%) 1970 ; CUR(0%,10%);" " 1980 ; CUR(0%,10%);M$(A%) 1990 FOR I%=1% TO 18% 2000 ; CUR(I%,10%);" " 2010 ; CUR(I%,16%-LEN(NUM$(T(A%,B%-18%+I%))));RIGHT$(NUM$(T(A%,B%-18%+I%)),2) 2020 NEXT I% 2030 ; CUR(19%,9%);" " : ; CUR(19%,16%-1%-LEN(NUM$(R(A%))));R(A%) 2040 ; CUR(20%,9%);" " : ; CUR(20%,16%-1%-LEN(NUM$(S(A%))));S(A%) 2050 GOTO 1520 2060 REM RENSA RAD 21-22 2070 ; CUR(21%,0%);" " : ; CUR(21%,0%); 2080 POKE 32630%,32%,32% 2090 RETURN 2100 REM UTSKRIFT AV ACC.RES. 2110 D%=16% : M%=A% 2120 FOR I%=1% TO 5% 2130 ; CUR(20%,D%-7%);" " : ; CUR(20%,D%-1%-LEN(NUM$(S(M%))));S(M%) 2140 D%=D%+6% : M%=M%+1% : IF M%>12% THEN M%=M%-12% 2150 NEXT I% 2160 RETURN 2170 REM BOKSTAVSKONVERTERING 2180 INPUT S$ 2190 S1$="" 2200 FOR I%=1% TO LEN(S$) 2210 S%=ASC(MID$(S$,I%,1%)) 2220 IF S%>63% AND S%<95% THEN S%=S%+32% 2230 S1$=S1$+CHR$(S%) 2240 NEXT I% 2250 S$=S1$ 2260 RETURN 2270 REM BER[KN. AV ACC. RES 2280 E%=N% 2290 FOR I%=1% TO 11% 2300 F%=N%+I% : IF F%>12% THEN F%=F%-12% 2310 IF NOT I%=1% THEN 2330 2320 S(E%)=Z+R(E%) 2330 S(F%)=S(E%)+R(F%) 2340 E%=F% 2350 NEXT I% 2360 RETURN 2370 REM TILLDELN. AV NR TILL RESP.M]NAD 2380 M%=0% 2390 IF LEN(S$)>3% THEN S$=LEFT$(S$,3%) 2400 IF S$="jan" THEN M%=1% 2410 IF S$="feb" THEN M%=2% 2420 IF S$="mar" THEN M%=3% 2430 IF S$="apr" THEN M%=4% 2440 IF S$="maj" THEN M%=5% 2450 IF S$="jun" THEN M%=6% 2460 IF S$="jul" THEN M%=7% 2470 IF S$="aug" THEN M%=8% 2480 IF S$="sep" THEN M%=9% 2490 IF S$="okt" THEN M%=10% 2500 IF S$="nov" THEN M%=11% 2510 IF S$="dec" THEN M%=12% 2520 IF M%<>0% THEN 2540 2530 IF M%=0% THEN ; CUR(21%,0%);"Felaktig inmatnig,F|rs|k igen!" : FOR I%=1% TO 8000% : NEXT I% 2540 RETURN 2550 REM SPARA DATA P] KASSETT 2560 ; CHR$(12%) 2570 ; "L[GG IN DATAKASSETTEN I BAND-" 2580 ; "SPELAREN OCH SPOLA TILL \NSKAD" 2590 ; "STARTPUNKT.TRYCK P] 'REC'/'PLAY'" 2600 ; "KLAR?(J/N)" 2610 GET S$ : IF S$="J" OR S$="j" THEN 2630 2620 GOTO 2610 2630 ; CHR$(12%) : ; CUR(10%,5%);"LADDNING AV DATA P]G]R!" 2640 PREPARE "CAS:BUDGET .DAT" ASFILE 1% 2650 FOR I%=1% TO 50% 2660 FOR J%=1% TO 12% 2670 PRINT #1%,T(J%,I%) 2680 NEXT J% 2690 PRINT #1%,V$(I%) 2700 NEXT I% 2710 FOR I%=1% TO 12% 2720 PRINT #1%,R(I%) 2730 PRINT #1%,S(I%) 2740 NEXT I% 2750 PRINT #1%,Z 2760 CLOSE 1% : GOTO 220 2770 REM LADDA DATA FR]N KASSETT 2780 ; CHR$(12%) : ; CUR(10%,0%);"S[TT IN DATAKASSETTEN OCH SPOLA TILL START AV DATAFIL. TRYCK NED 'PLAY'" 2790 ; "[R DU KLAR?(J/N)" 2800 GET S$ : IF S$="J" OR S$="j" THEN 2820 2810 GOTO 2800 2820 ; CHR$(12%) : ; CUR(5%,7%);"LADDNING AV DATA P]G]R!" 2830 ONERRORGOTO 2830 2840 OPEN "CAS:BUDGET .DAT" ASFILE 1% 2850 FOR I%=1% TO 50% 2860 FOR J%=1% TO 12% 2870 INPUT #1%,T(J%,I%) 2880 NEXT J% 2890 INPUT #1%,V$(I%) 2900 NEXT I% 2910 FOR I%=1% TO 12% 2920 INPUT #1%,R(I%) 2930 INPUT #1%,S(I%) 2940 NEXT I% 2950 ONERRORGOTO 0 2960 CLOSE 1% : GOTO 220