Dear visitors and members, with the staff having moved on to other life interests and as a result of changes in people's internet usage habits, the CodeWalrus community have migrated almost entirely to Discord, IRC and WalrusIRC and is now essentially a place where to hang out, chat about gaming, programming, music, anime, and chill. As a result, even though the CW forums will remain open for posting, for faster TI, Casio or HP calculator help and news we recommend using the bilingual TI-Planet forums instead.

We encourage everyone to join our Discord server now.

* WalrusIRC

You need to have 5 posts and not be part of restricted usergroups in order to use the WalrusIRC embedded shoutbox. However, you can also access our IRC channel called #CodeWalrus via EFnet.

Author Topic: z80 computer with arduino coprocessor.  (Read 261 times)

0 Members and 1 Guest are viewing this topic.

Offline c4ooo

  • Pedanticity prevents ambiguity
  • Super User
  • CW Contest II Winner
  • *
  • Join Date: Aug 2015
  • Location: 127.0.0.1
  • Posts: 1028
  • Post Rating Ratio: +13/-4
  • Advanced forumer
  • Gender: Male
z80 computer with arduino coprocessor.
« on: December 22, 2017, 11:18:00 pm »
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:
Code: [Select]
#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 (?)



Offline Juju

  • aka Yuki Kagayaki aka J̵̭͕͇ù̞̭̝̯̦j̴̭̙̗͖͡ù͏͓̲̕
  • CodeWalrus Staff
  • Super User
  • Server Maintenance
  • Moderator
  • Forum Maintenance
  • Original 5
  • CodeWalrus Supporter
  • *
  • Join Date: Nov 2014
  • Location: Inside a walrus
  • Posts: 3171
  • Post Rating Ratio: +36/-2
  • Couch potato
    • jul.savard
    • juju2143
    • @juju2143
    • juju2143
    • @julosoft
    • juju-kun
    • /u/juju2143
    • juju2143
    • @juju2143
    • Juju's shed
  • Gender: Female
  • WalriiPoints: 99999
Re: z80 computer with arduino coprocessor.
« Reply #1 on: December 23, 2017, 12:53:20 am »
Ooooh, sounds fun. Any idea what you want to do with this?
  • Calculators owned: TI-83+ (dead?), Casio Prizm (also dead???)
  • Consoles, mobile devices and vintage computers owned: A lot
On semi-hiatus until who knows when. CODEWALRUS 2.0 COMING SOON
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

Offline c4ooo

  • Pedanticity prevents ambiguity
  • Super User
  • CW Contest II Winner
  • *
  • Join Date: Aug 2015
  • Location: 127.0.0.1
  • Posts: 1028
  • Post Rating Ratio: +13/-4
  • Advanced forumer
  • Gender: Male
Re: z80 computer with arduino coprocessor.
« Reply #2 on: December 23, 2017, 02:20:09 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.

 


You can also use the following HTML or bulletin board code to share it on your page or forum signature!


Also do not forget to check our affiliates below.
Planet Casio TI-Planet Calc.news BroniesQC BosaikNet Velocity Games