millfork/docs/api/target-platforms.md

4.5 KiB
Raw Permalink Blame History

< back to index

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.

If you are compiling for a cartridge-based target, you need to take special precautions; see the ROM vs RAM guide

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 for more info.

  • c64_crt8k Commodore 64, 8K ROM cartridge

  • c64_crt16k Commodore 64, 16K ROM cartridge

  • c64_ef_small Commodore 64, EasyFlash cartridge, 72K of program code. See the EasyFlash programming guide 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)

  • lunix Commodore 64 or 128 running LUnix/LNG 0.21 Certain language features work differently on this target. Read the LUnix programming guide for more info.

  • c64jp Japanese version of Commodore 64 (different memory layout and character set)

  • 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 for more info.

  • atari_lynx Atari Lynx

  • 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 for more info.

  • apple2 Apple II+/IIe/Enhanced IIe. The compiler only emits raw binaries, not disk images. Read the Apple 2 programming guide 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 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 for more info.

  • cpm CP/M on Intel 8080. The compiler emits COM files.

  • cpm_z80 CP/M on Z80

  • z1013 Robotron Z1013. The compiler emits Z80 files.

  • 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.

  • coco_rsdos Tandy Color Computer running RS-DOS. (very experimental) Read the Color Computer programming guide for more info.

  • coco_crt 16K cartridge for Tandy Color Computer. (very experimental) Read the Color Computer programming guide for more info.

  • 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.

The primary and most tested platform is Commodore 64.