2018-04-02 22:21:26 +00:00
|
|
|
|
[< back to index](../index.md)
|
|
|
|
|
|
2017-12-06 23:23:30 +00:00
|
|
|
|
# Target platforms
|
|
|
|
|
|
2018-07-24 22:04:00 +00:00
|
|
|
|
Currently, Millfork supports creating disk- or tape-based programs
|
|
|
|
|
for Commodore, Apple, BBC and Atari 8-bit computers, NEC PC-88, ZX Spectrum 48k,
|
2018-07-01 22:45:53 +00:00
|
|
|
|
and cartridge-based programs for Famicom/NES and Atari 2600,
|
|
|
|
|
but it may be expanded to support other 6502-based and Z80-based platforms in the future.
|
|
|
|
|
|
2018-07-03 21:28:05 +00:00
|
|
|
|
To add a custom platform yourself, see [the custom platform adding guide](./custom-platform.md).
|
2017-12-06 23:23:30 +00:00
|
|
|
|
|
|
|
|
|
## Supported platforms
|
|
|
|
|
|
|
|
|
|
The following platforms are currently supported:
|
|
|
|
|
|
|
|
|
|
* `c64` – Commodore 64
|
|
|
|
|
|
2018-03-03 20:41:49 +00:00
|
|
|
|
* `c64_scpu` – Commodore 64 with SuperCPU in emulation mode
|
|
|
|
|
|
|
|
|
|
* `c64_scpu16` – Commodore 64 with SuperCPU in native, 16-bit mode (very buggy)
|
2018-03-03 00:21:57 +00:00
|
|
|
|
|
2018-06-08 22:18:21 +00:00
|
|
|
|
* `lunix` – Commodore 64 or 128 running LUnix/LNG 0.21
|
2018-07-01 22:45:53 +00:00
|
|
|
|
Certain language features work differently on this target.
|
|
|
|
|
Read [the LUnix programming guide](./lunix-programming-guide.md) for more info.
|
2018-06-08 22:18:21 +00:00
|
|
|
|
|
2017-12-06 23:23:30 +00:00
|
|
|
|
* `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
|
|
|
|
|
|
|
|
|
|
* `c128` – Commodore 128 in its native mode
|
|
|
|
|
|
|
|
|
|
* `pet` – Commodore PET
|
|
|
|
|
|
2018-03-17 16:09:30 +00:00
|
|
|
|
* `nes_small` – a tiny 32K PRGROM + 8K CHRROM Famicom/NES program, using iNES mapper 0 (NROM)
|
|
|
|
|
|
|
|
|
|
* `nes_mcc4` – a 128K PRGROM + 128K CHRROM + extra 8KRAM Famicom/NES program, using iNES mapper 10 (MMC4)
|
2018-03-15 22:46:16 +00:00
|
|
|
|
For more complex programs, you need to create your own "platform" definition.
|
|
|
|
|
Read [the NES programming guide](./famicom-programming-guide.md) for more info.
|
|
|
|
|
|
2018-04-03 21:13:57 +00:00
|
|
|
|
* `vcs` – Atari VCS (also known as Atari 2600), 4K cartridge (experimental)
|
|
|
|
|
|
2017-12-06 23:23:30 +00:00
|
|
|
|
* `a8` – Atari 8-bit computers
|
|
|
|
|
|
2018-04-02 21:40:40 +00:00
|
|
|
|
* `bbcmicro` – BBC Micro model B (32k RAM)
|
2018-07-01 22:45:53 +00:00
|
|
|
|
The compiler only emits raw binaries, not disk images.
|
|
|
|
|
Read [the BBC Micro programming guide](./bbcmicro-programming-guide.md) for more info.
|
2018-04-02 21:40:40 +00:00
|
|
|
|
|
2018-07-01 22:45:53 +00:00
|
|
|
|
* `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.
|
2018-01-23 12:37:03 +00:00
|
|
|
|
|
2018-07-24 22:04:00 +00:00
|
|
|
|
* `pc88` – NEC PC-88 (no ROM routines are mapped yet)
|
2018-07-01 22:31:47 +00:00
|
|
|
|
|
2018-07-24 22:04:00 +00:00
|
|
|
|
* `zxspectrum` – Sinclair ZX Spectrum 48k
|
2018-07-03 20:37:18 +00:00
|
|
|
|
|
2018-07-30 22:58:43 +00:00
|
|
|
|
* `zxspectrum_8080` – Sinclair ZX Spectrum 48k, using only Intel 8080 instructions
|
|
|
|
|
|
2018-07-30 23:02:55 +00:00
|
|
|
|
* `cpm` – CP/M on Intel 8080
|
|
|
|
|
|
|
|
|
|
* `cpm_z80` – CP/M on Z80
|
|
|
|
|
|
2017-12-06 23:23:30 +00:00
|
|
|
|
The primary and most tested platform is Commodore 64.
|
|
|
|
|
|
2018-03-15 22:46:16 +00:00
|
|
|
|
Currently, targets that assume that the program will be loaded from disk or tape are better tested.
|
|
|
|
|
Cartridge targets may exhibit unexpected bugs.
|