Need help with millfork?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

KarolS
183 Stars 15 Forks Other 1.4K Commits 22 Opened issues

Description

Millfork: a middle-level programming language targeting 6502- and Z80-based microcomputers and home consoles

Services available

!
?

Need anything else?

Contributors list

# 311,404
C#
Shell
Scala
retroco...
1260 commits
# 713,851
C
Shell
Perl
retroco...
6 commits
# 33,104
Qt
TypeScr...
C++
React
5 commits
# 341,587
C
C++
gameeng...
Shell
4 commits
# 303,635
C++
C
Shell
retroco...
3 commits
# 21,752
Python
C++
Shell
wsgi
3 commits
# 69,518
assembl...
custome...
client-...
Node.js
1 commit

Millfork

A middle-level programming language targeting 6502-based, 8080-based, Z80-based and 6809-based microcomputers.

For binary releases, see: https://github.com/KarolS/millfork/releases (latest: 0.3.28).
For build instructions, see Build instructions.

Features

  • high performance, due to being designed and optimized for 8-bit microprocessors

  • multiple targets:

    • Commodore 64 (the primary target)
    • Commodore 64 with SuperCPU (experimental, incomplete and very buggy)
    • other Commodore computers: C16, Plus/4, C128, PET, VIC-20 (stock or with RAM extensions)
    • other 6502-based machines: Famicom/NES, Atari Lynx, Atari 8-bit computers, BBC Micro, Apple II+/IIe/Enhanced IIe, Atari 2600 (experimental), Commander X16 (experimental)
    • Z80-based machines: ZX Spectrum 48k, NEC PC-88, Amstrad CPC, MSX, TRS-80 Model 1 and 3, Robotron Z1013
    • CP/M
    • Game Boy (experimental)
    • Tandy Color Computer (experimental)
    • MS-DOS (very experimental, via 8080-to-8086 translation)
  • multiple supported target processors:

    • well supported: MOS 6502, Ricoh 2A03/2A07, WDC 65C02, Intel 8080, Intel 8085, Zilog Z80
    • reasonably well supported: Sharp LR35902, CSG 65CE02, Motorola 6809
    • partially supported: Hudson Soft HuC6280, WDC 65816, Intel 8086
  • inline assembly

  • simple macros

  • pay only for what you use: not a single byte of memory is used unless for code or explicitly declared variables

  • a simple memory model that avoids using the stack

  • multi-pass whole-program optimizer (that will even optimize your hand-written assembly if you ask it to)

  • support for multi-file programs (Commodore only) and banked cartridges

Licensing

The compiler is distributed under GPLv3 (see LICENSE).

The standard include files (located in the

include
directory) are distributed under a more permissive Zlib license (see include/LICENSE). Therefore, no attribution is needed if you are developing and distributing Millfork programs.

The documentation is distributed under the CC-0 license.

More info

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.