2019-07-15 12:21:50 +00:00
|
|
|
|
[< back to index](../doc_index.md)
|
2018-04-02 22:21:26 +00:00
|
|
|
|
|
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
|
2018-12-19 21:21:51 +00:00
|
|
|
|
for Commodore, Apple, BBC and Atari 8-bit computers, NEC PC-88, ZX Spectrum 48k, Amstrad CPC, CP/M,
|
2019-06-05 11:31:43 +00:00
|
|
|
|
and cartridge-based programs for Commodore 64, VIC-20, MSX, Famicom/NES and Atari 2600,
|
2018-07-01 22:45:53 +00:00
|
|
|
|
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
|
|
|
|
|
2019-06-28 14:28:49 +00:00
|
|
|
|
If you are compiling for a cartridge-based target,
|
|
|
|
|
you need to take special precautions; see [the ROM vs RAM guide](./rom-vs-ram.md)
|
|
|
|
|
|
2017-12-06 23:23:30 +00:00
|
|
|
|
## Supported platforms
|
|
|
|
|
|
|
|
|
|
The following platforms are currently supported:
|
|
|
|
|
|
2018-12-19 18:02:29 +00:00
|
|
|
|
* `c64` – Commodore 64.
|
|
|
|
|
The compiler emits PRG files, not disk or tape images.
|
2019-01-05 00:19:14 +00:00
|
|
|
|
If you want to create a program consisting of multiple PRG files,
|
|
|
|
|
see [the Commodore programming guide](./commodore-programming-guide.md) for more info.
|
2017-12-06 23:23:30 +00:00
|
|
|
|
|
2018-12-17 16:18:29 +00:00
|
|
|
|
* `c64_crt8k` – Commodore 64, 8K ROM cartridge
|
|
|
|
|
|
|
|
|
|
* `c64_crt16k` – Commodore 64, 16K ROM cartridge
|
|
|
|
|
|
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
|
|
|
|
|
|
2018-12-17 16:18:29 +00:00
|
|
|
|
* `vic20_a000` – Commodore VIC-20, 8K ROM cartridge at $A000
|
|
|
|
|
|
2017-12-06 23:23:30 +00:00
|
|
|
|
* `c128` – Commodore 128 in its native mode
|
|
|
|
|
|
|
|
|
|
* `pet` – Commodore PET
|
|
|
|
|
|
2018-12-19 18:02:29 +00:00
|
|
|
|
* `nes_small` – a tiny 32K PRGROM + 8K CHRROM Famicom/NES program, using iNES mapper 0 (NROM).
|
|
|
|
|
The compiler emits NES files.
|
2018-03-17 16:09:30 +00:00
|
|
|
|
|
|
|
|
|
* `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)
|
|
|
|
|
|
2018-12-19 18:02:29 +00:00
|
|
|
|
* `a8` – Atari 8-bit computers.
|
|
|
|
|
The compiler emits XEX files, not disk or tape images.
|
2017-12-06 23:23:30 +00:00
|
|
|
|
|
2018-12-19 18:02:29 +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-12-19 18:02:29 +00:00
|
|
|
|
* `pc88` – NEC PC-88.
|
|
|
|
|
The compiler emits bootable disk images.
|
2018-07-01 22:31:47 +00:00
|
|
|
|
|
2018-12-19 21:21:51 +00:00
|
|
|
|
* `cpc464` – Amstrad CPC 464.
|
2018-12-19 18:02:29 +00:00
|
|
|
|
The compiler only emits raw binaries, not disk images.
|
2018-12-19 21:21:51 +00:00
|
|
|
|
Read [the Amstrad CPC programming guide](./cpc-programming-guide.md) for more info.
|
2018-12-19 18:02:29 +00:00
|
|
|
|
|
|
|
|
|
* `zxspectrum` – Sinclair ZX Spectrum 48k.
|
|
|
|
|
The compiler emits tape images.
|
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
|
|
|
|
|
|
2019-06-05 11:31:43 +00:00
|
|
|
|
* `msx_crt` – MSX 16kB cartridge, using only 16kB RAM
|
|
|
|
|
|
2019-03-18 22:15:28 +00:00
|
|
|
|
* `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.
|
|
|
|
|
|
2018-12-19 18:02:29 +00:00
|
|
|
|
* `cpm` – CP/M on Intel 8080.
|
|
|
|
|
The compiler emits COM files.
|
2018-07-30 23:02:55 +00:00
|
|
|
|
|
|
|
|
|
* `cpm_z80` – CP/M on Z80
|
|
|
|
|
|
2019-05-31 15:03:35 +00:00
|
|
|
|
* `dos_com` – a COM file for DOS on IBM PC. (very experimental)
|
|
|
|
|
|
2017-12-06 23:23:30 +00:00
|
|
|
|
The primary and most tested platform is Commodore 64.
|