So, I built my own MSX...

category: general [glöplog]
Well, sort of. The MSX was never big here in the US, but I've built my own homebrew Z80 computer with a TMS9918A and YM2149, and it runs Bold (almost) unmodified. The only change to the code was to swap the YM2149 address and data ports since my sound card has them backwards.

Check out my project for pictures and more details.
added on the 2018-06-22 04:44:33 by jblang jblang
added on the 2018-06-22 08:48:04 by rloaderro rloaderro
Nice! Just one thought on the sound port stuff though. What about just changing the out (c), a to out (0xa8), a? Those instructions are both two bytes. It makes the whole code both smaller and faster.

Code: ld c, #0xa0 ld hl, #0x07f9 loop: out (0xa8), a outi inc a cp #0x0d jr nz, loop out (0xa8), a ld a, (hl) and a ret m out (c), a ret
added on the 2018-06-22 09:49:06 by neon neon
awesome. so this is built around an rc2014 and you made tm and ym boards for it?
added on the 2018-06-22 10:48:09 by evilpaul evilpaul
thumb up
added on the 2018-06-22 12:58:01 by skarab skarab
neon: good idea... that didn't occur to me. I will give it a try.

evilpaul: yes it's an RC2014. I designed and manufactured the TMS board myself. The YM board is by Ed Brindley (https://github.com/electrified/rc2014-ym2149). I'm considering making my own revision though that will support MSX port mappings.

I'm also using the z80ctrl board I designed (https://hackaday.io/project/158338-z80ctrl), which is an AVR-based bootloader that replaces the compact flash, ROM, clock, and Serial boards in a standard RC2014. It emulates an Altair floppy drive using an SD card and provides single-step debugging and bus monitoring, and memory examination among other things. It's compatible with unmodified Altair CP/M disks as well as disk images from the SIMH emulation project.

For Bold, I didn't actually get MSX-DOS running; I just extracted the COM files from the disk image and loaded them directly into memory using my z80ctrl board.
added on the 2018-06-22 16:01:04 by jblang jblang
I just love it that you connected it to a Commodore 1702 monitor. Commodore rules over MSX anyday and today again. ;)
added on the 2018-06-22 16:25:22 by VJSLOF VJSLOF
lol nice!
added on the 2018-06-22 17:05:44 by psenough psenough
added on the 2018-06-22 20:51:50 by ham ham
neon: I confirmed that out (addr),a works. Now I can get rid of the jumper wire. Thanks for the suggestion. I had it in my head that out (c),a was a 1 byte instruction. Didn’t realize it was an extension.
added on the 2018-06-23 01:44:17 by jblang jblang