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."