home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 225 / 225.d81 / persuasion2b.bas (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  4KB  |  113 lines

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