1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-11-19 13:31:23 +00:00
millfork/docs/api/getting-started.md
2018-12-24 01:32:17 +01:00

1.9 KiB
Raw Blame History

< back to index

Getting started

Hello world example

Save the following as hello_world.mfk:

import stdio

void main(){
    putstrz("hello world"z)
    while(true){}
}

Compile it using the following commandline:

java -jar millfork.jar hello_world.mfk -o hello_world -t c64 -I path_to_millfork\include

Run the output executable (here using the VICE emulator):

x64 hello_world.prg

Basic commandline usage

The following options are crucial when compiling your sources:

  • -o FILENAME specifies the base name for your output file, an appropriate file extension will be appended (prg for Commodore, xex for Atari computers, a2 for Apple, asm for assembly output, lbl for label file, inf for BBC file metadata, dsk for PC-88, tap for ZX Spectrum, nes for Famicom, bin for Atari 2600)

  • -I DIR;DIR;DIR;... specifies the paths to directories with modules to include.

  • -t PLATFORM specifies the target platform (c64 is the default). Each platform is defined in an .ini file in the include directory. For the list of supported platforms, see Supported platforms

You may be also interested in the following:

  • -O, -O2, -O3, -O4 enable optimization (various levels)

  • -finline automatically inline functions for better optimization

  • -fipo enable interprocedural optimization

  • -s additionally generate assembly output (if targeting Intel 8080, use --syntax=intel or --syntax=zilog to choose the preferred assembly syntax)

  • -fsource-in-asm show original Millfork source in the assembly output

  • -g additionally generate a label file, in format compatible with VICE emulator

  • -r PROGRAM automatically launch given program after successful compilation

  • -Wall enable all warnings

  • --help list all commandline options