YM2149 Sound Card
Introduction⌗

I got the idea of a YM2149 Sound card for the QX-10 after seeing one that was designed for the RC2014 system. Since the only sound the QX-10 orignally had was a basic PC Beeper, I thought it would be cool to build a more advanced sound card built around the YM2149. As a bonus I stuck a 26-pin header header that can be connected to an external MPU-401 to provide MIDI support.
Schematic⌗
The sound card allows selecting of the base IO address via jumper J2, the software is compiled to use a base of 0xC0. This is then further divided into 4 seperate IO address used by the sound card.
- 0x00 - The register latch used by the YM2149 chip. (write only)
- 0x01 - The data port for the YM2149. (read/write)
- 0x02 - The MPU-401 data port. (read/writre)
- 0x03 - The status/command port for the MPU-401. (read/write)
The jumper J4 is to select which interrupt (INTL, INTh1, INTH2) is connected to the INT line on the MPU-401. If you don’t wish to enable interrupts you can leave it unconnected to disable interrupts.
J1 is the stereo output and is produced by mixing the three YM2149 channels using a set of resisters.
Bill of Materials
Ref | Description | Part |
---|---|---|
C1,C2 | 470uf Capacitor | ECA-1CM471 |
C3-C11 | 0.1uf Capacitor | RDER72A104K1S1H03A |
J1 | 3.5mm Jack | SJ1-3533NG |
J2 | 2x8 Pin Header | 77313-418-16LF |
J3 | 2x13 Right Angle Pin Header | 68021-426HLF |
J4 | 2x3 Pin Header | 10129381-906002BLF |
R1-R3 | 3k Resistor | MFR-25FRF52-3K |
R4,R5,R8 | 1k Resistor | MFR-25FRE52-1K |
R6,R7 | 1.6k Resistor | MFR-25FRF52-1K6 |
U1 | Programable Sound Generator | YM2149 |
U2,U8 | 74LS138 | SN74LS138N |
U3,U9 | 74LS08 | SN74LS08N |
U4 | 74LS245 | SN74LS245N |
U5 | 74LS541 | SN74LS541N |
U6 | 74LS00 | SN74LS00N |
U7 | 74LS86 | SN74LS86AN |
Note: The external MPU-401 support has not yet been tested with real hardware.
CP/M Support⌗
For the YM2149 support I am using a modified version of tune.com from RomWBW that was ported to plain CP/M and then has a few changes made by me to make it work with the QX-10 and allow it to be assembled with z88dk.
Since there was never any MIDI software written for the QX-10 I wrote a simple program using z88dk called mpu401.com that will play a scale using a specified MIDI channel. Using that you can connect an MPU-401 and a MT-32 or other MIDI output device up and you should be able to hear the scale played over your MIDI device.