Listing of file='MINCED' on disk='vmedia/best_of_BD_fules.wvd.zip'
# Sector 130, program filename = 'MINCED'
0010 DIM X2$64,I(10),O9$64
: INIT(09)O9$
: E8=1
: PRINT HEX(0306)
: GOSUB '22(" INSTRUCTIONS")
: GOSUB '22(" FOR THE PLAY OF --** MINCED MEAT **--")
: PRINT
0020 GOSUB '22(" Using the corners of the numeric keypad one may move")
: GOSUB '22("ones bases toward the respective corners on the screen. Using"
)
: GOSUB '22("the other keys the following is accomplished:")
0030 GOSUB '22(" 6 -- FIRES RIGHT BASE LEFT")
: GOSUB '22(" 4 -- FIRES LEFT BASE RIGHT")
: GOSUB '22(" 8 -- FIRES TOP BASE DOWNWARD")
: GOSUB '22(" 2 -- FIRES BOTTOM BASE UPWARD")
0040 GOSUB '22(" The object is to wipe out as many SPACE-SHOES as possible
")
: GOSUB '22("using only the allotted amount of missiles: a higher skill")
: GOSUB '22("level gives less missiles and vice-versa.")
0050 PRINT
: GOSUB '22(" KEYIN TO CONTINUE...")
: GOSUB '23(27,0)
: PRINT HEX(030A)
: E8=1
0060 GOSUB '22(" Once a regiment of SPACE-SHOES is destroyed, a new, harde
r")
: GOSUB '22("to destroy, regiment materializes until you run out of ammo.")
0070 GOSUB '22(" Periodically, a MOTHER-SHOE, >\81<, that can fire at")
: GOSUB '22("your bases and, when you hit it, is a bonus score (depending")
: GOSUB '22("on the skill level), will appear, moving left")
0080 GOSUB '22("to right. If you or the MOTHER-SHOE hit a base it is X'ed out.
")
: GOSUB '22("A higher skill level will also raise the chance that the")
0090 GOSUB '22("MOTHER-SHOE shoots at you. Every move counts because your scor
e")
: GOSUB '22("lessens each moment.")
: PRINT
: E8=1
0100 GOSUB '22("KEYIN YOUR SKILL LEVEL (1 - 5):")
0110 GOSUB '23(32,150)
: IF A1$<"1"THEN 110
: IF A1$>"5"THEN 110
: CONVERT A1$TO E9
0120 DIM A$(15)64,E(10),F(10),L1$64,M$64
: E4=62
: A,C=29
: B1,B3=INT((9-E9)^1.5)
: B2,B4=2*B1
: B,D=7
: PRINT HEX(0306)
: INIT(0A)A0$
0130 INIT(2D)A$(1),A$(15)
: FOR I=2TO 14
: STR(A$(I),1,1),STR(A$(I),64,1)=HEX(86)
: NEXT I
0140 STR(A$(1),A,3),H1$=HEX(5C762F)
: STR(A$(B),64,1),H2$=HEX(5F)
: STR(A$(15),C,3),H3$=HEX(2F5E5C)
0150 STR(A$(D),1,1),H4$=HEX(84)
: STR(A0$,16,1),STR(A$(15),64,1)=HEX(01)
0160 D1=0
: READ L1$,R,S3
: IF R=0THEN 660
: L1=LEN(L1$)
: FOR Y=1TO R
: E(Y)=INT(RND(1)*12)+2
: F(Y)=INT(RND(1)*(60-L1))+2
: PRINT HEX(01);"SCORE =";S
: PRINT HEX(01)
: MAT PRINT A$
: A4=VAL(STR(L1$,1,1))
: FOR M=INT(A4/2)TO A4
: BIN(M1$)=M
: INIT(M1$)STR(M$,1,L1)
: PRINT HEX(01);STR(A0$,1,E(Y));
0170 PRINT STR(O9$,1,F(Y)-1);M$
: PRINT HEX(01)
: NEXT M
: STR(A$(E(Y)),F(Y),L1)=L1$
: M$=" "
0180 E4=E4+2
: IF E4<60THEN 200
: IF E4=60THEN 810
: IF INT(RND(1)*80/E9)<>1THEN 240
0190 E4=4
: E5=INT(RND(1)*13)+2
0200 STR(A$(E5),E4-2,3)=" "
: E6=SGN(INT((RND(1)*50)-25))
: IF E5+E6<2THEN 210
: IF E5+E6>14THEN 210
: E5=E5+E6
0210 STR(A$(E5),E4,3)=">\81<"
: IF INT(RND(1)*(60/E9))<>1THEN 240
: GOSUB 710
0220 U8=E5
: PRINT HEX(01);"SCORE =";S
: PRINT HEX(01)
: MAT PRINT A$
: FOR U7=E4TO LSTEP SGN(L-E4)
: U8=U8-((E5-K)/(ABS(L-E4)+1))
: PRINT HEX(01);STR(A0$,1,U8+.5);STR(O9$,1,U7);".";HEX(01)
0230 PRINT HEX(01);STR(A0$,1,U8+.5);STR(O9$,1,U7);" ";HEX(01)
: NEXT U7
: FOR I=1TO 1
: GOTO 560
0240 REM **** ENEMY MOVEMENT ****
: IF B1+B2+B3+B4=0THEN 650
: NEXT Y
0250 FOR Y=1TO R
: IF E(Y)=0THEN 240
0260 STR(A$(E(Y)),F(Y),L1)=" "
: E1=SGN(INT(RND(1)*5)-2)
: IF E(Y)+E1<2THEN 260
: IF E(Y)+E1>14THEN 260
: E(Y)=E(Y)+E1
0270 F1=SGN(INT(RND(1)*5)-2)
: IF F(Y)+2*F1<2THEN 270
: IF F(Y)+F1>63-L1 THEN 270
: F(Y)=F(Y)+2*F1
: FOR Y2=1TO R
: IF E(Y2)=0THEN 280
: ON VAL(L1$)-VAL(HEX(7F))GOSUB 790
: STR(A$(E(Y2)),F(Y2),L1)=L1$
0280 NEXT Y2
0290 IF S<2THEN 300
: S=S-2
0300 STR(A$(15),64,1)=HEX(01)
: PRINT HEX(01);"SCORE =";S
: PRINT HEX(01)
: MAT PRINT A$
0310 KEYIN A$,310,310
0320 ON VAL(A$)-48GOTO 330,440,350,470,180,500,370,530,390
: GOTO 180
0330 IF B3<1THEN 340
: IF C<5THEN 340
: INIT(2D)STR(A$(15),C,3)
: C=C-4
: STR(A$(15),C,3)=H3$
0340 IF B4<1THEN 180
: IF D>13THEN 180
: STR(A$(D),1,1)=HEX(86)
: D=D+1
: STR(A$(D),1,1)=H4$
: GOTO 180
0350 IF B3<1THEN 360
: IF C>58THEN 360
: INIT(2D)STR(A$(15),C,3)
: C=C+4
: STR(A$(15),C,3)=H3$
0360 IF B2<1THEN 180
: IF B>13THEN 180
: STR(A$(B),64,1)=HEX(86)
: B=B+1
: STR(A$(B),64,1)=H2$
: GOTO 180
0370 IF B4<1THEN 380
: IF D<3THEN 380
: STR(A$(D),1,1)=HEX(86)
: D=D-1
: STR(A$(D),1,1)=H4$
0380 IF B1<1THEN 180
: IF A<5THEN 180
: INIT(2D)STR(A$(1),A,3)
: A=A-4
: STR(A$(1),A,3)=H1$
: GOTO 180
0390 IF B1<1THEN 400
: IF A>58THEN 400
: INIT(2D)STR(A$(1),A,3)
: A=A+4
: STR(A$(1),A,3)=H1$
0400 IF B2<1THEN 180
: IF B<3THEN 180
: STR(A$(B),64,1)=HEX(86)
: B=B-1
: STR(A$(B),64,1)=H2$
: GOTO 180
0410 REM
0420 REM *** FIRING ***
0430 REM
0440 IF B3<1THEN 180
: B3=B3-1
: ON B3+1GOSUB 460
: A$=" "
: PRINT HEX(01);
: MAT PRINT A$
: FOR I=14 TO 1 STEP -1
: PRINT HEX(01);STR(A0$,1,I);STR(O9$,1,C);HEX(86)
: IF STR(A$(I),C+1,1)<>" "THEN 450
: PRINT HEX(01);STR(A0$,1,I);STR(O9$,1,C);" "
: NEXT I
: GOTO 180
0450 K=I
: L=C+1
: I=1
: GOTO 560
0460 STR(A$(15),C,3),H3$="XXX"
: RETURN
0470 IF B4<1THEN 180
: B4=B4-1
: ON B4+1GOSUB 490
: A$=" "
: FOR I=2TO 62STEP 2
: PRINT HEX(01);STR(A0$,1,D);STR(O9$,1,I);HEX(2D84)
: IF STR(A$(D),I+2,1)<>" "THEN 480
: PRINT HEX(01);STR(A0$,1,D);STR(O9$,1,I);" "
: NEXT I
: GOTO 180
0480 K=D
: L=I+2
: I=64
: GOTO 560
0490 STR(A$(D),1,1),H4$="X"
: RETURN
0500 IF B2<1THEN 180
: B2=B2-1
: ON B2+1GOSUB 520
: A$=" "
: FOR I=63TO 3STEP -2
: PRINT HEX(01);STR(A0$,1,B);STR(O9$,1,I-2);HEX(5F2D)
: IF STR(A$(B),I-2,1)<>" "THEN 510
: PRINT HEX(01);STR(A0$,1,B);STR(O9$,1,I-2);" "
: NEXT I
: GOTO 180
0510 K=B
: L=I-2
: I=1
: GOTO 560
0520 STR(A$(B),64,1),H2$="X"
: RETURN
0530 IF B1<1THEN 180
: B1=B1-1
: ON B1+1GOSUB 540
: A$=" "
: FOR I=2TO 15
: PRINT HEX(01);STR(A0$,1,I);STR(O9$,1,A);HEX(86);HEX(01)
: IF STR(A$(I),A+1,1)<>" "THEN 550
: PRINT HEX(01);STR(A0$,1,I);STR(O9$,1,A);" ";HEX(01)
: NEXT I
: GOTO 180
0540 STR(A$(1),A,3),H1$="XXX"
: RETURN
0550 K=I
: L=A+1
: I=15
0560 NEXT I
: ON K-E5+1GOSUB 570
: IF K=1THEN 670
: IF K=15THEN 680
: IF L=1THEN 690
: IF L=64THEN 700
: FOR Y1=1TO R
: IF E(Y1)=0THEN 600
: IF E(Y1)=KTHEN 590
: NEXT Y1
: GOTO 180
0570 IF ABS(L-(E4+1))>3THEN 580
: STR(A$(E5),E4,3)=" "
: E4=100
: S=S+25*E9
: RETURN CLEAR
: GOTO 180
0580 RETURN
0590 IF F(Y1)>LTHEN 600
: IF F(Y1)+L1<LTHEN 600
: STR(A$(E(Y1)),F(Y1),L1)=" "
: E(Y1)=0
: S=S+S3
: D1=D1+1
: IF D1=RTHEN 160
: GOTO 180
0600 NEXT Y1
: GOTO 180
0610 DATA "=\83OO\82=",7,20,"\A2*-*\A2",5,25,"'.'",4,30,"\87v\87",3,35,"\80\80
\80\80\80\80",2,40,"THIS HAS BEEN A -- B&D FULES -- PRODUCTION",0,0
0620 IF STR(L1$,20,3)<>HEX(422644)THEN 650
: PRINT HEX(01);"SCORE =";S;HEX(01);STR(A0$,1,7);STR(O9$,1,12);L1$
: PRINT STR(O9$,1,16);"WE HOPE YOU ENJOYED THE PRECEDING."
: PRINT
0630 KEYIN A1$,630,630
: RESTORE
: INIT(20)A$()
: S=0
: GOSUB '22("PLAY AGAIN?")
: GOSUB '23(13,100)
: IF A1$="N"THEN 640
: GOTO 100
0640 STOP
: END
0650 PRINT HEX(01);STR(A0$,1,6);STR(O9$,1,11);"SORRY.... YOU LOST ALL YOUR AMM
O. TRY AGAIN!"
: RESTORE 16
: READ L1$
: GOTO 620
0660 RESTORE
: GOTO 160
0670 IF ABS(L-(A+1))>3THEN 180
: B1=0
: GOSUB 540
: GOTO 180
0680 IF ABS(L-(C+1))>3THEN 180
: B3=0
: GOSUB 460
: GOTO 180
0690 IF K<>DTHEN 180
: B4=0
: GOSUB 490
: GOTO 180
0700 IF K<>BTHEN 180
: B2=0
: GOSUB 520
: GOTO 180
0710 ON INT(RND(1)*4)+1GOTO 720,730,740,750
: RETURN
0720 K=B
: L=64
: RETURN
0730 K=D
: L=1
: RETURN
0740 K=1
: L=A
: RETURN
0750 K=15
: L=C
: RETURN
0760 DEFFN'22(X2$)
: KEYIN Z2$,100,100
: E8=E8+1
: ON ((E8/2)-INT(E8/2))*2GOTO 780
0770 FOR X3=1TO LEN(X2$)
: PRINT STR(X2$,X3,1);
: NEXT X3
: PRINT
: RETURN
0780 FOR X3=LEN(X2$)TO 1STEP -1
: PRINT TAB(X3-1);STR(X2$,X3,1);HEX(0808);HEX(0C)
: NEXT X3
: PRINT
: RETURN
0790 I(Y)=I(Y)+1
: IF ABS(I(Y)-11)>2THEN 800
: INIT("-")STR(A$(E(Y)),F(Y),L1)
: I(Y)=INT(RND(1)*10)+1
: RETURN CLEAR
: GOTO 280
0800 RETURN
0810 STR(A$(E5),E4-2,5)=" "
: GOTO 240
0820 DEFFN'23(X2,X3)
: KEYIN A1$,830,820
: PRINT STR(O9$,1,X2);HEX(0C8B)
: FOR I2=1TO 50
: NEXT I2
: PRINT TAB(X2);HEX(0C20)
: FOR I2=1TO 50
: NEXT I2
: GOTO 820
0830 PRINT TAB(X2);HEX(0C);A1$
: FOR I2=1TO X3
: NEXT I2
: RETURN