La Place des Développeurs Comment détecter le type de VDP ?
TurboSEB
Membre non connecté
Conseiller Municipal
Reprise du message précédent
Mis à part sur des modèles exotique :Les MSX1 ont 16ko de VRAM
Les MSX2 ont 128ko de VRAM
Les MSX2+ ont 128kp de VRAM
Les TurboR ont 128ko de VRAM
A partir du MSX2+ , il y a un reset software au boot qui efface la mémoire VRAM.
Mais il y a des exceptions,les fameuses machines exotiques, donc rares, genre :
un MSX 1 avec 128ko de VRAM,
Des MSX2 avec 64ko de VRAM, VG8230 et VG8240, très rares
Je crois un MSX2 avec 192ko de VRAM en natif mais je ne me souviens plus et je n'en suis pas sûre. Il y a des machines modifiés en 192ko de VRAM mais aucun programme ne les exploitent.
Donc a mon avis la solution revient surtout a détecté si tu a affaire a des MSX1 ou des MSX2 qui ont a 99% du parc des machines 16ko et 128ko de VRAM.
Je me souviens sur mon 700 par exemple en Screen 5 (4 pages) ou en Screen 8 (2 pages) des rémanences de données en VRAM sauf sur la page 0 qui était utilisé au boot donc rafraîchi.
Donc en résumé : effacer la VRAM :
Sur 2+ et TurboR, inutile
Sur les 1 et 2, utile, donc il suffit de détecté si onr affaire a un Msx1 ou un Msx2
Comme la page 0 est a priori vierge au démarrage, pourquoi ne pas la recopier sur toutes les autres pages.
Je peu me tromper, Jipe pourra corriger mes propos
J'ai trouvé qque info sur cette discussion : https://www.msx.org/forum/development/msx-development/ram-stays-memory-after-reset
Edité par TurboSEB Le 10/12/2021 à 01h02
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
aoineko :
Je sais que 192K est le max, mais il n'existe pas de MSX avec 32K ou 48K par ex. ?
Non, pour les MSX1 avec le VDP 9918, c'est 16K.
Pour les MSX (1 ou 2) avec le VDP 9938, c'est 64K, 128K ou 192K (idem pour le VDP 9958).
Donc, en résumé :
. on détecte le type du VDP
. si on détecte que c'est un 9918, il y a 16K (et c'est tout)
. si on détecte que c'est un 9938 ou un 9958, il faut détecter si 64K, 128K ou 192K (par lecture/écriture dans la VRAM)
Ceci dit, comme déjà dit plus haut, 99% des MSX sont en configuration standard (MSX1:16K, MSX2:128K).
Donc, c'est très peu rentable ou utile d'essayer d'adapter son programme à la taille de la VRAM.
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
Merci pour ces explications.
Vous n'avez pas directement répondu sur la fiabilité de la variable système MODE (0xFAFC) mais j'ai l'impression que vous déconseillez de l'utiliser, non ?
En tout cas, elle semble fiable sur toutes les machines que j'ai testé.
C'est pas elle qui sert à afficher la quantité de VRAM au démarrage du MSX ?
Sinon, comment est fait la détection par le BIOS ?
Vous n'avez pas directement répondu sur la fiabilité de la variable système MODE (0xFAFC) mais j'ai l'impression que vous déconseillez de l'utiliser, non ?
En tout cas, elle semble fiable sur toutes les machines que j'ai testé.
C'est pas elle qui sert à afficher la quantité de VRAM au démarrage du MSX ?
Sinon, comment est fait la détection par le BIOS ?
On est toujours ignorant avant de savoir.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie