I built a prototype for a z80 computer that uses an arduino for communication and bootstrapping. I can assemble a z80 source program with brass, and send it to the arduino with a small python program. The arduino is running a firmware program that waits for a program to be sent over serial, which it loads into the ram chip for the z80 to execute. The z80 communicates with the arduino via IO requests. The arduino<-->z80 API only contains 3 commands, but these can be used for the z80 to send messages to the PC via serial.
This is a small test program to send "test1" and "12345" to the PC via serial:
#define output(x, y) ld a,y \ out (x),a
#define command(x) output(PORT_COMMAND, x)
output(PORT_ADD_LOW, writeTo & FFh)
output(PORT_ADD_HIGH, writeTo >> 8) ;set data act-on address to writeTo
ld hl,string1
ld de,writeTo
ld bc,6
ldir ;copy string1 to writeTo
command(COMMAND_WRITE_SERIEL) ;tell arduino to send data from act-on address to PC
;stuff
ld hl,string2
ld de,writeTo
ld bc,6
ldir ;copy string2 to writeTo
command(COMMAND_WRITE_SERIEL) ;tell arduino to send data from act-on address to PC
jr $ ;do nothing
string1:
.db "test1",0
string2:
.db "12345",0
writeTo:
Picture:
(https://i.imgur.com/Q77AmVo.jpg)
Todo:
Use external clock. (Currently arduino is generating a clock signal)
Upgrade to 128kb ram chip. (Currently i am using a 32kb one)
Make arduino use pin registers for control signal IO. (minor)
Make a paging circuit for said ram chip.
Add an LCD
Write an OS(?)
Add an SD card(?)
Make PCB (?)
Ooooh, sounds fun. Any idea what you want to do with this?
Quote from: Juju on December 23, 2017, 12:53:20 AM
Ooooh, sounds fun. Any idea what you want to do with this?
I dont know, i wanted to build something in the spirit of the Ninjabyte ZPX-128 ( https://codewalr.us/index.php?topic=1001.0 ) And had the part laying around. My main changes from the ninjabyte will be the use of an arduino 'stead of a Parallel Propeller (This can be an arduino mega shield), and the use of an LCD not VGA output.
What happened to your project? Did it go further?
Quote from: DarkestEx on April 10, 2020, 10:11:27 PMWhat happened to your project? Did it go further?
Not really. At some point I made a VGA generator (which you saw). Later I bought a FPGA and did some VGA/CPU stuff on it. I'm mostly focused on school and software stuff at the moment. I find hardware stuff very daunting.
@DarkestEx
Wow, I missed this project :0
I have a Z80 and my spouse has an Arduino, this might be a cool project to work on :0