MSX Village forum

Les enquêtes de FlashFred La valeur des ports d'entrées

GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 27/09/2012 à 12h51
Bonjour,

J'ai remarqué que des MSX ne donnaient pas la même valeur par défaut lorsqu'on lit un port d'entrée sur lequel rien n'est relié.

Par exemple, lorsqu'on entre la commande suivante :

PRINT INP(60)

On obtient la valeur 120 sur un MSX1 HX-10 et 121 sur un YC-64 mais sur un Turbo R la valeur obtenue est 255.

Sur OpenMSX ou BlueMSX, on obtient 255 quelque soit le MSX sélectionner.

Vous obtenez quelle valeur sur votre émulateur vrai MSX ? Edité par GDX Le 02/10/2012 à 11h32
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1432

Le 27/09/2012 à 13h26
Par définition, la valeur est aléatoire, puisque rien n'est relié physiquement au port.
:heink


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

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 22/11/2011 à 21h14

Messages: 865

Le 27/09/2012 à 13h26
GDX, que peut-on relier sur le port 60 (&H3C) ?

@Metalion : si rien n'est relié à un port utilisable, on doit tout de même être en mesure de savoir que ... rien n'est relié à ce port .. non ? .. Dans le cas présent, j'aurais plutôt tendance à dire que rien n'est prévu pour être relié au port 60 (&H3C).. Edité par SveN Le 27/09/2012 à 13h30


Philips.NMS.8245/50/80, Sony.F1XV/HBF-700D, Pana.FSA1FX/A1WX(x2)/A1GT, OCM, GR8BIT.... et ...
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 27/09/2012 à 13h35
A ma connaissance, aucun MSX n'utilise ce port, c'est pour ça que je demande de tester celui-ci.

Metalion,

La valeur n'est pas aléatoire mais indéterminée, elle doit dépendre sans doute du PPI. C'est le genre de détails qui ne sont pas émulés sur les émulateurs et ça cause parfois des problèmes avec les programmes "mal développés". Edité par GDX Le 27/09/2012 à 13h38
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9391

Le 27/09/2012 à 13h47
la valeur retournée doit dépendre si les données du bus sont a 1 ou 0 lors de la lecture

si il n'y a pas de résistances pour charger le bus par défaut ça peux donner des valeurs incohérentes sur un port non utilisé

sur un 8280 la valeur retournée est aussi 255

les adresses I/O de 00H a 7FH ne sont pas reservées par le systéme mais peuvent être utilisées par des périphériques

voir la liste des principaux I/O ici : http://map.grauw.nl/resources/msx_io_ports.php


:noel
Site web    
SveN Membre non connecté

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 22/11/2011 à 21h14

Messages: 865

Le 27/09/2012 à 14h36
Jipe :
si il n'y a pas de résistances pour charger le bus par défaut ça peux donner des valeurs incohérentes sur un port non utilisé



Tu peux expliquer en détail ??


Philips.NMS.8245/50/80, Sony.F1XV/HBF-700D, Pana.FSA1FX/A1WX(x2)/A1GT, OCM, GR8BIT.... et ...
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9391

Le 27/09/2012 à 14h51
le bus Z80 peux prendre l'état 1 ou 0 a la lecture si il est en l'air c'est a dire non polarisé a 0 ou a 1 par une résistance

dans le cas des MSX2 il y a souvent un circuit buffer qui charge le bus même si il n'y a pas de résistances d'ou la valeur 255

dans le cas MSX1 n'ayant pas de buffer le bus prend une valeur qui dépend de l'état au moment de la lecture


:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 27/09/2012 à 15h35
C'est quand même étrange que j'obtiens toujours la même valeur alors. Avec un mapper dont les bits de points forts ne sont pas géré, le bit 7 reste à 0 sur MSX1. Sur turbo R, il reste à 1.

Et puis, je me demande ce qu'on voulait dire par réservé car il y a pas mal de cartouches qui utilisent les ports au dessus de 7Fh. En plus, il y a certaines doc. qui disent que les ports sont réservés à partir de 40H et non pas 80H. :hum

http://nocash.emubase.de/portar.htm#top Edité par GDX Le 27/09/2012 à 15h42
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9391

Le 27/09/2012 à 15h52
quand tu lis un mapper sur un MSX 1 c'est certainement une cartouche externe qui lit directement le port il faut voir au niveau du cablage

le turbo-r ne lis pas directement le port mais passe par le S1990 c'est plus compliqué vu le manque de docs
l'extension 1Mo ajoute un bit qui n'est pas géré par le S1990

dans le même état du bus tu auras tout le temps la même valeur pour le même port car le hardware ne change pas
les signaux peuvent passer par d'autres périphériques qui ne sont pas spécialement activés

dans les anciennes doc les adresses 00h a 3FH sont libres pour l'utilisateur


:noel
Site web    
SveN Membre non connecté

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 22/11/2011 à 21h14

Messages: 865

Le 27/09/2012 à 16h34
Jipe :
dans les anciennes doc les adresses 00h a 3FH sont libres pour l'utilisateur


... à moins qu'elles ne soient déjà utilisées par une interface ...


Philips.NMS.8245/50/80, Sony.F1XV/HBF-700D, Pana.FSA1FX/A1WX(x2)/A1GT, OCM, GR8BIT.... et ...
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9391

Le 27/09/2012 à 17h08
les dites docs ont été imprimées avant que soient fabriquées les interfaces

il y a parfois des conflits

le music module empéche le démarrage de la cartouche ci aprés
http://www.msxvillage.fr/forum/topic.php?id=738
la seule solution que j'ai trouvé modifier l'i/o la cartouche et changer l'adresse dans la rom

autre exemple : le synthé vocal ne marche pas avec un MSX2 car il est est sur les adresses FEH et FFH qui sont reservées au mapper
solution l'adresser en 3EH 3FH en intercalant un LS04 sur les bits A6 A7
bien entendu il faut aussi modifier le programme


:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 28/09/2012 à 08h51
J'ai vérifié dans le DataPack d'ASCII directement pour en avoir le coeur net. La description est un peu vague. Sans entrer dans les détails, j'en ai fait le tableau suivant.
En fait, il y a des ports réservés un peu partout. En gros, les cartouches qui utilisent les ports entre 00H~3FH peuvent enter en conflit avec d'autres puisque c'est libre. Le Music Module en utilise justement.

Quant à la valeur donnée lors de la lecture d'un port inutilisé (bits de poids fort inutilisés inclus), Tu parles de buffers, ça correspondrait à quels composants ? Ça ne serait pas plutôt les MSX ayant un MSX Engine qui retourneraient la valeur 255 ?

Port(s) Fonction
00H~3FH Libre pour l'utilisateur
40H~4FH Ports E/S étendus
40H~6FH Réservés pour le système
70H~73H Midi Saurus
74H~7BH Réservés pour le système
7CH~7DH MSX-Music
7EH~7FH Réservés pour le système
80H~87H RS-232
88H~8BH V9938 externe du "MSX2 adapter".
Vérifier le Bios à l'adresse 0006h et 0007H puis,
à ces ports pour être compatible avec cette extension.
8CH~8DH Modem MSX
8EH~8FH Réservés pour le système
90H~91H Port parallèle de l'mprimante
92H~97H Réservés pour le système
98H~99H VDP MSX1 et VDP MSX2/2+ interne
9AH~9BH VDP MSX2/2+ interne
9CH~9FH Réservés pour le système
A0H~A3H PSG AY-3-8910
A4H~A7H Réservés pour le système
A8H~ABH Port parallèle (PPI 8285)
ACH~AFH MSX Engine (E/S de la puce MSX)
B0H~B3H Mémoire étendue des Sony (PPI 8255)
B4H~B5H Horloge interne des MSX2 ou plus récents (RP-5C01)
B6H~B7H Réservés pour le système
B8H~BBH Crayon optique de Mitsubishi
BCH~BFH Contrôleur du VHD de JVC (PPI 8255)
C0H~C1H MSX Audio
C2H~C7H Réservés pour le système
C8H~CFH MSX Interface (Reseau en série non-synchronisé)
D0H~D7H Contrôleur de lecteur de disquette. (utilisation non standardisé)
D8H~D9H Kanji ROM niveau 1
DAH~DBH Kanji ROM niveau 2
DCH~F2H Réservés pour le système
F3H Mode d'affichage du VDP. (MSX2+)
F4H Hard/Soft reset. (MSX2+)
Mode R800 (MSX Turbo R)
F5H Système de contrôle.
(utilisé pour désactiver des ports E/S internes)
F6H E/S du bus des couleurs
F7H Contrôle A/V
F8H~FBH Réservés pour le système
FCH~FFH Memory Mapper.

Les ports du MSX Turbo R ne sont pas indiqués. J'ai ajouté seulement le Mode R800 que je connais au port F4H. Edité par GDX Le 28/09/2012 à 09h45
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie