Chris Collins

Tools · retro

Amiga ADF disk images

Explore Amiga .adf and .adz floppy images in the browser — bootblock, root block, block map, directory tree with dates, protection bits and comments — extract files or the whole disk as a ZIP, verify checksums, and create new OFS or FFS disks with your own files.

Added · updated 12 October 2026

Works with

How to use it

Drop an .adf (or gzip-compressed .adz) on the page, or click to choose one. Nothing is uploaded; the image is read in your browser.

  • Disk shows the DOS type (OFS, FFS, INTL, DIRC), whether the disk is bootable, the volume name, dates, and free space. Show bootblock dumps the first 1,024 bytes in hex.

  • The block map colours every block — bootblock, root, bitmap, headers, extension blocks, data, and free. Click a block to see its type, checksum, and fields.

  • Files is the whole tree with sizes, dates, hsparwed protection bits, and file comments. Click a file to view it as text or hex, or Download it. Extract all as ZIP keeps the folder structure.

  • Verify checksums checks the bootblock, every header block, every bitmap block, and that the bitmap agrees with the blocks the files actually use.

  • New blank disk formats a DD (880 KB) or HD (1.76 MB) image as OFS or FFS, optionally international mode, with your volume name. Install boot code writes the standard bootblock so the disk boots into AmigaDOS. Add files… and Make directory write into the folder you have selected; Download .adf saves the result.

Writing is supported for OFS and FFS (with or without INTL). DIRC (directory cache) and long-name disks open read-only.

Boot code

The summary says what the bootblock’s code is: none, the standard AmigaDOS Install code, or custom code — a game or demo loader, a later Install version, a utility, or a boot-block virus. Copy hex puts custom code on the clipboard to paste into the 68000 disassembler. Booting an unknown disk in an emulator is safe; on real hardware, check first.

Format notes

  • A disk is 512-byte blocks: 1,760 on a DD floppy (80 cylinders × 2 heads × 11 sectors) and 3,520 on HD. The root block sits in the middle — block 880 on DD, 1,760 on HD.

  • Bootblock — blocks 0–1. DOS plus a flags byte: bit 0 FFS, bit 1 international, bit 2 directory cache. The checksum at offset 4 makes the 256-longword sum, added with end-around carry, equal $FFFFFFFF. The classic boot code just finds dos.library and returns its init vector.

  • Header blocks (root, directories, files) have type 2 and a secondary type at offset $1FC (1 root, 2 directory, −3 file). The checksum at offset 20 makes the sum of all longwords zero. Directories are 72-entry hash tables; the hash of a name is h = length; h = (h × 13 + toupper(c)) & $7FF for each character, then h mod 72. Collisions chain through offset $1F0.

  • File headers list up to 72 data blocks in reverse order from offset $134; longer files continue in extension blocks (type 16). OFS data blocks carry a 24-byte header (488 data bytes each); FFS data blocks are raw 512 bytes.

  • The bitmap (pointed to from the root) has one bit per block from block 2, set = free, and its own checksum in the first longword.

  • Dates are days since 1 January 1978, minutes since midnight, and ticks (1/50 s).

  • Protection bits hsparwed: the low four (read, write, execute, delete) are stored inverted — a set bit means not allowed.

Runs entirely in your browser; nothing you type leaves this page.