home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 92
/
092.d81
/
1040a
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
14KB
|
439 lines
0 dv=peek(186):ifdv<8thendv=8
1 ifa=0thena=1:load"help-1040a",dv,1
2 ifa=1thena=2:load"notepad",dv,1
3 poke198,0
5 dim m0$(20),m1$(20),m2$(20),m3$(20),m4$(20),m5$(20),m6$(20),m7$(20),m8$(20)
6 dimm9$(20):sp$=" "
7 dimd$(36):fori=0to36:d$(i)="0":next:d$(1)="1":d$(2)="1"
10 poke53280,0:poke53281,0:ad=36864
20 readx:fori=1tox:readm0$(i):next
21 readx:fori=1tox:readm1$(i):next
22 readx:fori=1tox:readm2$(i):next
24 readx:fori=1tox:readm3$(i):next
25 readx:fori=1tox:readm4$(i):next
26 readx:fori=1tox:readm5$(i):next
27 readx:fori=1tox:readm6$(i):next
28 readx:fori=1tox:readm7$(i):next
29 readx:fori=1tox:readm8$(i):next
30 readx:fori=1tox:readm9$(i):next
31 dimfs$(5):fori=1to5:readfs$(i):next:fs=2
32 dimsd$(5):fori=1to5:readsd$(i):next:fs=2:d$(17)=sd$(fs)
33 print"";
40 sysad,"[212][160][193][160][216][160] [160][193] [195][160][195] [207] [213] [206] [212][160][193][160][206] [212]","1040[193]"
50 ifpeek(198)<>1thenend
55 sysad+15:getdv$:getme$:gethi$:gettx$
56 dv=asc(dv$):m=asc(me$)and15:h=asc(hi$)and15:tx=asc(tx$)and15
60 sysad+18:poke198,0:gosub9000
70 sysad+3,13+64,11,7,m,h,tx,m0$(1),m0$(2),m0$(3),m0$(4),m0$(5),m0$(6),m0$(7),m0$(8),m0$(9),m0$(10),m0$(11),m0$(12),m0$(13)
80 getk$:k$=str$(asc(k$)-48):k=val(k$)
85 ifk>3thensysad+18:poke781,21:sys59903
90 onkgoto 200,300,900,1070,2070,3070,4070,5070,6070,7070,8070,700,40
95 goto70
100 :
200 gosub9300
210 ifval(w$)=0then275
220 open15,dv,15,"io":w$="1040a."+w$
225 open2,dv,2,"0:"+w$+",s,r"
230 input#15,e,e$,e1,e2
234 poke214,21:print:print" "
235 poke214,21:print:print"[196]isk [211]tatus:"e;e$:fori=1to2000:next
236 poke214,21:print:print" "
240 ifethenclose2:close15:print"[145][198]ile [206]ot [204]oaded":fori=1to2000:next:goto275
250 fori=0to36:input#2,d$(i):next
255 print#2,fs:print#2,m1$(1)
270 close2:close15
275 gosub9000:goto70
280 :
300 gosub9300:ifval(w$)=0then375
310 w$="1040a."+w$
320 open15,dv,15,"s0:"+w$:close15
330 open15,dv,15,"io"
335 open2,dv,2,"0:"+w$+",s,w"
340 input#15,e,e$,e1,e2
344 poke214,21:print:print" "
345 poke214,21:print:print"[196]isk [211]tatus: "e;e$:fori=1to2000:next
346 poke214,21:print:print" "
350 ifethenclose2:close15:print"[145][198]ile [206]ot [211]aved":fori=1to2000:next:goto375
360 fori=0to36:print#2,d$(i):next
365 input#2,fs:print#2,m1$(1)
370 close2:close15
375 gosub9000:goto70
390 :
400 d$(4)=str$(val(d$(1))+val(d$(2))+val(d$(3)))
405 tl=0:fori=5to11:tl=tl+val(d$(i)):next:d$(12)=str$(tl)
410 d$(15)=str$(val(d$(13))+val(d$(14)))
415 d$(16)=str$(val(d$(12))-val(d$(15)))
420 d$(18)=str$(val(d$(16))-val(d$(17)))
425 d$(19)=str$(val(d$(4))*2150)
430 d$(20)=str$(val(d$(18))-val(d$(19)))
432 gosub15000
435 d$(24)=str$(val(d$(22))+val(d$(23)))
440 d$(25)=str$(val(d$(21))-val(d$(24))):ifval(d$(25))<0thend$(25)="0"
445 d$(27)=str$(val(d$(25))+val(d$(26)))
450 tl=0:fori=28to30:tl=tl+val(d$(i)):next:d$(31)=str$(tl)
460 x1=val(d$(31)):x2=val(d$(27)):ifx1>x2then470
461 d$(33)="0":d$(34)="0"
465 d$(35)=str$((x2-x1)+val(d$(36))):d$(32)="0":return
470 d$(32)=str$(x1-x2):d$(35)="0":d$(36)="0"
475 return
480 :
500 sysad+6,2:sysad+9,1
505 sys50176,1,3,38,20,tx,0
510 ky=peek(197)
515 ifky=3thensys51712,1,3,38,20,7:goto505
520 ifky=6thenopen15,dv,15,"s0:"+n$:close15:sysad+12,n$,1:goto505
530 ifky=5then poke147,0:sys57812n$,dv,1:sys62631:sysad+9,1:goto505
550 sysad+6,1:sysad+9,2:return
560 :
600 sysad+6,2:poke646,tx:print"[147]"tab(14)"*** [200][197][204][208] ***"
601 poke646,m
602 print"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]";
603 fori=1to21:print"[221] [221]";:next
604 print"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]";:poke646,tx
605 print" [208]ress [210][197][212][213][210][206]";:poke52346,tx
606 open2,dv,2,h$+",p,r":sys51968
610 poke198,0
615 getk$:ifk$<>chr$(13)then615
620 close2:sysad+9,2:return
625 :
700 poke646,tx
701 print"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
702 print"[221] 1040 [212]otals [221]"
704 print"[171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][179]"
706 print"[221][197]xemptions (6e) [221]"
708 print"[221][201]ncome (14) [221]"
710 print"[221][193]djustments to [201]ncome (15c) [221]"
712 print"[221][193]djusted [199]ross [201]ncome (16) [221]"
714 print"[221][212]axable [201]ncome (22) [221]"
716 print"[221][195]redits (24c) [221]"
719 print"[221][212]otal [212]ax (27) [221]"
720 print"[221][208]ayments (28d) [221]"
724 print"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]"
725 fori=217to242:pokei,peek(i)or128:next
726 gosub9200
730 print""
735 printtab(28)right$(sp$+d$(4),10)
740 printtab(28)right$(sp$+d$(12),10)
745 printtab(28)right$(sp$+d$(15),10)
750 printtab(28)right$(sp$+d$(16),10)
755 printtab(28)right$(sp$+d$(20),10)
757 printtab(28)right$(sp$+d$(24),10)
760 printtab(28)right$(sp$+d$(27),10)
762 printtab(28)right$(sp$+d$(31),10)
775 getk$:ifk$<>chr$(13)then775
780 sysad+18:gosub9000:goto70
785 :
900 gosub9400:ifw$<>"y"thengosub9000:goto70
905 poke214,22:print:print"[208]rinting... "
910 open4,4,7
915 print#4,sp$;"1040[193]"
920 print#4,sp$;"-----------------------*-------------"
922 fori=1to5:print#4,sp$;left$(m1$(i),27)+right$(sp$+d$(i-1),10):next:print#4
925 fori=1to8:print#4,sp$;left$(m2$(i),27)+right$(sp$+d$(i+4),10):next:print#4
930 fori=1to3:print#4,sp$;left$(m3$(i),27)+right$(sp$+d$(i+12),10):next:print#4
935 fori=1to6:print#4,sp$;left$(m4$(i),27)+right$(sp$+d$(i+15),10):next:print#4
955 fori=1to3:print#4,sp$;left$(m5$(i),27)+right$(sp$+d$(i+21),10):next:print#4
960 fori=1to3:print#4,sp$;left$(m6$(i),27)+right$(sp$+d$(i+24),10):next:print#4
965 fori=1to4:print#4,sp$;left$(m7$(i),27)+right$(sp$+d$(i+27),10):next:print#4
970 fori=1to5:print#4,sp$;left$(m8$(i),27)+right$(sp$+d$(i+31),10):next:print#4
990 print#4:close4:gosub9000:goto70
995 :
1000 sysad+3,9+64,1,8,m,h,tx,m1$(1),m1$(2),m1$(3),m1$(4),m1$(5),m1$(6),m1$(7),m1$(8),m1$(9)
1010 getk$:k$=str$(asc(k$)-48):k=val(k$)
1020 ifk=9thensysad+18:goto70
1025 ifk=8thenh$="1040a.h1":gosub600:goto1000
1030 ifk=6thenn$="1040a.n1":gosub500:goto1000
1035 ifk=7thengosub9500:goto1000
1045 ifk=5then1000
1047 ifk=1thengosub1500:goto1067
1048 ifk<4then1000
1050 gosub9100:iflen(w$)=0then1000
1055 d$(k-1)=w$
1067 gosub400
1070 fori=2to5:m1$(i)=left$(m1$(i),27)+right$(sp$+d$(i-1),10):next
1075 goto1000
1080 :
1500 fs=fs+1:iffs=6thenfs=1
1505 m1$(1)=fs$(fs):d$(17)=sd$(fs)
1506 d$(2)="0":iffs=2thend$(2)="1"
1510 return
1515 :
2000 sysad+3,12+64,1,8,m,h,tx,m2$(1),m2$(2),m2$(3),m2$(4),m2$(5),m2$(6),m2$(7),m2$(8),m2$(9),m2$(10),m2$(11),m2$(12)
2010 getk$:k$=str$(asc(k$)-48):k=val(k$)
2020 ifk=12thensysad+18:goto70
2025 ifk=11thenh$="1040a.h2":gosub600:goto2000
2030 ifk=9thenn$="1040a.n2":gosub500:goto2000
2035 ifk=10thengosub9500:goto2000
2050 gosub9100:iflen(w$)=0then2000
2055 d$(k+4)=w$:gosub400
2070 fori=1to8:m2$(i)=left$(m2$(i),27)+right$(sp$+d$(i+4),10):next
2087 goto2000
2090 :
3000 sysad+3,7+64,1,8,m,h,tx,m3$(1),m3$(2),m3$(3),m3$(4),m3$(5),m3$(6),m3$(7)
3010 getk$:k$=str$(asc(k$)-48):k=val(k$)
3020 ifk=7thensysad+18:goto70
3025 ifk=6thenh$="1040a.h3":gosub600:goto3000
3030 ifk=5thengosub9500:goto3000
3035 ifk=4thenn$="1040a.n3":gosub