• Stars
    star
    250
  • Rank 161,941 (Top 4 %)
  • Language
    Python
  • Created about 13 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Various tools for using AmigaOS programs on other platforms

amitools - various AmigaOS tools for other platforms

Introduction

amitools is a collection of Python 3 tools that I've written to work with Amiga OS binaries and files on macOS and all other *nix-like platforms supporting Python. Windows might work as well, but is heavily untested. However, patches are welcome.

I focus with my tools on classic Amiga setups, i.e. a 680x0 based system with Amiga OS 1.x - 3.x running on it. However, this is an open project, so you can provide other Amiga support, too.

The tools are mostly developer-oriented, so a background in Amiga programming will be very helpful.

Prerequisites

  • Python >= 3.7
  • pip3

Optional Packages

Installation

Stable/Release Version

pip3 install amitools

Note:

  • on Linux/macOS may use sudo to install for all users
  • requires a host C compiler to compile the extension.
  • the version may be a bit outdated. If you need recent changes use the current version.

Current Version from GitHub

Ensure you have Cython installed:

pip3 install cython

Then install amitools directly from the git repository:

pip3 install -U git+https://github.com/cnvogelg/amitools.git

Note:

  • This will install the latest version found in the github repository.
  • You find the latest features but it may also be unstable from time to time.
  • Repeat this command to update to the latest version.

Developers

  • Follow this route if you want to hack around with the amitools codebase
  • Clone the Git repo: amitools@git
  • Ensure you have Cython installed:
pip3 install cython
  • Enter the directory of the cloned repo and install via pip:
pip3 install -U -e .

This install amitools in your current Python environment but takes the source files still from this repository. So you can change the code there and directly test the tools.

Contents

The new Documentation of amitools is hosted on readthedocs

Tools

  • vamos V)irtual AM)iga OS

    vamos allows you to run command line (CLI) Amiga programs on your host Mac or PC. vamos is an API level Amiga OS Emulator that replaces exec and dos calls with its own implementation and maps all file access to your local file system.

  • xdftool

    Create and modify ADF or HDF disk image files.

  • xdfscan

    Scan directory trees for ADF or HDF disk image files and verify the contents.

  • rdbtool

    Create or modify disk images with Rigid Disk Block (RDB)

  • romtool

    A tool to inspect, dissect, and build Amiga Kickstart ROM images to be used with emulators, run with soft kickers or burned into flash ROMs.

  • hunktool

    The hunktool uses amitools' hunk library to load a hunk-based amiga binary. Currently, its main purpose is to display the contents of the files in various formats.

    You can load hunk-based binaries, libraries, and object files. Even overlayed binary files are supported.

  • typetool

    This little tool is a companion for vamos. It allows you to dump and get further information on the API C structure of AmigaOS used in vamos.

  • fdtool

    This tool reads the fd (function description) files Commodore supplied for all of their libraries and dumps their contents in different formats including a code structure used in vamos.

    You can query functions and find their jump table offset.

Python Libraries

  • Hunk library amitools.binfmt.hunk

    This library allows to read Amiga OS loadSeg()able binaries and represent them in a python structure. You could query all items found there, retrieve the code, data, and bss segments and even relocate them to target addresses

  • ELF library amitools.binfmt.elf

    This library allows to read a subset of the ELF format mainly used in AROS m68k.

  • .fd File Parser amitools.fd

    Parse function descriptions shipped by Commodore to describe the Amiga APIs

  • OFS and FFS File System Tools amitools.fs

    Create or modify Amiga's OFS and FFS file system structures

  • File Scanners amitools.scan

    I've written some scanners that walk through file trees and retrieve the file data for further processing. I support file trees on the file system, in lha archives or in adf/hdf disk images

More Repositories

1

plipbox

The plipbox Arduino HW Adapter to bridge Amiga PLIP to Ethernet
C
90
star
2

romdisk

Boot an Amiga from a disk image embedded into the ext. ROM
Assembly
32
star
3

bare68k

A Python 2/3 package to write m68k system emulators
C
14
star
4

plip2slip

A small AVR transforms a PLIP stream into a SLIP stream
C
11
star
5

raspi

My RaspberryPi projects
Python
10
star
6

minimig_tc64

MiniMig for TurboChameleon64
Verilog
8
star
7

tentacle

An OctoPrint frontend specially designed for a small TFT display
Python
7
star
8

captvolt-vcv

captvolt Eurorack Modules for VCV
C++
6
star
9

pardroid

Fast parallel data transfer from Amiga to attached MCU
C
6
star
10

DiskFreezerX

Retrieve floppy disk images with bit cell accuracy
C
6
star
11

machine68k

m68k machine emulator for Python based on Musashi
C
5
star
12

axb

Amiga Cross Builder - Tools to simplify building Amiga programs with cross toolchains
C
4
star
13

fs-uae-gles

FS-UAE port for OpenGL ES
C++
4
star
14

ucon

ucon - a minimal classic Amiga console handler used for emulation
C
3
star
15

glues

GLU OpenGL ES port for embedded Linux systems including the Raspberry Pi
C
3
star
16

es_buddy

EuroShield Buddy PCB Boards
C++
3
star
17

amiditools

My collection of tools for MIDI running on AmigaOS3 and on your Python3 platform
C
3
star
18

aman

Amiga autodoc reader similar to man
Python
3
star
19

fs-uae-tools

Some tools I have written for FS-UAE
Python
2
star
20

aminisocket

Minimal Amiga BSDSocket Library Implementation
C
2
star
21

knobterm

Arduino-based serial terminal with a jog dial
C
2
star
22

u64cmd

Remote control command line tool for Ultimate 64/II+
Python
1
star
23

rcli

A remote network CLI/Shell for your Amiga
C
1
star