Projet VG5000µ
Modérateurs : Papy.G, fneck, Carl
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
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 ?
Et peut-être un galaxion pour VG5000µ !
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
Re: Projet VG5000µ
D'après ta photo d'écran, ton jeu est bien avancé. Je ne vois pas en quoi je peux t'aider.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
Non ça c'est juste une esquisse de mon projet dessiné avec paint !joaopa a écrit :[supp modo : quote inutile]
Je ne suis qu'un utilisateur pas un pro
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
C'est peut être prétentieux pour le moment... On a pas de pétrole mais des idées !
Je ne suis qu'un utilisateur pas un pro
Re: Projet VG5000µ
On peut utiliser setet avec le mode quadrichrome. J'ai testé et ça marche
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.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
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
Je ne suis qu'un utilisateur pas un pro
- Papy.G
- Modérateur
- Messages : 3053
- Inscription : 10 juin 2014 13:40
- Localisation : Haute-Garonne/Gers
Re: Projet 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.rendomizer a écrit :Et peut-être un galaxion pour VG5000µ !
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.
Demandez-en plus, ou faites-le vous-même.
Re: Projet VG5000µ
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.
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.
Re: Projet VG5000µ
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.
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.
L'obstacle augmente mon ardeur.
Re: Projet VG5000µ
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
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.
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.
Re: Projet VG5000µ
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.
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.
L'obstacle augmente mon ardeur.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
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
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
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
Re: Projet VG5000µ
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
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
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Projet VG5000µ
mais oui suis-je bête, la longueur du tampon !
sais-tu ou ce trouve la mémoire des caractères redéfini ?
sais-tu ou ce trouve la mémoire des caractères redéfini ?
Je ne suis qu'un utilisateur pas un pro