Il faut alors utiliser la ram du VG5000 pour office de vram de l'EF9345?Papy.G a écrit : ↑03 avr. 2020 12:05
Je n'invente rien, c'est dans la datasheet du composant, mais c'est possible avec 16ko de VRam, avec 8ko, cette possibilité est rognée par l'espace pris par la page-écran (de 1 à 3ko maximum selon les modes), et celui pris par les autres jeux de caractères personnalisables, sans ces derniers, on peut envisager de remplir un écran (sans la ligne d'état) de tuiles uniques en mode double-hauteur (5x2x100=1000).
[VG5000µ] sprites multicolores pour le BASIC et l'assembleur
Modérateurs : Papy.G, fneck, Carl
Re: [VG5000µ] sprites multicolores pour le BASIC
- Carl
- Modérateur
- Messages : 13290
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: [VG5000µ] sprites multicolores pour le BASIC
en recâblant l' EFI9345 avec 16Ko de ram ?
Re: [VG5000µ] sprites multicolores pour le BASIC
J'y ai pensé. Mais je ne veux pas toucher à mon VG5000. Je demande à PapyG s'il existe une solution purement logicielle avec le VG5000 pour adresser plus de 4 jeux quadrichromes.
- Papy.G
- Modérateur
- Messages : 3052
- Inscription : 10 juin 2014 13:40
- Localisation : Haute-Garonne/Gers
Re: [VG5000µ] sprites multicolores pour le BASIC
Non, ce n'est ni possible, ni nécessaire.
Non plus.
Et cela pourrait éventuellement poser des problèmes avec certains programmes (si le 9345 voit deux fois les 8ko dans son espace d'adressage et que des programmes en tirent parti).
Rien n'indique dans le manuel qu'il n'est pas possible d'adresser plus de 4 jeux quadrichromes, en fait, on peut utiliser autant de jeux que de 'blocs' disponibles, car chaque caractère a ses attributs propres qui vont jusqu'à sélectionner dans quel jeu il est pioché, et donc, si cinq, ou six blocs sont libres, on peut utiliser cinq ou six jeux quadrichromes.
Peut-être même qu'en utilisant que 12 lignes dans l'espace d'affichage principal (en doublant la hauteur des lignes sur tout l'écran, au lieu de doubler la hauteur des caractères individuellement), on peut utiliser l'autre moitié des blocs inutilisés, au prix de l'impossibilité de faire du scrolling vertical avec le mode "rouleau", ou, en longueur variable, si tous les caractères d'une ligne partagent les mêmes attributs, on pourrait utiliser le reste du bloc des attributs pour stocker des caractères supplémentaires. Ce ne sont que des hypothèses extrêmes, mais on n'est déjà pas au bout de ce qui peut être fait pour en arriver là, et le sacrifice des possibilités nécessaire ne le vaudrait peut-être pas.
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: [VG5000µ] sprites multicolores pour l'assembleur
Je me suis encore trompé de fichier merde désolé les gars.
cload "v13 generateur" puis for i= 26670 to 26670+10: poke i,0: next i puis call 20480
cload "v13 generateur" puis for i= 26670 to 26670+10: poke i,0: next i puis call 20480
Code : Tout sélectionner
Vous implantez les codes caractères des sprites qui sont construits à partir de 26670 jusqu'à 26670+(12*80). ex: sprite 1 off codes caractères correspondants sont le 32,33, 34,35, 36,37, 38,39 ex: sprite 2 off codes caractères correspondants sont le 40,41, 42,43, 44,45, 46,47 et vous les pokez à partir de l'adresse 29220 jusqu'à 29220+2590. Les adresses pairent pour le code caractère et impair pour la couleur .
************************************************************************************************************************
Voici les adresses des commandes des sprites
************************************************************************************************************************
construction des sprites en -----call $5E88 à ne faire qu'une seule fois.
adresse du programme en----------call $5Eaa
adresse des sprites:
la couleur est fournit par l'éditeur le sprites maker lors de l'enregistrement de vos créations.
Pour les collisions il faut prendre le coin superieur gauche du sprite.
sprite 1 adresse 26576 sur 1 on sur 0 off
sprite 2 adresse 26577 sur 1 on sur 0 off
sprite 3 adresse 26578 sur 1 on sur 0 off
sprite 4 adresse 26579 sur 1 on sur 0 off
sprite 5 adresse 26580 sur 1 on sur 0 off
sprite 6 adresse 26581 sur 1 on sur 0 off
sprite 7 adresse 26582 sur 1 on sur 0 off
sprite 8 adresse 26583 sur 1 on sur 0 off
sprite 9 adresse 26584 sur 1 on sur 0 off
sprite 10 adresse 26585 sur 1 on sur 0 off
sprite 11 adresse 26586 sur 1 on sur 0 off
sprite 12 adresse 26587 sur 1 on sur 0 off
color sprite 1 adresse 26588
color sprite 1 adresse 26589
color sprite 1 adresse 26590
color sprite 1 adresse 26591
color sprite 1 adresse 26592
color sprite 1 adresse 26593
color sprite 1 adresse 26594
color sprite 1 adresse 26595
color sprite 1 adresse 26596
color sprite 1 adresse 26597
color sprite 1 adresse 26598
color sprite 1 adresse 26599
position x adresse 26600 sprite 1
position y adresse 26601 sprite 1
position x adresse 26602 sprite 2
position y adresse 26603 sprite 2
position x adresse 26604 sprite 3
position y adresse 26605 sprite 3
position x adresse 26606 sprite 4
position y adresse 26607 sprite 4
position x adresse 26608 sprite 5
position y adresse 26609 sprite 5
position x adresse 26610 sprite 6
position y adresse 26611 sprite 6
position x adresse 26612 sprite 7
position y adresse 26613 sprite 7
position x adresse 26614 sprite 8
position y adresse 26615 sprite 8
position x adresse 26616 sprite 9
position y adresse 26617 sprite 9
position x adresse 26618 sprite 10
position y adresse 26619 sprite 10
position x adresse 26620 sprite 11
position y adresse 26621 sprite 11
position x adresse 26622sprite 12
position y adresse 26623sprite 12
Caractères alphanumériques ex pour afficher un " A " il faut le code caractere 65, "B " 66...
pour afficher un zero code caractere 48 et pour afficher un " 1 " code caractere 49
couleur de caractere adresse 26624
code caractere adresse 26625
position x (0 39) adresse 26626
position y (5 31) adresse 26627
mode multicolor adresse 26628 = code $d8 hex / mono standare alphanumerique adresse 26628 =0
La couleur du caractere est comme suit:
8*16=128+couleur(0 à 7) pour un fond noir
8*18=144+couleur(0 à 7) pour un fond rouge
8*20=160+couleur(0 à 7) pour un fond vert
8*22=176+couleur(0 à 7) pour un fond jaune
8*24=192+couleur(0 à 7) pour un fond bleu
8*26=208+couleur(0 à 7) pour un fond violet
8*28=224+couleur(0 à 7) pour un fond cyan
8*30=240+couleur(0 à 7) pour un fond blanc
Dernière modification par rendomizer le 23 août 2022 17:35, modifié 1 fois.
Je ne suis qu'un utilisateur pas un pro
Re: [VG5000µ] sprites multicolores pour le BASIC
@PapyG Quelles valeurs mets-tu dans les registres pour obtenir les jeux de caractères qui ne sont pas prévus être quadrichromes?
@Rendomizer Pourquoi ne mets-tu pas les instructions après le CLOAD dans le programme qui les lancerait automatiquement. Personnellement, je n'ai pas envie de taper ces Instructions supplémentaires pour faire tourner ton programme.
@Rendomizer Pourquoi ne mets-tu pas les instructions après le CLOAD dans le programme qui les lancerait automatiquement. Personnellement, je n'ai pas envie de taper ces Instructions supplémentaires pour faire tourner ton programme.
Re: [VG5000µ] sprites multicolores pour le BASIC
@Rendomizer: le code source est illisible puisqu'il n'y a pas les adresses des étiquettes. Place des directives ORG.
Pour ton programme encore un effort!!
Tu peux t'arranger pour que l'utilisateur n'ait même pas à entrer le call 20480. Ton programme doit s'exécuter automatiquement.
quelque chose comme:
10 call 20480
puis tu assembles le binaire de
ORG 5000H
debut_du programme:
push ix
push hl
.
.
.
listing du programme assembleur
.
.
.
fin_du_programme:
pop hl
pop ix
ret
END:
Sous dcvg 5K, tu charges la partie assembleur à l'adresse &5000H
et tu sauves ton programme avec
Csavem"myprog",&"49FB",taille du programme, 10
Pour calculer la taille de ton programme:
Adresse de END-&49FB+1
Et là, ton utilisateur est tranquille. Il n'a rien à faire. Ton programme se lancera automatiquement.
Pour ton programme encore un effort!!
Tu peux t'arranger pour que l'utilisateur n'ait même pas à entrer le call 20480. Ton programme doit s'exécuter automatiquement.
quelque chose comme:
10 call 20480
puis tu assembles le binaire de
ORG 5000H
debut_du programme:
push ix
push hl
.
.
.
listing du programme assembleur
.
.
.
fin_du_programme:
pop hl
pop ix
ret
END:
Sous dcvg 5K, tu charges la partie assembleur à l'adresse &5000H
et tu sauves ton programme avec
Csavem"myprog",&"49FB",taille du programme, 10
Pour calculer la taille de ton programme:
Adresse de END-&49FB+1
Et là, ton utilisateur est tranquille. Il n'a rien à faire. Ton programme se lancera automatiquement.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: [VG5000µ] sprites multicolores pour le BASIC
merci Joaopa
Je ne suis qu'un utilisateur pas un pro
Re: [VG5000µ] sprites multicolores pour le BASIC
Une petite optimisation tant que j'y suis:
fais commencer ton programme binaire à &4A20H
Comme ça le temps de chargement sera moins long.
fais commencer ton programme binaire à &4A20H
Comme ça le temps de chargement sera moins long.
- Papy.G
- Modérateur
- Messages : 3052
- Inscription : 10 juin 2014 13:40
- Localisation : Haute-Garonne/Gers
Re: [VG5000µ] sprites multicolores pour le BASIC
Rien de particulier dans les registres, à la rigueur dans DOR, le bit 7 doit être à 0, que les Quadrichromes soient adressés en mémoire basse, mais il y a des chances que ça n'ait pas d'importance comme on ne dispose que de 8ko.
Il faut juste que l'affichage soit en 40 colonnes, et en 24 bits ou 8/24 variable (compressé), avec la commande KRF (ou KRV), dans l'octet d'attributs B, il faut que les bits 7 et 6 soient à 1, et les bits 5 à 3 sélectionnent le bloc où vont être prises les données composant la "tuile", donc le jeu Quadrichrome, à l'adresse correspondant au code ASCII indiquée dans l'octet C, le bit 2 indique si l'on prend la partie paire ou impaire du caractère (en cas de double hauteur), indiquée, elle, par l'état du bit 1.
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: [VG5000µ] sprites multicolores pour le BASIC
Aillé c'est fait. Bonne demos !
Dernière modification par rendomizer le 23 août 2022 17:36, modifié 1 fois.
Je ne suis qu'un utilisateur pas un pro
Re: [VG5000µ] sprites multicolores pour le BASIC
@PapyG: On va tester ça pendant le confinement
@Rendomizer: Super: testé et approuvé.
@Rendomizer: Super: testé et approuvé.