1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-11-18 22:07:07 +00:00
millfork/docs/api/getting-started.md
2019-09-14 02:40:03 +02:00

68 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[< back to index](../doc_index.md)
# 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
```
or if you're using a Windows native build:
```
millfork hello_world.mfk -o hello_world -t c64
```
Run the output executable (here using the VICE emulator):
```
x64 hello_world.prg
```
## Basic command-line usage
The following options are obligatory when compiling your sources:
* `-o <FILENAME>` specifies the base name for your output file, an appropriate file extension will be appended.
* `-t <PLATFORM>` specifies the target platform.
Each platform is defined in an `.ini` file in the include directory.
For the list of supported platforms, see [Supported platforms](target-platforms.md)
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/8085, 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
* `-r <PROGRAM>` automatically launch given program after successful compilation; you can supply extra params for it with `-R <PARAM>`
* `-Wall` enable all warnings
* `--help` list all commandline options
For the comprehensive list of command-line options, see [Command-line options](./command-line.md).