Amiga Disk File

I wrote a CLI tool to handle ADF files in Rust.
Published 3/2/2026.

My father worked as an audiovisual technician in the early 80s, which exposed him to microcomputing early on.

At home we had a Commodore 64 and a Sinclair ZX81; by the age of 10, I had my first own computer: an Amiga 500.

I burned hours playing classics like Kick Off, SWIV, The Blues Brothers, The Chaos Engine, Turrican II, Toki, etc.

I got my start in digital art with Deluxe Paint IV, mostly recreating Metallica and Iron Maiden logos.

Finally, I discovered music creation using NoiseTracker and Protracker.

I recently bought an old Amiga 500 and started using Protracker to create MOD files. I also gathered a ton of samples but they were in LHA archives. To use them, I had to convert the LHA file into ADF disk images. I know there are already existing tools for this, but I saw it as the perfect opportunity to write some Rust code!

Setup

git clone https://codeberg.org/null_dev/amiga-disk-file.git
cd amiga-disk-file
cargo install --path ./packages/nd-adf-tools

Usage

Get help
nd-adf-tools --help
nd-adf-tools <COMMAND> --help
Create a disk
nd-adf-tools create --floppy-disk-drive dd disk.adf
Format a disk
nd-adf-tools format disk.adf FD1
Get info about the disk
nd-adf-tools info disk.adf
Volume name: FD1
Volume type: OFS, INTL-OFF, CACHE-OFF

Volume alteration date: Sun, 29 Mar 2026 15:33:44 +0000
    Root creation date: Sun, 29 Mar 2026 15:33:44 +0000
  Root alteration date: Sun, 29 Mar 2026 15:33:44 +0000

Total:     1760     901120
 Used:        4       2048   0.23%
 Free:     1756     899072  99.77%
Create some directories
nd-adf-tools mkdir disk.adf foo
nd-adf-tools mkdir -p disk.adf bar/gee
Add a file
nd-adf-tools write disk.adf ./nd-adf-tools.nfo bar/gee/nd-adf-tools.nfo
List files
nd-adf-tools ls -lr disk.adf
/:
d rwed--------          - 2026-03-29T17:35:48+02:00 foo
d rwed--------          - 2026-03-29T17:36:45+02:00 bar

/foo:

/bar:
d rwed--------          - 2026-03-29T22:11:24+02:00 gee

/bar/gee:
  rwed--------       1290 2026-03-29T22:14:29+02:00 nulldev.nfo
Read file
nd-adf-tools read disk.adf bar/gee/nulldev.nfo nulldev.nfo
nd-adf-tools cat disk.adf bar/gee/nulldev.nfo
 ██████   █████            ████  ████  ██████████
░░██████ ░░███            ░░███ ░░███ ░░███░░░░███
 ░███░███ ░███  █████ ████ ░███  ░███  ░███   ░░███  ██████  █████ █████
 ░███░░███░███ ░░███ ░███  ░███  ░███  ░███    ░███ ███░░███░░███ ░░███
 ░███ ░░██████  ░███ ░███  ░███  ░███  ░███    ░███░███████  ░███  ░███
 ░███  ░░█████  ░███ ░███  ░███  ░███  ░███    ███ ░███░░░   ░░███ ███
 █████  ░░█████ ░░████████ █████ █████ ██████████  ░░██████   ░░█████
░░░░░    ░░░░░   ░░░░░░░░ ░░░░░ ░░░░░ ░░░░░░░░░░    ░░░░░░     ░░░░░
Remove file
nd-adf-tools remove disk.adf bar/gee/nulldev.nfo
Remove directories
nd-adf-tools remove -rf disk.adf bar

Credits