1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-11-05 00:05:44 +00:00
millfork/docs/api/target-platforms.md

88 lines
3.1 KiB
Markdown
Raw Normal View History

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
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,
2018-12-17 16:18:29 +00:00
and cartridge-based programs for Commodore 64, VIC-20, 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
## 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.
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
* `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
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-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
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
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.