MSX Village forum

La Place des Développeurs Comment détecter le type de VDP ?

TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5788

Le 10/12/2021 à 00h29

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, Yamaha cx5 il me semble, Nan c'est pas celui-là mais je ne trouve pas
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 :tea

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)
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 10/12/2021 à 08h44
aoineko :
Je sais que 192K est le max, mais il n'existe pas de MSX avec 32K ou 48K par ex. ? :hum

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)
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10318

Le 10/12/2021 à 11h25
c'est encore plus compliqué car Il existe des MSX1 avec un VDP V9938 et 16K de VRAM : le Yamaha CX5MII et le Spectravidéo SVI-738


:noel
Site web    
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5788

Le 10/12/2021 à 11h34
Y a pas aussi une histoire de D RAM pour la rémanence de données :)



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2694

Le 10/12/2021 à 13h37
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 ?


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: 5481

Le 10/12/2021 à 16h43
Bien oui la variable 0xFAFC est fiable.


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