MILC logo

IndexVorigeVolgendeLeeg

MIDI op de MSX
Arsoft, 01-09-94


    
Voor de MSX-computer zijn op dit moment 4 bekende MIDI-interfaces:
 - Philips muziekmodule
 - FAC Midi-interface
 - MIDISaurus
 - MSX-MIDI (op de Turbo-R)


De onderstaande informatie geldt voor de muziekmodule en waarschijnlijk ook voor
de FAC Midi-interface. Het verschil met de muziekmodule zijn de poortnummers en
de afwezigheid van bepaalde timers.

Muziekmodule:
--------------

   De ACIA oftewel de MIDI-interface wordt bestuurd via poorten 0,1,4 en 5:

   OUT 0    - instellen ACIA functies
              OUT 0,3 : reset ACIA
              OUT 0,21: instellen MIDI-protocol
              (8 databits, geen pariteit, 1 stopbit, geen interrupt, 31250 bps)

              bit 0,1 - b1 b0  zend- en ontvangstsnelheid:
                        ----------------------------------------------------
                         0  0  gelijk  aan kloksnelheid, dus 500   kbits p/s
                       > 0  1  1/16 van de kloksnelheid, dus 31250  bits p/s
                         1  0  1/64 van de kloksnelheid, dus 7812,5 bits p/s
                         1  1  algemene reset van de ACIA

              bit 2,3,4 - b4 b3 b2  databits pariteit stopbits
                          -------------------------------------
                           0  0  0     7       even      2
                           0  0  1     7     oneven      2
                           0  1  0     7       even      1
                           0  1  1     7     oneven      1
                           1  0  0     8       geen      2
                         > 1  0  1     8       geen      1
                           1  1  0     8       geen      1
                           1  1  1     8     oneven      1

              bit 5 - Als dit bit 1 is wordt een interrupt veroorzaakt als de 
                      ACIA klaar is met het verzenden van het laatste teken.
              bit 6 - Bit 6 controleert het Request To Send (RTS) signaal op 
                      pin 5. In de module is dit niet aangesloten, zodat het 
                      hier geen functie heeft. 
              bit 7 - Als dit bit 1 is wordt interrupt veroorzaakt een correct 
                      ontvangen teken een interrupt.
   OUT 1    - verzenden DATA
   INP(4)   - lezen ACIA status
              bit 0   Er is een teken correct ontvangen. Nadat het teken met
                      INP(5) gelezen is wordt dit bit gereset.
              bit 1   De zendbuffer is leeg, er kan desgewenst een nieuw teken
                      verzonden worden.
              bit 2   Geeft toestand van het Data Carrier Detect signaal.
                      (niet aangesloten, dus altijd 0)
              bit 3   Geeft toestand van het Clear To Send signaal.
                      (niet aangesloten, dus altijd 0)
              bit 4   Er is een teken ontvangen zonder het aantal 
                      voorgeschreven stopbits (Frame error).
              bit 5   Er is een teken ontvangen in de ontvangstbuffer terwijl 
                      het vorige nog niet gelezen was (Overrun error).
              bit 6   Er is een teken ontvangen met foute pariteit 
                      (Parity error).
              bit 7   Er werd een interrupt gegeven. De microprocessor kan aan 
                      dit bit zien dat de interrupt van de ACIA afkomstig is.
              Na lezen van DATA worden bits 4,5 en 6 weer op nul gezet.
   INP(5)   - voor het ontvangen van MIDI DATA.

## Polling mode

Initialisatie:
OUT 0,%00000011 - reset ACIA
OUT 0,%00010101 - 8 bits, no parity, 1 stopbit, no interrupt, 31250 bps

Het sturen van een byte via de MIDI-poort gaat als volgt:
- lees INP(4) (acia-status)
- als bit 1 gezet is kan er een teken verstuurd worden
- stuur de byte met OUT 1,byte

Het ontvangen van een byte via de MIDI-poort gaat als volgt:
- lees INP(4) (acia-status)
- als bit 0 gezet is staat er een teken gereed
- lees dit teken met INP(5)

## Interrupt mode

Initialisatie:
OUT 0,%00000011 - reset ACIA
OUT 0,%10010101 - 8 databits, geen pariteit, 1 stopbit, interrupt, 31250 bps

Het ontvangen van een byte via de MIDI-poort gaat als volgt:
- lees INP(4) (acia-status)
- als bit 7 gezet is dan betekend dat dat de interrupt van de ACIA afkomstig
  was. Zoniet dan moet uw routine de interrupt verder laten gaan.
- lees dit teken met INP(5)



    

Index

Vorige

Volgende