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