home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 209 / 209.d81 / mcard (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  38KB  |  1,214 lines

  1. 1 poke650,64:printchr$(142):goto9630
  2. 2 sys49236:return
  3. 3 n=fnb(k):t=peek(b+10+k):m=fnv(k):q=peek(964+k):pr=peek(984+k):t2=13-peek(c+k):return
  4. 4 fort=1to99:next:return
  5. 5 fort=1to2500:next:return
  6. 7 iftb>zthenifnot((z=3orz=4)andtb<8)thenz=tb
  7. 8 goto3532
  8. 9 x=c%-(13*(d-1))+1:return
  9. 10 gosub49:kx=t+k:kc=fnb(k):kd=fnv(k):gosub18:ky=t+k:dx=peek(853+k)
  10. 12 e=peek(849+k):pr=peek(980+k):q=peek(960+k):jm=peek(839+k):return
  11. 15 t=49700+(u-1)*17:return
  12. 17 t=.-(u>.)*(6+(u-1)*8):return
  13. 18 t=abs(3-u)*2+968:return
  14. 19 ws=ps:gosub8500:r=w+s:return
  15. 20 poke53281,1:poke53280,6:return
  16. 21 sys49623:return
  17. 22 g=t%-(ws-1)*13+1:gosub23:sys50427:z=peek(896):return
  18. 23 poke899,t%:poke900,ws*13+1:return
  19. 24 u=fnq(gb):gosub63:return
  20. 26 x=fnq(z):ifzthenprint"[144]";:ifx=2orx=3thenprint"";
  21. 27 return
  22. 28 u=fnz(u):gosub30:return
  23. 30 v=b:gosub15:b=t:return
  24. 31 printtab(11):gosub33:gosub92:gosub87:return
  25. 33 print"  [144][216][218]  ";:return
  26. 34 gosub35:sys51061:y=peek(898):return
  27. 35 sys51192+(k-1)*11:poke897,x:return
  28. 36 gosub38:poke900,k*13+1:poke899,y
  29. 37 sys50435:w=peek(896):return
  30. 38 poke898,1:poke897,3:return
  31. 39 j=.:gosub2:sys49353:x=13:t=49582:e=49500+(u-1)*x:ifr(.)=1andb%<>2thenreturn
  32. 40 form=4to1step-1:gosub56:s=x*(m-1):print:printtab(o)z$(m)" [144]";
  33. 41 d=.:ifj<xthend=peek(e+j):ifd=.then45
  34. 42 ifd<=sthen46
  35. 43 pokea+4,129:ifpos(.)>o+xthenprintchr$(x);:printtab(o+3);
  36. 44 poket,d-s:syst+20:pokea+4,128
  37. 45 j=j+1:ifj<xthen41
  38. 46 next:gosub2:return
  39. 49 t=972-abs(u-3)*2:return
  40. 50 u=op:gosub148:gosub31:printtab(9)" is dealing the hand ":gosub143:return
  41. 51 gosub2:pokea+24,15:return
  42. 52 poke198,.:return
  43. 53 gosub35:sys51788:y=peek(898):return
  44. 55 gosub340:m=s
  45. 56 printchr$(144+116*(m=2orm=3));:return
  46. 57 x=u:gosub53:gosub36:return
  47. 58 ifmstheno=ms+4:gosub181
  48. 59 return
  49. 60 print"";:ifdn=.thenprint:return
  50. 61 print" "z$(5+dn):return
  51. 62 print"";:poke214,y-1:print:return
  52. 63 gosub99:printchr$(31-q);:return
  53. 65 pokex,peek(x)orfnx(k):return
  54. 66 gosub67:goto8
  55. 67 q=.:x=fnq(gb):iffnq(o)=.then71
  56. 68 q=int(o/5)*5:o=o-q:ifo>xthenz=((int(gb/5)*5)+o)+q:return
  57. 69 z=((int(gb/5)+1)*5)+o:ifqthenz=z+q
  58. 70 return
  59. 71 ifx=.thenz=gb+5+o:return
  60. 72 z=((int(gb/5)+1)*5)+o:return
  61. 73 l=gb:gosub201:pl=y:gosub209:return
  62. 74 gosub157:goto158
  63. 76 q=.:iftrtheniffnb(tr)+peek(c+tr)<13thenreturn
  64. 77 forj=1to4:iffnb(j)theniffnb(j)+peek(c+j)=13thenifj<>trthenq=1
  65. 78 next:return
  66. 79 d=.:ifmsthenifkx>21orkx=14orkx=15thenifkc>6or(ms>2andkc>5)thend=1
  67. 80 return
  68. 81 gosub52:gosub967:return
  69. 82 u=pl:gosub99:pokec+5+q,peek(c+5+q)+14-peek(c):pokec,13:fx=99:return
  70. 83 gosub955:gosub55:poke49582,c%-(m-1)*13:printz$(m);:sys49581:gosub315:return
  71. 84 t=49582:poket,y:syst+28:return
  72. 85 sl=99:gosub52:print" new contract[146]  ";:gosub226
  73. 86 gb=z:d=.:print:print" [149]declarer [146]  ";:gosub963:pl=d:dn=.:return
  74. 87 print"  [211][144][193]":return
  75. 90 printspc(2);:foru=5to6:gosub92:next:print"=> *";:return
  76. 91 poke50106,y:y=tb:gosub62:gosub63:gosub17:printtab(o):return
  77. 92 gosub63:gosub17:pokec-19,t:sysc-20:pokec-11,.:return
  78. 95 y=32:gosub91:pokec-19,t:sys50097:gosub143:pokec-11,.:return
  79. 96 x=.:forj=1to4:x=x+peek(i+j):next:sx=r(.)-fx:ifxandx>=sxthenr=.:return
  80. 97 r=sx-x:return
  81. 98 gosub8300:d=.:gosub8360:return
  82. 99 q=(uand1)and1:return
  83. 101 x=1:d=.:t=asc(a$)+128
  84. 102 forl=1to4:ift=asc(z$(l))thenx=.:d=l
  85. 103 next:return
  86. 104 gosub250:ifa$="@"thenprint"[157]"a$:gosub82:x=1
  87. 105 ifa$=chr$(43)thenx=2
  88. 106 return
  89. 107 d=14:gosub108:d=d+(d>.):return
  90. 108 t=49566:poket,d:poke896,asc(a$):syst-1:d=peek(t):return
  91. 109 l=peek(c+tr)+fnb(tr)+fnv(tr):return
  92. 110 gosub776:tb=(t*(30+10*(f=1orf=2))-10*(f=.))*2^dn:return
  93. 113 tb=.:ifpb=.orpb>35thenreturn
  94. 114 x=gb:gb=pb:gosub110:gb=x:return
  95. 115 l=49271:x=a+14:pokex+5,48:pokex+6,170:y=6-u
  96. 116 forj=ytoy-1step-1:pokex,peek(l+5+j):pokex+1,peek(l+j):pokex+4,33:gosub4:pokex+4,32:next:return
  97. 117 gosub110:f=(deand1)and1:iftb+c%(3+f)<100orc%(5+f)=.then8
  98. 118 gosub121:ifythenifgb<11oro>fnq(gb)then4396
  99. 119 goto8
  100. 120 a%=1:poke51578,0:gosub2107:gosub955:goto827
  101. 121 y=.:s=peek(b+15):f=peek(b+16):ifstheno=s:y=1:iffthenifpeek(b+s)>3ands>2thenreturn
  102. 122 ifftheno=f:y=1:ifsthenifpeek(b+f)<5or(peek(b+s)>=peek(b+f)andfnb(s)>6)theno=s
  103. 123 return
  104. 132 gosub30:gosub981:return
  105. 133 x=.:ifgc=.or(gc=2andde=.)thenifu=dboru=plthenx=1:return
  106. 134 ifgc=2thenifde=1thenifu=4thenx=1:return
  107. 135 ifgc=4thenif(de=.and(u=2oru=4oru=1))or(deand(u=1oru=3oru=4))thenx=1
  108. 136 return
  109. 137 x=.:ifgc=.orgc=4thenreturn
  110. 138 ifde=1thenifu=dboru=plthenx=1
  111. 139 return
  112. 140 gosub955:poke900,6-(uand1):sys51538:gosub827:sys51522:return
  113. 141 gosub2000:gosub83:return
  114. 142 sys51504:return
  115. 143 gosub51:gosub115:gosub2:return
  116. 146 gosub51:pokea+1,y:pokea+5,43:pokea+15,5:pokea+4,20:pokea+4,21:return
  117. 148 y=9:gosub62:return
  118. 149 ms=.-(wt=leorwt=pb):return
  119. 151 gosub155:sys49803:gosub152:return
  120. 152 c%=peek(l-2):d=peek(l+2):return
  121. 153 gosub155:poke49900,t%:sys49903:gosub152:return
  122. 155 gosub205:pokel+1,12+(u-1)*13:return
  123. 156 gosub205:pokel+1,(u-1)*13:return
  124. 157 gosub156:sys50003:gosub152:return
  125. 158 poke49500+peek(49801),.:return
  126. 162 ifzandz<36thengosub26:poke49582,int((z-1)/5):sys49581:printz$(fnq(z));:return
  127. 163 printz$(5-1*(z=36)-2*(z=37));:return
  128. 164 gosub5:gosub300:print"":gosub776:s=peek(c+5+(pland1))-6-t
  129. 168 gosub894:ifs>=.thenprint"  overtricks [146][144]"s:goto170
  130. 169 print"  down [146][144]"abs(s)
  131. 170 pokec,.:gosub52:print"[149]  deal hand again? ";:gosub90:gosub967:a%=.:yx=.:ifu=5then184
  132. 172 ifcithen908
  133. 173 ifgbthenifb%=.andgcthenon1+yxgoto439,438
  134. 174 op=fny(op):print"[147]":goto9651
  135. 175 gosub180:print"[147]":goto1005
  136. 180 print" ";:u=op:gosub92:print"[149] dealt.  who opens? [146]  ";:gosub963:op=d:return
  137. 181 ifms<>psandms<>prthenifpeek(b+ms)<5thenreturn
  138. 182 ifpeek(b+o)>4thendb=db+1+((peek(b+o)-5)*2)
  139. 183 w=v+db:return
  140. 184 print"  rebid hand? ";:gosub90:gosub81:ifa$="n"thenpokec,99:goto1005
  141. 185 ifgc=4thenpokec,98
  142. 186 ifcithengc=2:b%=.
  143. 187 goto175
  144. 188 gosub73:goto219
  145. 190 gosub370:gosub400:return
  146. 191 forj=1to4:iffnb(j)=.andj<>sxthenx=x+1
  147. 192 next:return
  148. 193 wt=u:t%=c%:gosub340:sl=s:gosub400:ws=sl:return
  149. 194 gosub212:n=.:k=tr:gosub12:t=960:ifhp<3thengosub470:poke861,.-(t2>.orq>=jm-x)
  150. 195 fork=1to4:h=peek(b+k):y=.:ifmbork=trthenh=peek(t+k):y=1
  151. 196 ifhthenifh>=fnc(k)or(peek(861)andh>=peek(839+k))thenh=fnb(k):ifythenh=peek(t-4+k)
  152. 197 poke849+k,.-(peek(t-4+k)>h)*(peek(t-4+k)-h)
  153. 198 ifk=trtheniffnb(k)theniffnv(k)thengosub631:poke864,l*fnz(u)+(1-l)*u
  154. 199 ifk<>trthenift2=.andpeek(861)=.theny=peek(843+k):ifh>ythenn=n+h-y:h=y
  155. 200 pokei+k,h:next:poke870,n:return
  156. 201 d=2:x=fny(op):ifde=oporde=fnz(op)thend=1:x=op
  157. 203 forj=dtoestep2:z=peek(i+j):ifzandz<36theniffnq(l)=fnq(z)theny=x:j=e
  158. 204 x=fnz(x):next:return
  159. 205 l=49800:pokel,k:return
  160. 206 dx=.:ifsx=.orsx=5thenreturn
  161. 207 l=sx:gosub201:ifu=ythengosub58:dx=w:return
  162. 208 ws=sx:gosub8500:dx=w+s:return
  163. 209 le=fny(pl):db=fny(le):pb=fny(db):tr=fnq(gb):return
  164. 210 x=.-(peek(998)=kandu=peek(997)):return
  165. 212 poke860,.:poke864,.:gosub18:n=t:pokev,.:pokeb,.:gosub49
  166. 213 forj=1to4:pokev+j,peek(n+j):pokev,peek(v)+peek(n+j):pokeb+j,peek(t+j):pokeb,peek(b)+peek(t+j):next
  167. 214 d=4:poke899,u:poke900,fnz(u):sys52127:gosub28:gosub374:mb=g:poke859,q
  168. 215 gosub28:v(.)=.:gosub374:yx=g:poke865,q:sys52545:pokev+9,peek(898):pokeb+9,peek(899):return
  169. 219 ifcithengosub896
  170. 221 gosub1700:forj=.to4:v(j)=.:next:g=.:poke51578,32:gosub775
  171. 222 ifpeek(c)<>99andgc=4thenifpl=2orpl=3thenu=pl:print"[147]":gosub1070:o=5:gosub30:gosub1080
  172. 223 sysc+20:sl=.:gosub891:gosub510:goto9000
  173. 225 gosub52:gosub901:print"  ";
  174. 226 gosub250:ifsl>98then235
  175. 227 ifa$="@"thenprint"[157][157]";:goto3534
  176. 228 ifa$=chr$(43)thengosub63:print"[157]->[146] ";:gosub259:gosub5:goto245
  177. 230 ifa$="p"ora$="d"ora$="r"thengosub257:goto243
  178. 235 d=7:gosub108:ifd=.then226
  179. 239 h=val(a$):print"[157][144]"a$;" ";
  180. 240 gosub250:ifa$=chr$(20)thenprint"[157][157]  [157]";:goto226
  181. 241 d=.:gosub254:ifd=.then240
  182. 242 print"[157]";:z=(h-1)*5+d:gosub26:printz$(fnq(d));
  183. 243 ifsl<98then3590
  184. 244 return
  185. 245 gosub901:print"       ";:z=yx:goto225
  186. 250 geta$:ifa$=""thenprint"[157][144][191]";:gosub4:print"[157][146][191]";:gosub4:goto250
  187. 251 return
  188. 254 gosub101:ifx=.thenreturn
  189. 255 ifa$="n"thend=5
  190. 256 return
  191. 257 z=.-36*(a$="d")-37*(a$="r")
  192. 259 print"[157][144]";:gosub162:return
  193. 266 x=.:iftrthenif(fnx(k)andv(pl))orfnb(k)+fnv(k)=13-peek(c+k)thengosub109:ifl<13thenx=1
  194. 267 re