Next Previous Contents

4. Linker configurations

The ld65 linker comes with a builtin config file for the enhanced Apple //e, which is used via -t apple2enh (and displayed via --dump-config apple2enh). The apple2enh package comes with additional secondary linker config files, which are used via -C <configfile>.

4.1 builtin config file

Default configuration optimized for a binary program running on ProDOS 8 with BASIC.SYSTEM. A plain vanilla ProDOS 8 doesn't actually use the Language Card bank 2 memory from $D400 to $DFFF.

RAM: Main memory area

From $803 to $95FF (35.5 KB)

LC: Language Card memory area

From $D400 to $DFFF (3 KB)

STARTADDRESS: Program start address

Variable (default: $803)

HEADER: Binary file header

DOS 3.3 header (address and length)

4.2 apple2enh-dos33.cfg

Configuration optimized for a binary program running on DOS 3.3. A plain vanilla DOS 3.3 doesn't make use of the Language Card at all.

RAM: Main memory area

From $803 to $95FF (35.5 KB)

LC: Language Card memory area

From $D000 to $FFFF (12 KB)

STARTADDRESS: Program start address

Variable (default: $803)

HEADER: Binary file header

DOS 3.3 header (address and length)

4.3 apple2enh-system.cfg

Configuration for a system program running on ProDOS 8.

RAM: Main memory area

From $2000 to $BEFF (39.75 KB)

LC: Language Card memory area

From $D400 to $DFFF (3 KB)

STARTADDRESS: Program start address

Fixed ($2000)

HEADER: Binary file header

None

4.4 apple2enh-loader.cfg

Configuration optimized for a binary program running on ProDOS 8 without BASIC.SYSTEM. Intended to be used with LOADER.SYSTEM - an Apple ][ ProDOS 8 loader for cc65 programs, which is available in the cc65 User Contributions section.

A program loaded by LOADER.SYSTEM works like a ProDOS 8 system program but isn't tied to the start address $2000. Thus with the default start address $800 the main memory area is increased by 6 KB.

RAM: Main memory area

From $800 to $BEFF (45.75 KB)

LC: Language Card memory area

From $D400 to $DFFF (3 KB)

STARTADDRESS: Program start address

Variable (default: $800)

HEADER: Binary file header

DOS 3.3 header (address and length)

4.5 apple2enh-reboot.cfg

Configuration optimized for a binary program running on ProDOS 8 without BASIC.SYSTEM. Intended to be used with LOADER.SYSTEM - an Apple ][ ProDOS 8 loader for cc65 programs (see above) together with the function rebootafterexit().

If a ProDOS 8 system program doesn't quit to the ProDOS 8 dispatcher but rather reboots the machine after exit then a plain vanilla ProDOS 8 doesn't make use of the Language Card bank 2 at all.

This setup makes nearly 50 KB available to a cc65 program - on a 64 KB machine!

RAM: Main memory area

From $800 to $BEFF (45.75 KB)

LC: Language Card memory area

From $D000 to $DFFF (4 KB)

STARTADDRESS: Program start address

Variable (default: $800)

HEADER: Binary file header

DOS 3.3 header (address and length)


Next Previous Contents