bug (limite?) du 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

joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

bug (limite?) du VG5000

Message 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.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13290
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: bug (limite?) du VG5000

Message par Carl »

Ta théorie est juste !
Mais pourquoi redéfinir 2 fois le même caractère ?
Carl
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: bug (limite?) du VG5000

Message 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
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13290
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: bug (limite?) du VG5000

Message par Carl »

et si tu utilises SETEG et SETET ?
Markerror
Messages : 2123
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: bug (limite?) du VG5000

Message 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.
Répondre