mirror of
https://github.com/KarolS/millfork.git
synced 2024-11-08 20:06:24 +00:00
98 lines
3.5 KiB
Markdown
98 lines
3.5 KiB
Markdown
[< back to index](../index.md)
|
||
|
||
# Target platforms
|
||
|
||
Currently, Millfork supports creating disk- or tape-based programs
|
||
for Commodore, Apple, BBC and Atari 8-bit computers, NEC PC-88, ZX Spectrum 48k, Amstrad CPC, CP/M,
|
||
and cartridge-based programs for Commodore 64, VIC-20, MSX, Famicom/NES and Atari 2600,
|
||
but it may be expanded to support other 6502-based and Z80-based platforms in the future.
|
||
|
||
To add a custom platform yourself, see [the custom platform adding guide](./custom-platform.md).
|
||
|
||
## Supported platforms
|
||
|
||
The following platforms are currently supported:
|
||
|
||
* `c64` – Commodore 64.
|
||
The compiler emits PRG files, not disk or tape images.
|
||
If you want to create a program consisting of multiple PRG files,
|
||
see [the Commodore programming guide](./commodore-programming-guide.md) for more info.
|
||
|
||
* `c64_crt8k` – Commodore 64, 8K ROM cartridge
|
||
|
||
* `c64_crt16k` – Commodore 64, 16K ROM cartridge
|
||
|
||
* `c64_scpu` – Commodore 64 with SuperCPU in emulation mode
|
||
|
||
* `c64_scpu16` – Commodore 64 with SuperCPU in native, 16-bit mode (very buggy)
|
||
|
||
* `lunix` – Commodore 64 or 128 running LUnix/LNG 0.21
|
||
Certain language features work differently on this target.
|
||
Read [the LUnix programming guide](./lunix-programming-guide.md) for more info.
|
||
|
||
* `c16` – Commodore 16
|
||
|
||
* `plus4` – Commodore Plus/4
|
||
|
||
* `vic20` – Commodore VIC-20 without memory expansion
|
||
|
||
* `vic20_3k` – Commodore VIC-20 with 3K memory expansion
|
||
|
||
* `vic20_8k` – Commodore VIC-20 with 8K or 16K memory expansion
|
||
|
||
* `vic20_a000` – Commodore VIC-20, 8K ROM cartridge at $A000
|
||
|
||
* `c128` – Commodore 128 in its native mode
|
||
|
||
* `pet` – Commodore PET
|
||
|
||
* `nes_small` – a tiny 32K PRGROM + 8K CHRROM Famicom/NES program, using iNES mapper 0 (NROM).
|
||
The compiler emits NES files.
|
||
|
||
* `nes_mcc4` – a 128K PRGROM + 128K CHRROM + extra 8KRAM Famicom/NES program, using iNES mapper 10 (MMC4)
|
||
For more complex programs, you need to create your own "platform" definition.
|
||
Read [the NES programming guide](./famicom-programming-guide.md) for more info.
|
||
|
||
* `vcs` – Atari VCS (also known as Atari 2600), 4K cartridge (experimental)
|
||
|
||
* `a8` – Atari 8-bit computers.
|
||
The compiler emits XEX files, not disk or tape images.
|
||
|
||
* `bbcmicro` – BBC Micro model B (32k RAM).
|
||
The compiler only emits raw binaries, not disk images.
|
||
Read [the BBC Micro programming guide](./bbcmicro-programming-guide.md) for more info.
|
||
|
||
* `apple2` – Apple II+/IIe/Enhanced IIe.
|
||
The compiler only emits raw binaries, not disk images.
|
||
Read [the Apple 2 programming guide](./apple2-programming-guide.md) for more info.
|
||
|
||
* `pc88` – NEC PC-88.
|
||
The compiler emits bootable disk images.
|
||
|
||
* `cpc464` – Amstrad CPC 464.
|
||
The compiler only emits raw binaries, not disk images.
|
||
Read [the Amstrad CPC programming guide](./cpc-programming-guide.md) for more info.
|
||
|
||
* `zxspectrum` – Sinclair ZX Spectrum 48k.
|
||
The compiler emits tape images.
|
||
|
||
* `zxspectrum_8080` – Sinclair ZX Spectrum 48k, using only Intel 8080 instructions
|
||
|
||
* `msx_crt` – MSX 16kB cartridge, using only 16kB RAM
|
||
|
||
* `gb_small` – a tiny 32K Game Boy program. (experimental)
|
||
The compiler emits GB files.
|
||
Read [the Game Boy programming guide](./gb-programming-guide.md) for more info.
|
||
|
||
* `cpm` – CP/M on Intel 8080.
|
||
The compiler emits COM files.
|
||
|
||
* `cpm_z80` – CP/M on Z80
|
||
|
||
* `dos_com` – a COM file for DOS on IBM PC. (very experimental)
|
||
|
||
The primary and most tested platform is Commodore 64.
|
||
|
||
Currently, targets that assume that the program will be loaded from disk or tape are better tested.
|
||
Cartridge targets may exhibit unexpected bugs.
|