MSX Village forum

La Place des Développeurs Buffer Temporaire en RAM

ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5484

Le 19/03/2022 à 18h57
On a souvent besoin d'un buffer plus ou moins grand pour stocker des informations transitoires.
Pour tenter d'économiser de la RAM, et au lieu de créer un espace dédié dans la RAM généraliste, j'ai remarqué qu'un espace de 318 octets était dispo dans la zone mémoire haute, qu'on est pas censé utiliser...

La zone KBUFF en 0xF41F qui est une zone censée être utilisée par le BASIC


J'ai intégré ce buffer comme ceci

Code TEXT :
unsigned volatile char __at(0xF41F) FusionTemp[318]; 


Je me demande dans quelle mesure on peut utiliser ces 318 octets, sans soucis, dans le cadre d'un développement classique pour ROM ou pour DOS ?
Edité par ericb59 Le 19/03/2022 à 18h59


banniere-ericb59e
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1486

Le 19/03/2022 à 20h06
Les zones que l'on peut utiliser dans une ROM font l'objet de nombreuses discussions et polémiques. Il y a les rigoureux, qui disent que puisque ce sont des zone BIOS, on ne doit pas y toucher. Puis les autres (comme toi et moi), qui considèrent que ces zones ne servent à rien dans le cadre d'une ROM (aucun passage par le BASIC), et que l'on peut donc les utiliser.

Il y a aussi 384 octets de libres en $F975, qui sont normalement utilisés par l'instruction PLAY.
Et même 448 octets si on ajoute la zone buffer de 64 octets pour RS-232 qui est juste après.




MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2698

Le 19/03/2022 à 21h12
Personnellement j'ai opté pour approche du tout ou rien :
- Dans les ROM avec remplacement de la page 0 (ISR perso et aucune utilisation du BIOS), je m'autorise à utiliser toute la RAM jusqu'à FFFEh.
- Dans les ROM ou je laisse la page 0 sur le BIOS, je ne touche pas du tout à la zone réservée pour les variables systèmes (pour être compatible avec tous les BIOS passés ou à venir).

Après, j'ai très rarement des problèmes de place en RAM.
Pour FinalSmash, j'utilise tellement peu de RAM que j'ai finalement ajouté une option 8K pour que le jeu soit jouable sur 100% des MSX1.


On est toujours ignorant avant de savoir.
Github    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5484

Le 19/03/2022 à 21h54
@metalion
Ok c’est bon à savoir pour les 2 autres zones que l’on peut utiliser.

On est d’accord que même sous DOS ces zones ne sont pas utilisées non plus ?


banniere-ericb59e
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie