'LINE LAUNCH (MOT3LLC) BY MOT ' VER 3.0.2 UPD 2015/07/13 ACLS GOSUB @INIT GOSUB @MAIN @INIT GOSUB @HENINIT GOSUB @BOOTKEY GOSUB @UDSPINIT GOSUB @DTINIT GOSUB @PNLINIT GOSUB @GDRW GOSUB @ICONINIT RETURN @HENINIT PGID$="MOT3LLC" SPMAX=255 XSCREEN 2,SPMAX,2 FMAX=1000:EMAX=30 DIM XB[FMAX],FB$[FMAX],CB$[FMAX],MB[FMAX] DIM SB[FMAX],PB$[FMAX],GB$[FMAX],BB$[FMAX] DIM XE[EMAX],FE$[EMAX],CE$[EMAX],ME[EMAX] DIM SE[EMAX],PE$[EMAX],GE$[EMAX],BE$[EMAX] MMM=10:MM=MMM DIM ME$[30],ML[30] HM=18 DIM HS$[HM] GM=100 DIM GC$[GM],GS$[GM] DIM RS$[10] FOR I=1TO 0 STEP -1 DISPLAY I:VISIBLE 1,1,1,1 CLS:COLOR 15 NEXT RESTORE "@HDATA" FOR I=0TO HM-1 READ HS$[I] NEXT FOR I=0TO 1:BREPEAT I,20,4:NEXT RETURN @BOOTKEY MODE=!!(256AND BUTTON()) RETURN @UDSPINIT COLOR 15,1 S$="- LINE LAUNCH"+" (GENTLEMAN MODE)"*MODE+" -" ?S$; LOCATE 0,29:?"ņā:HELP"; RETURN @DTINIT S=SYSBEEP:SYSBEEP=0 LOAD "TXT:"+PGID$+".MEM",0 OUT MEM$ SYSBEEP=S MS=0:MSN=0:MF=0:JI=0 FOR I=0TO FMAX-1 @DTINIT1 MP=INSTR(MSN,MEM$,CHR$(10)) IF MP>=0 THEN MS=MSN M$=MID$(MEM$,MS,MP-MS) MSN=MP+1 ENDIF IF LEFT$(M$,1)==CHR$(39) THEN @DTINIT1 'ƒWƒƒƒ“ƒ‹ IF MF==0 THEN C$=MID$(M$,0,1) S$=MID$(M$,1,LEN(M$)-1) IF C$!="9" THEN GC$[JI]=C$ GS$[JI]=S$ INC JI ELSE MF=1 ENDIF GOTO @DTINIT1 ENDIF 'ƒtƒ@ƒCƒ‹ IF MF==1 THEN X=VAL(MID$(M$,0,2)) S=VAL(MID$(M$,2,2)) J$=MID$(M$,4,1) P$=TRIM$(MID$(M$, 5,14)) F$=TRIM$(MID$(M$,19,14)) C$=MID$(M$,33,22) B$=MID$(M$,55,25) IF X>2 AND X<99 THEN IF !MODE THEN @DTINIT1 XB[I]=X:FB$[I]=F$:CB$[I]=C$ SB[I]=S:PB$[I]=P$:GB$[I]=J$ BB$[I]=B$ IF I2 AND X<99 THEN P=(X-3) MOD 16:X=2 ELSE P=15 IF X<99 THEN S$=F$+" "*(16-LEN(F$)-X)+" "*(INSTR(F$,":")>-1)+C$ IF X==1 THEN M$="/ IF S>=0 THEN M$=CHR$(58048+S) ELSE M$="óķ" LOCATE 1,I:?" "*39; IF !X OR X==99 THEN @PNLDSP2 COLOR P LOCATE X,I:?M$+S$; LOCATE 39,I:?J$; @PNLDSP2 NEXT RETURN @POINTDSP FOR I=EMAX-1 TO 0 STEP -1 IF I==TY AND !XE[I] THEN TY=TY-1 IF I==TY THEN S$="ņŌ" ELSE S$=" " DISPLAY 1 LOCATE 0,I:?S$; NEXT RETURN @GDRW DISPLAY 1 GPAGE 1,1:GCLS FOR I=0TO EMAX-1 IF XE[I]==1 THEN GFILL 8,I*8-1,392,I*8+6,RGB(100,100,100) NEXT IF XE[TY]>1 THEN GFILL 16,0+TY*8,392,6+TY*8,RGB(50,150,255) RETURN @ICONINIT SPDEF 0,448,16,16,16,8,8,3 'ņē SPDEF 1,448,16,16,16,8,8,7 'ņč SPDEF 2,304,32,16,16,8,8,1 'S SPDEF 3,288,32,16,16,8,8,1 'R DISPLAY 1 FOR I=0TO 3 SPSET I,I SPSCALE I,1.5,1.5 A=200:R=200:G=200:B=255 IF I==3 THEN A=200:R=255:G=255:B=50 SPCOLOR I,RGB(A,R,G,B) SPOFS I,220+I*28,224 NEXT RETURN @MAIN @LOOP VSYNC 1 GCNT=GCNT+1 ICF=0 INC TSB IF TSB>4 THEN IF TSC<2 THEN TSB=0 ENDIF GOSUB @ICONTCH GOSUB @TOUCH GOSUB @POINTDSP GOSUB @BTN GOSUB @UDSP GOTO @LOOP DEF ICONCHK() VAR ICS,ICX,ICY,C C=-1 TOUCH OUT ICS,ICX,ICY IF !ICS THEN TSB=0 ELSE IF ICX>209 AND ICY>210 THEN C=FLOOR(ICX/24)-9 TSC=C IF TSB<2 THEN TSB=2 ELSE C=-1 ENDIF ENDIF ENDIF IF C>=0 THEN DISPLAY 1 SPANIM C,"S",1,3,3,-10,1.5,1.5,1 ENDIF RETURN C END @TOUCH TOUCH OUT TCHST,TCHX,TCHY IF !TCHST THEN RETURN IF TCHX>209 AND TCHY>210 THEN RETURN IF TCHY<8 THEN TY=0:PN=PN-1:GOSUB @PAGECNG IF TCHY>230 THEN TY=EMAX-1:PN=PN+1:GOSUB @PAGECNG IF !ICF THEN GOSUB @GDRW T=FLOOR(TCHY/8):S$=FE$[T] IF !LEN(FE$[T]) THEN RETURN TY=T RETURN @ICONTCH C=ICONCHK() IF !C OR C==1 THEN PN=PN+C*2-1 GOSUB @PAGECNG IF C==2 THEN SV= 1:GOSUB @SLOTCNG IF C==3 THEN GOSUB @RUN RETURN @ICONSR DISPLAY 1 SPCHR 2,304,32,16,16,1 'Y SPCHR 3,288,32,16,16,1 'N SPCOLOR 2,RGB(200,200,200,255) SPCOLOR 3,RGB(200,255,255, 50) RETURN @ICONYN DISPLAY 1 SPCHR 2,400,32,16,16,1 'Y SPCHR 3,224,32,16,16,1 'N SPCOLOR 2,RGB(200,255, 50, 50) SPCOLOR 3,RGB(200, 50, 50,255) RETURN @RUN GOSUB @POINTDSP GOSUB @GDRW IF XE[TY]==1 THEN RETURN IF FE$[TY]==" " THEN RETURN IF !RF AND INSTR(FE$[TY],":")>-1 AND LEFT$(FE$[TY],3)!="PRG" THEN RETURN ICF=1 BEEP 2 HF=0:GOSUB @HELPCLS FOR I=0TO MM-1:ME$[I]=" "*32:NEXT MSG=1:MM=MMM:GOSUB @MSG IF TRIM$(PE$[TY])=="" THEN S$="(Žw’č ‚Č‚µ)" ELSE S$=PE$[TY] ENDIF ME$[0]="ƒvƒƒWƒFƒNƒg:"+S$ ME$[1]="ƒtƒ@ƒCƒ‹ :"+FE$[TY] ME$[2]="ƒ^ƒCƒgƒ‹ :"+CE$[TY] ME$[4]="ƒWƒƒƒ“ƒ‹ :"+GENRE$(GE$[TY]) ME$[5]="ą–¾ :"+BE$[TY] IF SE[TY]<0 THEN S$="(Žw’č ‚Č‚µ)" ELSE S$=STR$(SE[TY]) ENDIF ME$[7]="SLOT :"+S$ ME$[9]=RS$[RF]+" ‚µ‚Ü‚·‚©? (ņŹ:YES / ņįņĖ:NO) FOR I=0TO MM-1:ML[I]=0:NEXT MSG=1:MM=MMM:GOSUB @MSG GOSUB @ICONYN @RUN1 VSYNC 1 B=BUTTON(2):C=ICONCHK() IF (656AND B) OR C==2 THEN @RUN2 IF (96AND B) OR C==3 THEN @RUN3 GOTO @RUN1 @RUN2 BEEP 3 WAIT 10 L$="@RUN2"+STR$(RF) GOTO L$ RETURN @RUN20 ACLS FOR I=0TO 1:BREPEAT I:NEXT IF SE[TY]>=0 THEN S$="PRG"+STR$(SE[TY])+":" ELSE S$="" ENDIF IF PE$[TY]!="" THEN S$=S$+PE$[TY]+"/"+FE$[TY] ELSE S$=S$+FE$[TY] ENDIF EXEC S$ RETURN @RUN21 GOSUB @LINEDOWN GOTO @RUN3 @RUN22 RECVFILE F$(TY) GOSUB @LINEDOWN GOTO @RUN3 @RUN3 BEEP 4 DISPLAY 0:COLOR ,0 FOR I=0TO MM-1:ME$[I]=" "*32:NEXT MSG=0:MM=MMM:GOSUB @MSG GOSUB @ICONSR RETURN @LINEDOWN TY=TY+1 IF TY>EMAX-1 THEN TY=EMAX-1:PN=PN+V:GOSUB @PAGECNG RETURN @MSG DISPLAY 0 COLOR 15,MSG FOR II=0TO MM-1 Y=15-MM/2+II:M$=ME$[II] IF !ML[II] THEN X=9 ELSE X=25-FLOOR(LEN(M$)/2) ENDIF LOCATE X,Y:?M$; NEXT RETURN @PAGECNG IF PN<0 THEN PN=0:IF !PNB THEN RETURN F=FM-EMAX IF PN>F THEN PN=F IF PNB>=F THEN RETURN ENDIF FOR I=0TO EMAX-1 J=I+PN XE[I]=XB[J]:FE$[I]=FB$[J]:CE$[I]=CB$[J]:ME[I]=MB[J] SE[I]=SB[J]:PE$[I]=PB$[J]:GE$[I]=GB$[J]:BE$[I]=BB$[J] NEXT GOSUB @PNLDSP GOSUB @GDRW PNB=PN RETURN @BTN B=BUTTON() BT1=BUTTON(1) B=B AND (8188OR (3AND BT1)) STICK OUT SX,SY B=B+2*(SY<-0.5)+(SY>0.5) B=B+4*(SX<-0.5)+8*(SX>0.5) BT=B-(BTB AND B)BTB=B IF 4AND BT THEN SV=-1:GOSUB @SLOTCNG IF 8AND BT THEN SV= 1:GOSUB @SLOTCNG IF 512AND BT THEN BEEP 1:EXEC PGID$ IF 16AND B THEN RF=0:GOSUB @RUN IF 128AND BT THEN GOSUB @HELP TY=TY+!(1AND B)-!(2AND B) TY=TY+!(64AND BT)-!(32AND BT) V=1 IF 1+256==B THEN V=4:TY=-1 IF 2+256==B THEN V=4:TY=EMAX IF TY<0 THEN TY=0:PN=PN-V:GOSUB @PAGECNG IF TY>EMAX-1 THEN TY=EMAX-1:PN=PN+V:GOSUB @PAGECNG IF XE[TY]==99 THEN TY=TY-1 GOSUB @GDRW RETURN @HELP HF=(HF+1) MOD 2 BEEP 4-2*HF IF HF THEN GOSUB @HELPDSP ELSE GOSUB @HELPCLS ENDIF RETURN @HELPDSP FOR I=0TO HM-1:ME$[I]=" "*32:NEXT MSG=1:MM=HM:GOSUB @MSG FOR I=0TO HM-1 ME$[I]=HS$[I] NEXT MSG=1:MM=HM:GOSUB @MSG RETURN @HELPCLS FOR I=0TO HM-1:ME$[I]=" "*32:NEXT MSG=0:MM=HM:GOSUB @MSG RETURN @SLOTCNG IF XE[TY]<2 THEN RETURN BEEP 9 S=SE[TY] S=S+SV IF S<-1 THEN S= 3 IF S> 3 THEN S=-1 SE[TY]=S:SB[TY+PN]=S GOSUB @PNLDSP RETURN @UDSP DISPLAY 0 D$=DATE$:T$=TIME$ COLOR 15,1 LOCATE 31,29:?D$+" "+T$; F=VAL(MID$(T$,3,2)) MOD 6 IF F==5 THEN GOSUB @SPDEMO IF GCNT MOD 60*!!F THEN RETURN GPAGE 0,0:GPRIO 255 X0=RND(400):Y0=RND(240) X1=RND(400):Y1=RND(240) C=RGB(RND(256),RND(256),RND(256)) IF !F THEN GPSET X0,Y0,C IF F==1 THEN GLINE X0,Y0,X1,Y1,C IF F==2 THEN GBOX X0,Y0,X1,Y1,C IF F==3 THEN GFILL X0,Y0,X1,Y1,C IF F==4 THEN GCIRCLE X0,Y0,X1,C IF RIGHT$(T$,2)=="00" THEN GCLS RETURN DEF TRIM$(PS$) VAR S$,IN IN=INSTR(PS$," ") IF IN>=0 THEN S$=SUBST$(PS$,INSTR(PS$," "),"") ELSE S$=PS$ ENDIF RETURN S$ END DEF GENRE$(C$) VAR LI,LS$ LS$="" FOR LI=0TO GM-1 IF GC$[LI]==C$ THEN LS$=GS$[LI]:BREAK NEXT RETURN LS$ END @SPDEMO DISPLAY 0 INC SN IF SN<4 THEN SN=4 IF SN>=SPMAX THEN SN=4 N=SN SPSET N,RND(32)*16,RND(32)*16,16,16,1 SPHOME N,8,8 T=-120 SPANIM N,"XY",1,200,120,T,RND(400),RND(240),1 SPANIM N,"S",1,0,0,T,2,2,1 SPANIM N,"Z",1,1024,T,5,1 C0=RGB( 0,255,255,255) C1=RGB(255,255,255) SPANIM N,"C",1,C0,T,C1,1,C0,1 RETURN @RDATA DATA"ŽĄs" DATA"‘—M" DATA"ŽóM" @HDATA DATA"‘€ģ•ū–@" DATA"" DATA"ƒ{ƒ^ƒ“" DATA" ņēņį -- ƒJ[ƒ\ƒ‹ ņē ˆŚ“®" DATA" ó§+ņÕ -- ‚‘¬ ˆŚ“®" DATA" ņčņĖ -- ƒJ[ƒ\ƒ‹ ņč ˆŚ“®" DATA" ó§+ņÕ -- ‚‘¬ ˆŚ“®" DATA" ņęņå -- ƒXƒƒbƒg •ĻX" DATA" ņŹ -- PRG ŽĄs" DATA" ņā -- ‘€ģ•ū–@ •\Ž¦" DATA" ņŪ -- ƒ‰ƒ“ƒ`ƒƒ Ä‹N“®" DATA"" DATA"ƒ^ƒbƒ`ƒpƒlƒ‹" DATA" -- ƒJ[ƒ\ƒ‹ ‘I‘š" DATA" ņē -- ƒy[ƒW ņē ‘—‚č" DATA" ņč -- ƒy[ƒW ņč ‘—‚č" DATA" S -- ƒXƒƒbƒg •ĻX" DATA" R -- PRG ŽĄs" @EOF