[Z80] - utilisation des ports

Couvre tous les domaines de l'émulation ou de la virtualisation ainsi que les discussions sur les divers outils associés.

Modérateurs : Carl, Papy.G, fneck

Répondre
Avatar du membre
yo_fr
Messages : 1319
Enregistré le : 13 août 2009 18:24
Localisation : 78...
Contact :

[Z80] - utilisation des ports

Message par yo_fr » 20 juin 2016 21:19

Bonjour,
Je pose la question car je n'ai pas réussi à trancher une question qui me taraude depuis un petit temps. L'instruction OUT (c),a permet d'envoyer la données contenue dans le registre A sur le port dont le numéro est dans le registre C.
Ceci est clair dans toutes les documentations.
MAIS ...
on trouve sur le net une info sur l'adressage du AY comme ceci:
  • Peripheral: 128K AY Register.
    Port: 11-- ---- ---- --0- (More information).

    Sound Chip
    The AY-3-8912 sound chip is a widely used one, to be found in the MSX, Vectrex, Amstrad CPC range, etc. It is controlled by two I/O ports:
    OUT (0xfffd) - Select a register 0-14
    IN (0xfffd) - Read the value of the selected register
    OUT (0xbffd) - Write to the selected register


Ce qui laisse supposé que le port est sur 16 Bits.
En regardant certains émulateur de Z80 on s'aperçois que le OUT est utlise une adresse sur 16 bits (en combinant le port B et C).
Ce qui fait que les ports ne sont pas adressés sur 8 bits mais bien sur 16 ! En plus le poids faible (registre C) ne change pas entre le N° de registre du AY et sa valeur !

C'est une extension non documentée du Z80 ?

Merci si vous avez des infos...
JJ

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

Re: [Z80] - utilisation des ports

Message par joaopa » 20 juin 2016 22:04

En effet (voir page17 d'un document à toujours avoir sur soi)
http://www.z80.info/zip/z80-documented.pdf)

Avatar du membre
yo_fr
Messages : 1319
Enregistré le : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: [Z80] - utilisation des ports

Message par yo_fr » 21 juin 2016 16:54

ok la réponse est bonne.

Merci (et document également mis au chaud!)

Répondre