astuce pour le mode multicolor du VG5000

Pour les fans du micro de Philips, ils existent! on vous l'assure :)

Modérateur : Politburo

Répondre
rendomizer
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 12
Inscription : 22 juil. 2016 09:35

astuce pour le mode multicolor du VG5000

Message par rendomizer » 07 nov. 2016 18:02

Image

voici le code pour réaliser ce sprite:
vous pouvez tester le code en le chargeant dans l'emulateur. Allez dans fichier et restaurer état.
https://www.dropbox.com/s/kwinaerbdz3cp ... e.mrx?dl=0

Code : Tout sélectionner

0 SETET 65,"FFFFFFFFFF3F8FA3A82A"
1 SETET 66,"F7D7D14155D4D3D0D313"
2 SETET 67,"DFD747415517C707C7C4"
3 SETET 68,"FFFFFFFFFFFCF2CA2CA8"
4 SETET 69,"CAC0F3F3CFCFCFCFF3FF"
5 SETET 70,"830F3F3F3F3FCFFFFFFF"
6 SETET 71,"C2F0FCFCFCFCF3FFFFFF"
7 SETET 72,"A303CFCFF3F3F3F3CFFF"
8 SETET 73,"FFFFFFFFFFFFFFFFFFFF"
10 CLEAR 200:A=&"7000"
20 REM MACHINE CODE
21 P$="220E70211470CDEF022A0E70C9000000000000202100288121062882216728832113288400000000214122D8236626082727280000"
30 REM EXE BASIC
31 FORI=1TOLEN(P$)STEP2
32 POKEA,N:A=A+1
90 REM HEX TO DEC
91 N1=ASC(MID$(P$,I,1))-48
92 IF N1>9 THEN N1=N1-7
93 N2=ASC(MID$(P$,I+1,1))-48
94 IF N2>9 THEN N2=N2-7
95 N=16*N1+N2
96 NEXT I
98 FORX=0TO39:IFY>0ANDY<8THENY=8
99 CALL&"7000"
104 POKE&"702A",73:POKE&"7030",Y
105 POKE&"7032",X:NEXTX:Y=Y+1:IFY>31THENY=0
110 IFY<31THENGOTO 98
120 DIM A(20):DIM B(20):DIM C(20)
130 DATA 73,12,20,73,12,21,73,12,22,73,12,23
200 DATA 73,13,19,65,13,20,66,13,21,67,13,22,68,13,23,73,13,24
201 DATA 73,14,19,69,14,20,70,14,21,71,14,22,72,14,23,73,14,24
203 DATA 73,15,20,73,15,21,73,15,22,73,15,23
205 X=0:Y=0
210 FORI=1TO20:READ A(I),B(I),C(I)
230 POKE&"702A",A(I)
232 POKE&"7030",B(I)+Y
234 POKE&"7032",C(I)+X
235 CALL&"7000"
300 NEXTI
310 IFKEY(0)=7THENX=X+1
311 IFKEY(0)=8THENX=X-1
312 IFKEY(0)=9THENY=Y-1
313 IFKEY(0)=10THENY=Y+1
314 IFX<-19THENX=-19
315 IFX>16THENX=16
316 IFY<-5THENY=-5
317 IFY>14THENY=14
320 RESTORE
330 GOTO 210

rendomizer
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 12
Inscription : 22 juil. 2016 09:35

Re: astuce pour le mode multicolor du VG5000

Message par rendomizer » 09 nov. 2016 10:33

comment communiquer avec l 'EF9345.
procedure à suivre:
utilisez la routine à l'adresse $00AD
il faut indiquer a cette routine combien d'octets on va y écrire.ici 4 octets.
par exemple pour dire au circuit video qu'il faut mettre les bords de l'écran en vert il faut appeler le circuit avec le nombre 21 ensuite on met le nombre 2 qui est le vert apres on designe l'adresse de couleur de bordures avec le nombre 82 apres on execute avec 28.
voici ce que l'EF9345 reçoit dans cette routine : 04,20,82,29,02
peut s'écrire aussi :
04,21,02,28,82
Et voila comment ça ce presente au finale :

Code : Tout sélectionner

10 CLEAR 200:A=&"7000"
20 REM MACHINE CODE
21 P$="000000211170CDAD00C30070000000000420822902000000000000000000000000000000000000000000000000"
30 REM EXE BASIC
31 FORI=1TOLEN(P$)STEP2
32 POKEA,N:A=A+1
90 REM HEX TO DEC
91 N1=ASC(MID$(P$,I,1))-48
92 IF N1>9 THEN N1=N1-7
93 N2=ASC(MID$(P$,I+1,1))-48
94 IF N2>9 THEN N2=N2-7
95 N=16*N1+N2
99 NEXT I:Y=8
102 CALL 28672
le 21 signifie en langage machine "charge H et l avec les deux octets qui suivent soit: 11 et 70 qui sont le debut de la routine a envoyer a l'EF9345 .
11 et 70 en decimal represente l'adresse 28689 ! vous n'avez qu'a conter apres le p$" les deux premiers nombres soit zero est l'adresse du call 28672 et on arrive a la routine à injecter dans l'EF9345 en contant deux par deux -2 !
ensuite il y a un CD qui veut dire appeler le programme situé dans les deuc octets suivant soit AD00.Tiens c'est notre routine pour communiquer avec l'EF9345 !

Avatar de l’utilisateur
Metalion
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 156
Inscription : 18 févr. 2008 14:46
Localisation : Belgique & Nord

Re: astuce pour le mode multicolor du VG5000

Message par Metalion » 09 nov. 2016 12:09

rendomizer a écrit :le 21 signifie en langage machine "charge H et l avec les deux octets qui suivent soit: 11 et 70 qui sont le debut de la routine a envoyer a l'EF9345 .
11 et 70 en decimal represente l'adresse 28689 ! vous n'avez qu'a conter apres le p$" les deux premiers nombres soit zero est l'adresse du call 28672 et on arrive a la routine à injecter dans l'EF9345 en contant deux par deux -2 !
ensuite il y a un CD qui veut dire appeler le programme situé dans les deuc octets suivant soit AD00.Tiens c'est notre routine pour communiquer avec l'EF9345 !
Donc, en clair, ton programme en assembleur c'est :

Code : Tout sélectionner

ld      hl,data
call    00ADh
jp      7000h
data:
db     04h,20h,82h,29h,02h
Quelques questions toutefois :
- pourquoi les 3 octets vides en début de routine ?
- pourquoi un retour au début de la routine à la fin de celle-ci ? Pour créer une boucle sans fin ?
Daewoo DPC-200 (MSX1)
Sony HB-F9P (MSX2)
Panasonic FS-A1WX (MSX2+)

rendomizer
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 12
Inscription : 22 juil. 2016 09:35

Re: astuce pour le mode multicolor du VG5000

Message par rendomizer » 09 nov. 2016 13:46

pourquoi des octets vides ? juste pour y voir claire et sinon oui il y a une boucle sans fin qui n'est pas obligatoire.

Répondre

Revenir vers « Philips VG-5000 »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités