This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page,
please contact me immediatelly so I can remove it!
|
|
|
-
Entry name:BankShot
-
Category:Games
-
Publisher/Developer:Atari Computer Enthusiasts of Eugene, BELLCOM - Public Domain Library
-
Year:1982
Listing 1
1 REM ********************************* 2 REM 3 REM **** Reprinted from **** 4 REM **** **** 5 REM **** JUN 1982 **** 6 REM **** 3662 VINE MAPLE DR **** 7 REM **** EUGENE, OR 97405 **** 8 REM **** **** 9 REM ********************************* 10 REM ***************** 20 REM ** BANKSHOT ** 30 REM **STAN OCKERS ** 35 REM ** 3/82 ** 40 REM ***************** 90 OPEN #1,4,0,"K:":GRAPHICS 18:POSITION 6,3:? #6;"BkSh" 100 POSITION 4,6:? #6;"# PLAYERS?":DIM B$(16) 110 GET #1,NP:NP=NP-48:IF NP<1 OR NP>9 THEN 110 120 DIM SCORE(NP):POSITION 15,6:? #6;NP:POSITION 4,9:? #6;"instructions?":GET #1,A:IF A=89 THEN GOSUB 2000 250 REM * VBI ROUTINE UPDATED BY POKES * 260 DIM VB$(107):FOR I=1 TO 107:READ A:VB$(I,I)=CHR$(A):NEXT I 270 DATA 24,173,15,6,105,4,133,204,162,0,134,207,160,0,132,203,189,20,6,157,0,208,189,28,6,221,24,6 280 DATA 240,63,189,28,6,157,24,6,165,203,221,28,6,240,10,169,0,145,203,230,203,240,42 290 DATA 208,239,189,16,6,170,189,32,6,133,205,189,33,6,133,206,177,205,240,14,145,203,230,205,208,2 300 DATA 230,206,230,203,240,10,208,238,169,0,145,203,230,203,208,250,230,204,166,207,232,134,207,224,4,208,168 302 DATA 76,98,228 350 REM * PAGE 6 - INSERT VBI ROUTINE * 360 FOR I=1536 TO 1545:READ A:POKE I,A:NEXT I 370 DATA 104,160,0,162,0,169,7,76,92,228 380 A=ADR(VB$):B=INT(A/256):C=A-256*B:POKE 1538,C:POKE 1540,B 400 GRAPHICS 3:COLOR 1:PLOT 3,0:DRAWTO 36,0:DRAWTO 36,19:DRAWTO 3,19:DRAWTO 3,0 410 POKE 708,204:POKE 709,0:POKE 712,233:COLOR 2:FOR I=1 TO 14:READ X,Y:PLOT X,Y:NEXT I 420 DATA 3,0,3,1,4,0,19,0,36,0,36,1,35,0,35,19,36,19,36,18,19,19,3,19,3,18,4,19 430 A=PEEK(560)+256*PEEK(561) 440 IF PEEK(A)<>66 THEN A=A+1:GOTO 440 450 POKE A,71:POKE A+3,6:POKE A+4,6:POKE A+5,65:POKE A+6,PEEK(A+7):POKE A+7,PEEK(A+8) 480 POKE 656,0:POKE 657,24:? " ":GOSUB 1500 600 REM * PLAYER MISSILE SETUP * 610 A=PEEK(106)-16:POKE 54279,A:POKE 1551,A 620 REM ** IMAGE 4 ** 624 DIM CUR$(6):FOR I=1 TO 6:READ A:CUR$(I,I)=CHR$(A):NEXT I:CUR=ADR(CUR$):POKE 1573,INT(CUR/256) 625 POKE 1572,CUR-256*PEEK(1573) 626 DATA 16,16,56,16,16,0 628 REM ** IMAGE 2 ** 630 DIM BALL$(9):FOR I=1 TO 9:READ A:BALL$(I,I)=CHR$(A):NEXT I:BAL=ADR(BALL$):POKE 1571,INT(BAL/256) 632 POKE 1570,BAL-256*PEEK(1571) 640 DATA 16,56,108,116,124,124,56,16,0 642 REM ** IMAGE 0 ** 645 DIM Z$(1):Z$=CHR$(0):ZERO=ADR(Z$):POKE 1569,INT(ZERO/256):POKE 1568,ZERO-256*PEEK(1569) 650 FOR I=1556 TO 1567:READ A:POKE I,A:NEXT I 660 DATA 120,100,86,86,100,30,53,53,120,40,63,63 670 POKE 559,62:POKE 53277,3 690 POKE 1552,2:POKE 1553,4:POKE 1554,0:POKE 1555,0 695 POKE 704,36:POKE 705,0 700 A=USR(1536) 710 YMIN=38:YMAX=177:XMIN=62:XMAX=186:BALL=0:PLYR=0:B$=" ":GOSUB 1500 720 FOR I=1 TO NP:SCORE(I)=0:NEXT I 730 POKE 77,0:BALL=BALL+1:IF BALL>15 THEN GOTO 3000 735 POKE 656,0:POKE 657,5:? BALL 740 X=INT(RND(0)*100+70):Y=INT(RND(0)*100+70):POKE 1556,X:POKE 1564,Y 743 IF FL=1 THEN FL=0:GOTO 750 745 PLYR=PLYR+1:IF PLYR>NP THEN PLYR=1 747 POKE 656,0:POKE 657,14:? PLYR 749 REM ** MOVE CURSOR ALONG RAIL ** 750 S=STICK(0):XP=PEEK(1557):YP=PEEK(1565):X=PEEK(1556):Y=PEEK(1560) 760 IF XP>XMIN AND XP<XMAX THEN 780 765 IF (S=10 OR S=14 OR S=6) AND YP>YMIN+2 THEN YP=YP-1 770 IF (S=9 OR S=13 OR S=5) AND YP<YMAX THEN YP=YP+1 780 IF YP>YMIN+2 AND YP<YMAX THEN 795 785 IF (S=5 OR S=6 OR S=7) AND XP<XMAX THEN XP=XP+1 790 IF (S=9 OR S=10 OR S=11) AND XP>XMIN THEN XP=XP-1 795 POKE 1557,XP:POKE 1565,YP 800 IF STRIG(0)=1 THEN 750 805 R=SQR((XP-X)*(XP-X)+(YP-Y)*(YP-Y)) 810 DELY=2*(YP-Y)/R:DELX=2*(XP-X)/R 880 BOUNCE=0:MOVE=0 885 REM ** LOOP TO MOVE BALL ** 890 X=X+DELX:Y=Y+DELY 892 IF PEEK(53252)=2 THEN GOSUB 1000:GOTO 940 900 IF X>=XMAX OR X<=XMIN+1 THEN DELX=-DELX:GOSUB 1800 910 IF Y>=YMAX OR Y<=YMIN+1 THEN DELY=-DELY:GOSUB 1800 920 POKE 1556,X:POKE 1564,Y 930 POKE 53278,0:MOVE=MOVE+1:IF MOVE<150 THEN 890 940 POKE 53278,0 970 REM ** FL=1 IF SOMEBODY SCORED ** 980 IF FL=1 THEN 730 982 REM ** FL=2 IF SHOT INTO POCKET ** 985 IF FL=2 THEN FL=0:GOTO 740 990 GOTO 745 1000 POKE 1556,0:IF BOUNCE=0 THEN POKE 656,1:POKE 657,3:? "MUST BANK SHOT!! ":FL=2:GOTO 1020 1010 SCORE(PLYR)=SCORE(PLYR)+1:FL=1:B$(BALL,BALL)=CHR$(48+PLYR):GOSUB 1500 1020 FOR I=1 TO 30:SOUND 0,150+I,12,10:NEXT I:FOR I=120 TO 180:SOUND 0,I,10,10:SOUND 0,0,0,0:NEXT I 1030 FOR I=50 TO 30 STEP -5:GOSUB 1600:NEXT I:GOSUB 1500:RETURN 1500 POKE 656,1:POKE 657,3:? B$:RETURN 1600 SOUND 0,I,10,10:FOR J=1 TO 5:NEXT J:SOUND 0,0,0,0:RETURN 1800 BOUNCE=1:SOUND 0,50,10,10:FOR I=1 TO 5:NEXT I:SOUND 0,0,0,0:RETURN 2000 ? CHR$(125):POKE 752,1:POSITION 8,3:? "INSTRUCTIONS":?:? "This is a game of one ball pool for" 2010 ? "up to 9 players. All players use":? "joystick 1. Balls are made one at" 2020 ? "a time and must hit at least one":? "rail before going in a pocket to" 2030 ? "count. If a player makes a ball,":? "he gets another turn." 2040 ?:? "Position the cursor on the rail ":? "where you want the ball to first" 2050 ? "hit. The scorecard at the bottom":? "keeps track of which player hit the" 2060 ? "balls" 2070 ?:?:? "Press any key to begin the game." 2080 GET #1,A:RETURN 3000 GRAPHICS 18:POSITION 5,0:? #6;"Final Score":FOR I=1 TO NP:POSITION 3,I:? #6;"Plyr #";I;" - ";SCORE(I) 3005 NEXT I 3010 GOTO 3010
References
Listing downloads
Downloads
Copyright holder
