bug (limite?) du VG5000

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

Modérateurs : Carl, Papy.G, fneck

Répondre
joaopa
Messages : 400
Enregistré le : 14 sept. 2013 12:17

bug (limite?) du VG5000

Message par joaopa » 13 sept. 2014 20:46

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 du membre
Carl
Modérateur
Messages : 10257
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: bug (limite?) du VG5000

Message par Carl » 13 sept. 2014 21:09

Ta théorie est juste !
Mais pourquoi redéfinir 2 fois le même caractère ?
Carl

joaopa
Messages : 400
Enregistré le : 14 sept. 2013 12:17

Re: bug (limite?) du VG5000

Message par joaopa » 13 sept. 2014 21:16

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 du membre
Carl
Modérateur
Messages : 10257
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: bug (limite?) du VG5000

Message par Carl » 13 sept. 2014 21:24

et si tu utilises SETEG et SETET ?

Markerror
Messages : 1350
Enregistré le : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: bug (limite?) du VG5000

Message par Markerror » 13 sept. 2014 21:53

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