1 ' ALL MSX ROM - ONLINE DATABASE V1.1 (MSX2 & Superior) 2 ' For the GR8NET cartridge by Eugeny Brychkov 3 ' MSX DATABASE Program by Eric Boez & Victor Martinez - 2016 7 CLEAR999:_NETBLOAD("http://msx.ebsoft.fr/gr8net/ROMBASE.DAT"):_NETLDRAM(0,&H6000,&HAA1,&HCA00):NF=-1:PH=0:L(0)=15:L(1)=0:VR$="1.4" 8 DEFUSR2=&HCA18:DEFUSR3=&HCA1B:DEFUSR4=&HCA12:DEFUSR5=&HCA15:DEFUSR6=&HCA1E:CALL NETGETMEM(255,&H6001,A,B,C,D):CALL NETGETMEM(255,&H6005,E,F,G,H):AC$=HEX$(D)+HEX$(E)+HEX$(F):OD$="a=p1"+AC$:GOSUB3000 9 ' Init Config Values (0 or 1) VDP,Turbo,Lenguage,Cool Colors 10 IF R$(1)<>""THENL(0)=VAL("&h"+MID$(R$(1),1,1)):L(1)=VAL("&h"+MID$(R$(1),2,1)):VD=VAL(MID$(R$(1),3,1)):TU=VAL(MID$(R$(1),4,1)):LE=VAL(MID$(R$(1),5,1)):CC=VAL(MID$(R$(1),6,1)):RL$=MID$(R$(1),7,1)ELSEVD=0:TU=0:LE=0:CC=0:RL$="A" 11 IF RL$="B"THENCALL NETBLOAD("http://msx.ebsoft.fr/gr8net/toyou.sc8"):SCREEN8:CALLNETBTOV(0):FORI=1TO999:NEXTI 12 LR$=R$(2):FORI=1TO10:KEY(I)ON:NEXT:SCREEN0,,0:WIDTH80:LOCATE,,0:A=USR2(0):VDP(7)=&HF1:VDP(13)=&HF4:VDP(14)=&HF0:COLORL(0),L(1),0 13 LOCATE21,6:PRINT"By Eric Boez & Victor Martinez (c)2016":LOCATE68,15:PRINT"V";VR$:IFR$(0)<>""THEN CH$="Welcome Back "+R$(0):Y=10:GOSUB4000 35 RE=0:RC=24:MP=0:DIMMR$(10),VD$(1),TU$(1),RE$(1),LE$(1),CC$(1),MP$(5):ON STOP GOSUB 6000:STOPON:GOSUB8000:ONKEYGOSUB760,761,762,764,765,767,7000,6500:OD$="a=s1"+AC$+"&v=":GOSUB3000:LOCATE32,1:MR$=R$(0):PRINTMR$; 40 VD$(0)="50Hz":VD$(1)="60Hz":TU$(0)="OFF":TU$(1)="ON ":RE$(0)="OFF":RE$(1)="ON ":LE$(0)=" Japanese ":LE$(1)="International":CC$(0)="OFF":CC$(1)="ON ":MP$(0)=" Auto ":MP$(1)="PLAIN ROM":MP$(2)="KONAMI K4 ":MP$(3)="KONAMI SCC":MP$(4)="ASCII 8K " 41 MP$(5)="ASCII 16K ":GOSUB750:GOSUB763:GOSUB766 595 LOCATE14,21:PRINTSPACE$(11);:PRINT"Enter the name of ROM to search";:PRINTSPACE$(13);:LOCATE40,22 600 POKE&HCA0E,LI:A=USR6(0):LI=0 700 NX=0:SR$="":Z$="":K=0:XX=40:IF LR$<>""THENNX=LEN(LR$):SR$=LR$:LR$="" 710 'Input keys 711 LOCATEXX,22:PRINTSR$;"_";:Z$=INKEY$ 713 IFZ$=""THENLOCATEXX,22:PRINTSR$;CHR$(32);:GOTO711 715 IFZ$<>""THENK=ASC(Z$):IF(K>=47ANDK<=122)THENNX=NX+1:SR$=SR$+Z$:XX=INT((80-NX)/2):LOCATEXX,22:PRINTSR$;:GOTO711 716 IFK=8THENSR=LEN(SR$):IFSR>0THENSR$=LEFT$(SR$,SR-1):NX=NX-1:LOCATEXX,22:PRINTSR$;" ";:GOTO711 717 IFK=30THENIFLI>0THENPOKE&HCA0E,LI:A=USR5(0):LI=LI-1:GOTO710 718 IFK=31THENIFLI<9ANDLI-1GOTO5000 730 IFK=28THENIFNP>0ANDP<=NPTHENSR$=TR$:P=P+1:NF=NB-(P*10)-1:GOTO910 735 IFK=29THENIFNP>0ANDP>0THENSR$=TR$:P=P-1:NF=9:GOTO910 740 GOTO 710 750 LOCATE3,3:PRINTVD$(VD):LOCATE14,3:PRINTTU$(TU):LOCATE35,3:PRINTLE$(LE):LOCATE72,3:PRINTCC$(CC):RETURN 760 VD=VDXOR1:LOCATE3,3:PRINTVD$(VD);:GOSUB7200:GOTO770 761 TU=TUXOR1:LOCATE14,3:PRINTTU$(TU);:GOSUB7200:GOTO770 762 MP=MP+1:IFMP=6THEN MP=0 763 LOCATE22,3:PRINTMP$(MP);:GOTO770 764 LE=LEXOR1:LOCATE35,3:PRINT LE$(LE);:GOSUB7200:GOTO770 765 RC=RC+1:IFRC>52THENRC=24 766 LOCATE51,3:PRINT"Konami RC";RC+700;:GOTO770 767 CC=CCXOR1:LOCATE72,3:PRINTCC$(CC);:GOSUB7200:GOTO770 770 LOCATE40,22:RETURN 910 A=USR3(0):IFNF>9THENNF=9 915 GOTO 2500 1000 ' send search 1001 A=LEN(SR$):IFA=1THENAS=ASC(SR$) 1002 IFA=1ANDAS>=48ANDAS<=57THENGOSUB5000 1004 A=USR3(0):OD$="a=s1"+AC$+"&v="+SR$:GOSUB3000 1020 NB=VAL(R$(0)):IFNB=0THENCH$="Nothing found":NF=-1:Y=10:GOSUB4000:GOSUB2650:GOTO595ELSEGOSUB2650:CH$="Waiting data...":Y=22:GOSUB4000 1021 IFNB>9THENNF=9:NP=INT(NB/10)-1:MD=NBMOD10ELSENF=NB-1:NP=0:MD=0 1022 IFMD>0THENNP=NP+1 1023 P=0 2500 ' 2510 POKE&HF3B0,64:LOCATE0,6 2511 NV=P*10:TR$=SR$:IFP>0THENNN=3ELSENN=1 2530 U=0:OD$="a=s6"+AC$+"&v="+SR$+"&m="+MID$(STR$(NV),2,NN):GOSUB3000:FORI=0TONF:N=I:PRINTR$(I):NEXT:POKE&HF3B0,80:CH$="Push [SPACE] to start game. Or try another search":Y=21:GOSUB4000:IFLI>NFTHENPOKE&HCA0E,LI:A=USR6(0):LI=0 2558 IFNP>0ANDP"; 2559 IFNP>0ANDP>0THENLOCATE 6,18:PRINT"<-page"+STR$(P)+"/"+STR$(NP+1); 2560 ' 2590 GOSUB2650:BEEP:GOTO 700 2650 LOCATE0,22:PRINTSPACE$(78);:RETURN 3000 R$="":A$="http://ebsoft.fr/p.php?":A$=A$+OD$:KL=0:OPEN"HTTP0A:a$"AS#1 3030 IFLOC(1)<>0THENINPUT#1,R$(KL):KL=KL+1 3040 IFEOF(1)THENCLOSE #1:RETURN 3050 GOTO 3030 4000 LOCATE 40-LEN(CH$)/2,Y:PRINTCH$;:RETURN 5000 ' start Game 5001 U=0:OD$="a=s4"+AC$+"&v="+SSR$+"&p="+MID$(STR$(NV+LI),2,NN):GOSUB3000:M$=R$(1):RO$=R$(2):KEYOFF:IFM$=""ANDRO$=""THENRETURN 5015 MA=VAL(M$):IFMP<>0THENMA=MPELSEMP=MA 5016 A$="http://www.ebsoft.fr/msx/roms/":CH$="Launching "+RO$+" With Mapper "+MP$(MP):Y=22:GOSUB4000:DEFUSR=&HCA00 5031 F$=A$+RO$:CALLNETBLOAD(F$):IFPEEK(&HFCAB)=255THEN5100 5032 POKE&HCA05,LE:IFMA=2ORMA=3THENGOSUB5200 5033 _NETGETMEM(0,&H6002,A,B):IFB=0THEN_NETGETMEM(0,&H6008,A,B) 5034 POKE&HCA0A,A:POKE&HCA0B,B 5035 _NETVARBSIZE(SZ):IF(SZ/1024)<17THEN_NETBLOAD(F$,2,2) 5036 IF(SZ/1024)<33THENPOKE&HCA09,1ELSEIF(SZ/8192)=92GOTO5100 5037 _NETGETMEM(0,&H6012,C,D):IFRC=51ANDD=&H58THEN_NETSETMEM(3,&H7617,&H28) 5038 IFRC=25ANDD=&H37THEN_NETSETMEM(3,&H7FC7,&H28):_NETSETMEM(3,&H7FCB,&H28) 5039 OUT(&H5E),1:SLOT=INP(&H5F):POKE&HCA03,SLOT::OUT(&H5E),2:OUT(&H5F),MA 5040 POKE&HCA04,VD:POKE&HCA06,CC:POKE&HCA07,TU:POKE&HCA08,((RCMOD10)+16*(RC\10)):VDP(14)=0:A=USR(0) 5100 _NETSETMAP(MA) 5200 DEFUSR2=&HCA0F:CALLNETVARBSIZE(A):IF(A/8192)>256THENRETURN 5210 FORX=0TO(A/8192)-1:_NETLDRAM(X,&H6000,8192,&HA000):A=USR2(0):_NETLDBUF(X,&H6000,8192,&HA000):NEXT:RETURN 6000 POKE&HF3B0,80:VDP(14)=0:DEFUSR=&H3E:PRINTUSR(0) 6001 CLS:PRINT "We hope you enjoyed this program !":STOP 6500 ' Show Stats 6510 FORI=1TO10:KEY(I)OFF:NEXT:E=USR2(0):CH$="TOP SEARCH STRINGS":Y=6:GOSUB4000:LI=0:POKE&HCA0E,LI:A=USR6(0) 6520 OD$="a=ss"+AC$:GOSUB3000:FORI=0 TO 7:CH$=R$(I):Y=7+I:GOSUB4000:NEXTI 6530 LOCATE 40,16:PRINT "Press a Key to Continue...":K$="" 6540 K$=INKEY$:IF K$="" THEN 6540 6550 E=USR2(0):CH$="TOP GAMES LAUNCH":Y=6:GOSUB4000:LI=0:POKE&HCA0E,LI:A=USR6(0) 6560 OD$="a=sl"+AC$:GOSUB3000:FORI=0 TO 7:CH$=R$(I):Y=7+I:GOSUB4000:NEXTI 6570 LOCATE 40,16:PRINT "Press a Key to Continue...":K$="" 6580 K$=INKEY$:IF K$="" THEN 6580 6591 E=USR2(0):GOSUB750:GOSUB763:GOSUB766 6592 LOCATE14,21:PRINTSPACE$(11);:PRINT"Enter the name of ROM to search";:PRINTSPACE$(13);:LOCATE32,1:PRINT MR$:LOCATE40,22 6593 FORI=1TO10:KEY(I)ON:NEXT:POKE&HCA0E,LI:A=USR6(0):LI=0 6594 RETURN 7000 ' Register & parameters 7005 FORI=1TO10:KEY(I)OFF:NEXT 7010 E=USR2(0):R$(0)="":LOCATE29,6:PRINT"Register & Parameters":LOCATE 14,8:PRINT "Nick Name : ":LOCATE14,10:PRINT"Text Color :":LOCATE14,11:PRINT"Back color :":LOCATE6,15:PRINT"press ENTER to validate press 'C' to Register again" 7011 Y=10:SR$="" 7020 OD$="a=p1"+AC$:GOSUB3000 7022 IF R$(1)<>""THENL(0)=VAL("&h"+MID$(R$(1),1,1)):L(1)=VAL("&h"+MID$(R$(1),2,1)):COLOR L(0),L(1):VD=VAL(MID$(R$(1),3,1)):TU=VAL(MID$(R$(1),4,1)):LE=VAL(MID$(R$(1),5,1)):CC=VAL(MID$(R$(1),6,1)) 7023 IF R$(0)<>""THENLOCATE27,8:PRINTR$(0):K$="":K=0:GOTO7050 7030 LOCATE27,8:PRINT SR$;"_":Z$=INKEY$ 7031 IF Z$=""THENLOCATE27,8:PRINT SR$;CHR$(32);:GOTO7030 7032 IFZ$<>""THENK=ASC(Z$):IF K>=48ANDK<=122THENSR$=SR$+Z$:LOCATE27,8:PRINTSR$;:GOTO7030 7033 IFK=8THENSR=LEN(SR$):IFSR>0THENSR$=LEFT$(SR$,SR-1):LOCATE27,8:PRINTSR$;" ";:GOTO7030 7034 IFK=13THENBEEP:K$="":K=0:LOCATE27,8:PRINTSR$;" " 7040 OD$="a=p2"+AC$+"&v="+SR$:GOSUB3000:SR$="" 7050 LOCATE28,10:PRINTL(0):LOCATE28,11:PRINTL(1) 7060 K$=INKEY$:IFK$<>""THENK=ASC(K$) 7062 IFK=30ORK=31THEN P=-(P=0):LOCATE 32,Y:PRINT" ":K=0:Y=10+P 7064 IF K=28THEN L(Y-10)=L(Y-10)+1:K=0:IFL(Y-10)>15 THEN L(Y-10)=0 7065 IF K=29THEN L(Y-10)=L(Y-10)-1:K=0:IFL(Y-10)<0 THEN L(Y-10)=15 7066 IF K=99ORK=67THEN LOCATE27,8:PRINTSPACE$(10):LOCATE32,Y:PRINT" ":GOTO7030 7067 IF K=13THEN GOSUB7200:GOTO7100 7069 LOCATE 32,Y:PRINT "<->":COLORL(0),L(1) 7070 GOTO7050 7100 E=USR2(0):GOSUB750:GOSUB763:GOSUB766 7110 LOCATE14,21:PRINTSPACE$(11);:PRINT"Enter the name of ROM to search";:PRINTSPACE$(13);:LOCATE32,1:PRINT MR$:LOCATE40,22 7115 FORI=1TO10:KEY(I)ON:NEXT:POKE&HCA0E,LI:A=USR6(0):LI=0 7120 RETURN 7199 'save params 7200 OD$="a=p3"+AC$+"&v="+HEX$(L(0))+HEX$(L(1))+HEX$(VD)+HEX$(TU)+HEX$(LE)+HEX$(CC):GOSUB3000:RETURN 7590 E=USR2(0):GOSUB750:GOSUB763:GOSUB766 7591 LOCATE14,21:PRINTSPACE$(11);:PRINT"Enter the name of ROM to search";:PRINTSPACE$(13);:LOCATE32,1:PRINT MR$:LOCATE40,22 7592 FORI=1TO10:KEY(I)ON:NEXT:POKE&HCA0E,LI:A=USR6(0):LI=0:RETURN 7900 ' Check Update 7910 E=USR2(0):PH=1:FORI=1TO10:KEY(I)OFF:NEXT 8000 OD$="a=v2"+AC$+"&v="+VR$:GOSUB3000:IF R$(0)<>VR$ THEN CH$="New Version is available : V"+R$(0):Y=12:GOSUB4000:CH$=R$(1):Y=13:GOSUB4000:CH$="http://msx.ebsoft.fr/gr8net/"+R$(3):Y=14:GOSUB4000 ELSE RETURN 8010 CH$="Press F1 to Update now or press a key to continue":Y=14:GOSUB4000:KEY(1)ON:ON KEY GOSUB9000 8050 K$="" 8060 K$=INKEY$:IFK$<>""THEN 8100 8065 GOTO 8060 8100 E=USR2(0):GOSUB750:GOSUB763:GOSUB766 8110 LOCATE14,21:PRINTSPACE$(11);:PRINT"Enter the name of ROM to search";:PRINTSPACE$(13);:LOCATE32,1:PRINTMR$:LOCATE40,22 8115 FORI=1TO10:KEY(I)ON:NEXT:POKE&HCA0E,LI:A=USR6(0):LI=0 8130 RETURN 9000 ' run Updater 9010 A$="http://msx.ebsoft.fr/gr8net/updater.bas":RUN"httpa:a$"