Giter Site home page Giter Site logo

juanpc2018 / zz9kmandel Goto Github PK

View Code? Open in Web Editor NEW

This project forked from emiespo/zz9kmandel

0.0 0.0 0.0 65 KB

A simple all-in-one example to make software running on the ZZ9000 Amiga gfx board

License: GNU General Public License v3.0

C++ 0.07% C 60.79% Assembly 35.95% Makefile 3.20%

zz9kmandel's Introduction

MNT ZZ9000 ARM SDK EXAMPLE (MANDELBROT SET)

This is my attempt at making a project structure that allows having a simple "all in one" 68K launcher.

The idea is mostly educational around the ZZ9K and mixed makefiles/compilers/architecture.
The main program is in mandel.c and simply draws a Mandelbrot set.
With the default configuration, this code is compiled into an ARM executable that can run on the ZZ9K SDK.
It can also be compiled into a pure 68K executable (for benchmark/performance evaluation) configuring the Makefile
Please also read the official SDK documentation: https://source.mntmn.com/MNT/zz9000-sdk.

DISCLAIMER

This must be considered EXPERIMENTAL and BUGGY for now. It might just crash your Amiga, you've been warned!

KNOWN BUGS

It seems to work most of the times, but sometimes it just won't load or end up crashing the board (one of the ARM cores gets stuck).
Apparently this is due to the second ARM core not properly resetting and getting stuck somewhere (an IRQ?).
Seems to be an issue with firmwares 1.5+ (at least on my setup even the existing examples have never worked properly).

Requirements

The provided Amiga makefile is made to work with Bebbo's Amiga GCC toolchain: https://github.com/bebbo/amiga-gcc.
The default configuration assumes amiga-gcc is installed in /opt/amiga.

To compile the ARM code, please refer to the ZZ9K SDK above (you need to install the GCC version called arm-none-eabi-gcc).

Configuration

Most of the variables and configs are preset in the Makefiles, with comments.
A sample config file is provided for Visual Studio Code.
It also assumes that Bebbo's amiga-gcc is installed in /opt/amiga/ (see above).

Building

Provided you have a working Bebbo's installation, you can simply run

make

from the project root.
This would create the two executables:

build/mandel-68k        ; 68000 executable
build/mandel-arm.bin    ; ARM executable

copy them on the same folder in your Amiga and you should be good to go!

Debugging

The VSCode configuration allows remote debugging (yes, it kinda works!) thanks again to Bebbo's efforts: https://github.com/bebbo/bgdbserver You should launch the bgdbserver on the Amiga (see documentation) and then point at it via the miDebuggerServerAddress param in the (gdb) Remote Attach configuration provided.

Have fun!

zz9kmandel's People

Contributors

emiespo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.