1 REM ***************************** 2 REM * BOMBNING.BAC - 16 K Minne * 3 REM * VER 1.0 / 1982-12-05 * 4 REM * (c) Alf Wirdling <4230> * 5 REM ***************************** 6 REM * GOSUB 12000 (BANDV. ]T H\GER) 7 REM * GOSUB 13000 (BANDV. ]T V[NSTER) 8 REM * GOSUB 14000 (ST[LLA KANONPIPAN) 9 REM * GOSUB 17000 (ETT SKOTT) 10 GOSUB 20000 : REM BESKRIVNING 20 GOSUB 10000 : REM GRAFMOD 24 GOSUB 14015 : REM L[GG DIT KANONEN 25 ; CUR(10%,4%)"SNART B\RJAR KRIGET VAR REDO"; 26 FOR I%=32043% TO 32075% : POKE I%,PEEK(I%)+128% : NEXT I% 27 FOR F=1 TO 5000 : NEXT F 28 ; CUR(10%,3%)STRING$(33%,32%); 29 REM * K\R IG]NG * 30 GOSUB 15000 : REM FLYGPLANENS F[RD 40 GOSUB 16000 : REM SKALL DET BOMBAS ? 50 FOR D%=1% TO D2% 60 GOSUB 17050 : REM SKOTT-KONTROLL 70 GOSUB 18000 : REM [R DET TR[FF ? 80 IF INP(56%)=167% GOSUB 12000 81 IF INP(56%)=193% GOSUB 13000 82 IF INP(56%)=173% GOSUB 14000 83 IF INP(56%)=160% GOSUB 17000 90 NEXT D% : GOTO 29 10000 REM * GRAFMOD * 10010 ; CHR$(12) : FOR I%=0% TO 22% : ; CUR(I%,0%)CHR$(151); : NEXT I% 10015 REM * MARKPLAN * 10020 ; CUR(22%,1%)"######################################"; 11000 REM * BANDVAGN * 11010 B1$=")0 " : REM PIPA V[NSTER 11020 B2$=" j " : REM PIPA MITTEN 11030 B3$=" 8!" : REM PIPA H\GER 11040 B4$=".?$" : REM UNDERDEL 11100 REM * FLYGPLAN * 11110 F1$="zt0" : REM FR. V[NST. \VERD 11120 F2$="*! " : REM FR. V[NST. UNDERD 11130 F3$="p~0" : REM FR. H\GER \VERD 11140 F4$=" + " : REM FR. H\HER UNDERD 11141 ; CUR(23%,1%)"Antal Tr{ff = 0"; 11142 ; CUR(23%,21%)"Antal Skott = 0"; 11150 B%=17% : K%=2% : R%=2% : F2%=1% 11160 RETURN : REM SLUT INIT 12000 REM * FLYTTA BANDVAGN ]T H\GER * 12005 IF B%=35% RETURN 12010 ; CUR(20%,B%)" "; : ; CUR(21%,B%)" "; : ; CUR(21%,B%+1%)B4$; : ON K% GOTO 12020,12030,12040 12020 ; CUR(20%,B%+1%)B1$; : B%=B%+1% : RETURN 12030 ; CUR(20%,B%+1%)B2$; : B%=B%+1% : RETURN 12040 ; CUR(20%,B%+1%)B3$; : B%=B%+1% : RETURN 13000 REM * FLYTTA BANDVAGN ]T V[NST. * 13005 IF B%=1% RETURN 13010 ; CUR(20%,B%+3%)" "; : ; CUR(21%,B%+3%)" "; : ; CUR(21%,B%-1%)B4$; : ON K% GOTO 13020,13030,13040 13020 ; CUR(20%,B%-1%)B1$; : B%=B%-1% : RETURN 13030 ; CUR(20%,B%-1%)B2$; : B%=B%-1% : RETURN 13040 ; CUR(20%,B%-1%)B3$; : B%=B%-1% : RETURN 14000 REM * ST[LLA PIPAN * 14005 IF L%=1% RETURN 14010 IF K%=3% K%=1% ELSE K%=K%+1% 14015 B%=B%+1% : GOSUB 13000 : FOR F=1 TO 200 : NEXT F : RETURN 15000 REM * FLYGPLANETS F[RD * 15010 ON R% GOTO 15020,15200 15020 REM * ]T H\GER * 15025 IF F2%=36% ; CUR(F1%,F2%)" "; : ; CUR(F1%+1%,F2%)" "; : F1%=RND*G : R%=2% : GOTO 15210 15030 ; CUR(F1%,F2%)" "; : ; CUR(F1%+1%,F2%)" "; : ; CUR(F1%,F2%+1%)F1$; : ; CUR(F1%+1%,F2%+1%)F2$; 15035 F2%=F2%+1% : RETURN 15200 REM * ]T V[NSTER * 15205 IF F2%=1% ; CUR(F1%,F2%)" "; : ; CUR(F1%+1%,F2%)" "; : F1%=RND*G : R%=1% : GOTO 15030 15210 ; CUR(F1%,F2%+2%)" "; : ; CUR(F1%+1%,F2%+2%)" "; : ; CUR(F1%,F2%-1%)F3$; : ; CUR(F1%+1%,F2%-1%)F4$; 15215 F2%=F2%-1% : RETURN 16000 REM * SKALL BOMB SL[PPAS ? * 16002 IF M0%=1% 16020 16005 ON R% GOTO 16007,16008 16007 IF B%+1%<>F2% RETURN ELSE 16010 16008 IF B%<>F2% RETURN 16010 M1%=F1%+1% : M2%=F2%+1% : M0%=1% 16020 ; CUR(M1%,M2%)" "; : ; CUR(M1%+1%,M2%)"O"; : M1%=M1%+1% 16030 IF M1%<20% RETURN 16040 IF M2%B%+3% ; CUR(M1%,M2%)" "; : M0%=0% : RETURN 16045 REM ; CUR(M1%,M2%)" "; : M0%=0% : RETURN 16050 ; CUR(23%,1%)" DU [R TR[FFAD !!!"; 16051 FOR I%=32721% TO 32739% : POKE I%,PEEK(I%)+128% : NEXT I% 16055 T%=(T%*5%-A%)*(1+G/15) 16058 ; CUR(23%,21%)"Antal po{ng ="T%; 16060 FOR F=1 TO 5000 : OUT 6%,11% : NEXT F : OUT 6%,0% 16070 GET B1$ : T%=0% : A%=0% : M0%=0% : A0%=0% : L%=0% : GOTO 10 17000 REM * SKOTT * 17005 IF S0%=1% RETURN ELSE S0%=1% 17006 A%=A%+1% : ; CUR(23%,34%)A%; 17007 OUT 6%,137% : REM SKOTT-LJUD 17010 S1%=18% : ON K% GOTO 17020,17030,17040 17020 S2%=B%-2% : GOTO 17050 17030 S2%=B%+1% : GOTO 17050 17040 S2%=B%+5% 17050 REM * FORTS[TT SKOTT * 17055 IF S0%=0% RETURN 17060 ON K% GOTO 17090,17200,17300 17090 ; CUR(S1%+1%,S2%+1%)" "; 17100 IF S1%38% S0%=0% : IF A%<200% RETURN ELSE 17500 17105 ; CUR(S1%,S2%)"`"; : S1%=S1%-1% : S2%=S2%-1% : RETURN 17200 ; CUR(S1%+1%,S2%)" "; 17210 IF S1%38% S0%=0% : IF A%<200% RETURN ELSE 17500 17220 ; CUR(S1%,S2%)"`"; : S1%=S1%-1% : RETURN 17300 ; CUR(S1%+1%,S2%-1%)" "; 17310 IF S1%38% S0%=0% : IF A%<100% RETURN ELSE 17500 17320 ; CUR(S1%,S2%)"`"; : S1%=S1%-1% : S2%=S2%+1% : RETURN 17500 REM * AMMUNITIONEN SLUT * 17510 ; CUR(23%,1%)" AMMUNITIONEN SLUT"; : GOTO 16051 18000 REM * [R FLYGPLANET TF[FFAT ? * 18005 IF S0%=0% RETURN 18010 IF S1%>F1%+1% OR S2%F2%+2% RETURN 18020 REM * TR[FF * 18022 T%=T%+1% : ; CUR(23%,14%)T%; 18025 ON K% GOTO 18026,18027,18028 18026 ; CUR(S1%+1%,S2%+1%)" "; : GOTO 18030 18027 ; CUR(S1%+1%,S2%)" "; : GOTO 18030 18028 ; CUR(S1%+1%,S2%-1%)" "; 18030 ON R% GOTO 18040,18200 18040 OUT 6%,91% : REM ST\RT-LJUD 18045 ; CUR(F1%,F2%)" "; : ; CUR(F1%+1%,F2%)" "; : F1%=F1%+2% : F2%=F2%+3% 18050 IF F1%>18% OR F2%>36% S0%=0% : GOTO 19000 18060 ; CUR(F1%,F2%)F1$; : ; CUR(F1%+1%,F2%)F2$; : FOR F=1 TO 200 : NEXT F : GOTO 18040 18200 OUT 6%,91% : REM ST\RT-LJUD 18205 ; CUR(F1%,F2%)" "; : ; CUR(F1%+1%,F2%)" "; : F1%=F1%+2% : F2%=F2%-3% 18250 IF F1%>18% OR F2%<1% S0%=0% : GOTO 19000 18260 ; CUR(F1%,F2%)F3$; : ; CUR(F1%+1%,F2%)F4$; : FOR F=1 TO 200 : NEXT F : GOTO 18200 19000 REM * SLUT P] ST\RTNING * 19005 IF A%>=200% 17500 19010 OUT 6%,0% : ON R% GOTO 19020,19040 19020 F2%=36% : RETURN 19040 F2%=1% : RETURN 20000 REM * BESKRIVNING * 20005 ; CHR$(12)"O-O-O-O-O B O M B N I N G O-O-O-O-O" 20010 FOR I%=31755% TO 31771% : POKE I%,PEEK(I%)+128% : NEXT I% 20020 ; : ; "Det {r krig och bombplanen kretsar |ver Dig och f{ller sina bomber (O)." 20030 ; "Du ska f|rs|ka skjuta ned s} m}nga plan Du kan, blir Du tr{ffad {r Du d|dens." 20040 ; : ; "Din kanon kan st{llas i 3 l{gen med" 20050 ; "tangent -" 20060 ; "Du styr kanonen }t v{nster och h|ger med tangent A respektive '" 20070 ; "Du skjuter med space-tangenten." 20080 ; : ; "UPPER-CASE M]STE LYSA" 20085 FOR I%=32441% TO 32446% : POKE I%,PEEK(I%)+128% : NEXT I% 20090 ; : ; "SV]RIGHETS-GRAD:" 20100 ; : ; "1 - Mycket sv}rt" 20110 ; "2 - Sv}rt" 20120 ; "3 - Lagom" 20130 ; "4 - L{tt" 20140 ; "5 - Mycket l{tt" 20150 ; : ; "SIFFRA: "; : GET B1$ : ; B1$ 20160 ONERRORGOTO 20500 20170 D2%=VAL(B1$) : IF D2%<1% OR D2%>5% 20150 20175 ; : ; "------- DU HAR 100 SKOTT P] DIG -------" 20180 ; : ; "HUR L]GT F]R PLANEN FLYGA ???" 20185 ; : ; "(Ju l{gre, desto sv}rare.)" 20190 ; : ; "(100-1500 meter)" 20200 ; : ; "SVARET I 100-tal METER "; 20210 INPUT G : IF G<1 OR G>15 THEN 20200 ELSE G=15-G+1 20220 ; : ; "SKALL KANON L]SAS I MELLERSTA L[GET ???" 20230 ; : ; "(MYCKET SV]RARE !!!) (J/N) "; 20240 GET B1$ : ; B1$ : IF B1$<>"J" AND B1$<>"N" 20220 20250 IF B1$="J" L%=1% 20260 RETURN 20500 ; : ; "END OF BOMBING !!!" : END 25000 REM * VARIABEL-LISTA * 25010 REM I% = Tempor{r 25020 REM K% = Vilket kanonr|r (1-3) 25030 REM R% = Rikning f|r bombplan 25040 REM T% = Antal tr{ff 25050 REM A% = Antal skott 25060 REM D% = Spelhastighets-loop 25070 REM D2% = Bryt-v{rde i loopen 25080 REM B% = Kolumn f|r kanon 25090 REM F1% = Rad f|r bombplan 25100 REM F2% = Kolumn f|r bombplan 25110 REM M0% = Om bomb sl{ppt (1) 25120 REM M1% = Rad f|r bomb 25130 REM M2% = Kolumn f|r bomb 25140 REM S0% = [r skott avfyrat (1) 25150 REM S1% = Rad f|r skott 25160 REM S2% = Kolumn f|r skott 25170 REM L% = L}sning kanon (1) 25180 REM G = RND-rad f|r bombplan 25190 REM F = F|rdr|jnings-loop 25200 REM * SLUT LISTA *