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