home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 225
/
225.d81
/
persuasion2b.bas
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
4KB
|
113 lines
1 rem "persuasion2b.bas" 2003.06.26
3 deffnp2(x)=peek(a(0)+x):rem 2^x
4 deffnra(x)=a(11)+(x+4)*4:rem rgn x+1 dfn
10 rem --- play new game
11 poke53265,91:sys820,1:q=0:pokemv+2,34:x%(0)=172:y%(0)=64:x%(1)=172:y%(1)=208
12 sysml+42,184:px%=0:fori=0to1:p=i:gosub308:gosub318:gosub324:next
13 pokesp+41,7:pokesp+42,0:pokesp+21,63:poke53265,91:m=-1
14 rem --- next move
15 o=p:p=1-p:sys820,2,p
16 poke53280,w%(p):cc%=c%(p,5):gosub328
17 pokesp+41+o,0:pokesp+41+p,7:m=m+1
18 rem --- input
19 a=peek(a(4)+p):x=a(1)+a*5:pokesp+39,1
20 sysml+9:ifcr%>0theni%=cr%:oni%goto40000,10,29,29:onp%(p)goto30
21 ifr2%theni=o:gosub314:i=p:gosub314:goto23
22 sysml+60,"qpbg1234":ifi%>0thenoni%goto40000,10,29,29:onp%(p)goto32
23 onqgoto20:onp%(p)goto20
24 pokesp+39,7:ifsthenifp=(nand1)thenifm<=nthenj=peek(52736+m):goto26
25 sys820,3,p:j=peek(679+18):ifpeek(a(6))=1thenz=2
26 b=peek(x+j):ifsthen35
28 sysml+24,15:x=fnra(b):sysml+21,peek(x),peek(x+2):sysml+24,30:goto35
29 i=i%-3:gosub314:goto23
30 b=i%-5:ifb=athen20
31 fori=0to3:j=i:h=(b=peek(x+j)):i=i+(i-3)*h:next:on2+hgoto34,20
32 j=i%-5:b=peek(x+j)
33 if(peek(x+4)andfnp2(j))=0then20
34 pokesp+39,7
35 rem --- results
36 ifsthenifp%(p)=0thenifpeek(a(6))=1then10
37 ifsthenifp%(p)=1thenifm<512thenpoke52736+m,j:n=m
38 x%(p)=x%(p)+jx%(j):y%(p)=y%(p)+jy%(j):gosub308
39 x=fnra(b):x=55296+peek(x+2)*40+peek(x):cc%=peek(x)and15
40 ifcc%<>5thensysml+36,b+5,255,c%(p,cc%):goto42
41 pokex,c%(p,cc%):pokex+1,c%(p,cc%):pokex+40,w%(p):pokex+41,w%(p)
42 x=a(10)+p:px%=peek(x):ifc%(p,cc%)=w%(p)thenpx%=px%+1:pokex,px%:h=2:goto44
43 h=1:ifc%(p,cc%)=2thenpx%=px%-1:pokex,px%
44 gosub301
45 gosub324
46 pokea(4)+p,b:pokea(5)+b,c%(p,cc%)
47 h=fnp2(j):l=peek(a(7)):ifl>0thenh=peek(a(8)+(l-1)*14+h-1)
48 pokea(3)+23,15-h
49 ifpx%=15andpeek(a(10)+o)=15then52:rem tie
50 ifpx%<16then14
51 poke646,7:cx%=3+p*32:sysml+12,cx%,5,a$(21,p):sysml+12,cx%,6,a$(22,p):rem win
52 pokesp+41+p,0:cc%=7:gosub328:q=1:pokemv+2,4:goto18
300 :
301 : rem sound
302 :
303 forl=1toh:fori=54272to54295:pokei,0:next
304 poke54296,15:poke54277,8:poke54278,255:poke54276,23
305 poke54287,40:poke54278,15:fori=1to10:poke54273,i:next:next
306 return
307 :
308 : rem sprite 2/3
309 :
310 cx%=p*2+4:cy%=cx%+1:pokesp+cy%,0:pokesp+cx%,x%(p)and255
311 h=fnp2(p+2):x=sp+16:pokex,(peek(x)and(63-h))-h*(x%(p)>255):pokesp+cy%,y%(p)
312 return
313 :
314 : rem toggle
315 :
316 p%(i)=1-p%(i)
317 :
318 : rem icon
319 :
320 cx%=6+i*26:h=17+p%(i)*2
321 poke646,c%(i,5):sysml+12,cx%,3,a$(h,i):sysml+12,cx%,4,a$(h+1,i)
322 return
323 :
324 : rem score
325 :
326 poke646,c%(p,5):sysml+12,3+p*32,6,a$(px%,p):return
327 :
328 : rem paint persuasion
329 :
330 sysml+30,15,24,24,24,255,cc%:return
999 :
10000 d=8:f$="0:persuasion2b.bas":open1,d,15,"s"+f$:close1:savef$,d:end
40000 pokesp+21,0:sysml+3:sysmm+3:print"[147]";:poke53265,27:poke53272,23
40002 poke53280,14:poke53281,6:poke646,14:poke199,0
40004 fori=8to29:poke820+i,i:next:ifd>8andd<30thenpoke828,d:poke820+d,8
40006 onzgoto40032:f$="persuasion2x.lst":gosub40038:ifer<>63then40032
40008 forx=820to935:readj:pokex,j:next
40010 a=8960
40012 b=2+(peek(a)+peek(a+1)*256)*23
40014 open15,i,15:print#15,"s0:"+f$:close15
40016 h=int(a/256):l=a-h*256
40018 poke253,l:poke254,h
40020 x=a+b+2:h=int(x/256):l=x-h*256
40022 poke63,l:poke64,h
40024 open2,i,2,f$+",p,w"
40026 poke53265,11
40028 sys820
40029 fori=8to29:poke820+i,i:next:ifd>8andd<30thenpoke828,d:poke820+d,8
40030 print"[147]";:poke53265,27
40032 f$="presenter":gosub40038:ifer=63then40046
40034 f$="hello connect":gosub40038:ifer=63then40046
40036 poke186,8:poke56,160:poke55,0:clr:new
40038 forj=8to29:i=peek(820+j):ifi=14then40044
40040 close2:open2,i,2:close2:ifstthen40044
40042 close15:open15,i,15,"r0:"+f$+"="+f$:input#15,er:ifer=63thenj=29:close15
40044 next:return
40046 f$="hello connect":q$=chr$(34):poke646,6
40048 print"[147]p[207]56,160:p[207]55,0:clr:l[207]"q$f$q$","i
40050 print"r[213]:":poke631,13:poke632,13:poke198,2:end
40052 data 32,204,255,162,2,32,201,255,165,253,32,210,255,165,254,32,210
40054 data 255,32,157,3,120,169,48,133,1,177,253,145,251,196,63,208,6,165
40056 data 254,197,64,240,13,200,208,239,230,254,230,252,165,252,201,8
40058 data 208,229,132,113,165,252,133,114,32,157,3,169,55,133,1,88,177,251
40060 data 32,210,255,196,113,208,6,165,252,197,114,240,14,200,208,238
40062 data 230,252,165,252,201,8,208,230,76,70,3,169,2,32,195,255,32,204
40064 data 255,96,169,0,133,251,169,4,133,252,160,0,96