Projet VG5000µ

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Projet VG5000µ

Message par rendomizer »

J'ai pas réussi à comprendre ton code source Joaopa.Pourrais tu me donner l'adresse d'implantation et quelques explications ? Crois-tu que je peux utiliser setet ou seteg ?

Image

Et peut-être un galaxion pour VG5000µ !
Dernière modification par rendomizer le 17 août 2016 13:27, modifié 1 fois.
Je ne suis qu'un utilisateur pas un pro
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Projet VG5000µ

Message par joaopa »

D'après ta photo d'écran, ton jeu est bien avancé. Je ne vois pas en quoi je peux t'aider.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Projet VG5000µ

Message par rendomizer »

joaopa a écrit :[supp modo : quote inutile]
Non ça c'est juste une esquisse de mon projet dessiné avec paint !
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Projet VG5000µ

Message par rendomizer »

C'est peut être prétentieux pour le moment... :mrgreen: On a pas de pétrole mais des idées !
Je ne suis qu'un utilisateur pas un pro
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Projet VG5000µ

Message par joaopa »

On peut utiliser setet avec le mode quadrichrome. J'ai testé et ça marche
Image

Code : Tout sélectionner

    1         4A20          ORG 4A20H
    2 4A20  C3 4A49         JP  debut
    3                   
    4 4A23              config_ef9345:
    5 4A23  10 21 00 28     DB  16, 33,0,40,129 ;TGS
    6 4A28  21 7F 28 83     DB  33,127,40,131   ;PAT
    7 4A2C  21 00 28 82     DB  33,0,40,130 ;MAT
    8 4A30  21 23 28 84     DB  33,35,40,132;DOR
    9                   
   10 4A34              caractere:
   11 4A34  05 AF 05 AF     DB  05H, 0AFH, 05H, 0AFH, 05H, 0AFH, 05H, 0AFH, 05H, 0AFH
   12                   
   13 4A3E              ef9345:
   14 4A3E  C5              PUSH    BC
   15 4A3F  F5              PUSH    AF
   16 4A40  CD 0286         CALL    646
   17 4A43  CD 0D7C         CALL    3452
   18 4A46  F1              POP AF
   19 4A47  C1              POP BC
   20 4A48  C9              RET
   21                   
   22 4A49              debut:
   23 4A49  F3              DI
   24 4A4A  E5              PUSH    HL
   25 4A4B  DD E5           PUSH    IX
   26                   
   27 4A4D  21 4A23         LD  HL,config_ef9345
   28 4A50  CD 00AD         CALL    173
   29                       
   30 4A53  16 24           LD  D,36
   31 4A55  1E 20           LD  E,32
   32 4A57  CD 4A3E         CALL    ef9345
   33                       
   34 4A5A  3E 41           LD  A,65
   35 4A5C  21 4A34         LD  HL,caractere
   36 4A5F  CD 001B         CALL    1BH ;creation du caractere par setet
   37                       
   38 4A62  16 22           LD  D,34
   39 4A64  1E D8           LD  E,0D8H
   40 4A66  CD 4A3E         CALL    ef9345
   41                       
   42 4A69  16 23           LD  D,35
   43 4A6B  1E 9E           LD  E,9EH
   44 4A6D  CD 4A3E         CALL    ef9345
   45                       
   46 4A70  16 26           LD  D,38
   47 4A72  1E 00           LD  E,0
   48 4A74  CD 4A3E         CALL    ef9345
   49 4A77  CD 4A8E         CALL    remplit_ligne
   50                   
   51 4A7A  3E 08           LD  A,8
   52 4A7C              bcle_ligne:
   53 4A7C  F5              PUSH    AF
   54 4A7D  16 26           LD  D,38
   55 4A7F  5F              LD  E,A
   56 4A80  CD 4A3E         CALL    ef9345
   57 4A83  CD 4A8E         CALL    remplit_ligne
   58 4A86  F1              POP AF

Z80ASM SuperFast Relocating Macro Assembler     	    Z80ASM 1.30 Page   2
SETET   Z80

   59 4A87  3C              INC A
   60 4A88  FE 20           CP  32
   61 4A8A  20 F0           JR  NZ,bcle_ligne
   62                       
   63 4A8C              sans_fin:
   64 4A8C  18 FE           JR  sans_fin
   65                   
   66 4A8E              remplit_ligne:
   67 4A8E  AF              XOR A
   68 4A8F              bcle_remplit_ligne:
   69 4A8F  16 27           LD  D,39
   70 4A91  5F              LD  E,A
   71 4A92  CD 4A3E         CALL    ef9345
   72                   
   73 4A95  16 21           LD  D,33
   74 4A97  1E 41           LD  E,65
   75 4A99  CD 4A3E         CALL    ef9345
   76 4A9C  16 28           LD  D,40
   77 4A9E  1E 00           LD  E,0
   78 4AA0  CD 4A3E         CALL    ef9345
   79                   
   80 4AA3  3C              INC A
   81 4AA4  FE 28           CP  40
   82 4AA6  20 E7           JR  NZ,bcle_remplit_ligne
   83 4AA8  C9              RET
Dernière modification par joaopa le 18 août 2016 14:43, modifié 5 fois.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Projet VG5000µ

Message par rendomizer »

Super ! serait il possible d'avoir l'adresse de debut de ton programme pour moi svp ? Car je peux comprendre la lecture avec l'interface désassemblage dump patch mais pas le code source :roll:
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3053
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Projet VG5000µ

Message par Papy.G »

rendomizer a écrit :Et peut-être un galaxion pour VG5000µ !
Pour commencer à dessiner des sprites, gardes en tête que tu peux mélanger dans une page-écran 40 colonnes, voire au sein d'un "sprite", des caractères Q en double hauteur (4x5), des Q en normal (4x10), et des caractères alphabétiques ou graphiques (redéfinis ou non), en fonction des besoins et des contraintes acceptées.


Joaopa> Excellent si ça marche, mais peut-on changer la localisation des jeux redéfinis par SETET et SETEG pour programmer plus d'un ou deux jeux de caractères Quadrichromes?
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Projet VG5000µ

Message par joaopa »

C"est possible en rusant: Il faut soi-même définir la valeur du regsitre b et appeler la routine 0d8dH au lieu de la routine 01BH qui renvoie à l'adresse 0D85H.

Du coup, se pose la question si on peut faire ça en pur Basic avec un appel à la fonction SETET. Je pense que ce n'est pas possible, mais peut-être que quelqu'un a une idée luminuese pour le réaliser.
Daniel
Messages : 17417
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Projet VG5000µ

Message par Daniel »

Pas facile en Basic de modifier la valeur d'un registre... En appelant une instruction en langage machine on peut mettre une valeur dans B, mais elle sera aussitôt écrasée par la suite.

Un autre problème : je trouve très dangereux d'appeler des routines en ROM en codant l'adresse "en dur". Une nouvelle version de la ROM (par exemple pour intégrer un nouveau périphérique, ou ajouter le mode 80 colonnes) rendra le programme incompatible. Il est plus sain et plus simple de programmer directement en assembleur, au besoin en recopiant la routine de la ROM pour ne pas se fatiguer si elle fait ce qu'on souhaite. On maîtrise tout le processus et on ne dépend plus de la version de ROM.
Daniel
L'obstacle augmente mon ardeur.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Projet VG5000µ

Message par joaopa »

Je suis d'accord. Bien que 30 ans plus tard, je ne suis pas sûr que Philips fasse une mise à jour de la rom du VG5000 :mrgreen:

Dans mes programmes, j'utilise ma propre routine de création de caractères. Mais si on est juste niveau mémoire, il pourrait être utile d'utilser la routine en ROM.
Daniel
Messages : 17417
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Projet VG5000µ

Message par Daniel »

Philips ne mettra pas à jour la ROM du VG5000, mais Darren Atkinson peut le faire pour ajouter un lecteur de disquette (comme sur Alice), ou un autre bricoleur pour ajouter un lecteur de carte SD (comme sur MO5)...
Et c'est facile : la ROM du VG5000 est sur support, le fer à souder n'est pas nécessaire.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Projet VG5000µ

Message par rendomizer »

Excuse moi daniel je n'est pas les yeux en face des trous ! Je suis un boulet...J'avais pas vue que tu avais mi dans ton script les codes hexadecimal .Mais c'est compliqué quand même, moi qui suis encore a coder en hexa et en plus je ne suis pas familié avec le z80 !Aurait il été possible de pas tous faire en asm ? pour moi il m'aurai fallu une routine pour l'initialisation du mode quadrichrome et un retour sous basic pour le programme du jeux car la ça me parait fastidieux !
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Projet VG5000µ

Message par rendomizer »

tu as fait une erreur dans l'initialisation de l'EF9345, car je vois dans le script 14 au debut et il n'y a pas le 81 du tgs en hexa ?
Je ne suis qu'un utilisateur pas un pro
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Projet VG5000µ

Message par joaopa »

Il n'y a pas d'erreur. C'est juste que les assembleurs n'écrivent que 4 opcodes par ligne dans le listing d'assemblage,
Si tu préfères, on peut faire

Code : Tout sélectionner

    1         4A20          ORG 4A20H
    2 4A20  C3 4A49         JP  debut
    3                   
    4 4A23              config_ef9345:
    5 4A23  10              DB  16; longueur de l'initialisation
    6 4A24  21 00 28 81     DB  33,0,40,129 ;TGS
    7 4A28  21 7F 28 83     DB  33,127,40,131   ;PAT
    8 4A2C  21 00 28 82     DB  33,0,40,130 ;MAT
    9 4A30  21 23 28 84     DB  33,35,40,132;DOR
   10                   
   11 4A34              caractere:
   12 4A34  05 AF 05 AF     DB  05H, 0AFH, 05H, 0AFH
   13 4A38  05 AF 05 AF     DB  05H, 0AFH, 05H, 0AFH
   14 4A3C  05 AF           DB  05H, 0AFH
   15                   
   16 4A3E              ef9345:
   17 4A3E  C5              PUSH    BC
   18 4A3F  F5              PUSH    AF
   19 4A40  CD 0286         CALL    646
   20 4A43  CD 0D7C         CALL    3452
   21 4A46  F1              POP AF
   22 4A47  C1              POP BC
   23 4A48  C9              RET
   24                   
   25 4A49              debut:
   26 4A49  F3              DI
   27 4A4A  E5              PUSH    HL
   28 4A4B  DD E5           PUSH    IX
   29                   
   30 4A4D  21 4A23         LD  HL,config_ef9345
   31 4A50  CD 00AD         CALL    173
   32                       
   33 4A53  16 24           LD  D,36
   34 4A55  1E 20           LD  E,32
   35 4A57  CD 4A3E         CALL    ef9345
   36                       
   37 4A5A  3E 41           LD  A,65
   38 4A5C  21 4A34         LD  HL,caractere
   39 4A5F  CD 001B         CALL    1BH ;creation du caractere par setet
   40                       
   41 4A62  16 22           LD  D,34
   42 4A64  1E D8           LD  E,0D8H
   43 4A66  CD 4A3E         CALL    ef9345
   44                       
   45 4A69  16 23           LD  D,35
   46 4A6B  1E 9E           LD  E,9EH
   47 4A6D  CD 4A3E         CALL    ef9345
   48                       
   49 4A70  16 26           LD  D,38
   50 4A72  1E 00           LD  E,0
   51 4A74  CD 4A3E         CALL    ef9345
   52 4A77  CD 4A8E         CALL    remplit_ligne
   53                   
   54 4A7A  3E 08           LD  A,8
   55 4A7C              bcle_ligne:
   56 4A7C  F5              PUSH    AF
   57 4A7D  16 26           LD  D,38
   58 4A7F  5F              LD  E,A

Z80ASM SuperFast Relocating Macro Assembler     	    Z80ASM 1.30 Page   2
SETET   Z80

   59 4A80  CD 4A3E         CALL    ef9345
   60 4A83  CD 4A8E         CALL    remplit_ligne
   61 4A86  F1              POP AF
   62 4A87  3C              INC A
   63 4A88  FE 20           CP  32
   64 4A8A  20 F0           JR  NZ,bcle_ligne
   65                       
   66 4A8C              sans_fin:
   67 4A8C  18 FE           JR  sans_fin
   68                   
   69 4A8E              remplit_ligne:
   70 4A8E  AF              XOR A
   71 4A8F              bcle_remplit_ligne:
   72 4A8F  16 27           LD  D,39
   73 4A91  5F              LD  E,A
   74 4A92  CD 4A3E         CALL    ef9345
   75                   
   76 4A95  16 21           LD  D,33
   77 4A97  1E 41           LD  E,65
   78 4A99  CD 4A3E         CALL    ef9345
   79 4A9C  16 28           LD  D,40
   80 4A9E  1E 00           LD  E,0
   81 4AA0  CD 4A3E         CALL    ef9345
   82                   
   83 4AA3  3C              INC A
   84 4AA4  FE 28           CP  40
   85 4AA6  20 E7           JR  NZ,bcle_remplit_ligne
   86 4AA8  C9              RET
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Projet VG5000µ

Message par rendomizer »

mais oui suis-je bête, la longueur du tampon !
sais-tu ou ce trouve la mémoire des caractères redéfini ?
Je ne suis qu'un utilisateur pas un pro
Répondre