home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 12
/
012.d81
/
payload
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
7KB
|
248 lines
5 ifpeek(51200)<>76orpeek(52016)<>32orpeek(52080)<>173then7
6 ifpeek(52176)=169then10
7 load"0:routines v4",8,1
10 ifpeek(832)<>24orpeek(960)<>63orpeek(1019)>.thenload"0:menu.sp1",8,1
20 ifpeek(704)<>3orpeek(732)<>252orpeek(760)thenload"0:menu.sp2",8,1
25 open15,8,15:sys52176
30 w=53265:u=128:v=53248:s=v+1024:li=52016:wi=51200:cl=51203:su=51206:sd=51209
40 poke1020,5:poke1021,19:poke1022,1:poke1023,38:rem set window boundaries
50 poke600,00:rem set article flag to zero
200 pp=peek(599)+1:rem menu pointer
210 sp$=" "
212 sl$=" "
220 af=1
222 poke53280,5
225 d$=chr$(96):forx=1to6:d$=d$+d$:next
226 forx=stos+24:pokex,0:next
227 poke54277,8:poke54278,8:poke54291,8:poke54292,8
230 poke v+33,.
270 poke v+29,2:pokev+27,12:pokev+23,.
275 :
276 :
280 dim pn$(50),rc$(50),ca$(50),sa(50),sy(50),t$(300)
285 rem menu name,prog name,category,secondary addr,sys addr,about text storage
286 :
287 gosub52000: rem read prgs file
288 poke v+21,11:rem 0,1,3 on
289 :
290 forco=.to2:poke2040+co,13+co:poke2043,11:next:remsprite pointers
300 pokev+39,15:pokev+40,7:pokev+41,7:pokev+42,7:pokev+27,255
305 pokev+16,.
310 pokev,49:pokev+1,218:rem crsrs
320 pokev+2,45:pokev+3,143:rem selector
330 pokev+4,56:pokev+5,54:rem rt hand
340 pokev+6,44:pokev+7,54:rem lt hand
350 pokev+16,4
360 pokes+24,15:rem loud sound
1000 gosub 50000:remheader
2000 :
3000 gosub 51000:remhome
3500 tp=pp:ifpp<>1thengosub53005:goto4100
4000 gosub 53000:remprint menu
4100 gosub49000
5000 gosub 54000:pokev+21,0:remkeywait
5005 print"[147][196]ocking with [212]able of [195]ontents"
5006 gosub63002:gosub63000
5007 forx=stos+23:pokex,0:next
5010 print"[144]load"chr$(34)"0:hello"chr$(34)",8":print"run";:poke631,13
5015 poke632,13:poke198,2:end
39000 syswi:rem clear window
39010 x%=9:y%=8:gosub56000:print"[212]urn your printer on"
39015 x%=18:y%=10:gosub56000:print"&"
39016 x%=12:y%=12:gosub56000:print"[208]ress [[210][197][212][213][210][206]]."
39017 x%=15:y%=14:gosub56000:print"[216][146] to exit"
39020 getk$:if k$=""then39020
39025 ifk$<>chr$(13)andk$<>"x"andk$<>"[203]"then39020
39030 if k$="x"ork$="[216]"then syswi:return
39040 open4,4,7:cmd4
39045 printspc(40-len(mo$));mo$:print:printspc(40-len(pn$(pp+1)));pn$(pp)
39046 print
39050 for c8=1to lc
39055 ift$(c8)=""then39070
39060 print#4,t$(c8)
39070 next
39080 print#4:close4
39085 syswi
39090 return
40000 rem boing!
40003 gosub41000
40005 fori=27to31:waitw,u:pokew,i:next
40010 fori=31to25step-1:waitw,u:waitw,u:pokew,i:next
40015 fori=25to27:waitw,u:waitw,u:waitw,u:waitw,u:pokew,i:next
40020 return
40100 r=v+17:c=128:rem other boing!
40103 gosub41000
40105 fori=27to24step-1:waitw,u:pokew,i:next
40110 fori=24to29:waitw,u:waitw,u:pokew,i:next
40115 fori=29to27step-1:waitw,u:waitw,u:waitw,u:waitw,u:pokew,i:next
40120 return
41000 pokes+4,20:pokes,rnd(.)*256:pokes+1,rnd(.)*256:pokes+14,rnd(.)*256
41005 pokes+15,rnd(.)*256:pokes+4,21:return
41010 rem :already returned ^
43000 pl=15:x%=.:y%=24:gosub56000:print" [159][[155][200][159]] for [200]ardcopy";:af=0
43001 x%=1:y%=12:gosub56000:print"[158][210]eading[146]":pokev+21,.
43002 x%=22:y%=21:gosub 56000:print"[159][205][197][206][213]/[210][213][206] ";
43003 x%=14:y%=22:gosub 56000:print"[159][211]crolls [212]ext";
43004 ifpeek(600)=ppthensyswi:syscl:goto43050
43005 poke600,pp:x%=0:y%=5:lp=1:gosub56000:syswi:syscl
43006 open8,8,8,"t."+rc$(pp):gosub46000:ifer%=62thenrf=.:af=1:restore:goto290
43010 forc1=1to300:poke781,8:sys65478
43020 sysli,b$:t$(c1)=b$+""
43025 ifstthengosub46000:ifer%=0andst=64thenlc=c1:c1=300:goto43030
43030 ifc1<=15thenprint"";t$(c1)
43032 next:sys65484
43035 close8
43040 forc8=lc+1to300:t$(c8)="":next:syscl
43050 x%=.:y%=5:lp=1:gosub56000:forc1=1to15
43060 print"";t$(c1)
43070 next
43075 rf=1:x%=.:y%=3:gosub 56000:gosub48000:rem"'[193]bout' header"
43080 getk$:j=notpeek(56321)and31:ifk$=""andj=0then43080
43090 k1=asc(k$+chr$(.))
43100 ifk$="[157]"orj=4thenmf=1:rf=0:gosub48000:goto43080:remcrsr left
43110 ifk$=""orj=8thenmf=0:rf=1:gosub48000:goto43080:remcrsr right
43120 ifk$=""ork$="[135]"ork$="[139]"orj=2thengosub45000:goto43080:rem scroll forward
43122 ifk$="[133]"thengosub43300:rem big up
43130 ifk$="[145]"ork$="[134]"ork$="[138]"orj=1thengosub44000:goto43080:rem scroll backward
43132 ifk$="[136]"thengosub43400:rem b/down
43140 ifj=16thenifrfthen63900
43150 ifj=16thenmf=0:af=1:restore:k$="":j=.:goto290
43160 ifk1=72thengosub39000:goto43050:rem hardcopy
43170 goto43080
43230 stop
43300 forq3=1to7
43301 iflp<2thengosub40000:goto43306
43302 gosub44000
43304 next
43306 return
43308 :
43400 forq3=1to7
43401 iflp>lc-14thengosub40100:goto43406
43402 gosub45000
43404 next
43406 return
43408 :
44000 if lp<2thengosub40000:return:rem scroll backward
44010 lp=lp-1:sys51209
44020 x%=1:y%=5:gosub56000:printt$(lp)
44022 q9=notq9:ifq9<>0then44010
44090 return
45000 if lp>lc-14thengosub40100:return:rem scroll forward
45010 lp=lp+1:sys51206
45020 x%=1:y%=19:gosub56000:print""t$(lp+14)
45022 q9=notq9:ifq9<>0then45010
45090 return
46000 input#15,er%,er$,et%,eb%
46005 if(er%>19ander%<30)orer%=66orer%=67then46015
46010 return
46015 print"[147][152][217]ou just had a disk [201]/[207] error."
46020 print:print"[208]ress space to continue."
46025 getk$:ifk$=""then46025
46030 run
48000 ifrfthengosub59300:rem rewrite pgm name
48010 ifmfthengosub59200:rem rewrite pgm name
48020 y%=3:x%=20-len(pn$(pp))/2:gosub56000:print"";pn$(pp);"[153]";
48030 return
49000 ifrfthengosub58000:rem rewrite category
49010 ifafthengosub57000
49020 y%=3:x%=20-len(ca$(pp))/2:gosub56000
49025 print"[158]";ca$(pp);"[153]";
49030 return
50000 print"[147]"tab(6)"[176]";:printleft$(d$,28);"[174]":rem "header stuff"
50010 printtab(5)" [221][153]"ht$"";chr$(221)
50012 printtab(6)"[173]";:printleft$(d$,28);:print"[189][153]"
50013 gosub59000
50014 ifafthengosub57000
50015 ifrfthengosub58000
50019 print"[176]";left$(d$,38);"[174]";
50020 fori=1to15:print"[221] [221]";:next
50021 print"[173]";left$(d$,38);"[189]";
50030 print" [159][ [155] [195][210][211][210][159] ] [211]elects [193][194][207][213][212]/[210][213][206]"
50040 print" [159][ [155] [195][210][211][210][159] ] [211]crolls [205]enu"
50050 print" [159][ [155][211][208][193][195][197][159] ] [211]elects [158][200]ighlighted[159] [201]tems"
50060 print" [159][[155][216][159]] [197]xits";
50070 print"[129]";:sys51200:sys51203:x%=1:y%=12:gosub56000
50080 print"[158] ";
50090 fori=217to242:pokei,peek(i)or128:next:return
51000 print"[153]":rem home
51010 print"";
51020 return
52000 rem read in from what file???
52001 nu=usr(65535)
52002 ifnu=11thennu$="mag.prgs"
52004 ifnu=12thennu$="pay.prgs"
52006 i=0:open2,8,2,nu$
52007 input#2,ht$ :rem header for top
52008 i=i+1
52010 input#2,pn$(i)
52012 input#2,rc$(i)
52014 input#2,ca$(i)
52016 input#2,sa(i)
52018 input#2,sy(i)
52020 if pn$(i)<>"!"then 52008
52022 close2
52025 pc=i-1
52030 pn$(pc+1)="":ifpp>pcthenpp=pc
52040 return
53000 sys51200:print"[129]";:ifpp<4then53020
53005 print"[129]";:fori=pp-3topp+3:qq=i:ifqq<0thenqq=0
53010 ifi=ppthenprint"[158]";
53015 printtab(10)pn$(qq)"[129]":next:return
53020 fori=ppto3:print"";:next:fori=1topp+3:ifi=ppthenprint"[158]";
53025 printtab(10)pn$(i)"[129]":next:return
54000 rem main menu keypress selection
54010 getk$:ifk$=""thenj=notpeek(56321)and31:ifk$=""andj=.then54010
54020 k=asc(k$+chr$(.))
54025 ifk$="[157]"orj=4thenaf=1:rf=.:gosub49000:goto54000:remleft
54026 ifk$=""orj=8thenaf=.:rf=1:gosub49000:goto54000:remright
54040 ifk$=""ork$="[135]"ork$="[139]"orj=2thengosub54100:gosub49000:goto 54000:remdown
54045 ifk$="[136]"thenforop=pptopc:gosub54100:next:gosub49000:goto54000:rembig down
54050 ifk$="[145]"ork$="[134]"ork$="[138]"orj=1thengosub54200:gosub49000:goto54000:rem up
54055 ifk$="[133]"thenforop=ppto1step-1:gosub54200:next:gosub49000:goto54000:remb/up
54060 ifk$="x"ork$="[216]"then return
54070 ifj=16thenifrfthenprint:gosub51000:goto63800
54075 ifj=16thenifafthen 43000
54080 j=.:goto 54000
54100 ifpp>pc-1thengosub40100:return
54110 pp