runz80 simulated z80 system IDE

Other misc things
Post Reply
codifies
New member
Posts: 7
Joined: Sat Jan 30, 2016 5:45 pm

runz80 simulated z80 system IDE

Post by codifies »

While it is little more that a quick weekends hack at the moment...

I've just begun a new project to create a highly customisable simulated z80 environment

https://github.com/chriscamacho/runz80


If anyone is so inspired, ideas, glade UI designs or any other contribution would be welcome.

from the project readme.md

This at the moment it is little more that a minimal front end to
libz80, while there are other z80 IDE's I'm developing this for
intellectual exercise. Its main feature will be to have the ability
to use devices provided by plugins.

The idea is that each plugin will have its own configuration that
will define what memory area (and/or IO ports) its responsible for

The user will then be able to "build" their own Z80 system by including
and defining which devices (plugins) and how they are attached.

requires gtk3 pkg-config z88dk libz80

http://nightly.z88dk.org/z88dk-latest.tgz
https://github.com/ggambetta/libz80

extract z88dk to this directory
clone libz80 to this directory
alvin
Well known member
Posts: 1872
Joined: Mon Jul 16, 2007 7:39 pm

Post by alvin »

I like the idea of being able to build a z80 system from plugins -- this would actually be very helpful from a simulator point of view and fits with z88dk quite well which is intended to support a variety of different z80 hw platforms.

I compiled a program that computes pi to 800 decimal places (without any output of course) and it looks like it's probably running correctly. Being able to see a disassembly as it runs, being able to view memory and being able to enter breakpoints will go a long way. I look forward to see how far you can go with this.
codifies
New member
Posts: 7
Joined: Sat Jan 30, 2016 5:45 pm

Post by codifies »

I have very early fugly but working plugin support - you can only write a port and i have yet to support some kind of machine definition config file, but although ear;y days its going well - thanks for the interest !
codifies
New member
Posts: 7
Joined: Sat Jan 30, 2016 5:45 pm

Post by codifies »

https://www.youtube.com/watch?v=FFk45Kdmmdc should give you an idea of what I'm doing.....
stefano
Well known member
Posts: 2144
Joined: Mon Jul 16, 2007 7:39 pm

Post by stefano »

Nice, would you be able to include external libraries ?

If so, you could have some fun with the frontpanel library.. it an incredibly powerful way to quickly create realistic interfaces around an emulator.. two years ago I got a working port for Windows, even if it's still damn difficult to prepare a valid DLL and I'm not sure I'm able to get get a 64 bit version.

To prepare a working interface is as simple as loading a picture and tracking the current cursor positions to prepare the lights and switches coordinates for a configuration file. A 3D effect can be applied to 2D panels too to achieve extra realism, otherwise a full 3D box can be built.
The z80pack project is a nice example of what can be done with such library: https://www.youtube.com/watch?v=rt4DP1raKAo

If the panel output code is put in the right place (close enough to the CPU emulation core) then the LED/bulb intensity will exactly like the real one. I believe that the frontpanel library variant included in z80pack is the most updated one, since the original library repository is unchanged since 2008.. the author John Kichury explained me he chose to move a step forward and he is now experimenting with full immersive VR with the aid of special hardware. Still we have this little gem to play with.
Its ideal target is the whole SIMH project.. Mark Pizzolato worked on an universal front panel API for SIMH but he chose to support remotely connected panels (i.e. communicating with TCP/IP) an this is not ideal for the lights realism even if can be good for hardware implementations.
codifies
New member
Posts: 7
Joined: Sat Jan 30, 2016 5:45 pm

Post by codifies »

I do not know what this windows thing is, that you talk about.

Plugins are free to use whatever window/gui toolkit they like, for example the 128x64x1 "LCD" plugin uses GTK+ (version 3) - (but probably inefficiently as I'm no expert!) - as does the main (rudimentary) cpu panel.

A plugin in should be platform independent and so only use dependencies that are themselves platform independent

Assuming source is publicly available and has a sane build process there is no need to include external libraries with any source code plugin contribution you make.

I look forward to see your plugin - thanks for your interest.
codifies
New member
Posts: 7
Joined: Sat Jan 30, 2016 5:45 pm

Post by codifies »

I've recently done some more work on this project, as I'm now embedding the plugins into the main window, plugins are now effectively reliant on GTK this is not such a major problem as it is available on a fairly decent set of platforms.

Only the "step" button now updates the panel displaying register values, now running is much quicker, further work has been done on the examples ...
Post Reply