10 ' ALL MSX ROM - ONLINE DATABASE V1.6 (MSX2 & Superior) 20 ' For the GR8NET cartridge by Eugeny Brychkov (20210819) 30 ' MSX DATABASE Program by Eric Boez & Victor Martinez - 2016 40 DIMD(4):V=INP(&H5E):_NETGETDA(A,B):N=0:C=B:FORI=0TO3:IF(CAND1)=1THENN=N+1:D(I)=1ELSED(I)=0 50 C=C\2:NEXTI:IFN=1THEN130 60 PRINT"You have several GR8NET":PRINT"adapters in the system":PRINT:PRINT"ID";CHR$(9);"Slot":FORI=0TO3:IFD(I)=0THEN90 70 OUT&H5E,I*&H50+1:S=INP(&H5F):PRINTI;CHR$(9);HEX$(SAND3);:IF(SAND128)<>0THENPRINT".";HEX$((S\4)AND3); 80 IFI=ATHENPRINT" (default)"ELSEPRINT 90 NEXTI:OUT&H5E,V:PRINT 100 INPUT"Select ID: ";X:IFX<0ORX>3THEN100 110 IFD(X)=0THEN100 120 _NETSETDA(X) 130 CLEAR999:_NETSETHOST("msx.ebsoft.fr"):_NETBLOAD("/gr8net/ROMBA15.DAT"):_NETVARBSIZE(S):_NETLDRAM(0,&H6000,S,&HCA00):NF=-1:PH=0:L(0)=15:L(1)=0:L(2)=4:VD=0:TU=0:LE=0:CC=0:RL$="A":VR$="1.6" 140 DEFUSR2=&HCA18:DEFUSR3=&HCA1B:DEFUSR4=&HCA12:DEFUSR5=&HCA15:DEFUSR6=&HCA1E:DEFUSR7=&HCA21:DEFUSR8=&HCA24:_NETGETMEM(255,&H6001,A,B,C,D):_NETGETMEM(255,&H6005,E,F,G,H):AC$=HEX$(D)+HEX$(E)+HEX$(F):OD$="a=p1"+AC$:GOSUB730:NK$=R$(0) 150 ' Init Config Values (0 or 1) VDP,Turbo,Lenguage,Cool Colors 160 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),8,1):L(2)=VAL("&h"+MID$(R$(1),7,1)) 170 IF RL$="B"THEN_NETBLOAD("/gr8net/toyou.sc8"):SCREEN8:_NETBTOV(0):FORI=1TO999:NEXTI 180 LR$=R$(2):FORI=1TO10:KEY(I)ON:NEXT:SCREEN0,,0:WIDTH80:LOCATE,,0:A=USR2(0):VDP(7)=&HF1:VDP(13)=L(0)*16+L(2):VDP(14)=&HF0:COLORL(0),L(1) 190 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:GOSUB770 200 RE=0:RC=24:MP=0:DIMMR$(10),VD$(1),TU$(1),RE$(1),LE$(1),CC$(1),MP$(5):ON STOP GOSUB 960:STOPON:GOSUB1460:ONKEYGOSUB400,410,420,440,450,470,1110,980:OD$="a=s1"+AC$+"&v=":GOSUB730:LOCATE32,1:MR$=R$(0):PRINTMR$; 210 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 " 220 MP$(5)="ASCII 16K ":GOSUB380:GOSUB430:GOSUB460 230 LOCATE14,21:PRINTSPACE$(11);:PRINT"Enter the name of ROM to search";:PRINTSPACE$(13);:LOCATE40,22 240 POKE&HCA0E,LI:A=USR6(0):LI=0 250 NX=0:SR$="":Z$="":K=0:XX=40:IF LR$<>""THENNX=LEN(LR$):SR$=LR$:LR$="" 260 'Input keys 270 A=USR7(0):LOCATEXX,22:PRINTSR$;"_";:Z$=INKEY$ 280 IFZ$=""THENLOCATEXX,22:PRINTSR$;CHR$(32);:GOTO270 290 IFZ$<>""THENK=ASC(Z$):IF(K>=47ANDK<=122)THENNX=NX+1:SR$=SR$+Z$:XX=INT((80-NX)/2):LOCATEXX,22:PRINTSR$;:GOTO270 300 IFK=8THENSR=LEN(SR$):IFSR>0THENSR$=LEFT$(SR$,SR-1):NX=NX-1:LOCATEXX,22:PRINTSR$;" ";:GOTO270 310 IFK=30THENIFLI>0THENPOKE&HCA0E,LI:A=USR5(0):LI=LI-1:GOTO260 320 IFK=31THENIFLI<9ANDLI-1GOTO780 350 IFK=28THENIFNP>0ANDP<=NPTHENSR$=TR$:P=P+1:NF=NB-(P*10)-1:GOTO540 360 IFK=29THENIFNP>0ANDP>0THENSR$=TR$:P=P-1:NF=9:GOTO540 370 GOTO 260 380 LOCATE8,3:PRINTCC$(CC):A=USR8(1):LOCATE0,3:PRINTSPACE$(79); 390 LOCATE5,3:PRINTVD$(VD):LOCATE21,3:PRINTTU$(TU):LOCATE48,3:PRINTLE$(LE):A=USR8(0):RETURN 400 VD=VDXOR1:LOCATE5,3:PRINTVD$(VD);:GOSUB1400:GOTO520 410 TU=TUXOR1:LOCATE21,3:PRINTTU$(TU);:GOSUB1400:GOTO520 420 MP=MP+1:IFMP=6THEN MP=0 430 LOCATE34,3:PRINTMP$(MP);:GOSUB1400:GOTO520 440 LE=LEXOR1:LOCATE48,3:PRINT LE$(LE);:GOTO520 450 RC=RC+1:IFRC>52THENRC=24 460 LOCATE65,3:PRINT"Konami RC";RC+700;:GOTO520 470 CC=CCXOR1:LOCATE8,3:PRINTCC$(CC);:GOSUB1400:GOTO530 480 L(0)=L(0)+1:IFL(0)=16THENL(0)=0 490 COLORL(0):LOCATE40,3:PRINT"Color";+L(0);:GOTO530 500 L(1)=L(1)+1:IFL(1)=16THENL(1)=0 510 COLOR,L(1):VDP(13)=L(0)*16+L(2):LOCATE24,3:PRINT"Color";+L(1);:GOTO530 520 A=USR8(0):LOCATE40,22,0:RETURN 530 A=USR8(1):LOCATE40,22,0:RETURN 540 A=USR3(0):IFNF>9THENNF=9 550 GOTO 640 560 ' send search 570 A=LEN(SR$):IFA=1THENAS=ASC(SR$) 580 IFA=1ANDAS>=48ANDAS<=57THENGOSUB780 590 A=USR3(0):OD$="a=s1"+AC$+"&v="+SR$:GOSUB730 600 NB=VAL(R$(0)):IFNB=0THENCH$="Nothing found":NF=-1:Y=10:GOSUB770:GOSUB720:GOTO230ELSEGOSUB720:CH$="Waiting data...":Y=22:GOSUB770 610 IFNB>9THENNF=9:NP=INT(NB/10)-1:MD=NBMOD10ELSENF=NB-1:NP=0:MD=0 620 IFMD>0THENNP=NP+1 630 P=0 640 ' 650 POKE&HF3B0,64:LOCATE0,6 660 NV=P*10:TR$=SR$:IFP>0THENNN=3ELSENN=1 670 U=0:OD$="a=s6"+AC$+"&v="+SR$+"&m="+MID$(STR$(NV),2,NN):GOSUB730:FORI=0TONF:N=I:PRINTR$(I):NEXT:POKE&HF3B0,80:CH$="Push [SPACE] to start game. Or try another search":Y=21:GOSUB770:IFLI>NFTHENPOKE&HCA0E,LI:A=USR6(0):LI=0 680 IFNP>0ANDP"; 690 IFNP>0ANDP>0THENLOCATE 6,18:PRINT"<-page"+STR$(P)+"/"+STR$(NP+1); 700 ' 710 GOSUB720:BEEP:GOTO 250 720 LOCATE0,22:PRINTSPACE$(78);:RETURN 730 R$="":A$="http://ebsoft.fr/p.php?":A$=A$+OD$:KL=0:OPEN"HTTPA:a$"AS#1 740 IFLOC(1)<>0THENINPUT#1,R$(KL):KL=KL+1 750 IFEOF(1)THENCLOSE #1:RETURN 760 GOTO 740 770 LOCATE 40-LEN(CH$)/2,Y:PRINTCH$;:RETURN 780 ' start Game 790 GOSUB1400:U=0:OD$="a=s4"+AC$+"&v="+SSR$+"&p="+MID$(STR$(NV+LI),2,NN):GOSUB730:M$=R$(1):RO$=R$(2):KEYOFF:IFM$=""ANDRO$=""THENRETURN 800 MA=VAL(M$):IFMP<>0THENMA=MPELSEMP=MA 810 A$="http://www.ebsoft.fr/msx/roms/":CH$="Launching "+RO$+" With Mapper "+MP$(MP):Y=22:GOSUB770:DEFUSR=&HCA00 820 F$=A$+RO$:_NETBLOAD(F$):IFPEEK(&HFCAB)=255THEN920 830 POKE&HCA05,LE:IFMA=2ORMA=3THENGOSUB940 840 _NETGETMEM(0,&H6002,A,B):IFB=0THEN_NETGETMEM(0,&H6008,A,B) 850 POKE&HCA0A,A:POKE&HCA0B,B 860 _NETVARBSIZE(SZ):IF(SZ/1024)<17THEN_NETBLOAD(F$,2,2) 870 IF(SZ/1024)<33THENPOKE&HCA09,1ELSEIFA=&H6F ANDB=&H57GOTO920 880 _NETGETMEM(0,&H6012,C,D):IFRC=51ANDD=&H58THEN_NETSETMEM(3,&H7617,&H28) 890 IFRC=25ANDD=&H37THEN_NETSETMEM(3,&H7FC7,&H28):_NETSETMEM(3,&H7FCB,&H28) 900 Q=INP(&H5E):Q=(QAND240)+1:OUT(&H5E),Q:SLOT=INP(&H5F):POKE&HCA03,SLOT:OUT(&H5E),Q+1:OUT(&H5F),MA 910 POKE&HCA04,VD:POKE&HCA06,CC:POKE&HCA07,TU:POKE&HCA08,((RCMOD10)+16*(RC\10)):VDP(14)=0:A=USR(0) 920 _NETSETMAP(MA) 930 ' 940 DEFUSR2=&HCA0F:_NETVARBSIZE(A):IF(A/8192)>256THENRETURN 950 FORX=0TO(A/8192)-1:_NETLDRAM(X,&H6000,8192,&HA000):A=USR2(0):_NETLDBUF(X,&H6000,8192,&HA000):NEXT:RETURN 960 POKE&HF3B0,80:VDP(14)=0:DEFUSR=&H3E:PRINTUSR(0) 970 CLS:PRINT "We hope you enjoyed this program !":STOP 980 ' Show Stats 990 FORI=1TO10:KEY(I)OFF:NEXT:E=USR2(0):CH$="TOP SEARCH STRINGS":Y=6:GOSUB770:LI=0:POKE&HCA0E,LI:A=USR6(0) 1000 OD$="a=ss"+AC$:GOSUB730:FORI=0 TO 7:CH$=R$(I):Y=7+I:GOSUB770:NEXTI 1010 LOCATE 40,16:PRINT "Press a Key to Continue...":K$="" 1020 K$=INKEY$:IF K$="" THEN 1020 1030 E=USR2(0):CH$="TOP GAMES LAUNCH":Y=6:GOSUB770:LI=0:POKE&HCA0E,LI:A=USR6(0) 1040 OD$="a=sl"+AC$:GOSUB730:FORI=0 TO 7:CH$=R$(I):Y=7+I:GOSUB770:NEXTI 1050 LOCATE 40,16:PRINT "Press a Key to Continue...":K$="" 1060 K$=INKEY$:IF K$="" THEN 1060 1070 E=USR2(0):GOSUB380:GOSUB430:GOSUB460 1080 LOCATE14,21:PRINTSPACE$(11);:PRINT"Enter the name of ROM to search";:PRINTSPACE$(13);:LOCATE32,1:PRINT MR$:LOCATE40,22 1090 FORI=1TO10:KEY(I)ON:NEXT:POKE&HCA0E,LI:A=USR6(0):LI=0 1100 RETURN 1110 ' Register & parameters 1120 FORI=1TO10:KEY(I)OFF:NEXT:E=USR2(0):R$(0)="":LOCATE29,6:LI=0:POKE&HCA0E,LI:A=USR6(0) 1130 PRINT"Register & Parameters":LOCATE 14,8:PRINT "Nick Name : ":LOCATE14,10:PRINT"Text Color :":LOCATE14,11:PRINT"Back color :":LOCATE14,12:PRINT"Barre color :":LOCATE6,15:PRINT"press ENTER to validate press 'C' to Register again" 1140 Y=10:SR$="" 1150 OD$="a=p1"+AC$:GOSUB730 1160 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)):L(2)=VAL(MID$(R$(1),7,1)) 1170 IF R$(0)<>""THENLOCATE27,8:PRINTR$(0):K$="":K=0:GOTO1240 1180 LOCATE27,8:PRINT SR$;"_":Z$=INKEY$ 1190 IF Z$=""THENLOCATE27,8:PRINT SR$;CHR$(32);:GOTO1180 1200 IFZ$<>""THENK=ASC(Z$):IF K>=48ANDK<=122THENSR$=SR$+Z$:LOCATE27,8:PRINTSR$;:GOTO1180 1210 IFK=8THENSR=LEN(SR$):IFSR>0THENSR$=LEFT$(SR$,SR-1):LOCATE27,8:PRINTSR$;" ";:GOTO1180 1220 IFK=13THENBEEP:K$="":K=0:LOCATE27,8:PRINTSR$;" " 1230 OD$="a=p2"+AC$+"&v="+SR$:GOSUB730:SR$="" 1240 LOCATE28,10:PRINTL(0):LOCATE28,11:PRINTL(1):LOCATE28,12:PRINTL(2) 1250 K$=INKEY$:IFK$<>""THENK=ASC(K$) 1260 IF K=30THEN P=P-1:IF P<0THEN P=2 1270 IF K=31THEN P=P+1:IF P>2THEN P=0 1280 IF K=28THEN L(Y-10)=L(Y-10)+1:K=0:IFL(Y-10)>15 THEN L(Y-10)=0 1290 IF K=29THEN L(Y-10)=L(Y-10)-1:K=0:IFL(Y-10)<0 THEN L(Y-10)=15 1300 IF K=99ORK=67THENK=0:LOCATE27,8:PRINTSPACE$(10):LOCATE32,Y:PRINT" ":GOTO1180 1310 IF K=13THEN GOSUB1400:GOTO1350 1320 IF K>0 THEN LOCATE32,Y:PRINT " ":K=0:Y=10+P 1330 LOCATE 32,Y:PRINT "<->":COLORL(0),L(1):VDP(13)=L(0)*16+L(2) 1340 GOTO1240 1350 E=USR2(0):GOSUB380:GOSUB430:GOSUB460 1360 LOCATE14,21:PRINTSPACE$(11);:PRINT"Enter the name of ROM to search";:PRINTSPACE$(13);:LOCATE32,1:PRINT MR$:LOCATE40,22 1370 FORI=1TO10:KEY(I)ON:NEXT:POKE&HCA0E,LI:A=USR6(0):LI=0 1380 RETURN 1390 'save params 1400 OD$="a=p3"+AC$+"&v="+HEX$(L(0))+HEX$(L(1))+HEX$(VD)+HEX$(TU)+HEX$(LE)+HEX$(CC)+HEX$(L(2)):GOSUB730:RETURN 1410 E=USR2(0):GOSUB380:GOSUB430:GOSUB460 1420 LOCATE14,21:PRINTSPACE$(11);:PRINT"Enter the name of ROM to search";:PRINTSPACE$(13);:LOCATE32,1:PRINT MR$:LOCATE40,22 1430 FORI=1TO10:KEY(I)ON:NEXT:POKE&HCA0E,LI:A=USR6(0):LI=0:RETURN 1440 ' Check Update 1450 E=USR2(0):PH=1:FORI=1TO10:KEY(I)OFF:NEXT 1460 OD$="a=v2"+AC$+"&v="+VR$:GOSUB730:IF R$(0)<>VR$ THEN CH$="New Version is available : V"+R$(0):Y=12:GOSUB770:CH$=R$(1):Y=13:GOSUB770:CH$="http://msx.ebsoft.fr/gr8net/"+R$(3):Y=14:GOSUB770 ELSE RETURN 1470 CH$="Press F1 to Update now or press a key to continue":Y=14:GOSUB770:KEY(1)ON:ON KEY GOSUB1550 1480 K$="" 1490 K$=INKEY$:IFK$<>""THEN 1510 1500 GOTO 1490 1510 E=USR2(0):GOSUB380:GOSUB430:GOSUB460 1520 LOCATE14,21:PRINTSPACE$(11);:PRINT"Enter the name of ROM to search";:PRINTSPACE$(13);:LOCATE32,1:PRINTMR$:LOCATE40,22 1530 FORI=1TO10:KEY(I)ON:NEXT:POKE&HCA0E,LI:A=USR6(0):LI=0 1540 RETURN 1550 ' run Updater 1560 A$="http://msx.ebsoft.fr/gr8net/updater.bas":RUN"httpa:a$" 1570 ' End of program 9876543210