10 VA=PEEK(&106)*256+PEEK(&105) 20 LL=PEEK(&107):LN=PEEK(&108) 30 FILL 32:SN=128:POKE VA+&7FF,12 40 VPRINT 5*LL+20,"VIDEO BLOCKADE FROM HAWKEYE GRAFIX" 50 VPRINT 7*LL+26,"COPYRIGHT (C) 1981" 60 VPRINT 10*LL+4,"SOUNDS AND ATARI JOYSTICKS ON PORT 128 AND 129 OF STEREO SOUND BOARD" 70 VPRINT 12*LL+26,"BIT0 - BLUE - DOWN" 80 VPRINT 13*LL+26,"BIT1 - BROWN - RIGHT 90 VPRINT 14*LL+26,"BIT2 - WHITE - UP 100 VPRINT 15*LL+26,"BIT3 - GREEN - LEFT" 110 VPRINT 16*LL+26,"BIT4 - ORANGE - BUTTON" 120 VPRINT 17*LL+24,"GROUND - BLACK - GROUND" 130 VINPUT 20*LL+5,"WOULD YOU LIKE INSTRUCTIONS (Y/N)";A$ 140 IF LEFT$(A$,1)="Y" THEN GOSUB 1440 150 FILL 32 160 RESTORE 240 170 POKE VA+&7FF,15 180 DIM DR(2,12) 190 DIM PL(1,3) 200 FOR I=0 TO 12 210 READ DR(0,I) 220 READ DR(1,I) 230 NEXT 240 DATA 0,0,1,244,2,248,0,0,4,241,0,0,0,0,0,0,8,242,0,0,0,0,0,0,0,0 250 DR(2,2)=1 260 DR(2,8)=-1 270 DR(2,1)=LL 280 DR(2,4)=-LL 290 BL$=CHR$(&BF) 300 FILL 32 310 VINPUT 3*LL+4,"NAME OF FIRST PLAYER"; LINE P$(0) 320 VINPUT 3*LL+44,"NAME OF SECOND PLAYER"; LINE P$(1) 330 VPRINT 5*LL,SPC(LL/2) 340 VINPUT 5*LL+4,"SELECT SPEED FACTOR (1-9)";SP 350 SP=ABS(INT(SP)) 360 IF SP<1 THEN 330 370 IF SP>9 THEN 330 380 GOSUB 1360 390 FILL 32 400 VPRINT 2*LL,P$(0);" PLEASE PRESS YOUR BUTTON" 410 OUT SN,14 420 A=INP(SN+1) AND &10 430 IF A=0 THEN 520 440 OUT SN,15 450 A=INP(SN+1) AND &10 460 IF A=16 THEN 410 470 VPRINT 3*LL,"YOU HAVE THE JOYSTICKS REVERSED." 480 VPRINT 3*LL+LL/2,"PLEASE EXCHANGE THEM." 490 VPRINT 4*LL,"THEN PRESS YOUR BUTTON, ";P$(0) 500 OUT SN,14 510 WAIT SN+1,&10,&10 520 FILL 32 530 POKE VA+&7FF,12 540 VPRINT 0,CHR$(&F3) 550 VPRINT LL-1,CHR$(&F9) 560 VPRINT (LN-2)*LL,CHR$(&F6) 570 VPRINT (LN-1)*LL-1,CHR$(&FC) 580 FOR I=1 TO LL-2 590 VPRINT I,CHR$(&FA) 600 VPRINT I+(LN-2)*LL,CHR$(&FA) 610 NEXT 620 FOR I=1 TO LN-3 630 VPRINT I*LL,CHR$(&F5) 640 VPRINT (I+1)*LL-1,CHR$(&F5) 650 NEXT 660 VPRINT (LN-1)*LL+10,LEFT$(P$(0),10) 670 VPRINT (LN-1)*LL+21,PL(0,2) 680 VPRINT (LN-1)*LL+40,LEFT$(P$(1),10) 690 VPRINT (LN-1)*LL+51,PL(1,2) 700 PL(0,0)=INT(((LN-2)/2)*LL+1) 710 PL(1,0)=PL(0,0)+LL-3 720 PL(0,1)=2 730 PL(1,1)=8 740 PL(0,3)=ASC(P$(0)) 750 PL(1,3)=ASC(P$(1)) 760 OV=2 770 GOSUB 1200 780 P=0 790 GOSUB 1060 800 OUT SN,0:OUT SN+1,222 810 IF OV<>2 THEN 870 820 P=1 830 GOSUB 1060 840 OUT SN,0:OUT SN+3,244 850 IF OV<>2 THEN 870 860 GOTO 780 870 OUT SN,8:OUT SN+1,0 880 OUT SN+2,13:OUT SN+3,0 890 IF OV=0 THEN OV=1 ELSE OV=0 900 VPRINT (LN-1)*LL+60,"WINNER:";P$(OV) 910 PL(OV,2)=PL(OV,2)+1 920 IF PL(OV,2)<>9 THEN 990 930 FILL 32 940 POKE VA+&7FF,15 950 VPRINT 3*LL+10,"FINAL SCORE:" 960 VPRINT 3.5*LL+10,P$(0),PL(0,2) 970 VPRINT 4*LL+10,P$(1),PL(1,2) 980 END 990 VPRINT (LN-1)*LL+21,PL(0,2) 1000 VPRINT (LN-1)*LL+51,PL(1,2) 1010 VPRINT (LN-2)*LL," PRESS BUTTON TO PLAY AGAIN " 1020 OUT SN,14 1030 IF (INP(SN+1) AND &10) THEN 1040 ELSE 520 1040 OUT SN,15 1050 IF (INP(SN+1) AND &10) THEN 1020 ELSE 520 1060 OUT SN,14+P 1070 MV=PL(P,1) 1080 FOR I=0 TO SP*2 1090 VL=(255-INP(SN+1) AND &0F) 1100 IF DR(0,VL)<>0 THEN MV=VL 1110 NEXT 1120 IF MV=0 THEN MV=PL(P,1) 1130 NP=PL(P,0)+DR(2,MV) 1140 IF PEEK(VA+NP)<>32 THEN OV=P:RETURN 1150 VPRINT PL(P,0),BL$ 1160 PL(P,0)=NP 1170 PL(P,1)=MV 1180 VPRINT NP,CHR$(PL(P,3)) 1190 RETURN 1200 RESTORE 1270 1210 FOR I=0 TO 12 1220 OUT SN,I 1230 READ D 1240 OUT SN+1,D 1250 NEXT 1260 RETURN 1270 DATA 244,0,255,15,255,15,0,62,7,0,0,0,0 1280 RESTORE 1350 1290 FOR I=0 TO 12 1300 OUT SN+2,I 1310 READ D 1320 OUT SN+3,D 1330 NEXT 1340 RETURN 1350 DATA 171,0,255,15,255,15,0,62,16,0,0,96,6 1360 RESTORE 1430 1370 FOR I=0 TO 12 1380 OUT SN+2,I 1390 READ D 1400 OUT SN+3,D 1410 NEXT 1420 RETURN 1430 DATA 0,0,0,0,0,0,18,55,16,0,0,227,19 1440 FILL 32:RESTORE 1510 1450 FOR I=1 TO 13 1460 READ A$ 1470 VPRINT I*LL,A$ 1480 NEXT 1490 INPUT LINE A$ 1500 RETURN 1510 DATA " This is the game of blockade. It is a game of motion on the video" 1520 DATA "screen. Each player has a joystick. The joystick is used to direct" 1530 DATA "the player's marker. Player 1 starts at the left center of the screen," 1540 DATA "and player 2 starts at the right. The marker for each player will move" 1550 DATA "in the direction indicated by the joystick. If no direction is indicated," 1560 DATA "the marker will continue moving in the direction of the last move." 1570 DATA "The markers leave a line trailing behind them. The loser is the first" 1580 DATA "player to move into a line left by either marker, or the edge of the" 1590 DATA "board. Do not attempt to reverse your direction, because you will move" 1600 DATA "into the line you just made, and lose the game. The first player to win" 1610 DATA "nine games is the champion." 1620 DATA "" 1630 DATA " Now, press return to start the games."