#include "HSPANX.AS" #include "DSOUNDEX.AS" TITLE"MZ–Ą Version 1.1" ONEXIT *QUIT CHGDISP 2 BGSCR 7,640,480,1 MOUSE 0,-1 TITLE"MZ–Ą Version 1.1" RANDOMIZE BUFFER 2,256,64,1 PICLOAD"FONT.BMP" GSEL 7,2 PALCOPY 2 GMODE 2,16,16 ANX_INI DS_INIT DS_LOAD "SHOT.WAV",0 DS_LOAD "HIT.WAV",1 DS_LOAD "DIE.WAV",2 DS_LOAD "DAMAGE.WAV",3 DS_LOAD "BOSS1.WAV",4 DS_LOAD "KOBOSS.WAV",5 DS_LOAD "BOSS2.WAV",6 DS_LOAD "KASURI.WAV",7 BGMSW=1 DIM ST,7 DIM SR,7 ST=2,15,51,3,44,28,85 SR=10,30,50,20,40,35,60 SDIM SSW,7,2 SSW="MANUAL"," AUTO" RAP=0 DIM TMX,8 DIM TMY,8 DIM TMS,8 ENM=16 DIM ENX,ENM DIM ENY,ENM DIM ENS,ENM DIM ENN,ENM DIM ENV,ENM DIM ENY,ENM DIM ENW,ENM DIM ENL,ENM DIM SX,ENM DIM SY,ENM DIM AX,ENM DIM AY,ENM ETM=64 DIM ETX,ETM DIM ETY,ETM DIM ETV,ETM DIM ETW,ETM DIM ETS,ETM DIM BMV,32 DIM BMW,32 DIM HSC,10 DIM MXC,10 DIM BST,3 SDIM HSN,4,10 SDIM HSL,20,10 DIM LTM,6 LEVEL=3 LTM=24,32,40,48,56,64 FONT"Fixedsys",32 ;FONT"‚l‚r ƒSƒVƒbƒN",32 ALLOC FILA,64 STR FILA DIRLIST FILA,"MZAJI.HSC" A=STAT IF (A=1) : GOTO *RECL REPEAT 10,0 RND HSC.CNT,1000 HSC.CNT+=9000-(CNT*1000) HSN.CNT=" " RND A,26 A+=65 POKE HSN.CNT,0,A RND A,26 A+=65 POKE HSN.CNT,1,A RND A,26 A+=65 POKE HSN.CNT,2,A RND MXC.CNT,20 MXC.CNT++ LOOP GOTO *TITL *RECL BLOAD"MZAJI.HSC",HSL REPEAT 10 STRMID Z,HSL.CNT,0,9 INT Z HSC.CNT=Z STRMID Z,HSL.CNT,10,3 HSN.CNT=Z STRMID Z,HSL.CNT,14,3 INT Z MXC.CNT=Z LOOP *TITL RNK=0 REPEAT 8 TMX.CNT=0 TMY.CNT=0 TMS.CNT=0 LOOP REPEAT ENM ENS.CNT=-30 LOOP REPEAT 32,0 RND BMV.CNT,21 BMV.CNT-=10 RND BMW.CNT,21 BMW.CNT-=10 LOOP REPEAT ETM ETS.CNT=0 LOOP IF BGMSW=1 : ANX_LOAD"TITLE.XRT":ANX_PLAY *TIT2 REDRAW 2 PALCOLOR 0 BOXF 0,0,640,480 MOJIX=17 MOJIY=5 MOJI="SINAGAWA SOFT PRESENTS" GOSUB *FPUT MOJIX=15 MOJIY=10 MOJI="MZ AJI" STRLEN LNG,MOJI REPEAT LNG,0 PEEK PMOJI,MOJI,CNT PMOJI-=32 CPX=(PMOJI\16)*16 CPY=(PMOJI/16)*16 POS MOJIX*8,MOJIY*16 GZOOM 64,64,2,CPX,CPY,16,16 MOJIX+=8 LOOP MOJIX=56 MOJIY=14 MOJI="VER 1.1" GOSUB *FPUT MOJIX=25 MOJIY=22 MOJI="PUSH SPACE KEY" GOSUB *FPUT REDRAW 1 *TITA REDRAW 2 TITSW=1 PALCOLOR 0 BOXF 0,272,639,319 STICK S,0 IF(S=1)&(LEVEL>0) : LEVEL-- IF(S=4)&(LEVEL<5) : LEVEL++ IF(S=2)&(RAP=1) : RAP=0 IF(S=8)&(RAP=0) : RAP=1 ETM=LTM.LEVEL IF S=16 : GOTO *BEGIN IF S=32 : GOTO *LOOK IF S=64 : BGMSW=1-BGMSW:ANX_STOP:IF BGMSW=1 : ANX_PLAY IF S=128 : GOTO *QUIT MOJIX=32 MOJIY=17 MOJI=LEVEL+1 STR MOJI MOJI="LEVEL "+MOJI GOSUB *FPUT MOJIX=28 MOJIY=19 MOJI="SHOT "+SSW.RAP GOSUB *FPUT REDRAW 1 AWAIT 1 GOTO *TITA *BEGIN TITSW=0 SCORE=0 X=319 Y=500 DMF=1 Ready=1 STF=1 LIVES=5 ETTOTAL=0 MX=0 TMR=0 TMH=0 TMZ=0 ET=0 BOS=1 STAGE=1 ZAKO=1 ANX_STOP RPS=0 IF BGMSW=1 : ANX_LOAD"MAIN.XRT":ANX_PLAY *MAIN REDRAW 2 Q=1-Q COLOR 0,0,0 BOXF 0,0,639,479 GOSUB *SHIP GOSUB *TAMA GOSUB *TMOVE GOSUB *ENEMY IF LIVES=0 : GOSUB *DIE IF DMF=0 : SCORE+=LIVES IF SCORE>999999999 : SCORE=999999999 MOJIX=0 MOJIY=0 Z=SCORE STR Z Z="000000000"+Z STRMID Z,Z,-1,9 MOJI="SCORE "+Z+"0" GOSUB *FPUT MOJIX=40 MOJIY=0 Z=LIVES STR Z MOJI="LEFT "+Z GOSUB *FPUT IF BF>0 : BF--:MOJIX=0:MOJIY=3:MOJI=BMES:GOSUB *FPUT IF DMF<-40 : MOJIX=30:MOJIY=12:MOJI="GAME OVER":GOSUB *FPUT IF CC=0 : GOTO *M2 CC-- IF HITS>999 : HITS=999 IF HITS>1 : Z=HITS:STR Z:MOJI="COMBO "+Z:MOJIX=0:MOJIY=1:GOSUB *FPUT:PALCOLOR 0:BOXF 0,32,CC*4+5,38:PALCOLOR 4:BOXF 1,33,CC*4+4,37 IF HITS>MX : MX=HITS IF CC=0 : SCORE+=(CTT*(HITS-1)):HITS=0:CTT=0 *M2 IF (S&128) : MOJIX=35:MOJIY=14:MOJI="PAUSE":GOSUB *FPUT REDRAW 1 IF ((S&128)=0) : GOTO *WW REPEAT 1 AWAIT 1 OBJSEL -1 FOC=STAT IF SS>0 : SS--:IF SS=0 : NS=-1 STICK S,0 IF ((S&128)=0) : CONTINUE 0 LOOP *WW AWAIT 33 IF DMF>-180 : GOTO *MAIN RNK=11 REPEAT 10,0 I=9-CNT IF SCORE>HSC.I : RNK=I IF(SCORE=HSC.I)&(MX>MXC.I) : RNK=I LOOP IF(RNK=11)|(LEVEL<3) : GOTO *TITL GOTO *NAMEIN *SHIP IF(DMF>0)&(STF=1)|(LIVES=0) : S=0:GOTO *SPA STICK S,15+(RAP*16) IF S&1 : X-=8 IF S&2 : Y-=8 IF S&4 : X+=8 IF S&8 : Y+=8 IF X<16 : X=16 IF X>623 : X=623 IF Y<16 : Y=16 IF Y>463 : Y=463 *SPA Y-=Ready*4 PALCOLOR 1 POS X-16,Y-16 IF((Q*DMF)=0)&(DMF>-1) : MES"‚v" IF(Ready=0)&(DMF>0) : DMF-- IF(S&16) : GOSUB *SSET IF(Ready=1)&(Y=400) : Ready=0:DMF=0:STF=0 RETURN *DIE IF DMF<1 : GOTO *BOMB Y++ IF Y>463 : Y=463 REPEAT 10 RND V,32 RND W,32 V-=16 W-=16 POS X-16+V,Y-16+W RND A,4 GCOPY 2,A*32,64,32,32 LOOP RND A,3 IF (A=1)|(DMF=1) : DS_PLAY 2 RETURN *BOMB DMF-- IF(DMF=-40)&(BGMSW=1) : ANX_STOP:ANX_LOAD"GAMEOVER.XRT":ANX_PLAY REPEAT 32 IF DMF<-39 : BREAK V=(BMV.CNT*(-DMF))+X W=(BMW.CNT*(-DMF))+Y POS V-16,W-16 GCOPY 2,(-DMF/10)*32,64,32,32 LOOP RETURN *SSET IF(RPS>0) : RPS++:RPS=RPS\3:RETURN REPEAT 8 IF(TMS.CNT=0) : TMX.CNT=X:TMY.CNT=Y:TMS.CNT=1:DS_PLAY 0:TMR++:BREAK LOOP IF RAP=1 : RPS=1 RETURN *TAMA PALCOLOR 2 REPEAT 8 IF(TMS.CNT=0) : CONTINUE TMY.CNT-=16 IF(TMY.CNT<0) : TMZ=0:TMS.CNT=0:GOSUB *WB1 POS TMX.CNT-9,TMY.CNT-16 MES "|" LOOP RETURN *ENEMY REPEAT ENM I=CNT TTYP=0 IF(ENS.I=99) : RND ENS.I,10:ENS.I=-ENS.I:CONTINUE IF(ENS.I<0) : ENS.I++:CONTINUE IF(ENS.I=0)&(ZAKO=0) : CONTINUE IF(ENS.I=0)&(ZAKO=1) : RND ENX.I,599:ENX.I+=16:ENY.I=-32:RND ENN.I,8:ENL.I=1:SX.I=16:SY.I=16:AX.I=8:AY.I=8:ET++ IF(ET=50)&(BOS<2) : ENN.I=10:BOS++:TIM=0 IF(ET=75)&(BOS=2) : ENN.I=10+STAGE:BOS++:TIM=0:IF(STAGE=3)&(BGMSW=1) : ANX_STOP:ANX_LOAD"BOSS.XRT":ANX_PLAY IF ENN.I=0 : GOTO *E1 IF ENN.I=1 : GOTO *E2 IF ENN.I=2 : GOTO *E3 IF ENN.I=3 : GOTO *E4 IF ENN.I=4 : GOTO *E5 IF ENN.I=5 : GOTO *E6 IF ENN.I=6 : GOTO *E7 IF ENN.I=7 : GOTO *E8 IF ENN.I=10 : GOTO *B1 IF ENN.I=11 : GOTO *B2 IF ENN.I=12 : GOTO *B3 IF ENN.I=13 : GOTO *B4 IF ENN.I=94 : GOTO *E94 IF ENN.I=95 : GOTO *E95 IF ENN.I=96 : GOTO *E96 IF ENN.I=97 : GOTO *E97 IF ENN.I=98 : GOTO *E98 IF ENN.I=99 : CONTINUE CONTINUE *E1 IF(ENS.I=0) : ENS.I=1:RND ENW.I,5:ENW.I+=4 ENY.I+=ENW.I PALCOLOR 3 POS ENX.I-16,ENY.I-16 MES"Žs" RND A,15 IF A=1 : GOSUB *TSET IF ENY.I>512 : ENS.I=99 PTS=10 GOTO *EJUDGE *E2 IF(ENS.I=0) : RND ENV.I,33:RND ENW.I,3:ENV.I-=16:ENW.I++:ENS.I=1 ENX.I+=ENV.I ENY.I+=ENW.I IF(ENX.I<16) : ENX.I=16 IF(ENX.I>623) : ENX.I=623 IF(ENX.I=16)|(ENX.I=623) : ENV.I=-ENV.I PALCOLOR 4 POS ENX.I-16,ENY.I-16 MES"‰›" RND A,12 IF A=4 : GOSUB *TSET IF ENY.I>512 : ENS.I=99 PTS=30 GOTO *EJUDGE *E3 IF(ENS.I=0) : RND ENV.I,33:RND ENW.I,15:ENV.I-=16:ENW.I++:ENS.I=1 ENX.I+=ENV.I ENY.I+=ENW.I IF(ENX.I<16) : ENX.I=16 IF(ENX.I>623) : ENX.I=623 IF(ENX.I=16)|(ENX.I=623) : ENV.I=-ENV.I PALCOLOR 5 POS ENX.I-16,ENY.I-16 MES"›" RND A,5 IF A=4 : GOSUB *TSET IF ENY.I>455 : ENY.I=455 IF ENY.I=455 : ENW.I=-ENW.I:ENS.I=2 IF ENY.I<-32 : ENS.I=99 PTS=30 GOTO *EJUDGE *E4 IF ENS.I=90 : GOTO *E4A ENS.I++ IF(X>ENX.I) : ENV.I=4 IF(XENY.I) : ENW.I=4 IF(Y655)|(ENY.I<-32)|(ENY.I>495) : ENS.I=99 PTS=15 GOTO *EJUDGE *E5 IF ENS.I=0 : ENV.I=0:ENW.I=12:ENS.I=1 IF (ENY.I/100+1)!ENS.I : RND ENV.I,9:ENV.I=(ENV.I-4)*3:RND ENW.I,9:ENW.I=(ENW.I-4)*3:ENS.I=(ENY.I/100)+1:IF(ENV.I=0)&(ENW.I=0): ENW.I=1 ENX.I+=ENV.I ENY.I+=ENW.I PALCOLOR 11 POS ENX.I-16,ENY.I-16 MES"‘" RND A,4 IF A=2 : GOSUB *TSET IF (ENX.I<-16)|(ENX.I>655)|(ENY.I<-32)|(ENY.I>495) : ENS.I=99 PTS=40 GOTO *EJUDGE *E6 IF ENS.I=0 : ENV.I=0:RND ENW.I,6:ENW.I+=6:ENS.I=1 IF((ENS.I=1)&(ENY.I>200))|((ENS.I=3)&(ENY.I<200)) : ENS.I++:ENV.I=(1-((ENX.I>X)*2))*16:ENW.I=0 IF(ENY.I>446)&(ENS.I=2) : ENY.I=447:ENS.I++:ENV.I=0:ENW.I=-8 ENX.I+=ENV.I ENY.I+=ENW.I IF(ENX.I<16) : ENX.I=16 IF(ENX.I>623) : ENX.I=623 RND A,30 IF((ENX.I=16)|(ENX.I=623)|(A=10))&(ENW.I=0) : ENV.I=-ENV.I/2:ENW.I=16 PALCOLOR 12 POS ENX.I-16,ENY.I-16 MES"’é" RND A,6 IF(A=1)|((ENY.I>200)&(A>1)) : GOSUB *TSET IF(ENY.I>512)&(ENS.I>3) : ENS.I=99 PTS=50 GOTO *EJUDGE *E7 IF ENS.I=0 : ENV.I=0:ENW.I=6:ENS.I++ A=ENY.I-Y IF A<0 : A=-A IF(A<8)&(ENS.I=1) : ENS.I++:ENV.I=(1-((ENX.I>X)*2))*12:ENW.I=0 ENX.I+=ENV.I ENY.I+=ENW.I PALCOLOR 13 POS ENX.I-16,ENY.I-16 MES"¤" RND A,12 IF(A>9) : GOSUB *TSET IF(ENX.I<-16)|(ENX.I>656) : ENS.I=99 PTS=25 GOTO *EJUDGE *E8 IF ENS.I=0 : ENV.I=0:ENW.I=0:ENS.I++ IF(ENS.I=1)&(ENY.I<20) : ENY.I+=4:IF(ENY.I>19) : ENS.I++ A=ENX.I-X IF(A>0)&(ENS.I>1)&(ENS.I<11) : ENX.I-=9 IF(A<0)&(ENS.I>1)&(ENS.I<11) : ENX.I+=9 IF A<0 : A=-A IF(A<10) : ENS.I++ IF ENS.I=10 : ENS.I++:ENV.I=0:ENW.I=14 ENX.I+=ENV.I ENY.I+=ENW.I PALCOLOR 13 POS ENX.I-16,ENY.I-16 MES"¤" RND A,12 IF(A>9) : GOSUB *TSET IF(ENY.I>512) : ENS.I=99 PTS=25 GOTO *EJUDGE *B1 ET=0 TIM++ IF ENS.I=0 : ENV.I=0:ENW.I=12:ENS.I=1:ENL.I=16:SX.I=40:SY.I=24:AX.I=36:AY.I=20 IF(ENL.I=1)|(TIM=450): GOTO *B1A IF (ENY.I/100+1)!ENS.I : RND ENV.I,9:ENV.I=(ENV.I-4)*3:RND ENW.I,9:ENW.I=(ENW.I-4)*3:ENS.I=(ENY.I/100)+1 IF ENW.I=0 : ENW.I=5 ENX.I+=ENV.I ENY.I+=ENW.I IF(ENX.I<48) : ENX.I=48 IF(ENX.I>592) : ENX.I=592 IF(ENX.I=48)|(ENX.I=592) : ENV.I=-ENV.I IF ENY.I<32 : ENY.I=32 IF ENY.I>423 : ENY.I=423 IF(ENY.I=32)|(ENY.I=423) : ENW.I=-ENW.I:ENS.I=2 PALCOLOR 2 POS ENX.I-48,ENY.I-32 MES"ƒ›„" POS ENX.I-16,ENY.I MES"‚u" RND A,2 IF A=1 : GOSUB *TSET GOTO *EJUDGE *B1A DS_PLAY 1 ENN.I=97 ENS.I=0 IF ENL.I=1 : CTT+=1500 GOSUB *WB1 GOSUB *WB2 GOTO *E97 *B2 ET=0 TTYP=1 TIM++ IF TIM=450 : ZAKO=0 IF ENS.I=0 : ENV.I=0:ENW.I=0:ENL.I=36:SX.I=70:SY.I=80:AX.I=66:AY.I=44 MOJIX=40 MOJIY=1 Z=ENL.I-1 STR Z MOJI="BOSS "+Z GOSUB *FPUT IF(ENL.I=1)|(TIM>600) : GOTO *B2A ENS.I++ IF ENS.I=61 : ENS.I=1 IF ENS.I=1 : RND ENX.I,460:ENX.I+=80:RND ENY.I,302:ENY.I+=64 PALCOLOR 15 IF ENS.I>47 : ENY.I+=24 POS ENX.I-80,ENY.I-48 IF(ENS.I>2)&(ENS.I<51) : MES" b||b " POS ENX.I-80,ENY.I-16 IF(ENS.I>4)&(ENS.I<53) : MES"ĽbbbĽ" POS ENX.I-80,ENY.I+16 IF(ENS.I>6)&(ENS.I<56) : MES"@bbb" POS ENX.I-80,ENY.I+48 IF(ENS.I>8)&(ENS.I<57): MES"@@b" RND A,7 IF(ENS.I>30)&((A>3)|(TIM>420)) : GOSUB *TSET IF(ENS.I>15)&(ENS.I<53) : GOTO *EJUDGE CONTINUE *B2A DS_PLAY 1 ENN.I=96 ENS.I=0 IF ENL.I=1 : CTT+=5000:IF LIVES>0 : LIVES++ GOSUB *WB1 GOSUB *WB2 GOTO *E96 *B3 ET=0 TIM++ IF ENS.I=0 : ENV.I=0:ENW.I=16:ENS.I=1:ENL.I=71:SX.I=45:SY.I=45:AX.I=40:AY.I=40 IF TIM=900 : ZAKO=0 MOJIX=40 MOJIY=1 Z=ENL.I-1 STR Z MOJI="BOSS "+Z GOSUB *FPUT IF(ENL.I=1)|(TIM>1050) : GOTO *B3A IF(ENY.I>400)&(ENS.I=1) : ENS.I++:ENW.I=0 V=0:W=0 IF(ENS.I=2) : V=X-ENX.I:W=Y-ENY.I IF V<0 : ENV.I-- IF V>0 : ENV.I++ IF W<0 : ENW.I-- IF W>0 : ENW.I++ IF ENV.I<-10 : ENV.I=-10 IF ENV.I>10 : ENV.I=10 IF ENW.I<-10 : ENW.I=-10 IF ENW.I>10 : ENW.I=10 ENX.I+=ENV.I ENY.I+=ENW.I IF(ENX.I<0)&(ENS.I=2) : ENX.I=0:ENV.I=0 IF(ENX.I>639)&(ENS.I=2) : ENX.I=639:ENV.I=0 IF(ENY.I<0)&(ENS.I=2) : ENY.I=0:ENW.I=0 IF(ENY.I>479)&(ENS.I=2) : ENY.I=479:ENW.I=0 PALCOLOR 14 POS ENX.I-48,ENY.I-32 MES"^b_" POS ENX.I-48,ENY.I MES"|›|" POS ENX.I-48,ENY.I+32 MES"_b^" RND A,10 IF A=1 : GOSUB *TSET GOTO *EJUDGE *B3A DS_PLAY 1 ENN.I=95 ENS.I=0 IF ENL.I=1 : CTT+=10000:IF LIVES>0 : LIVES++ GOSUB *WB1 GOSUB *WB2 GOTO *E95 *B4 ET=0 TIM++ IF TIM=2400 : ZAKO=0 IF ENS.I=0 : ENV.I=0:ENW.I=0:ENS.I=1:ENL.I=201:SX.I=64:SY.I=32:AX.I=160:AY.I=64:ENX.I=319 IF(ENL.I=1)|(TIM>2700) : GOTO *B4B MOJIX=40 MOJIY=1 Z=ENL.I-1 STR Z MOJI="BOSS "+Z GOSUB *FPUT BM=ENS.I/1000 IF BM=0 : GOTO *B40 IF BM=1 : GOTO *B41 IF BM=2 : GOTO *B42 IF BM=3 : GOTO *B43 *B40 TIM=0 ENY.I+=8:IF ENY.I>128 : ENS.I=1000:ENV.I=8 GOTO *B4A *B41 TTYP=0 ENX.I+=ENV.I IF(ENX.I>424)|(ENX.I<216) : ENV.I=-ENV.I ENS.I++ IF((ENS.I\5)=0)&(ENS.I<1090) : GOSUB *TSET IF ENS.I>1150 : ENS.I=2000 GOTO *B4A *B42 TTYP=1 IF(ENS.I<2090) : GOSUB *TSET ENS.I++ IF ENS.I=2120 : ENS.I=3000:ENW.I=16 GOTO *B4A *B43 ENY.I+=ENW.I TTYP=2 IF ENY.I>398 : ENW.I=-ENW.I RND A,3 IF A=1 : REPEAT 2:GOSUB *TSET:LOOP IF(ENY.I<130)&(ENW.I<0) : ENS.I=1000 GOTO *B4A *B4A PALCOLOR 13 POS ENX.I-208,ENY.I-48 MES"@@@@ bPPb" POS ENX.I-208,ENY.I-16 MES"^PPPPb‚nbPPPP_" POS ENX.I-208,ENY.I+16 MES"_QPPQQQQQPPQ^" POS ENX.I-208,ENY.I+48 MES"@@_^@@@@@_^" IF ENS.I<1000 : CONTINUE GOTO *EJUDGE *B4B DS_PLAY 1 ENN.I=94 ENS.I=0 IF ENL.I=1 : CTT+=5000:IF LIVES>0 : LIVES++ GOSUB *WB1 GOSUB *WB2 GOTO *E94 *E94 CC=23 IF ENL.I=1 : HITS++:SCORE+=(HITS*10): ELSE : CC=1:HITS=0 RND A,2 ENY.I+=2 IF(A=1)&(ENS.I<40) : DS_PLAY 6 IF ENS.I>24 : GOTO *E94A PALCOLOR 13 POS ENX.I-208,ENY.I-48 MES"@@@@ bPPb" POS ENX.I-208,ENY.I-16 MES"^PPPPb‚nbPPPP_" POS ENX.I-208,ENY.I+16 MES"_QPPQQQQQPPQ^" POS ENX.I-208,ENY.I+48 MES"@@_^@@@@@_^" *E94A REPEAT 4 RND V,300:V-=150 RND W,80:W-=40 POS ENX.I-V-16,ENY.I-W-16 GCOPY 2,0,64,32,32 LOOP ENS.I++ IF ENS.I=50 : BOS=0:ENS.I=0:ENN.I=98:ZAKO=1:STAGE=1 IF(ENS.I=25)&(BGMSW=1) : ANX_STOP:ANX_LOAD"MAIN.XRT":ANX_PLAY ET=0 CONTINUE *E95 CC=23 IF ENL.I=1 : HITS++:SCORE+=(HITS*40): ELSE : CC=1:HITS=0 RND A,2 IF A=1 : DS_PLAY 4 ENX.I+=ENV.I ENY.I+=ENW.I IF(ENX.I<0) : ENX.I=0:ENV.I=-ENV.I IF(ENX.I>639) : ENX.I=639:ENV.I=-ENV.I IF(ENY.I<0) : ENY.I=0:ENW.I=-ENW.I IF(ENY.I>479) : ENY.I=479:ENW.I=-ENW.I PALCOLOR 14 POS ENX.I-48,ENY.I-32 MES"^b_" POS ENX.I-48,ENY.I MES"|›|" POS ENX.I-48,ENY.I+32 MES"_b^" REPEAT 4 RND V,96:V-=48 RND W,64:W-=32 POS ENX.I-V-16,ENY.I-W-16 GCOPY 2,0,64,32,32 LOOP GOSUB *TSET ENS.I++ IF ENS.I=25 : BOS=0:ENS.I=0:ENN.I=98:ZAKO=1:STAGE++ ET=0 CONTINUE *E96 CC=23 IF ENL.I=1 : HITS++:SCORE+=(HITS*25) RND A,2 IF A=1 : DS_PLAY 4 PALCOLOR 15 POS ENX.I-80,ENY.I-48 MES" b||b " POS ENX.I-80,ENY.I-16 MES"ĽbbbĽ" POS ENX.I-80,ENY.I+16 MES"@bbb" POS ENX.I-80,ENY.I+48 MES"@@b" REPEAT 4 RND V,96:V-=48 RND W,64:W-=32 POS ENX.I-V-16,ENY.I-W-16 GCOPY 2,0,64,32,32 LOOP ENS.I++ IF ENS.I=20 : BOS=0:ENS.I=0:ENN.I=98:STAGE++:ZAKO=1 ET=0 CONTINUE *E97 CC=23 IF ENL.I=1 : HITS++:SCORE+=(HITS*15) RND A,2 IF A=1 : DS_PLAY 5 PALCOLOR 2 POS ENX.I-48,ENY.I-32 MES"ƒ›„" POS ENX.I-16,ENY.I MES"‚u" REPEAT 4 RND V,96:V-=48 RND W,64:W-=32 POS ENX.I-V-16,ENY.I-W-16 GCOPY 2,0,64,32,32 LOOP ENS.I++ IF ENS.I=10 : ENS.I=0:ENN.I=98 ET=0 CONTINUE *E98 REPEAT 4 RND V,48:V-=24 RND W,48:W-=24 POS ENX.I-V-16,ENY.I-W-16 GCOPY 2,(ENS.I-1)*32,64,32,32 LOOP ENS.I++ IF ENS.I=5 : ENS.I=99 CONTINUE *EJUDGE IF LIVES=0 : GOTO *QQQ REPEAT 8 J=CNT IF TMS.J=0 : CONTINUE V=ENX.I-TMX.J IF V<0 : V=-V W=ENY.I-TMY.J IF W<0 : W=-W IF (V>SX.I)|(W>SY.I) : CONTINUE ENL.I-- IF (ENN.I>9)&(ENL.I<1) : ENL.I=1 TMS.J=0 RND V,48:V-=24 RND W,48:W-=48 POS ENX.I-V-16,ENY.I-W-16 GCOPY 2,0,64,32,32 TMZ++ TMH++ GOSUB *WB1 GOSUB *WB2 IF(ENL.I>0)|(ENN.I>10) : CC=23:SCORE+=HITS+1:DS_PLAY 3:CONTINUE DS_PLAY 1 ENN.I=98 ENS.I=1 CC=23 HITS++ CTT+=PTS SCORE+=(HITS*PTS) LOOP IF DMF!0 : GOTO *QQQ V=ENX.I-X W=ENY.I-Y IF V<0 : V=-V IF W<0 : W=-W IF (V<(SX.I*15/10))&(W<(SY.I*15/10)) : SCORE+=5:DS_PLAY 7 IF (V647)|(EY<-8)|(EY>487) : ETS.I=0:ETTOTAL-- IF (DMF!0)|(LIVES=0) : CONTINUE V=EX-X W=EY-Y IF V<0 : V=-V IF W<0 : W=-W IF (V<32)&(W<32) : SCORE+=3:DS_PLAY 7 IF (V<4)&(W<4) : LIVES--:DMF=30+((LIVES=0)*30):DS_PLAY 2:ETS.I=0:CC=1:ETTOTAL-- LOOP RETURN *TSET IF ETTOTAL=ETM : RETURN RND A,20 IF(BOS=3)&(ENN.I<11)&(A>0)|((STAGE=3)&(BOS=3)&(ENN.I<11)) : RETURN REPEAT ETM K=CNT IF(ETS.CNT=1) : CONTINUE V=ENX.I-X W=ENY.I-Y IF TTYP=1 : RND QQ,129:QQ-=64:V+=QQ:RND QQ,129:QQ-=64:W+=QQ IF TTYP=2 : RND V,640:V-=320:RND W,480:W-=240 A=-1 B=-1 ETX.K=ENX.I*100 ETY.K=ENY.I*100 IF V<0 : V=-V:A=1 IF W<0 : W=-W:B=1 T=0 U=0 IF V=0 : T=400*A IF W=0 : U=400*B IF(T!0)|(U!0) : ETV.K=T:ETW.K=U:ETS.K=1:ETTOTAL++:BREAK VH=((V*100)/W)/2 IF VH>100 : VH=100 IF VH<0 : VH=0 ETV.K=((400*VH)/100) IF ETV.K>400 : ETV.K=400 ETW.K=((400*(100-VH))/100) IF ETW.K>400 : ETW.K=400 ETV.K=ETV.K*A ETW.K=ETW.K*B IF (STAGE=3)&(TTYP=1) : ETV.K=ETV.K*2:ETW.K=ETW.K*2 ETS.K=1 ETTOTAL++ BREAK LOOP RETURN *WB1 IF TMR<25 : RETURN IF TMH=25 : TMH=0:TMR=0:BF=30:BMES="WEAPON 30000":SCORE+=3000 IF TMR>39 : TMR-=40:TMH=0 RETURN *WB2 IF TMZ<10 : RETURN TMZ=0:BMES="WEAPON 100000":SCORE+=10000:BF=30 RETURN *NAMEIN WX=0 NST="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 []" NAM=" " RNK++ B="" X=0 IF BGMSW=1 : ANX_LOAD"NAMEIN.XRT":ANX_PLAY *NAMEL REDRAW 2 POS 0,0 PALCOLOR 0 BOXF 0,0,640,480 PALCOLOR 3 STICK A,15 IF (A=1) : X-- IF (A=4) : X++ IF (X<0)|((X<37)&(WX=3)) : X=38 IF (X>38)&(WX=3) : X=37 IF X>38 : X=0 BOXF X*16+9,241,X*16+23,255 MOJIX=1 MOJIY=15 MOJI=NST GOSUB *FPUT STRMID B,NST,X,1 IF WX<3 : POKE NAM,WX,B MOJIX=19 MOJIY=12 MOJI="INPUT YOUR NAME "+NAM GOSUB *FPUT IF (A!16) : GOTO *NAME IF (X=37)&(WX>0) : POKE NAM,WX,32:WX-- IF X=37 : GOTO *NAME IF (X!38) : WX++:GOTO *NAME IF WX<3 : POKE NAM,WX,32 WX=4 *NAME REDRAW 1 AWAIT 75 IF WX<4 : GOTO *NAMEL RNK-- IF RNK=9 : GOTO *NPUT REPEAT (9-RNK),0 I=9-CNT J=I-1 HSC.I=HSC.J HSN.I=HSN.J MXC.I=MXC.J LOOP *NPUT HSC.RNK=SCORE HSN.RNK=NAM MXC.RNK=MX RNK++ GOTO *LOOK *FPUT STRLEN LNG,MOJI REPEAT LNG,0 PEEK PMOJI,MOJI,CNT PMOJI-=32 CPX=(PMOJI\16)*16 CPY=(PMOJI/16)*16 POS MOJIX*8,MOJIY*16 GCOPY 2,CPX,CPY,16,16 MOJIX+=2 IF MOJIX>79 : MOJIX=0:MOJIY=(MOJIY+1)\30 LOOP RETURN *LOOK REDRAW 2 POS 0,0 PALCOLOR 0 BOXF 0,0,640,480 MOJIX=22 MOJIY=2 MOJI="HIGH SCORE BEST 10" GOSUB *FPUT PALCOLOR 4 IF (RNK>0)&(RNK<11) : BOXF 40,RNK*32+48,585,RNK*32+63 REPEAT 10 I=CNT+1 MOJIY=CNT*2+5 STR I I=" "+I STRMID I,I,-1,2 A=HSC.CNT STR A A="000000000"+A STRMID A,A,-1,9 A=I+" "+A+"0 "+HSN.CNT+" MAX COMBO " Z=MXC.CNT STR Z Z="000"+Z STRMID Z,Z,-1,3 MOJI=A+Z MOJIX=7 GOSUB*FPUT LOOP MOJIX=20 MOJIY=26 MOJI="HIT SPACE TO RETURN" GOSUB *FPUT REDRAW 1 *HAK STICK A,0 AWAIT 1 IF A!16 : GOTO *HAK IF TITSW=0 : GOTO *TITL GOTO *TIT2 *QUIT REPEAT 10 Z=HSC.CNT STR Z Z="000000000"+Z STRMID Z,Z,-1,9 HSL.CNT=Z+" "+HSN.CNT Z=MXC.CNT STR Z Z="000"+Z STRMID Z,Z,-1,3 HSL.CNT+=" "+Z LOOP BSAVE"MZAJI.HSC",HSL BST.0=HSC.0 BST.1=MXC.0 BST.2=(((BST.0^$00FFFFFF)*BST.1)/(BST.0+BST.1))*(BST.0<<2+BST.1) SDIM ANG 20,1 REPEAT 3 I=CNT REPEAT 6 J=CNT A=(BST.I\64)&63 POKE ANG.0,(I*6+J),126-A BST.I=BST.I>>6 LOOP LOOP ANG="–Ą"+ANG BSAVE"MZAJI.BST",ANG.0 ANX_BYE END