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
- Commodore 64: emulator, BASIC, assembler and debugger Retro computing▶ Run in C64 emulator boots the open disk, or the one being built, there
How to use it
Drop a .D64 image (or use choose a file). You get:
-
Directory — the listing exactly as
LOAD"$",8thenLISTshows 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/.SEQfiles (or drop them on the drop zone), and download a fresh.D64that 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 type2A. -
The directory continues from 18/1: eight 32-byte entries per block — type (
$80bit = 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 (
$0801for 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.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.