Skip to content
David Banks edited this page Jan 31, 2020 · 9 revisions

Introduction

There are several emulators implemented:

  • ice6502 - ICE for the 6502.
  • ice65c02 - ICE for the 65C02.
  • ice6809 - ICE for the 6809E.
  • icez80 - ICE for the Z80.

These are supported on several hardware platforms:

  • godil_250 - GODIL 250
  • godil_500 - GODIL 500
  • lx9_jason - LX9 Core Board (from eepizza) with Jason Flynn's level shifters shim
  • lx9_jason_flipped - LX9 Core Board (from eepizza) with Jason Flynn's level shifters shim (rotated 180 degrees)
  • lx9_dave - LX9 Core Board (from eepizza) with Dave's family of active level shifters (CPU specific adapters)

Prerequisites

Install the dependencies described in Toolchain

Clone the project:

git clone --branch dev https://github.com/hoglet67/AtomBusMon.git

Note: all the latest work is on the dev branch

Building a single emulator

cd AtomBusMon/target/godil_250/ice6502
make clobber build

This generates a .bit and.mcs file in the current directory:

See Programming the GODIL for instructions on using iMPACT to program the GODIL.

The following targets exist:

  • clobber: delete any pre-existing hardware and software build artefacts
  • clean: delete any pre-existing software build artefacts
  • build: produce the final .bit and .mcs file

Clobber should be used when it is necessary to force the FPGA design to be recompiled. This takes a few minutes.

Building all emulator for a given board

cd AtomBusMon/target/godil_250
make clobber build

Building all targets for all boards

cd AtomBusMon/target
make clobber build

Emulator specific customizations

The firmware for each of emulators is built from the same source file: https://github.com/hoglet67/AtomBusMon/blob/master/firmware/AtomBusMon.c

There is some use of conditional compilation to build a specific target:

#ifdef CPU_6502 #ifdef CPU_65C02 #ifdef CPU_Z80 #ifdef CPU_6809

This makes customization specific to a target, for example:

  • Setting the emulator name
  • Enabling the IO specific commands for the Z80
  • Include the appropriate CPU registers display
  • Include the appropriate disassembler