1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-12-25 21:29:25 +00:00
millfork/docs/api/target-platforms.md

120 lines
4.5 KiB
Markdown
Raw Normal View History

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
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
2019-08-16 16:00:04 +00:00
* `c64_ef_small` Commodore 64, EasyFlash cartridge, 72K of program code.
See [the EasyFlash programming guide](./easyflash-programming-guide.md) for more info.
* `c64_scpu` Commodore 64 with SuperCPU in emulation mode
* `c64_scpu16` Commodore 64 with SuperCPU in native, 16-bit mode (very buggy)
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
2019-07-30 13:30:18 +00:00
* `c64jp` Japanese version of Commodore 64 (different memory layout and character set)
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.
2019-09-19 23:44:18 +00:00
* `atari_lynx` Atari Lynx
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-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-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
2020-09-29 20:50:46 +00:00
* `z1013` Robotron Z1013. The compiler emits Z80 files.
2020-09-26 21:52:49 +00:00
* `trs80m1cmd` TRS-80 Model 1 running TRS-DOS. The compiler emits CMD files.
* `trs80m3cmd` TRS-80 Model 3 running TRS-DOS. The compiler emits CMD files.
2020-07-30 23:58:40 +00:00
* `coco_rsdos` Tandy Color Computer running RS-DOS. (very experimental)
Read [the Color Computer programming guide](./coco-programming-guide.md) for more info.
2020-08-01 20:20:52 +00:00
* `coco_crt` 16K cartridge for Tandy Color Computer. (very experimental)
Read [the Color Computer programming guide](./coco-programming-guide.md) for more info.
2019-05-31 15:03:35 +00:00
* `dos_com` a COM file for DOS on IBM PC. (very experimental)
* `x16_experimental` Commander X16; very experimental,
as both the target configuration *and* the device itself are in their experimental phases.
2017-12-06 23:23:30 +00:00
The primary and most tested platform is Commodore 64.