10 REM FALL GUY
20 REM à PAUL STANLEY
25 REM PAN BOOKS 1984
30 MODE 1:BORDER 1:INK 0,0:INK 1,8:INK 2,6:INK 3,18:PAPER 0:PEN 1:CLS
40 REM
50 GOSUB 1060:GOSUB 900
60 WINDOW #1,1,40,1,25:PAPER #1,0:CLS #1
70 WINDOW #0,5,36,1,25:PAPER #0,0:PEN #0,1:CLS #0
80 DIM A$(19)
90 INPUT"Please enter your names.        First,  the player on the left:";b$:INPUT"Then  the  player on the right:";C$
100 LOCATE 11,11:PEN 3:PRINT"PLEASE WAIT":PEN 1
110 GOSUB 850
120 GOSUB 790
130 Y=INT(RND*19)+2:Y1=INT(RND*19)+2
140 G=7:G1=24:F=1:F1=1
150 W$=" "+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)+CHR$(231)
160 FOR L=1 TO 5:ENT 1,100,L,4:SOUND 1,284,30,15,0,1:NEXT
170 LOCATE 5,Y+1:PRINT CHR$(233):LOCATE 28,Y1+1:PRINT CHR$(234)
180 LOCATE G+1,F+1:PEN 3:PRINT CHR$(232):LOCATE G1+1,F1+1:PRINT CHR$(232):PEN 1
190 LOCATE G+1,F+2:CALL 360:K=PEEK(367):IF K=32 THEN LOCATE G+1,F+1:PRINT" ":F=F+1:LOCATE G+1,F+1:PEN 3:PRINT CHR$(232):PEN 1:SOUND 1,120,2
200 LOCATE G+1,F+2:CALL 360:K=PEEK(367):IF K=79 THEN FOR I=3 TO 9:SOUND 1,10,I,3:NEXT:LOCATE G+1,F+1:PRINT" ";:LOCATE 8,2:PEN 3:PRINT CHR$(232):PEN 1:F=1:G=7
210 LOCATE G1+1,F1+2:CALL 360:K=PEEK(367):IF K=32 THEN LOCATE G1+1,F1+1:PRINT" ":F1=F1+1:LOCATE G1+1,F1+1:PEN 3:PRINT CHR$(232):PEN 1:SOUND 1,180,2
220 LOCATE G1+1,F1+2:CALL 360:K=PEEK(367):IF K=79 THEN FOR I=3 TO 9:SOUND 1,10,I,3:NEXT:LOCATE G1+1,F1+1:PRINT " ";:LOCATE 25,2:PEN 3:PRINT CHR$(232):PEN 1:F1=1:G1=24
230 IF F=21 OR F1=21 THEN 580
240 IF INKEY(72)=0 AND Y>2 THEN LOCATE 5,Y+1:PRINT" ":Y=Y-1
250 IF INKEY(0)=0 AND Y1>2 THEN LOCATE 28,Y1+1:PRINT" ":Y1=Y1-1
260 IF INKEY(73)=0 AND Y<20 THEN LOCATE 5,Y+1:PRINT" ":Y=Y+1
270 IF INKEY(2)=0 AND Y1<20 THEN LOCATE 28,Y1+1:PRINT" ":Y1=Y1+1
280 IF INKEY(74)=0 THEN GOSUB 340
290 IF INKEY (8)=0 THEN GOSUB 460
300 IF INKEY(75)=0 THEN GOSUB 400
310 IF INKEY(1)=0 THEN GOSUB 520
320 W$=MID$(W$,2)+LEFT$(W$,1):LOCATE 7,22:PEN 2:PRINT W$:PEN 1
330 GOTO 170
340 I=Y-1:IF Y=F THEN IF G=6 THEN IF MID$(A$(I),2,1)<>" " THEN RETURN
350 IF Y=F1 THEN IF G1=6 THEN IF MID$(A$(I),2,1)<>" " THEN RETURN
360 A$(I)=MID$(A$(I),2)+LEFT$(A$(I),1)
370 IF Y=F THEN IF MID$(A$(I),G-5,1)<>" " THEN G=G-1
380 IF Y=F1 THEN IF MID$(A$(I),G1-5,1)<>" " THEN G1=G1-1
390 LOCATE 7,Y+1:PRINT A$(I):RETURN
400 I=Y-1:IF Y=F THEN IF G=25 THEN IF MID$(A$(I),19,1)<>" " THEN RETURN
410 IF Y=F1 THEN IF G1=25 THEN IF MID$(A$(I),19,1)<>" " THEN RETURN
420 A$(I)=RIGHT$(A$(I),1)+LEFT$(A$(1),19)
430 IF Y=F THEN IF MID$(A$(I),G-5,1)<>" " THEN G=G+1
440 IF Y=F1 THEN IF MID$(A$(I),G1-5,1)<>" " THEN G1=G1+1
450 LOCATE 7,Y+1:PRINT A$(I):RETURN
460 I=Y1-1:IF Y1=F1 THEN IF G1=6 THEN IF MID$(A$(I),2,1)<>" " THEN RETURN
470 IF Y1=F THEN IF G=6 THEN IF MID$(A$(I),2,1)<>" " THEN RETURN
480 A$(I)=MID$(A$(I),2)+LEFT$(A$(I),1)
490 IF Y1=F1 THEN IF MID$(A$(I),G1-5,1)<>" " THEN G1=G1-1
500 IF Y1=F THEN IF MID$(A$(I),G-5,1)<>" " THEN G=G-1
510 LOCATE 7,Y1+1:PRINT A$(I):RETURN
520 I=Y1-1:IF Y1=F1 THEN IF G1=25 THEN IF MID$(A$(I),19,1)<>" " THEN RETURN
530 IF Y1=F THEN IF G=25 THEN IF MID$(A$(I),19,1)<>" " THEN RETURN
540 A$(I)=RIGHT$(A$(I),1)+LEFT$(A$(I),19)
550 IF Y1=F1 THEN IF MID$(A$(I),G1-5,1)<>" " THEN G1=G1+1
560 IF Y1=F THEN IF MID$(A$(I),G-5,1)<>" " THEN G=G+1
570 LOCATE 7,Y1+1:PRINT A$(I):RETURN
580 IF F=21 THEN Y=F:X=G
590 IF F1=21 THEN Y=F1:X=G1
600 W$=CHR$(232)+CHR$(235):C=-0.5:PEN 3:FOR G=0 TO 16:LOCATE X+1,Y+1:PRINT MID$(W$,C+1.5,1):C=-C:SOUND 2,(100),7,4,1 :NEXT  G:PEN 1
610 FOR V=0 TO 31:LOCATE V+1,19:PRINT" ":LOCATE V+1,20:PRINT" ":LOCATE V+1,21:PRINT" ":LOCATE V+1,22:PRINT" ":NEXT
620 PEN 3: FOR V=2 TO 28 STEP 2:LOCATE V,20:PRINT" ":LOCATE V+1,21:PRINT CHR$(232):SOUND 1,180,15:FOR B=1 TO 150:NEXT B:LOCATE V+1,21:PRINT" ":LOCATE V+2,20:PRINT CHR$(235):FOR B=1 TO 150:NEXT B,V: PEN 1:SOUND 1,120,15:SOUND 1,90,15
630 Z$=INKEY$:IF Z$<>"" THEN 630
640 CLS:IF F=21 THEN W$=B$
650 IF F1=21 THEN W$=C$
660 IF F1=21 AND F=21 THEN 700
670 LOCATE 1,6:PRINT"Well done ";W$;"!"
680 PRINT:PRINT:PRINT"You were the best Fall Guy!!"
690 GOTO 710
700 LOCATE 1,6:PRINT"The result was a draw.":PRINT:PRINT:PRINT"You both did equally well."
710 PRINT:PRINT:PRINT"Press [X] to quit the program.":PRINT:PRINT"Press [1] for the same course.":PRINT:PRINT"Press [2]                                         for a new course."
720 Z$=INKEY$:IF Z$="" THEN 720 ELSE Z$=UPPER$(Z$)
730 IF Z$="X" THEN STOP
740 IF Z$="1" THEN 770
750 IF Z$="2" THEN CLS:LOCATE 11,11:PRINT"PLEASE WAIT":ERASE A$:DIM A$(19):GOTO 110
760 GOTO 720
770 CLS:FOR F=1 TO 19:I=INT(RND*20)+1:A$(F)=MID$(A$(F),I)+MID$(A$(F),1,I-1):NEXT
780 GOTO 120
790 CLS:FOR F=1 TO 19:LOCATE 7,F+2:PRINT A$(F):NEXT
800 FOR F=2 TO 21:LOCATE 6,F+1:PEN 2:PRINT CHR$(231):LOCATE 27,F+1:PRINT CHR$(231):NEXT:PEN 1
810 FOR F=5 TO 26:LOCATE F+1,2:PEN 2:PRINT CHR$(231):PEN 1:NEXT
820 LOCATE 8,2:PRINT" ":LOCATE 25,2:PRINT" ":LOCATE 17,22:PRINT" "
830 LOCATE 1,1:PRINT CHR$(24) B$:LOCATE (33-LEN(C$)),1:PRINT C$:PRINT CHR$(24)
840 RETURN
850 FOR F=1 TO 19
860 FOR G=1 TO 20:X$=CHR$(32-199*(RND>0.5)): IF RND < 0.02 THEN X$="O"
870 A$(F)=A$(F)+X$
880 NEXT G,F
890 RETURN
900 SYMBOL AFTER 230
910 SYMBOL 231,170,85,170,85,170,85,170,85
920 SYMBOL 232,24,24,255,60,60,90,66,195
930 SYMBOL 233,8,12,250,137,250,12,8,0
940 SYMBOL 234,16,48,95,147,95,48,16,0
950 SYMBOL 235,153,219,126,60,60,126,219,129
960 REM
970 PEN 2:QQ$="    AAA AAA A   A     AAA A A A   A         A   A A A   A     A   A A  AAA          AA  AAA A   A     A A A A   A           A   A A AAA AAA   AAA AAA   A":GOSUB 1100:PEN 1
980 LOCATE 1,6:PRINT CHR$(24)"A game for two players who have to guidetheir  man  to  the  bottom  of the gridbefore their opponent.                                                          "
990 LOCATE 1,10:PRINT"Avoid The mines [o], for landing on one of these will send you right to the top.":PRINT CHR$(24)
1000 PEN 2:PRINT  "  CONTROLS:-  UP    DOWN  LEFT   RIGHT":PEN 1
1010 PEN 3: PRINT:PRINT"  PLAYER 1:Use joystick                   PLAYER 2:Use cursor keys":PEN 1
1020 PRINT:PRINT:PRINT:PRINT
1030 LOCATE 8,23:PEN 2:PRINT"PRESS ANY KEY TO CONTINUE..":PEN 1
1040 IF INKEY$=""THEN 1040 ELSE CLS
1050 RETURN
1060 RESTORE 1070:FOR X=360 TO 366:READ A:POKE X,A:NEXT:RESTORE:RETURN
1070 DATA 205,96,187,50,111,1,201
1100 FOR QQ=1 TO LEN(QQ$)
1110 Q1$=MID$(QQ$,QQ,1)
1120 IF Q1$=" " THEN PRINT " ";
1130 IF Q1$="A" THEN PRINT CHR$(232);
1140 NEXT QQ
1150 RETURN