| Target CPUs |
| CPU | Compiler | Assembler | Runtime | Output |
|---|---|---|---|---|
| Zilog Z80 | hcbcomp-z80 | hcasm-z80 | CP/M, MSX-DOS | COM |
| Intel 8080 | hcbcomp-8080 | hcasm-8080 | CP/M | COM |
| Intel 8085 | hcbcomp-8085 | hcasm-8085 | CP/M | COM |
| Intel 8086 | hcbcomp-8086 | hcasm-8086 | MS-DOS (.COM) | COM |
| Intel 8086 (EXE) | hcbcomp-8086exe | hcasm-8086 | MS-DOS (.EXE) | MZ EXE |
All targets also support the REX relocatable format via hclink-rex.
| Feature | Detail |
|---|---|
| Word size | 16-bit (2 bytes) |
| Frame pointer | IX register |
| Return value | HL register pair |
| Primary register | HL (push/pop for stack operations) |
| Secondary register | DE (pop/push for expression evaluation) |
| Parameter access | ld r, [ix+offset] (peephole-optimized) |
| Local access | ld r, [ix-offset] (peephole-optimized) |
| Feature | Detail |
|---|---|
| Word size | 16-bit near / 32-bit far |
| Frame pointer | BP register |
| Return value | AX register (DX:AX for 32-bit) |
| Primary regs | AX (value), BX (address), CX/DX (scratch) |
| COM format | Near pointers (16-bit), text=0x100 |
| EXE format | Far pointers (32-bit seg:off), MZ header, independent segments |
| Feature | Detail |
|---|---|
| Word size | 16-bit (2 bytes) |
| Frame pointer | BC register pair |
| Return value | HL register pair |
| Primary register | HL (push h/pop d for stack operations) |
| Secondary register | DE |