MSX Village forum

La Place des Développeurs Liste des Ports Entrées / Sorties

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 30/10/2013 à 11h58
Les ports d'entrées sorties



Citation :
-------------------------------------------------------------------------------

MSX I/O POORTEN (&h00 - &hFF) COMPASS v1.0 (c) 1994 COMPJOETANIA

-------------------------------------------------------------------------------



Samensteller: Compjoetania, Eric van Beurden

Bron : Diversen boeken en personen (o.a. Henrik Gilvad)

Versie : #1.00





De MSX I/O poorten zijn in assembly als volgt aan te sturen:



Read_Poort: IN A,(&Hxx) ;&Hxx = Poort nummer (0-255)

BIT A,x ; x = Bit nummer (0-7) om te testen

JP NZ,bitGeset



Write_Poort: LD A,&Hxx ;&Hxx = Data

OUT (&Hxx),A ;&Hxx = Poort nummer (0-255)







De I/O adressen &H00 tot en met &H3F zijn vrij en mogen gebruikt worden om

zelf randapperatuur aan te koppelen.



00-01 x:Philips Muziek Module MIDI 6850

Het decoderen van de hardware adressen wordt er langzaam gedaan. Dit

zijn de decoderings gebieden:



00,08,10,18 ACIA 6850 Write Use #00 or #10

01,09,11,19 ACIA 6850 Write Use #01 or #11

04,0C,14,1C ACIA 6850 Read

05,0D,15,1D ACIA 6850 Read

08-0F,18-1F 8 bit D/A Converter. Use #A-B,#E-F, #1A-1B,#1E-1F



Dit betekend dat het niet goed samenwerkt met andere cartridges die

dezelfde I/O gebieden gebruiken van #00-#1F behaleve 2,3,6,7,#12,

#13,#16,#17.

00-07 x:MT modem

08-7F x:MT modem spiegelregisters (d.m.v. jumpers)

09-0D x:?

0F x:Mega RAM/ROM

10-17 x:?

18-19 x:Barcode reader NMS 1170/20 Philips

#18 R :Bit 0-6 ASCII code, barcode cijfer of code ID

:Bit 7 Status buffer (0) Barcode staat gereed, (1) Einde

barcode

W :Bit 0-5 Data bits

Bit 6-7 Commando bits

#19 :?

20-27 x:Modem NMS 1250 Philips 2e instelling

28-29 x:

30-37 x:-Modem NMS 1250 Philips

-Modem Miniware

-CD ROM interface Philips

-Op Turbo R GT vrij!!

-SCSI interfaces van HSH,MAK en HG

#34 R :WD33C93A 'Auxiliary Status'

W :WD33C93A Adres register (registers 00-1F)

#35 R/W :WD33C93A Data

#36 W :Wanneer data naar deze poort geschreven wordt dan wordt

er een Reset pule gegenereerd op de SCSI BUS naar de SCSI

chip! (Aprox 50usec.)

#36 R :Op de orginele SCSI interface van HSH was een schakelblok

aanwezig met 8 schakelingen. Deze kunnen gelezen worden

door deze poort.

#37 :Bij sommige interfaces is poort 37 gelijk aan poort 36

maar wordt alleen poort 36 gebruikt.

38-3F x:RS232 NMS 1210 Philips







De I/O adressen &H40 tot en met &HFF zijn gereserveerd voor intern gebruik

binnen het MSX-systeem.





S1985 MSX engine back-up RAM (internally, 8bit x 16)

40 1:Maker identity byte

41 x:Adres register 00-0F

42 x:Data register

43-45 x:

S1985 MSX engine help circuit for faster PUT KANJI.

46 x:Voor en Achtergrond kleur

47 x:Bitpatroon voor de kleuren

48-5F x:

60-6F 2:Graphics 9000 (GFX9000), Video Display Processor V9990

#60 R/W :Poort #0 VRAM data

#61 R/W :Poort #1 Palet data

#62 R/W :Poort #2 Commando data

#63 R/W :Poort #3 Data register inhoud read/write

#64 W :Poort #4 Register write

#65 R :Poort #5 Status

#66 R/W :Poort #6 Interrupt vlag

#67 W :Poort #7 Systeem controle

#68 W :Poort #8 Primair stand. kanji ROM laagste adres

#69 R/W :Poort #9 Primair stand. kanji ROM hoogste adres + data

#6A R :Poort #A Secun. stand. kanji ROM laagste adres

#6B R/W :Poort #B Secun. stand. kanji ROM hoogste adres + data



Poorten 68-6B zijn alleen op het V9990 evaluation board aanwezig, niet

op de GFX9000! Dit in verband met het ontbreken van een Kanji ROM op

de GFX9000.



#6C-#6D :Poort #C-D Gereserveerd

#6F W :SuperImpose chip V7040

Bit 0 =alleen V9990 output

Bit 1 =sets MIX mode.

Opm. Schrijf 0 naar #6F voor alleen GFX9000!



De poort 6F is alleen op de GFX9000 aanwezig! Op het evaluation board

is namelijk geen superimpose chip aanwezig.

70-7B x:

7C-7D +:MSX Music, OPLL

#7C W :Register

#7D W :Register data

7E-7F x:Moonsound, OPL4 Wavetable part.

#7E W :Register

#7F R/W :Register data

80-87 1:RS232 interface

#80 R/W :i-8251 gegevenstransmissie

#81 R/W :i-8251 commando/statusregister

#82 R :toestand van de RS232-verbinding

#83 W :interruptmasker

i-8253 programmable timer

#84 R/W :i-8253 teller 0

#85 R/W :i-8253 teller 1

#86 R/W :i-8253 teller 2

#87 W :i-8253 instelling

88-8B 2:MSX2 V9938 adaptor voor de MSX1 V9929 (neos)

8C-8D x:Modem MSX van Sony

8E-8F x:Gereserveerd

90-91 2:Printer interface

#90 W :bit0 = strobe

R :bit1 = status

#91 W :Code van te printen teken

92 x:?

93 2:Printer busdirection. De S1985 (MSX-Engine) is voorbereid op een

Redirectionale printerpoort! Het vereist extra externe chips maar geen

bestaande MSX model heeft het ooit gebruikt.

#93 :bit 0-1 are used to control the mode.

0 0 /PRST release

0 1 /PRST ouput

1 0 Input state or /PRS release

1 1 Output state or /PRST release

Zie het S1985 MSX SYSTEM 2 Application manual pagina 13-14.

98-9B +:Video Display Processor (VDP), type V9938, V9958

#98 R/W :Poort #0, Vram

#99 R :Poort #1, Status register

W Register/Register data

W Vram adres

#9A W :Poort #2, Palet

#9B W :Poort #3, Indirect access

9C-9F x:Gereserveerd

A0-A2 1:General Instruments AY-3-8910 Programmabele Sound Generator (PSG)

3A0 W :Register

#A1 W :Register data (W)

#A2 R :Register data (R)

A4-A5 R:PCM, D/A converter

#A4 W :D/A Converter. Beide gebruikt tijdens het opnemen en af-

spelen van PCM.

R :Bit 0-1 Teller 16 Khz. Gebruikt door sampler

Bit 2-7 Ongebruikt

#A5 W :Bit 0 ? Altijd gezet met bit 1, gereset tijdens sampling?

Bit 1 Muting: (1) geluid aan (0) geluid uit

Bit 2 Filter (1=on) meestal gebruikt tijdens sampling

Bit 3 Select: (1) Mic/Jack (0) D/A Converter

Bit 4 Sample/Hold: (1) stores a value which the

Comperator will womper to the output of the DAC

during sampling

Bit 5-7 Ongebruikt

R :Bit 0 ? Altijd gezet met bit 1, gereset tijdens sampling?

Bit 1 Muting: (1) geluid aan (0) geluid uit

Bit 2 Filter (1=on) meestal gebruikt tijdens sampling

Bit 3 Select: (1) Mic/Jack (0) D/A Converter

Bit 4 Sample/Hold: (1) stores a value which the

Comperator will womper to the output of the DAC

during sampling

Bit 5-6 Ongebruikt

Bit 7 Comperator result.

A6 R:?

A7 R:Ledjes van Turbo R display

#A7 W :Bit 0 Pauze led: (0) uit, (1) aan

Bit 7 Turbo led: (0) uit, (1) aan

R :Bit 0 Detecteert of de PAUSE toets ingedrukt is: (1) is

ingedrukt

A8-AB 1:Intel 8255 Programmable Peripheral Interface (PPI)

#A8 R/W :PPI Poort A :Primary slotselect register

#A9 R :PPI Poort B :Deze poort wordt gebruikt om de 8 bits rij te

lezen van de op dat ogenblik afgetast rij van het keyboard

Het is geconstruktureerd als een matrix van 11 rijen van

elk 8 bits breed. Op de Turbo R worden alle 11 de rijen

bezet. (De 11e rij is o.a. voor het uitlezen van de

interne software schakellaar die naast de reset knop zit)

#AA R/W :PPI Poort C :Diversen functies

Bit 0-3 Bepaald welke rij op het toetsenbord (0 t/m 11)

door poort B ingelezen moet worden

Bit 4 Het cassettemoter bit, bepaalt de stand van het

relais dat de cassettemoter schakelt: (0) aan,

(1) uit

Bit 5 Het cassette output bit, wordt gefilterd en

verzwakt voordat het naar de DIN plug gaat, als

het signaal voor de cassetterecorder. Alle

cassettesignalen worden via software gegenereerd.

Bit 6 Het CAPS bit, bepaalt de stand van het lampje bij

de hoofdletter toets: (0) aan, (1) uit

Bit 7 Bepaalt het geluid dat gemaakt wordt bij het

indrukken van een toets. Het wordt verzwakt en

gemengd met het signaal van de geluidsgenerator.

Om een geluid voort te brengen, moet dit bit

voortdurend tussen 0 en 1 heen wen weer gezet

worden.

#AB W :Mode register. Deze poort regelt de werking van de PPI.

De MSX hardware werd ontworpen om in een bepaalde

configuratie te werken. Het wijzigen van deze poorten is

dus niet nodig en zeer gevaarlijk. Men kan er de PPI

zelfs mee opblazen!

Bit 0 C-direction bit bepaalt in welke richting de

laagste vier bits van poort C werken: (0) output

(MSX), (1) input

Bit 1 B-direction bit bepaalt de richting voor poort B:

(0) output, (1) input (MSX)

Bit 2 'B & C mode' bit bepaalt de manier waarop poort B

werkt en de laagste vier bits van poort C: (0)

normale werking (MSX), (1) strobe mode

Bit 3 C-direction bit bepaalt in welke richting de

hoogste vier bits van poort C werken: (0) output

(MSX), (1) input

Bit 4 A-direction bit bepaalt de richting voor poort A:

(0) output (MSX), (1) input

Bit 5-6 'A & C mode' bit bepalen de werking van poort A,

en de vier hoogste bits van poort C: (00) normale

werking (MSX), (01) strobe mode, (10) tweerich-

tings verkeer

Bit 7 Mode bit: (1) men kan door middel van bit 0-6 de

mode waarin de PPI werkt wijzigen, (0) Nu krijgt

het Mode register een hele andere functie! Deze

poort kan nu gebruikt worden om rechtstreeks een

bit van poort C te (re-)setten. De bits van de

Mode poort hebben als bit7 0 is de volgende

functie: Bit 0 Reset/set bit: (0) reset, (1) set

Bit 1-3 Bepaalt het bit van register C,

mogelijke waarde zijn 0 t/m 7

Bit 4-6 Niet in gebruik

Door de instructie OUT &hAB,&b00001100 kan het

CAPS-lock lampje worden aangezet

AC-AF 2:MSX Engine (welke ? niet S1990 of S1985!)

B0-B3 1:HBI-55 (8255) data catridge SONY

#B0 R/W :Poort A adreslijn A0-A7

#B1 R/W :Poort B adreslijn A8-A10, A13-A15, Control, R/W

#B2 R/W :Poort C adreslijn A11-A12, datalijnen D0-D7

#B3 :Control wordt 8255 WR

B4-B5 2:Clockchip interface (RP 5C01)

#B4 W :Register/block

#B5 R/W :Register data

B6-B7 x:Card reader

B8-BB 2:-Lichtpen interface Sony

-Barcode reader NMS 1190/20 (b8/9)

BC-BF 2:Video controller JVC (VHD)

C0-C1 2:MSX Audio

#C0 W :Register

R Status register

#C1 W :Register data

C2-C3 2:MSX-Audio 2e instelling

#C0 W :Register

R Status register

#C1 W :Register data

C4-C7 2:Moonsound (OPL4), het FM-gedeelte

#C4 W :Register

R Status register

#C5 R/W :Register data

#C6 W :Register (2.nd register block)

#C7 R/W :Register data (2.nd register block)

C8-CC 2:MSX interface. De MSX interface is een 8255 interface voor

communicatie tussen 2 MSX computers. Het SUBROM initialiseerd deze

poorten als een 8255.

CD-CF x:

D0-D7 2:Floppy controller ATV (Diskdrive)

#D6 :in Use

#D7 :Motor on

2:MK SCSI harddisk interface

R:Turbo R GT, There is a circuit in the GT which will cancell all I/O

to port #D0-#DF, that is probably because of the Kanji ROM's. If

external KanjiROM cartridges is put in the Turbo R and there is

differences in the ROM's then the ROM's would be in danger. This

circuit is probably not in the A1ST!

D8-D9 2:Kanji ROM 1

#D8 W :Adreslijnen A5-A0 LSB

#D9 W :Adreslijnen A5-A0 MSB

R :Datalijnen D7-D0

DA-DB 2:Kanji ROM 2 (Uitbreiding)

#DA W :Adreslijnen A5-A0 LSB

#DB W :Adreslijnen A5-A0 MSB

R :Datalijnen D7-D0

DC R:Kanji ROM 24 dot (output, sets the address)

DD x:Font data

DE-DF x:Gereserveerd

E0-E2 R:MSX MIDI cartridge

#E0 R/W :Data

#E1 W :Command

R :Status register

#E2 W :Select. I believe that this port can be used to change the

port between E0-E1 and E8-E9 or perhaps just to enable it.

I know that bit 0 is used but I don't know the exact

function.

E3-E5 R:Turbo R MSX-Engine S1990

#E3 :?

#E4 W :Register write

#E5 R/W :Data register inhoud read/write

register 5: de schakellaar 00=rechts

64=links

register 6: de processor 00=R800 DRAM

64=R800 ROM

96=Z80

register 13: ? (3 perhaps a primary slot # ?)

register 14: ? (47 ?)

register 15: ? (139 = 10001011, perhaps a slotID?)

E6-E7 R:System Timer, 16-bit counter van ongeveer 250 KHz.

#E6 R :LSB

#E7 R :MSB

E8-E9 R:MSX-MIDI interface (8251 chip, same as used in RS232)

#E8 R/W :MIDI data

#E9 W :Command

Bit 0 MIDI out enable

Bit 1 MIDI timer enable. (Interrupt enable !)

Bit 2 MIDI in enable.

Bit 5 Enable interrupt for received MIDI data.

To initialise the 8251 first write a Mode Select Byte and then

a Command Select Byte. After this the chip will be in the Command

Select mode until bit 6 (Internal Reset) is set.



0 1 0 0 1 1 1 0 (Used for MIDI operation)

XWWRWWRWWRWWWRWWRWWRWWRWWY

W VS2VS1VEPVPENVL2VL2VB2VB1V Mode Select Byte.

ZWWQWWQWWQWWWQWWQWWQWWQWW[ XWWWWRWWWRWWWRWWWY

V V V V V V V ZWWS 0 V 1 V 0 V 1 V

V V V V V V ZWWWWWS 0 V 0 V 1 V 1 V

V V V V V V TWWWWUWWWUWWWUWWWS

V V V V V V VSyncV *1V*16V*64V

V V V V V V ZWWWWQWWWQWWWQWWW[

V V V V V V Character Length

V V V V V V XWWWRWWWRWWWRWWWY

V V V V V ZWWWWWWWWS 0 V 1 V 0 V 1 V

V V V V ZWWWWWWWWWWWS 0 V 0 V 1 V 1 V

V V V V TWWWUWWWUWWWUWWWS

V V V V V 5 V 6 V 7 V 8 V Data Bits

V V V V ZWWWQWWWQWWWQWWW[

V V V ZWWWWWWWWWWWWWWW Parity Enable. 1 = enabled.

V V ZWWWWWWWWWWWWWWWWWW Even Parity generation / check

V V 1 = Even parity. 0 = Odd parity

V V

V V Stop bits

V V XWWWRWWWRWWWRWWWY

V ZWWWWWWWWWWWWWWWWWWWWWS 0 V 1 V 0 V 1 V

ZWWWWWWWWWWWWWWWWWWWWWWWWS 0 V 0 V 1 V 1 V

TWWWUWWWUWWWUWWWS

V---V 1 V1.5V 2 V Stop Bits

ZWWWQWWWQWWWQWWW[





Command Select Byte (after Mode Select Byte!)



1 Bit 0 TxEN Transmit Enable (0) disable, (1) enable

1 Bit 1 DTR DTR pin. 1: pin=0. (Active)

1 Bit 2 RxE Receive Enable (0) disable, (1) enable

0 Bit 3 SBRK Send Break Characters (0) Normal transmision,

(1) Send Break Characters (TxD low)

0 Bit 4 ER Error Reset (1) reset flags PE,OE,FE

1 Bit 5 RTS RTS pin. 1 = RTS active low.

0 Bit 6 IR Internal Reset (1) returns to Mode Instruction

0 Bit 7 EH Enter Hunt Mode (1) search for Sync Char. (not used)







R :Status register

Bit 0 TxRDY (1)=ready for TX chars.

Bit 1 RxRdy (1)=Byte in receive buffer

Bit 2 TxEmpty (1)=Transmitter is empty

(0)=Transmitteris sending data

Bit 3 PE (1)=Parity Error

Bit 4 OE (1)=Overrun error (data lost)

Bit 5 FE Framing error. (no Stop bit)

Bit 6 SynDet (1)=SYNC char detected in SYNC mode. (MIDI

is ASYNC)

Bit 7 DSR input pin





DSR pin is connected to the 8254 TIMER interrupt output. If interrupt

have been disabled then we can read this bit to detect TIMER interupt.

The A1GT interrupt handler uses bit 7 to detect Timer interrupt and

bit 1 to detect MidiRx interrupt.



EA-EB R:Used to Clear the 8254 timerinterrupt. Done by writing any value.

EC-EF R:8254 chip. De 8254 is net als de 8253 een timer, maar heeft verbeterde

mogelijkheden om de timerwaardes uit te lezen en kan een hogere

snelheid aan. Note: Timer 1 telt,

Timer 2 'interrupts'.

#EC R/W :Timer 0, Input Clock 4MHz. Output 8251 Clock

#ED R/W :Timer 1, Input Timer 2. Geen output. (Alleen Software)

#EE R/W :Timer 2, Input Clock 4MHz. Output genereerd interrupts.

#EF W :Command

F0-F3 x:Gereserveerd

F4 +:ROM/Cold start Status register

#F4 R/W :bit 7 Wordt gebruikt om een onderscheid te maken tussen

een soft- en hardware reset. (Op de Turbo R wordt

dit bit niet geinventeerd!)

:bit 5 When this bit have been written then it cannot be

reset again by software. It is used by the Bootup

routine to see if it should change the CPU mode.

(I think)

note: Due to the polarity change on Turbo R you should use

the BIOS routines #17A and #17D to Read and Write !

F5 2:System control, met deze poort kan je interne hardware disabele voor

het geval dat een cartridge met dezelfde inhoud in een extern slot

steek. Op een met Kanji ROM's computer (Turbo R) kun je het als volgt

uitproberen: Schakel de Kanji mode in (_kanji0), type OUT &hF5,0, de

Kanji letters zullen nu witte blokjes zijn. Na OUT &hF5,1 is alles

weer normaal.

#F5 W :bit0 Kanji ROM

bit1 Kanji ROM 2

bit2 MSX-Audio

bit3 Super Impose

bit4 MSX-interface

bit5 RS232c interface

bit6 Lichtpen

bit7 Clockchip interface

F6-F7 2:Audio/Video control superimpose !!!!!!!!!!!!!!!!!!!

#F6 R/W :Colorbus control

#F7 :bit0 audio rechts

bit1 audio links

bit2 video input select

bit3 video input sence (lezen)

bit4 A/V control

bit5 Ym control

bit6 Ys control

bit7 Video select

F8 x:Opt palvers bit 8280???!!!!

#F8 :bit0 audio rechts

bit1 audio links

bit2 Gereserveerd

bit3 Rc 5 int

bit4 Sound

bit5 Sound

bit6 Gereserveerd

bit7 Gereserveerd

F9-FB x:Gereserveerd

FC-FF 2:Memory mapper

#FC W :Page 0, (&H0000-&H3FFF)

#FD W :Page 1, (&H4000-&H7FFF)

#FE W :Page 2, (&H8000-&HBFFF)

#FF W :Page 3, (&HC000-&HFFFF)



:noel
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie