Chris Collins

Tools · retro

C64 disk images (D64)

Open Commodore 1541 .D64 images — BAM, disk name and ID, the directory as the C64 lists it, file types, track/sector chains, a block map, a sector hex viewer, PRG load addresses, file and ZIP extraction — and build new disks with your own files.

Added · updated 28 October 2026

Works with

How to use it

Drop a .D64 image (or use choose a file). You get:

  • Directory — the listing exactly as LOAD"$",8 then LIST shows it, with blocks free.

  • Disk — name, ID, DOS type, track count, error bytes, blocks free.

  • Files — click one to follow its sector chain (highlighted in the block map), see a PRG’s load and end address, read a SEQ file as text, or download it. Download all as ZIP extracts every file.

  • Block map — every track and sector, coloured by the BAM: used, free, track 18, the selected file, or an error byte.

  • Sector viewer — any block in hex. Follow link jumps to the next block in the chain.

  • Create a new disk — name it, add .PRG/.SEQ files (or drop them on the drop zone), and download a fresh .D64 that works in VICE and on real hardware via a disk-copy tool.

Format notes

  • A 1541 disk has 35 tracks with 21, 19, 18 or 17 sectors (more on the outer tracks): 683 blocks of 256 bytes, 174,848 bytes. 40-track images (196,608 bytes) are also read; the extra tracks appear in the free count only if the SpeedDOS or DolphinDOS BAM extension is present. An image may end with one error byte per block (175,531 or 197,376 bytes).

  • Track 18 sector 0 is the BAM: the first directory block, a free count and a 3-byte bitmap per track (1 = free), the disk name at $90, the ID at $A2, the DOS type 2A.

  • The directory continues from 18/1: eight 32-byte entries per block — type ($80 bit = closed, $40 = locked; DEL, SEQ, PRG, USR, REL), the first track/sector, a 16-byte name padded with $A0, and the size in blocks.

  • Each data block starts with the track/sector of the next block; in the last block the track is 0 and the second byte is the index of the last used byte. A PRG file’s first two bytes are its load address ($0801 for BASIC).

  • New files are allocated like the 1541 DOS does it: outwards from track 18, with a sector interleave of 10.

Disks never leave your browser.

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