Page 1 sur 1

bug (limite?) du VG5000

Publié : 13 sept. 2014 20:46
par joaopa
Pour commencer, je précise que je n'ai pas testé sur un vrai VG5000. Si quelqu'un pouvait le faire, ca serait bien

Code : Tout sélectionner

10 SETEG 65,"F0F0F0F0F0F0F0F0F0F0"
20 EG 2,6,0:PRINT"A"
30 SETEG 65,"FFFFFFFFFFFFFFFFFFFF"
40 EG 1,6,0:PRINT"A"
Au lieu d'afficher deux caractères, seul la dernière définition est prise en compte.
Ma théorie: on ne peut pas redéfinir deux fois le même caractère sur l'EF9345. Seule reste la dernière définition.

Re: bug (limite?) du VG5000

Publié : 13 sept. 2014 21:09
par Carl
Ta théorie est juste !
Mais pourquoi redéfinir 2 fois le même caractère ?
Carl

Re: bug (limite?) du VG5000

Publié : 13 sept. 2014 21:16
par joaopa
Pour faire une page de présentation dans un loader, on utilise tous les caractères redéfinisables. J'aurai voulu afficher la présentation et après réenregistrer des nouveaux caractères pour utiliser dans le deuxième programme. En effet, je perd près d'1Ko pour définir mes pièces dans le second programme. Comme je suis juste côte mémoire, j'aurai voulu sauvegarder ce Ko en les définissant avant

Re: bug (limite?) du VG5000

Publié : 13 sept. 2014 21:24
par Carl
et si tu utilises SETEG et SETET ?

Re: bug (limite?) du VG5000

Publié : 13 sept. 2014 21:53
par Markerror
Désolé pour le bouffage de caractères, c'est vrai que je n'en ai pas laissé un seul de libre sur la page d'intro :-).

Les caractères sont stockées dans la ram de l'EF9345. Si tu redéfinis un caractère, son ancienne matrice est forcément remplacée dans la mémoire par ta nouvelle définition. Si tu rajoutes une ligne 21 FOR I=1 TO 10000:NEXTI, tu verras bien que le premier SETEG redéfinit bien le caractère "A". Quand tu changes la définition du caractère en 30, le "A" déjà affiché est naturellement rafraîchi avec la nouvelle "forme" du caractère.

Par rapport à ta problématique de mémoire, ton salut se situerait plutôt dans un programme qui compacte le code binaire. Ca libèrerait de l'espace mémoire que tu pourrais consacrer temporairement au stockage et à la définition des caractères redéfinis avant de décompacter ton code.
Accessoirement, cela permettrait aussi de laisser la page de présentation pendant tout le chargement du programme principal.

Sur Z80, il y a pas mal de librairies utilisables. Pour ma part, je me sers de Bitbusters (qui vient du monde MSX). C'est pas la plus performante (quoique déjà respectable), mais la routine de décompression présente l'avantage d'être très rapide.
La librairie la plus performante actuellement est je crois Exomizer. Il est utilisé par CngSoft pour ses cracks CPC.