home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 56
/
056.d81
/
speed
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
8KB
|
233 lines
100 rem ***speed***
110 sd=54272:for a=sd to sd+24:poke a,0:next:x$=chr$(13)
120 poke53280,0:poke53281,0:poke53283,1
130 printchr$(8);chr$(142);
140 print"[147]loading data...[144]"
150 if cd=1 then 170
160 poke147,0:sys57812"speed char",8,1:sys62631
170 dim card$(4,13):open4,8,4,"0:speed cards,s,r"
180 fora=1to4:forb=1to13:input#4,ca$(a,b):next:next:close4
190 dimc(52):dimha(2,4):dimtw(2,5):dimp(2,21)
200 fori=1to52:c(i)=i:next
210 bc$="[159]sssss[157][157][157][157][157]sssss[157][157][157][157][157]sssss[157][157][157][157][157]sssss[157][157][157][157][157]sssss[157][157][157][157][157]sssss"
220 bl$=" [157][157][157][157][157] [157][157][157][157][157] [157][157][157][157][157] [157][157][157][157][157] [157][157][157][157][157] "
230 for a=49152to49296:readb:pokea,b:next:sys49194:poke2,0
240 data169,1,141,25,208,162,59,160,216,173,18,208,197,2,176,9,169,31,141,24,208
250 data165,2,208,11,162,27,160,200,169,21,141,24,208,169,0,141,18,208,76,128
260 data192,173,20,3,141,160,3,173,21,3,141,161,3,120,169,0,141,20,3,169
270 data192,141,21,3,169,1,141,26,208,169,27,141,17,208,169,127,141,13,220,88
280 data96,120,173,160,3,141,20,3,173,161,3,141,21,3,169,240,141,26,208,169,27
290 data141,17,208,169,0,141,13,220,169,120,141,25,208,169,21,141,24,208,32,132
300 data255,88,96,248,104,104,173,13,220,41,1,240,3,76,49,234,76,188,254,0,0,0,0
310 poke53280,14:poke53281,14:printchr$(142)"[147][146]";
320 poke53272,21:poke53265,27
330 print"[144][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]";
340 fora=1to22:print"[221]"spc(38)"[221]";:next:print"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]"
350 fora=217to242:pokea,peek(a)or128:next
360 print" loadstar presents:"
370 print" "
380 print" speed "
390 print" "
400 print" by jason olds "
410 print" "
420 print" copyright 1987 "
430 print" "
440 print" "
450 print" "
460 remifpeek(203)<>60then420
470 poke198,0:print"[145][144]do you need instructions? (y/n) "
480 geta$:ifa$=""then480
490 ifa$="y"thenpoke53280,0:poke53281,0:goto1250
500 ifa$="n"thengosub2350:goto520
510 goto 480
520 rem ***setup board***
530 print"[147]":poke 53265,peek(53265)or64
540 poke 2,210:poke53280,0:poke53281,6
550 dp=1
560 fori=1to51:r=(53-i)*rnd(0):r=int(r)+i:t=c(r):c(r)=c(i):c(i)=t:next
570 tc=21:tp=21
580 print"-----------------[158]speed------------------";
590 print"[153]1-4 to select card space to draw card"
600 print" q to quit to loadstar"
610 print"";bc$
620 print"[157][157][157][157][157][157][157][157][157][157][157][157][157][157]";bc$
630 print"";bc$
640 print"";bc$
650 print"";bc$
660 print"";bc$
670 rem print"select speed (1-9), 1 is fastest"
680 remgeta$:ifa$=""then590
690 rem sp=val(a$):ifsp<1orsp>9then590
700 print" "
710 for a=1 to 10:gosub1780:tw(int(a/6)+1,a+(5*(a>5)))=c(a):next
720 for a=11 to 31:p(1,a-10)=c(a):next
730 for a=32 to 52:p(2,a-31)=c(a):next
740 pp=1:cp=1
750 for a=1 to 4:ha(1,a)=p(1,pp):pp=pp+1:next
760 for a=1 to 4:ha(2,a)=p(2,cp):cp=cp+1:next
770 fora=1to4:nu=ha(1,a):gosub1780:print""spc((a-1)*7+6);ca$(x,y)
780 next
790 print"--1-- --2-- --3-- --4--"
800 rem ***flip over stack cards***
810 for a=1 to 500:next
820 print"";bc$;"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";bc$
830 poke214,20:print:print"get ready... ":fora=1to750:next
840 poke214,20:print:print"get set.....":fora=1to750:next
850 poke214,20:print:print"go!!!!!!!!!!"
860 print"";:nu=tw(1,dp):gosub1780:printca$(x,y)
870 print"";:nu=tw(2,dp):gosub1780:printca$(x,y)
880 s1=tw(1,dp):s2=tw(2,dp):dp=dp+1
890 rem ****main input procedure****
900 ti$="000000"
910 geta$
920 iftp=0then2220
930 iftc=0then2310
940 ifa$>"0"anda$<"5"thengosub1020:poke198,0
950 ifa$="q"then1790
960 ifa$=x$thengosub1950:ifcm=1thengoto1820
970 ifa$=" "thengosub1860
980 ifval(ti$)=spthenti$="000000":gosub1950
990 if cm=1 then print"the computer has no move.";
1000 ifcm=1thenprint" press return.";
1010 goto 910
1020 rem ***player wants to move card***
1030 print"you:";tp;"[157] computer:";tc;"[157] "
1040 cd=val(a$):forcl=1895to1903:pokecl,32:next
1050 cv=ha(1,cd):ifcv=-2thenreturn
1060 nu=s1:gosub1780:s3=y:nu=s2:gosub1780:s4=y
1070 nu=cv:gosub1780
1080 if(y=s3+1ory=s3-1)or(y=13ands3=1)or(y=1ands3=13)then1140
1090 if(y=s4+1ory=s4-1)or(y=13ands4=1)or(y=1ands4=13)then1190
1100 rem ***beep***
1110 pokesd+24,15:pokesd+5,31:pokesd+6,208:pokesd,240:pokesd+1,4:pokesd+4,33
1120 fors=1to200:next:pokesd+4,0:pokesd,0:pokesd+1,0:pokesd+24,0
1130 return
1140 print""spc((cd-1)*7+6);bl$
1150 print"";ca$(x,y)
1160 s1=ha(1,cd):ha(1,cd)=-2
1170 tp=tp-1
1180 return
1190 print""spc((cd-1)*7+6);bl$
1200 print"";ca$(x,y)
1210 s2=ha(1,cd):ha(1,cd)=-2
1220 tp=tp-1
1230 return
1240 end
1250 rem ***instructions***
1260 poke 53283,2:p5%=peek(53272)
1270 poke 53265,peek(53265)or64
1280 print"[147] speed "
1290 print"[159] the object is to discard all cards"
1300 print" from your hand and stack before the"
1310 print" computer does."
1320 print" [158]five cards are dealt to each stack"
1330 print" face down. the remaining cards are"
1340 print" dealt between you and the computer"
1350 print" face-down. these cards are called the"
1360 print" reserves."
1370 print"[156] before play, the two stacks"
1380 print" are shown along with the four cards in"
1390 print" the computer's hand. these cards will"
1400 print" remain face down until played. your"
1410 print" options will be displayed at the"
1420 print" bottom of the screen."
1430 print
1440 print" press space to continue"
1450 ifpeek(203)<>60then1450
1460 print"[147] speed "
1470 print" a card from each stack is moved to"
1480 print" the center piles face-down. when"
1490 print" the cards are turned over, the race"
1500 print" begins."
1510 print"[159] you can play a card that is one[159]"
1520 print" higher or one[159] lower than any facing"
1530 print" up in the stack."
1540 print" [158]ex: a two could be placed on an"
1550 print" ace or a ten on a jack. suits are of"
1560 print" equal value."
1570 print"[159] the card you play will become a"
1580 print" new play card. deal yourself new"
1590 print" card by pressing space[146][159]. this removes"
1600 print" a card from the reserve."
1610 print" press space to continue"
1620 ifpeek(203)<>60then1620
1630 print"[147] speed "
1640 print"[158] if you can't find a move, wait for"
1650 print" the computer to say that it can't"
1660 print" move either. then hit the return[146][158] key"
1670 print" move on. two more cards will be taken"
1680 print" from the stacks. when signalled to"
1690 print" go, the computer will immediately try"
1700 print" to move, so be ready!"
1710 print" hint: start out with a slow speed"
1720 print" until you get the hang of the game."
1730 print" then move up as your skill increases."
1740 printtab(13)"[152]-good luck!"
1750 print" press space to continue"
1760 ifpeek(203)<>