Listing of file='ARCADE' on disk='vmedia/best_of_BD_fules.wvd.zip'
# Sector 304, program filename = 'ARCADE'
0010 KEYIN D$,10,10
: PRINT HEX(03);"WHICH ARCADE GAME WOULD YOU LIKE"
: PRINT "1. TIE FIGHTER"
: PRINT "2. PINBALL"
: PRINT "3. STOP"
: PRINT TAB(32);HEX(0C0C0C0C);
: INPUT Y
: ON Y GOTO 720,20,580
0020 DIM A$(14)64,E$5,F$(4)64
: E$="o"
0030 PRINT HEX(03);TAB(20);"BASIC INSTRUCTIONS"
: PRINT " TO START THE BALL PRESS ANY S.F. KEY. TO GET YOUR PADDLE PRESSAN
Y KEY. TO GET A FREE BALL THE BALL HAS TO HIT THE DIAMOND IN";
0040 PRINT "THE MIDDLE. TO GET A FREE GAME YOUR SCORE MUST BE OVER 7300. BE
FORE THE GAME YOU WILL BE ASKED HOW MANY BALLS YOU WANT. ONLY A REPLY OF
'3' OR '5' WILL BE ACCEPTED."
0050 KEYIN A$,60,60
: GOTO 50
0060 PRINT
: INPUT "HOW MANY BALLS",K0
: IF K0=3THEN 80
: IF K0=5THEN 80
0070 K0=3
0080 L=13
: M=61
: A=8
: PRINT HEX(0306)
0090 INIT(80)A$()
: INIT(8B)STR(A$(1),4,59)
: FOR I=2TO 13
: STR(A$(I),4,1)=HEX(86)
: NEXT I
: INIT(80)STR(A$(1),1,3),STR(A$(14),1,3)
: FOR I=2TO 13
: STR(A$(I),62,1)=HEX(86)
: NEXT I
0100 FOR I=4TO 13
: STR(A$(I),60,3)=HEX(868086)
: NEXT I
0110 PRINT HEX(03);
: PRINT "WHICH PINBALL GAME"
: PRINT "1. SPACE BALL"
: PRINT "2. PINWARS"
: PRINT "3. WANG's BEST (FOR NON-DISK PERSONEL)";HEX(0109090909090909090909
0909090909090909);
: INPUT M6
: J8=0
: ON M6GOTO 120,130,140
0120 LIMITS F "ARCADE",W,Q1,U
: FOR I=Q1-5 TO Q1-4
: DATA LOAD BA F(I,M9)F$()
: FOR J=1TO 4
: A$((I-(Q1-6))*4+1+J)=F$(J)
: NEXT J
: NEXT I
: GOTO 170
0130 LIMITS F "ARCADE",W,Q1,U
: FOR I=Q1-3 TO Q1-2
: DATA LOAD BA F(I,M9)F$()
: FOR J=1TO 4
: A$((I-(Q1-4))*4+1+J)=F$(J)
: NEXT J
: NEXT I
: GOTO 170
0140 STR(A$(6),9,5)="OOOOO"
: STR(A$(6),49,5)="OOOOO"
: STR(A$(8),13,5)="OOOOO"
: STR(A$(8),46,5)="OOOOO"
: STR(A$(10),11,2)=HEX(832D)
: STR(A$(10),51,2)="-\82"
: STR(A$(9),25,1),STR(A$(9),32,1),STR(A$(9),39,1)="\81"
0150 STR(A$(12),7,1)=HEX(86)
: STR(A$(12),27,1)="#"
: STR(A$(12),37,1)="#"
: STR(A$(12),57,1)=HEX(86)
: STR(A$(13),7,1)=HEX(86)
: STR(A$(13),26,1)="#"
: STR(A$(13),38,1)="#"
: STR(A$(13),57,1)=HEX(86)
0160 STR(A$(11),7,1)=HEX(86)
: STR(A$(11),57,1)=HEX(86)
0170 PRINT HEX(03);
0180 L=13
: M=61
: A=8
: PRINT HEX(0106)
: STR(A$(L),M,1)=HEX(80)
: STR(A$(4),61,1)=HEX(80)
0190 INIT(8B)STR(A$(4),5,55)
: FOR I=1TO 6
: H=INT(RND(1)*52)+5
: STR(A$(4),H,4)=HEX(80808080)
: NEXT I
: INIT(80)A$(14)
0200 GOSUB 440
0210 KEYIN J$,210,220
: GOTO 210
0220 KEYIN J$,230,230
: GOTO 240
0230 IF VAL(J$)=24THEN 550
: IF D5>0THEN 240
: D5=1
0240 IF INT(D5/2+.5)=1THEN 450
0250 ON AGOTO 260,290,300,330,340,350,360,390,400
: END
0260 A=1
: STR(A$(L),M,1)=HEX(80)
: IF STR(A$(L+1),M-1,1)<>HEX(80)THEN 270
: L=L+1
: M=M-1
: GOSUB 440
: GOTO 220
0270 IF STR(A$(L+1),M-1,1)="\81"THEN 280
: J8=J8+INT(RND(1)*3)+50
: IF STR(A$(L+1),M+1,1)<>HEX(80)THEN 360
: GOTO 300
0280 L=L+1
: M=M-1
: GOTO 520
0290 STOP "2"
0300 A=3
: STR(A$(L),M,1)=HEX(80)
: IF STR(A$(L+1),M+1,1)<>HEX(80)THEN 310
: L=L+1
: M=M+1
: GOSUB 440
: GOTO 220
0310 IF STR(A$(L+1),M+1,1)="\81"THEN 320
: J8=J8+INT(RND(1)*3)+9
: IF STR(A$(L+1),M-1,1)<>HEX(80)THEN 400
: GOTO 260
0320 L=L+1
: M=M+1
: GOTO 520
0330 STOP "4"
0340 STOP "5"
0350 STOP "6"
0360 A=7
: STR(A$(L),M,1)=HEX(80)
: IF STR(A$(L-1),M-1,1)<>HEX(80)THEN 370
: L=L-1
: M=M-1
: GOSUB 440
: GOTO 220
0370 IF STR(A$(L-1),M-1,1)="\81"THEN 380
: J8=J8+INT(RND(1)*3)+50
: IF STR(A$(L+1),M-1,1)<>HEX(80)THEN 400
: GOTO 260
0380 L=L-1
: M=M-1
: GOTO 520
0390 A=8
: STR(A$(L),M,1)=HEX(80)
: IF STR(A$(L-1),M,1)<>HEX(80)THEN 300
: L=L-1
: GOSUB 440
: GOTO 220
0400 A=9
: STR(A$(L),M,1)=HEX(80)
: IF STR(A$(L-1),M+1,1)<>HEX(80)THEN 410
: L=L-1
: M=M+1
: GOSUB 440
: GOTO 220
0410 IF STR(A$(L-1),M+1,1)="\81"THEN 420
: J8=J8+INT(RND(1)*3)+50
: IF STR(A$(L-1),M-1,1)<>HEX(80)THEN 300
: GOTO 360
0420 L=L-1
: M=M+1
: GOTO 520
0430 STR(A$(4),61,1)="-"
: RETURN
0440 STR(A$(L),M,1)=E$
: PRINT HEX(01);"S"
: PRINT HEX(01);"SCORE=";J8,"BALLS LEFT =";K0-1;HEX(01);
: MAT PRINT A$;
: PRINT HEX(01);
: IF L<4THEN 430
: IF D5=1THEN 460
: RETURN
0450 D5=D5+1
: IF D5>2THEN 460
: INIT(8B)STR(A$(14),8,22)
: INIT(8B)STR(A$(14),35,22)
: GOTO 250
0460 D5=0
: INIT(80)A$(14)
: GOTO 250
0470 ON ERRORA$,B$GOTO 470
: IF A$="64"THEN 570
: IF A$="29"THEN 560
: IF K0-1<1THEN 480
: PRINT HEX(010A0A0A0A0A0A20202086);" YOU LOST A BALL"
: K0=K0-1
: J8=J8+250
: FOR I=1TO 200
: NEXT I
: GOTO 180
0480 PRINT HEX(030A0A0A0A0A0A0A0A);
: J8=J8+250
0490 KEYIN D$,500,500
: IF J8>7300THEN 510
: PRINT HEX(0C);" GAME OVER ! SCORE = ";J8
: FOR I=1TO 80
: NEXT I
: PRINT HEX(0C);TAB(62);" ";
: FOR I=1TO 40
: NEXT I
: GOTO 490
0500 PRINT HEX(0C);
: INPUT " ANOTHER GAME, ANOTHER QUARTER",H1$
: J,U8=0
: IF STR(H1$,1,1)="Y"THEN 60
: GOTO 10
0510 PRINT HEX(0C);" YOU GOT OVER 7300"
: PRINT " YOU GET A FREE GAME!"
: J=0
: FOR I=1TO 400
: NEXT I
: GOTO 70
0520 E$="="
: A=8
: GOSUB 440
: FOR I=1TO 200
: NEXT I
: L=L-1
: U8=U8+1
: IF U8>2THEN 530
: E$="o"
: GOTO 250
0530 K0=K0+1
: E$="o"
: U8=0
: GOTO 250
0540 REM 131,132
0550 ON AGOTO 300,290,260,330,340,350,400,390,360
: END
0560 PRINT HEX(030A0A0A0A0A0A);TAB(20);"ONLY NUMBERS IDIOT!"
: PRINT TAB(24);"TRY AGAIN!"
: FOR I=1TO 300
: NEXT I
: GOTO 110
0570 PRINT HEX(030A0A0A0A0A0A);TAB(18);"YOU IDIOT! YOU GOT NO DISK!"
: PRINT TAB(20);"USE #3. I'LL START YOU."
: FOR I=1TO 350
: NEXT I
: GOTO 140
0580 DIM S1$(11)16
0590 S1$(1)=HEX(3A2D2D2D2D2D2D2D2D2D2D2D3A202020)
0600 S1$(2)=HEX(21205041535420484F50452021202020)
0610 S1$(3)=HEX(21205041535420435552452021202020)
0620 S1$(4)=HEX(2120504153542048454C502021202020)
0630 S1$(5)=HEX(2120202066726F6D2D20202021202020)
0640 S1$(6)=HEX(A1A0F2EFEDA0A6A0EAF5ECA0A1202020)
0650 S1$(7)=HEX(205C204220414E442044202F20202020)
0660 S1$(8)=HEX(20205C2046554C4553202F2020202020)
0670 S1$(8)=HEX(20205C2046554C4553202F2020202020)
0680 S1$(9)=HEX(2020205C20494E43202F202020202020)
0690 S1$(10)=HEX(202020205C202E202F20202020202020)
0700 S1$(11)=HEX(20202020205CA02F2020202020202020)
0710 SELECT P4
: PRINT HEX(030A);TAB(16);"THIS GAME WAS BROUGHT TO YOU BY:"
: FOR I=1TO 11
: PRINT TAB(25);S1$(I)
: NEXT I
: FOR I=1TO 600
: NEXT I
: GOTO 1310
0720 PRINT HEX(03);
0730 PRINT TAB(20);"BASIC INSTRUCTIONS";
: PRINT " SPEED IS HOW FAST THE TIE-FIGHTER MOVES. YOU OBVIOUSLY TRY TO DE
STROY THE FIGHTER BEFORE IT DESTROYS YOU. YOU MOVE YOUR TARGETBY USING TH
E NUMERIC KEYPAD.";
0740 PRINT " AN AVERAGE SPEED IS ABOUT 1.5. A VERY FAST SPEED WOULD BE ZERO AN
D AN INCREDIBLY EASSSSY SPEED IS 3.";
: T2=1
0750 PRINT " WHEN THE TIE-FIGHTER HITS THE HOOD IT EXTENSIVELY DAMMAGES YOURSH
IT (SHIP THAT IS). IF HE HITS 5 TIMES YOU WILL BE DESTROYED.";
0760 PRINT " TO FIRE PRESS ANY S. F. KEY.";
0770 PRINT " SOME HELP WILL BE OFFERED BY THE COMMANDS IN THE UPPER LEFT- HA
ND CORNER."
: PRINT " DURING THE GAME THE FIGHTER MAY USE A CLOAKING DEVICE. WHEN";
0780 PRINT "HE DOES IT WILL BE NECESSARY TO USE THE COMMANDS IN THE CORNER OF
THE SCREEN."
: PRINT
0790 PRINT HEX(06)
: DIM A$(14)64
: INPUT "SPEED",K
0800 E$="<-\81->"
0810 J=INT(RND(1)*10)+1
: X=INT(RND(2)*59)+3
: K0,D4=0
: GOTO 850
0820 F=INT(RND(1)*10)+1
: IF F=1THEN 1190
0830 F=INT(RND(1)*7)+1
: IF F=1THEN 1280
0840 F=INT(RND(1)*13)+1
: IF F=1THEN 1300
0850 T3=T2
: IF INT(RND(1)*3)<>1THEN 860
: T2=INT(RND(1)*3)+1
: T3=T2
0860 ON T3GOTO 990,1000,1020,1010
: END
0870 INIT(20)A$()
0880 STR(A$(14),17,31)=HEX(8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8
B8B8B8B8B8B8B8B8B8B)
: STR(A$(13),19,27)=HEX(8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8
B8B)
0890 STR(A$(12),21,23)=HEX(8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B)
0900 STR(A$(7),28,1)="-"
: STR(A$(7),32,1)="+"
: STR(A$(7),36,1)="-"
0910 STR(A$(5),32,1)=HEX(86)
0920 STR(A$(9),32,1)=HEX(86)
0930 GOTO 950
0940 O=1000
: GOTO 960
0950 IF J<1THEN 940
: IF J>11THEN 940
: IF X<3THEN 940
: IF X>62THEN 940
: O=0
: STR(A$(J),X-2,5)=E$
0960 PRINT HEX(03);
: MAT PRINT A$;
: GOSUB 1120
: FOR I=1TO K*25
: NEXT I
: A$="5"
: A1=5
0970 KEYIN A$,980,1030
: GOTO 820
0980 IF A$<"2"THEN 820
: IF A$>"8"THEN 820
: CONVERT A$TO A1
: IF A1=5THEN 960
: ON A1/2GOTO 990,1000,1020,1010
: GOTO 820
0990 J=J-1
: GOTO 870
1000 X=X+2
: GOTO 870
1010 J=J+1
: GOTO 870
1020 X=X-2
: GOTO 870
1030 GOSUB 1170
: PRINT HEX(03);
: MAT PRINT A$;
: PRINT HEX(010D0A0A0A0A0A0A0A0A0A0A0A);TAB(35);
: FOR A=1TO 5
: PRINT HEX(5C08080C);
: NEXT A
1040 PRINT HEX(010D0A0A0A0A0A0A0A0A0A0A0A);TAB(27);
: FOR A=1TO 4
: PRINT "/";HEX(0C);
: NEXT A
: PRINT "X";
: FOR I=1TO 40
: NEXT I
: IF J=7THEN 1050
: GOTO 820
1050 IF X<30THEN 820
: IF X>34THEN 820
1060 STR(A$(J),X-2,5)=" "
: PRINT HEX(03);
: MAT PRINT A$;
: PRINT HEX(010A0A0A0A0A0A0A)
1070 FOR I=X+1TO X+10STEP 2
: STR(A$(J),I,1)="-"
: STR(A$(J),X+(I-X)*2,1)=">"
: STR(A$(J),X+(I-X)*2-4,1)=" "
: STR(A$(J),I-2,1)=" "
1080 STR(A$(J),X-I+X,2)="<-"
: STR(A$(J),X-I+X+2,2)=" "
: STR(A$(J-(I-X)/2),I,1)="\81"
: STR(A$(J-(I-X)/2+1),I-2,1)=" "
1090 PRINT HEX(03);
: MAT PRINT A$;
: NEXT I
: STR(A$(7),30,4)="BOOM"
: PRINT HEX(03);
: MAT PRINT A$;
1100 KEYIN A$,1100,1100
: PRINT HEX(01);
: INPUT "ANOTHER TIE FIGHTER IS IN YOUR SECTOR. WILL YOU ATTACK",G$
: IF STR(G$,1,1)="Y"THEN 790
1110 GOTO 10
1120 IF J>7THEN 1130
: IF J<7THEN 1140
: IF X>34THEN 1150
: IF X<30THEN 1160
: PRINT HEX(01);"FIRE LASER CANNON!!";
: RETURN
1130 PRINT HEX(01);"DOWN LASER CANNON";
: RETURN
1140 PRINT HEX(01);"UP LASER CANNON";
: RETURN
1150 PRINT HEX(01);"RIGHT LASER CANNON";
: RETURN
1160 PRINT HEX(01);"LEFT LASER CANNON";
: RETURN
1170 K0=K0+1
: IF K0<10THEN 1180
: FOR I=1TO 100
: NEXT I
: PRINT HEX(030A0A0A0A0A0A0A)
: PRINT TAB(08);"LOW ON FIRE ARMS. TIME TO HEAD FOR BASE SHIP."
: RETURN CLEAR
: FOR I=1TO 400
: NEXT I
: GOTO 10
1180 RETURN
1190 IF O=1000THEN 950
: PRINT HEX(03);
: MAT PRINT A$;
: IF X>32THEN 1240
: PRINT HEX(01);
: FOR I=1TO J+1
: PRINT HEX(0A);
: NEXT I
: FOR I=J+1TO 11
: PRINT TAB(X+I-J-1);"."
: NEXT I
: IF (X+I-J-1)<21THEN 850
: IF (X+I-J-1)>44THEN 850
: D4=D4+1
: IF D4<5THEN 850
1200 FOR I=1TO 300
: NEXT I
: PRINT HEX(030A0A0A0A0A0A0A);TAB(11);"THE TIE FIGHTER DESTROYED YOUR SHIP!
"
: KEYIN A$,1210,1210
1210 FOR I=1TO 450
: NEXT I
: PRINT HEX(030A0A0A0A0A0A0A);TAB(3);"BUT LUCKILY YOU WERE HURLED, UNHARMED
, INTO OUTER SPACE."
: FOR I=1TO 450
: NEXT I
1220 PRINT HEX(030A0A0A0A0A0A0A);TAB(5);"YOU WERE THEN FOUND BY A BASE SHIP, B
UT THEY NEED ..."
: FOR I=1TO 450
: NEXT I
: PRINT HEX(030A0A0A0A0A0A0A);TAB(5);"...VOLUNTEER WARRIORS. WILL YOU VOLUN
TEER";
: INPUT G$
1230 IF STR(G$,1,1)="Y"THEN 790
: FOR I=1TO 2
: FOR O=1TO 40
: NEXT O
: PRINT HEX(030A0A0A0A0A0A0A);TAB(28);"BANG!!"
: FOR K=1TO 20
: NEXT K
: PRINT HEX(03);
: NEXT I
: FOR I=1TO 200
: NEXT I
: PRINT HEX(030A0A0A0A0A0A0A);TAB(15);"THEY HAVE JUST ASSASINATED YOU."
: FOR I=1TO 400
: NEXT I
: GOTO 10
1240 PRINT HEX(01);
: FOR I=1TO J+1
: PRINT HEX(0A);
: NEXT I
: FOR I=J+1TO 11
: PRINT TAB(X-I+J-1);"."
: NEXT I
: IF (X-I+J-1)<20THEN 850
: IF (X-I+J-1)>43THEN 850
: D4=D4+1
: IF D4>4THEN 1200
: GOTO 850
1250 FOR I=16TO 255
: BIN(A$)=I
: KEYIN A$,1260,1260
: PRINT A$;" ";
: HEXPRINT STR(A$,1,1);
: PRINT " ";
: NEXT I
1260 STOP
1270 FOR I=X+1TO X+10
: STR(A$(J),I,2)="->"
: STR(A$(J),X-I+X,2)="<-"
: PRINT HEX(03);
: MAT PRINT A$;
: NEXT I
1280 IF E$=" "THEN 850
: E$=" "
: PRINT HEX(03);
: MAT PRINT A$;
: PRINT HEX(01);"THE TIE FIGHTER IS USING HIS CLOAKING DEVICE. USE THE ON-B
OARD COMPUTER'S COMMANDS APEARING IN THE UPPER LEFT OF THE SCREEN."
1290 FOR I=1TO 400
: NEXT I
: GOTO 950
1300 E$="<-\81->"
: GOTO 850
1310 SELECT P