• Please review our updated Terms and Rules here

MCLZ8 fun with NABU

MicroCoreLabs

Experienced Member
Joined
Feb 12, 2016
Messages
294
Received my NABU today, and after some initial checks I tried replacing the Z80 with my MCLZ8. Seems to work fine...

Some ideas about what to do next:
- The MCLZ8 emulates the Z80 but can also emulate the BIOS ROM so I could try a number of the old and new ones out there. Any interesting suggestions?
- It might be simple to intercept and swap address ranges to run MSX cartridge ROMs on the NABU.
- Can create some drivers for the video, sound, and keyboard to allow C code to be run the NABU using the 800 Mhz Teensy 4.1. Sort of like a "NABU Shield" for the Teensy.

Capture1.JPGCapture2.JPG
 
Last edited:
I don't know to what extent MSX ROMs expect to find an MSX BIOS, but that might cause issues unless maybe you get CBIOS running too?

I'd actually love to see ports of MSX games to Nabu. I've been trying to port "Girl's Garden" (already a port from the SG-1000) and it even ALMOST works.
 
Would need to shuffle the address map and emulate the MSX BIOS and cartridge ROMs. The Teensy 4.1 has 1 MB of memory so could also emulate the motherboard DRAM for good measure... Translating keyboards/joysticks may require a little code...
 
Since the Teensy 4.0 has 7 serial ports, perhaps we can try emulating them. Another thing is to use up some of that RAM to boot a 720K floppy image emulation.

I have a Teensy 4.0 and 4.1 on the way, so I'm excited to put them to use. I purchased some 232MAX chips with DB9 connectors to see if that was possible.
 
It is quite entertaining to control the NABU with the Teensy using C code... The first step was to emulate the Z80 and store into an array all of the configuration writes that the NABU BIOS writes to the Video chip. I then switched to a new code project which performs this same sequence of writes and then sends random data to the video RAM. Interesting to note that I needed to add a 50 uS delay between every access to the video chip otherwise it would corrupt the output.


Capturez.JPG
 
Since the Teensy 4.0 has 7 serial ports, perhaps we can try emulating them. Another thing is to use up some of that RAM to boot a 720K floppy image emulation.

I have a Teensy 4.0 and 4.1 on the way, so I'm excited to put them to use. I purchased some 232MAX chips with DB9 connectors to see if that was possible.
Note the Teensy has 3.3V IO so you need the MAX3232 instead of the MAX232, otherwise you need to level convert the input to the Teensy first. Can be done with some resistors but maybe you run into speed problems then.
 
Might be fun to port the TRS-80 Model I to the NABU. A little short on columns but rows match up.

Capturea.JPG
 
The Teensy is running TRS-80 Model I BASIC ROM using the MCLZ8 Z80 emulator running inside of a NABU. So its microcontroller emulating a Z80 processor which is emulating a TRS-80 which is running inside of a NABU. :)

At the moment keystrokes are input from the JTAG UART via the Teeny. Next I will remap the NABU's keyboard to the TRS-80. I will leave the UART access so that you can cut and paste programs directly to the TRS-80 console which saves a lot of typing.

Captureq.JPG
 
That is a really cool thing. I especially like your capturing of the I/O configuration writes; this is the power of a modern, programmable, in-circuit emulator.
 
Yes, can do lots of neat things with a 800 Mhz micro controller with 1 MB of RAM... :)
 
I eagerly await your final version of these boards, since I can see many uses for such a tiny in circuit emulator when understanding the NABU. The one I used back in the day was the size of a medium PC tower but allowed me to fine tune the timing of PAC-MAN and Q*Bert by stopping things dead, and modifying a few register values.
 
I eagerly await your final version of these boards,
The MCLZ8 boards appear to work so no respin planned at the moment... Yeah, you can get a lot of development done with this setup - emulate the BIOS ROMs and RAM, single-step the emulated Z80, emulate peripherals, or just perform Z80 local-bus memory and IO read/writes to access each motherboard component...
 
Last edited:
I liked the TRS-80 from the start, because it had a much nicer keyboard than the Commodore PET, which appeared at around the same time, and roughly the same level of graphics.
 
I published a short video of the Turbo NABU project which uses my MCLZ8 which provides the ability to run C code compiled with the easy to use Arduino IDE tools which can control the Z80 local bus so that it can access all of the NABU's motherboard components like the keyboard and video.

Here's the WordPress blog: Turbo NABU
And here's the YouTube video: Turbo NABU Video

CaptureL.JPG
 
Back
Top