File Extensions Reference
This page lists every file extension that ASM80 treats specially — with syntax highlighting, a dedicated viewer, form editor, context menu actions, or emulator integration. Extensions not listed here open as plain text.
Quick-lookup table
| Extension(s) |
Category |
Opens as |
Notes |
.asm .z80 .a80 .a08 .a65 .a68 .a09 .h09 .816 .a18 .z180 .a03 .s50 .a83 .inc |
Assembly source |
Editor (syntax hl.) |
CPU determined by extension or .cpu directive |
.emu |
HW config |
Form / Text editor |
CPU, memory, serial, console, terminal config |
.lnk |
Linker recipe |
Form / Text editor |
Module list, segments, output format |
.lbr |
Library recipe |
Form / Text editor + Library Viewer |
Which modules to pack into a library |
.hex .ihex |
Intel HEX |
Editor (code view) |
Triggers HW upload button; also an assembler output |
.lst |
Assembler listing |
Editor (text) |
Generated by assembler |
.s19 .srec |
Motorola S-Record |
Editor (text) |
Generated by export tools |
.obj80 .objz80 .obj65 .obj816 .obj68 .obj09 .objh09 .obj08 .obj18 .objz180 .obj03 .obj50 .obj83 |
Relocatable object |
OBJ Viewer |
Symbols, segments, relocation table |
.lib80 .libz80 .lib65 .lib816 .lib68 .lib09 .libh09 .lib08 .lib18 .libz180 .lib03 .lib50 .lib83 |
Library archive |
Library Viewer |
List of contained object modules |
.pmd |
PMD-85 tape |
Tape Viewer |
Block table, label editor; context menu → Open in PMD-85 |
.ptp |
PMD-85 tape archive |
PTP Manager |
Reorder / delete blocks; context menu → Open in PMD-85 |
.pmitape |
PMI-80 tape |
Tape Viewer |
T-state interval recording; context menu → Open in PMI-80 |
.tap |
ZX Spectrum tape |
Tape Viewer |
Block table (Program / Code / Data); context menu → Open in ZX Spectrum |
.tzx |
ZX Spectrum tape |
Tape Viewer |
Extended block types; context menu → Open in ZX Spectrum |
.sna |
ZX Spectrum snapshot |
SNA Viewer |
Register dump; context menu → Load snapshot in ZX Spectrum |
.bin .com .prg and others |
Binary data |
Hex Viewer |
Any unrecognised extension not in text list |
.md .txt |
Plain text |
Editor |
No syntax highlighting |
Assembly source files
These extensions are recognised as assembly source and receive full IDE support: syntax highlighting, hover tooltips for instructions and directives, go-to-definition for labels, and the Compile button (F9).
| Extension |
CPU / Dialect |
.asm |
Generic (CPU set by .cpu directive or engine) |
.z80 |
Zilog Z80 |
.a80 |
Intel 8080 |
.a08 |
Intel 8008 |
.a65 |
MOS 6502 |
.a68 |
Motorola 6800 / 6801 |
.a09 .h09 |
Motorola 6809 |
.816 |
WDC 65816 |
.1802 |
RCA CDP 1802 |
.z180 |
Zilog Z180 |
.a03 |
Motorola 6803 |
.s50 |
Signetics 2650 |
.a83 |
Sharp SM83 (LR35902) |
.inc |
Include file (inherits CPU from parent) |
Files with any of these extensions also show the Upload to hardware button when a Web Serial port is configured.
Configuration files
.emu — Emulator configuration
Opened with a Text / Form toggle. The form editor provides structured fields for hardware configuration sections:
| Section |
Purpose |
cpu: |
CPU type, clock frequency, entry point |
memory: |
ROM/RAM regions with addresses and optional file mappings |
serial: |
UART parameters (baud rate, port address) |
console: |
Software console settings |
terminal: |
Web Serial terminal connection |
When a source file contains .engine <name>, the IDE also looks for <name>.emu in the project root to load the hardware configuration automatically.
→ See .emu Files
.lnk — Linker recipe
Opened with a Text / Form toggle. Describes which object modules to link, how to map segments to memory, and what output format to produce.
→ See Linker Recipe
.lbr — Library recipe
Opened with a Text / Form toggle and also shows the Library Viewer panel when compiled. Lists the object modules that should be packed into a .lib* library archive.
→ See Library Recipe
Assembler output files
.hex / .ihex — Intel HEX
Text format representing machine code as ASCII hex records. Opens in the editor with code highlighting. When a .hex file (or a source file that would produce one) is active and a Web Serial port is configured, the Upload to Hardware button appears in the toolbar.
→ See Upload to Hardware
.lst — Assembler listing
Plain text listing generated alongside the compiled output. Shows each source line with its assembled bytes and addresses. Opens in the editor.
.s19 / .srec — Motorola S-Record
Text format similar to Intel HEX. Generated by the S-Record export tool. Opens in the editor.
.obj80 .objz80 .obj65 .obj816 .obj68 .obj09 .objh09 .obj08 .obj18 .objz180 .obj03 .obj50 .obj83 — Relocatable object
Binary file produced by the assembler when compiling a .module source. Opens in the OBJ Viewer which decodes: module name, defined symbols with values, segment list (CSEG/DSEG/BSSEG/ESEG), and the relocation table.
→ See Object File Viewer
.lib80 .libz80 .lib65 .lib816 .lib68 .lib09 .libh09 .lib08 .lib18 .libz180 .lib03 .lib50 .lib83 — Library archive
Binary archive of multiple object modules. Opens in the Library Viewer which lists the contained modules and their exported symbols.
→ See Library Viewer
Tape and snapshot files
These extensions open in specialised viewers instead of the editor. They also appear in the right-click context menu of the file tree with emulator-specific actions.
.pmd — PMD-85 tape recording
Single-block or multi-block tape recording captured by the PMD-85 emulator’s Record function. Internal format: MGF (Magnetic tape Format) blocks.
Opens as: Tape Viewer — shows block table (block number, name, type, load address, size) and an editable label. The Load in emulator button loads the tape into a running PMD-85 instance.
Context menu: Open in PMD-85
→ See PMD-85 Tape
.ptp — PMD-85 PTP tape archive
Multi-block tape image, typically used for distributing software collections. Contains many MGF blocks with a 2-byte length prefix before each.
Opens as: PTP Manager — interactive table with drag-to-reorder, block delete, Save/Discard buttons. The Load in emulator button starts playback from the selected block.
Context menu: Open in PMD-85
→ See PMD-85 Tape
.pmitape — PMI-80 tape recording
JSON array of T-state intervals recorded from the PMI-80 emulator’s MIC output.
Opens as: Tape Viewer
Context menu: Open in PMI-80
→ See PMI-80 Emulator
.tap — ZX Spectrum TAP tape
Standard ZX Spectrum tape format. A flat sequence of blocks, each preceded by a 2-byte length. Flag byte 0x00 = header block, 0xFF = data block.
Opens as: Tape Viewer — block table showing type (Program / Code / Number array / Character array / Data), name, length, and header parameters (autostart line or load address).
Context menu: Open in ZX Spectrum (tape)
→ See ZX Spectrum Emulator
.tzx — ZX Spectrum TZX archive
Extended ZX Spectrum tape format supporting multiple block types: standard speed (0x10), turbo speed (0x11), pause (0x20), group start/end (0x21/0x22), and text description (0x30).
Opens as: Tape Viewer — same block table as .tap, with block type shown.
Context menu: Open in ZX Spectrum (tape)
→ See ZX Spectrum Emulator
.sna — ZX Spectrum snapshot
Full machine-state snapshot. Two sizes are supported:
- 48k: 49 179 bytes — 27-byte register header + 48 KB RAM
- 128k: 131 103 bytes — 27-byte header + bank data + paging registers
Opens as: SNA Viewer — decodes and displays all register values (AF, BC, DE, HL, IX, IY, SP, PC, I, R, alternate pairs, border, interrupt mode, IFF2, 128k banking state).
Context menu: Load snapshot in ZX Spectrum
Loading a .sna file into the ZX Spectrum emulator switches the model (48k/128k) automatically to match the snapshot size.
→ See ZX Spectrum Emulator
Binary files (Hex Viewer)
Any file whose extension is not in the text whitelist opens in the Hex Viewer — a read-only panel showing the raw bytes as a hex dump with ASCII sidebar.
Common binary extensions: .bin, .com, .prg, .rom, .img, .dat, .bmp, .dta.
Export tools can produce .bin, .com, .prg, and .sna directly from the assembler output.
→ See Binary Exports
Internal / system files
These files live in the .asm80/ hidden folder at the project root and are managed automatically by the IDE. They are excluded from ZIP exports and remote sync.
| Path |
Purpose |
.asm80/session.json |
Open tab list — restored when the project is next opened |
.asm80/remote.json |
Remote project URL and sync state |