Projet VG5000µ
Modérateurs : Papy.G, fneck, Carl
Re: Projet VG5000µ
Le fichier k7 est vide, et nous ne désassemblons pas de tête le code Z80 en hexadécimal. Alors, pour nous éviter de retaper le programme Basic et désassembler le code qu'il contient, il vaudrait mieux donner les sources en assembleur. Ou, au pire, le listing Basic en mode texte.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
il est vide, tiens ? Je vous l'envoie en mrx et en k7 !
- Pièces jointes
-
- multicolor2.rar
- (427 octets) Téléchargé 118 fois
-
- multicolormrx.rar
- (12.37 Kio) Téléchargé 115 fois
Re: Projet VG5000µ
Pour ceux qui ne lisent pas le code machine en hexadécimal, voici le programme désassemblé :
La routine en 02EFh envoie à l'EF9345 la séquence de 24h octets commençant en 7011h :
L'EF9345 est un circuit complexe, il y a plus de dix ans que je ne l'ai pas pratiqué et j'ai tout oublié.
Je laisse les spécialistes analyser la séquence des octets envoyés.
Code : Tout sélectionner
7000 211070 LD HL,7010H
7003 CDEF02 CALL 02EFH
7006 18FE JR -02H
----------------------------------------------------------------------
7000 21 10 70 cd ef 02 18 fe 00 00 00 00 00 00 00 00 !.p.............
7010 24 20 81 29 00 20 82 29 0e 20 83 29 67 20 84 29 $ .). .). .)g .)
7020 93 20 87 29 08 21 41 22 c1 23 24 00 25 00 14 26 . .).!A".#$.%..&
7030 00 27 27 28 00 .''(.
----------------------------------------------------------------------
Code : Tout sélectionner
-----------------------------------
Envoi sequence de commandes EF9345
-----------------------------------
02ef 46 ld b,(hl) 1er octet = longueur de la sequence
02f0 23 inc hl hl pointe le premier octet de la sequence
02f1 cd8602 call 0286h <--- attente EF9345 pret
02f4 0e8f ld c,8fh |
02f6 eda3 outi | adresse
02f8 0ecf ld c,0cfh |
02fa eda3 outi | données
02fc 20f3 jr nz,02f1h -
02fe c9 ret
Je laisse les spécialistes analyser la séquence des octets envoyés.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
Voici la séquence pour le mode quadrichrome ( 4couleurs ) par caractere
Je ne suis qu'un utilisateur pas un pro
- Papy.G
- Modérateur
- Messages : 3054
- Inscription : 10 juin 2014 13:40
- Localisation : Haute-Garonne/Gers
Re: Projet VG5000µ
Je n'ai que survolé le code, mais quelque chose m'échappe: Tu dois charger les dix octets/lignes (ou cinq en double hauteur) définissant le caractère que tu veux afficher, je ne les vois pas dans ton code.
J'aimerais beaucoup t'aider, car la manip que tu cherches à faire me passionne, malheureusement, je cours un peu en ce moment.
Avec DOR=93, il faut être sûr que les 8kO de VRAM soient dupliqués dans la partie haute de l'adressage, sinon, tu vas pointer dans le vide, 13 serait peut-être plus sage.
J'aimerais beaucoup t'aider, car la manip que tu cherches à faire me passionne, malheureusement, je cours un peu en ce moment.
Avec DOR=93, il faut être sûr que les 8kO de VRAM soient dupliqués dans la partie haute de l'adressage, sinon, tu vas pointer dans le vide, 13 serait peut-être plus sage.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Demandez-en plus, ou faites-le vous-même.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
Tu le redéfini simplement par setet car pour le faire avec la séquence ça me parait trop chiant...Sinon pourquoi DOR = 93, car le bit 8 est le mode quadrichrome. Ainsi le setet se défini comme ce qui suit pour coder les 4 couleurs.Les pixels sont deux fois plus long et oui car codé sur 2bit ! Ainsi pour voir les 4 couleurs différents il faut les organiser par deux ce qui donne 4 possibilités sur 1 octet ! mon setet est comme suit: setet 65,"186F6DB4D1471E79F924", le caractère au lieu de comporter 8x10 pixels il doit en comporter plus que 4x10.Un test sur le VG5000µ serait un plus car l'émulateur n'affiche qu'un caractère plein...à tester donc.Photo d'écran a l'appui si résulta positif.Papy.G a écrit :Je n'ai que survolé le code, mais quelque chose m'échappe: Tu dois charger les dix octets/lignes (ou cinq en double hauteur) définissant le caractère que tu veux afficher, je ne les vois pas dans ton code.
Je ne suis qu'un utilisateur pas un pro
Re: Projet VG5000µ
Je vois l'erreur, mais tant que je n'ai pas le code source Z80 (comme dejà demandé 10 fois, sans compté les demandes de Daniel), je la garde pour moi.
Re: Projet VG5000µ
L'instruction SETET du Basic VG5000 ne permet pas de définir un caractère quadrichrome.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- Carl
- Modérateur
- Messages : 13297
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: Projet VG5000µ
En effet SETET comme SETEG ne permettent pas cela....
Je prends le sujet en cours....de quelle source parlons nous ?
Carl
Je prends le sujet en cours....de quelle source parlons nous ?
Carl
Re: Projet VG5000µ
Carl, l'auteur du fil a la mauvaise habitude d'envoyer tous ses listings en hexa. On demande le code source en mnemonic, mais on ne les reçoit jamais.
Re: Projet VG5000µ
Non seulement les programmes postés sont en Basic avec le langage machine en hexadécimal, malgré nos demandes des sources en assembleur, mais en plus ce sont des images JPEG. Il est impossible d'en extraire le texte. Il faudrait tout retaper à la main, comme avec Hebdogiciel. C'est totalement décourageant pour ceux qui veulent aider.
Tous les développeurs savent que l'EF9345 est complexe, plein de subtilités et d'astuces. Nous avons passé des heures à décortiquer la documentation et à faire des essais pour essayer de le comprendre. Ce n'est pas facile, et le moindre petit détail incompris conduit inexorablement à l'échec. C'est en analysant les programmes existants et en adaptant leur code que l'on peut progresser le plus rapidement. Salut l'Artiste et La Moto Infernale, en particulier, sont de bonnes bases de départ.
Tous les développeurs savent que l'EF9345 est complexe, plein de subtilités et d'astuces. Nous avons passé des heures à décortiquer la documentation et à faire des essais pour essayer de le comprendre. Ce n'est pas facile, et le moindre petit détail incompris conduit inexorablement à l'échec. C'est en analysant les programmes existants et en adaptant leur code que l'on peut progresser le plus rapidement. Salut l'Artiste et La Moto Infernale, en particulier, sont de bonnes bases de départ.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
Je vais faire un effort de les rendre plus lisible en assembleur !joaopa a écrit :Carl, l'auteur du fil a la mauvaise habitude d'envoyer tous ses listings en hexa. On demande le code source en mnemonic, mais on ne les reçoit jamais.
Je ne suis qu'un utilisateur pas un pro
- Carl
- Modérateur
- Messages : 13297
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: Projet VG5000µ
Tu peux utiliser LLIST pour copier le listing basic vers un fichier TXT depuis l'émulateur de Daniel.
Carl
Carl
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
Carl a écrit :[supp modo : quote inutile]
Code : Tout sélectionner
0 SETET 65,"186F6DB4D1471E79F924"
10 CLEAR 200:A=&"7000"
20 REM MACHINE CODE
21 P$="211070CDEF0218FE000000000000000020208129002082290E208329672084299320872908214122C12324260027272800"
30 REM EXE BASIC
31 FORI=1TOLEN(P$)STEP2
32 GOSUB 91:POKEA,N:A=A+1
33 NEXT I:CALL &"7000":END
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:RETURN
Merci Carl !
Je ne suis qu'un utilisateur pas un pro
Re: Projet VG5000µ
On n'a toujours pas les mnemonics Z80.
Page 138 du livre Astuces pour l'Alice.
Page 138 du livre Astuces pour l'Alice.