Skip to content

GoldenPalazzo/asim-reborn

Repository files navigation

ASIM Reborn - Simple multiplatform 68k IDE

This is a IDE for the Motorola 68000 CPU. It features an editor, a compiler and a debugger.

I made this because my university classes are using an obsolete tool (known as ASIM, Ambiente di SIMulazione, literally "simulation environment") which was developed by Italian computer scientist/engineer Antonino Mazzeo.

The software was originally developed for Windows 95 and never had an update past 1996. The making of this project was out of sheer necessity to have a working IDE to follow the lessons that worked on Linux. Since I'm making it in Python, I thought to build it for Windows and OS X as well with PyInstaller.

Using bare68k python library forked by me for Python 3.12 and wrapping the vasm compiler, this project now reached a usable state, with the full list of features below.

I hope this project gets picked up by someone since I'm very very very prone to get bored easily when a project is half completed.

Table of contents

  1. Installation
  2. Building
  3. Usage
  4. Features
  5. Collaboration and issues

Installation

Check out the releases tab and follow the instructions to install the latest version.

If you are a masochist or actually need to build it yourself for your needs, follow the instructions below.

Building

Although it's preferable to download the precompiled binary from the releases tab, if you ever need to build it yourself, here are the instructions.

  1. Download Python 3.12

  2. Clone the repo by clicking the green button or by running

    git clone https://github.com/GoldenPalazzo/asim-reborn.git
  3. Get in the newly cloned repo

  • I strongly advise you to create a virtual environment via

    python -m venv .venv
    • Linux
    source .venv/bin/activate
    • Windows
    .\.venv\Scripts\Activate.ps1

Linux / Mac OS

  1. Download external resources

    ./src/prepare_repo.sh

    (make sure you have installed brew on OS X, and installed GNU coreutils via $ brew install coreutils)

  2. Build vasm

    ./src/build_vasm.sh
  3. Build bare68k

    ./src/build_bare68k.sh
  4. (MAKE SURE YOU'RE IN THE VIRTUALENVIRONMENT) Install pip dependencies

    python -m pip install pip pyinstaller
    pip install -r requirements.txt
    pip install lib/bare68k*.whl
  5. Build.

    ./src/build.sh

Windows

  1. Download external resources

    .\src\prepare_repo.bat
  2. (MAKE SURE YOU'RE IN THE VIRTUALENVIRONMENT) Install pip dependencies

    set PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    python -m pip install pip pyinstaller
    pip install -r requirements.txt
    pip install .\lib\bare68k-0.1.2-cp312-cp312-win_amd64.whl
  3. Build.

    .\src\build.bat

The entire folder AsimReborn inside dist will be the final product of our build. Feel free to modify the build scripts to best suit the artifact to your needs (e.g. creating a single file instead of a single directory).

Using it via python

You can also not build any executable and just run it via python with

python src/main.py

Usage

Write code as usual and then save your program via the menu or by clicking <Ctrl-S>. After saving, you can compile your program in the same directory it is present by clicking <F5>, running with <F6>, stepping with <F7> and stopping with <F8>.

There are two docks: compilation and execution dock.

  • The compilation dock literally shows the output of the vasm assembler. Soon I will let the user manually choose the compilation flags. For now, they should work good for generally every user.
  • The execution dock features
    • a memory viewer that shows 32 longword addresses in hex and lets you pick the desired address to see.
    • a variable watching panel: insert the address and choose the representation you'd like to see for debug purposes between
      • Unsigned/Signed/Hexadecimal byte int
      • Unsigned/Signed/Hexadecimal word int
      • Unsigned/Signed/Hexadecimal longword int
      • Single ASCII character
      • Null termined ASCII string
    • all M68k registers in hexadecimal and formatted status register.
    • step and stop buttons.

Features

  • Creating, opening, saving scripts.
  • Compilation and execution of M68K assembly in Motorola syntax.
  • Step by step execution.
  • Fast run execution.
  • Breakpoints.
  • Watching variables under different formats.
  • Memory viewer and stack pointer pointer.
  • Registries and formatted status register.
  • Status register info dialogue.
  • Compatible with ASIM written programs.
  • Syntax highlighting using Monokai color scheme.
  • Customizable color scheme via settings.
  • Settings menu.
  • Error highlighting at compile time.

Collaboration and issues

I'm open to all kind of pull requests at the moment, and also any kind of bug report in the issues tab.