November 20, 2019, 10:20:13 am

News:

Juju thinks he's so clever by putting funny stuff here


The shoutbox is currently out of service. Join us on Discord instead.
You can help CodeWalrus stay online by donating here.

z80 computer with arduino coprocessor.

Started by c4ooo, December 22, 2017, 11:18:00 pm

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

c4ooo

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:


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 (?)

Juju

Ooooh, sounds fun. Any idea what you want to do with this?
Read Zarmina!
YUKI-CHAAAANNNN
In the beginning there was walrii. In the end there will be walrii. All hail our supreme leader :walrii: --Snektron



if you wanna throw money at me and/or CodeWalrus monthly it's here

c4ooo

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.

Powered by EzPortal