# Documentation index

* [Home page](index.md)

## Compiler usage

* [Getting started](api/getting-started.md)

* [Command-line option reference](api/command-line.md)

* [Target platform reference](api/target-platforms.md)

* [Defining a custom platform](api/custom-platform.md)

## Language reference

* [Preprocessor](lang/preprocessor.md)

* [Modules](lang/modules.md)

* [Syntax](lang/syntax.md)

* [Types](lang/types.md)

* [Literals](lang/literals.md)

* [Predefined constants](lang/predefined_constants.md)

* [List of text encodings and escape sequences](lang/text.md)

* [Operators reference](lang/operators.md)

* [Functions](lang/functions.md)

* [Inline 6502 assembly syntax](lang/assembly.md)

* [Inline 8080/LR35902/Z80 assembly syntax](lang/assemblyz80.md)

* [Inline 6809 assembly syntax](lang/assembly6809.md)

* [Important guidelines regarding reentrancy](lang/reentrancy.md)

* [List of keywords](lang/keywords.md)

## Library reference

* [`stdlib` module](stdlib/stdlib.md)

* [`string`, `scrstring` and `pstring` modules](stdlib/string.md)

* [`stdio` module](stdlib/stdio.md)

* Reading input devices:

    * [`joy` module](stdlib/joy.md)

    * [`keyboard` module](stdlib/keyboard.md)

    * [`mouse` module](stdlib/mouse.md)

* [`encconv` module](stdlib/encconv.md)

* [Other cross-platform modules (`err`, `random`)](stdlib/other.md)

* Platform-specific modules:

    * [Definitions available on only some platforms](stdlib/frequent.md)

    * [C64-only modules](stdlib/c64.md)
    
    * [PET-only modules](stdlib/cbm_pet.md)
    
    * [`cbm_file` module](stdlib/cbm_file.md)
    
    * [NES-only modules](stdlib/nes.md)
    
    * [Atari Lynx-only modules](stdlib/lynx.md)
    
    * [Game Boy–only modules](stdlib/gb.md)
    
    * [X16–only modules](stdlib/x16.md)
    
## Guides

* [Differences from C](various/cdiff.md) 

* [Differences from other assemblers](various/asmdiff.md) 

* [Optimization guide](various/optimization.md) 

## Implementation details

* [Variable storage](abi/variable-storage.md)

* [Calling convention](abi/calling-convention.md)

* [Undefined behaviour](abi/undefined-behaviour.md)

* [Undocumented instruction support](abi/undocumented.md)

* [Reference for labels in generated assembly code](abi/generated-labels.md)

## External links

* [Example programs](https://github.com/KarolS/millfork/tree/master/examples)

* [Millfork wiki](https://github.com/KarolS/millfork/wiki)

* [Benchmarks](https://github.com/KarolS/millfork-benchmarks)

* [Downloads](https://github.com/KarolS/millfork/releases/)  

* [Source code](https://github.com/KarolS/millfork)

