mirror of
https://github.com/cc65/cc65.git
synced 2024-06-28 03:29:39 +00:00
Updated documentation to reflect the current linker configs.
This commit is contained in:
parent
78dcb61cb8
commit
9aac382afb
185
doc/apple2.sgml
185
doc/apple2.sgml
|
@ -75,13 +75,30 @@ However while running module constructors/destructors the Language Card is disab
|
||||||
Enabling the Language Card allows to use it as additional memory for cc65
|
Enabling the Language Card allows to use it as additional memory for cc65
|
||||||
generated code. However code is never automatically placed there. Rather code
|
generated code. However code is never automatically placed there. Rather code
|
||||||
needs to be explicitly placed in the Language Card either per file by compiling
|
needs to be explicitly placed in the Language Card either per file by compiling
|
||||||
with <tt/--code-name HIGHCODE/ or per function by enclosing in <tt/#pragma
|
with <tt/--code-name LC/ or per function by enclosing in <tt/#pragma code-name
|
||||||
code-name (push, "HIGHCODE")/ and <tt/#pragma code-name (pop)/. In either case the
|
(push, "LC")/ and <tt/#pragma code-name (pop)/. In either case the cc65 runtime
|
||||||
cc65 runtime system takes care of actually moving the code into the Language
|
system takes care of actually moving the code into the Language Card.
|
||||||
Card.
|
|
||||||
|
|
||||||
The amount of memory available in the Language Card for generated code depends
|
The amount of memory available in the Language Card for generated code depends
|
||||||
on the chosen <ref id="link-configs" name="linker configuration">.
|
on the <ref id="link-configs" name="linker configuration"> parameters. There are
|
||||||
|
several usefull settings:
|
||||||
|
|
||||||
|
<descrip>
|
||||||
|
|
||||||
|
<tag>LCADDR: $D400, LCSIZE: $C00</tag>
|
||||||
|
For plain vanilla ProDOS 8 which doesn't actually use the Language Card bank 2
|
||||||
|
memory from $D400 to $DFFF. This is the default setting.
|
||||||
|
|
||||||
|
<tag>LCADDR: $D000, LCSIZE: $1000</tag>
|
||||||
|
For ProDOS 8 together with the function <tt/rebootafterexit()/. If a 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.
|
||||||
|
|
||||||
|
<tag>LCADDR: $D000, LCSIZE: $3000</tag>
|
||||||
|
For plain vanilla DOS 3.3 which doesn't make use of the Language Card at all.
|
||||||
|
|
||||||
|
</descrip><p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,126 +110,114 @@ The apple2 package comes with additional secondary linker config files, which
|
||||||
are used via <tt/-t apple2 -C <configfile>/.
|
are used via <tt/-t apple2 -C <configfile>/.
|
||||||
|
|
||||||
|
|
||||||
<sect1>default config file (<tt/apple2.cfg/)<p>
|
<sect1>default config file (<tt/apple2.cfg/)<label id="apple-def-cfg"><p>
|
||||||
|
|
||||||
Default configuration optimized for a binary program running on ProDOS 8 with
|
Default configuration for a binary program.
|
||||||
BASIC.SYSTEM. A plain vanilla ProDOS 8 doesn't actually use the Language Card
|
|
||||||
bank 2 memory from $D400 to $DFFF.
|
Parameters:
|
||||||
|
|
||||||
<descrip>
|
<descrip>
|
||||||
|
|
||||||
<tag><tt/RAM:/ Main memory area</tag>
|
|
||||||
From $803 to $95FF (35.5 KB)
|
|
||||||
|
|
||||||
<tag><tt/LC:/ Language Card memory area</tag>
|
|
||||||
From $D400 to $DFFF (3 KB)
|
|
||||||
|
|
||||||
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
||||||
Variable (default: $803)
|
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||||
|
|
||||||
<tag><tt/HEADER:/ Binary file header</tag>
|
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||||
DOS 3.3 header (address and length)
|
Default: DOS 3.3 header (address and length). Use <tt/-D __EXEHDR__=0/ to omit
|
||||||
|
the header.
|
||||||
|
|
||||||
</descrip><p>
|
<tag><tt/__STACKSIZE__:/ C runtime stack size</tag>
|
||||||
|
Default: $800. Use <tt/-D __STACKSIZE__=<size>/ to set a different
|
||||||
|
stack size.
|
||||||
|
|
||||||
|
<tag><tt/__HIMEM__:/ Highest usable memory address presumed at link time</tag>
|
||||||
|
Default: $9600. Use <tt/-D __HIMEM__=<addr>/ to set a different
|
||||||
|
highest usable address.
|
||||||
|
|
||||||
<sect1><tt/apple2-dos33.cfg/<p>
|
<tag><tt/__LCADDR__:/ Address of code in the Language Card</tag>
|
||||||
|
Default: $D400. Use <tt/-D __LCADDR__=<addr>/ to set a different
|
||||||
|
code address.
|
||||||
|
|
||||||
Configuration optimized for a binary program running on DOS 3.3. A plain
|
<tag><tt/__LCSIZE__:/ Size of code in the Language Card</tag>
|
||||||
vanilla DOS 3.3 doesn't make use of the Language Card at all.
|
Default: $C00. Use <tt/-D __LCSIZE__=<size>/ to set a different
|
||||||
|
code size.
|
||||||
<descrip>
|
|
||||||
|
|
||||||
<tag><tt/RAM:/ Main memory area</tag>
|
|
||||||
From $803 to $95FF (35.5 KB)
|
|
||||||
|
|
||||||
<tag><tt/LC:/ Language Card memory area</tag>
|
|
||||||
From $D000 to $FFFF (12 KB)
|
|
||||||
|
|
||||||
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
|
||||||
Variable (default: $803)
|
|
||||||
|
|
||||||
<tag><tt/HEADER:/ Binary file header</tag>
|
|
||||||
DOS 3.3 header (address and length)
|
|
||||||
|
|
||||||
</descrip><p>
|
</descrip><p>
|
||||||
|
|
||||||
|
|
||||||
<sect1><tt/apple2-system.cfg/<label id="apple-sys-cfg"><p>
|
<sect1><tt/apple2-system.cfg/<label id="apple-sys-cfg"><p>
|
||||||
|
|
||||||
Configuration for a system program running on ProDOS 8.
|
Configuration for a system program running on ProDOS 8 and using the memory from
|
||||||
|
$2000 to $BEFF.
|
||||||
|
|
||||||
<descrip>
|
<descrip>
|
||||||
|
|
||||||
<tag><tt/RAM:/ Main memory area</tag>
|
<tag><tt/__STACKSIZE__:/ C runtime stack size</tag>
|
||||||
From $2000 to $BEFF (39.75 KB)
|
Default: $800. Use <tt/-D __STACKSIZE__=<size>/ to set a different
|
||||||
|
stack size.
|
||||||
|
|
||||||
<tag><tt/LC:/ Language Card memory area</tag>
|
<tag><tt/__LCADDR__:/ Address of code in the Language Card</tag>
|
||||||
From $D400 to $DFFF (3 KB)
|
Default: $D400. Use <tt/-D __LCADDR__=<addr>/ to set a different
|
||||||
|
code address.
|
||||||
|
|
||||||
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
<tag><tt/__LCSIZE__:/ Size of code in the Language Card</tag>
|
||||||
Fixed ($2000)
|
Default: $C00. Use <tt/-D __LCSIZE__=<size>/ to set a different
|
||||||
|
code size.
|
||||||
<tag><tt/HEADER:/ Binary file header</tag>
|
|
||||||
None
|
|
||||||
|
|
||||||
</descrip><p>
|
</descrip><p>
|
||||||
|
|
||||||
|
|
||||||
<sect1><tt/apple2-loader.cfg/<label id="apple-load-cfg"><p>
|
<sect1><tt/apple2-overlay.cfg/<p>
|
||||||
|
|
||||||
Configuration optimized for a binary program running on ProDOS 8 without
|
Configuration for overlay programs with the up to nine overlays. The overlay files
|
||||||
BASIC.SYSTEM. Intended to be used with <bf/LOADER.SYSTEM - an
|
don't include the DOS 3.3 header. See <tt>samples/overlaydemo.c</tt> for more
|
||||||
Apple ][ ProDOS 8 loader for cc65 programs/, which is available
|
information on overlays.
|
||||||
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.
|
|
||||||
|
|
||||||
<descrip>
|
<descrip>
|
||||||
|
|
||||||
<tag><tt/RAM:/ Main memory area</tag>
|
|
||||||
From $800 to $BEFF (45.75 KB)
|
|
||||||
|
|
||||||
<tag><tt/LC:/ Language Card memory area</tag>
|
|
||||||
From $D400 to $DFFF (3 KB)
|
|
||||||
|
|
||||||
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
||||||
Variable (default: $800)
|
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||||
|
|
||||||
<tag><tt/HEADER:/ Binary file header</tag>
|
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||||
DOS 3.3 header (address and length)
|
Default: DOS 3.3 header (address and length). Use <tt/-D __EXEHDR__=0/ to omit
|
||||||
|
the header.
|
||||||
|
|
||||||
|
<tag><tt/__STACKSIZE__:/ C runtime stack size</tag>
|
||||||
|
Default: $800. Use <tt/-D __STACKSIZE__=<size>/ to set a different
|
||||||
|
stack size.
|
||||||
|
|
||||||
|
<tag><tt/__HIMEM__:/ Highest usable memory address presumed at link time</tag>
|
||||||
|
Default: $9600. Use <tt/-D __HIMEM__=<addr>/ to set a different
|
||||||
|
highest usable address.
|
||||||
|
|
||||||
|
<tag><tt/__LCADDR__:/ Address of code in the Language Card</tag>
|
||||||
|
Default: $D400. Use <tt/-D __LCADDR__=<addr>/ to set a different
|
||||||
|
code address.
|
||||||
|
|
||||||
|
<tag><tt/__LCSIZE__:/ Size of code in the Language Card</tag>
|
||||||
|
Default: $C00. Use <tt/-D __LCSIZE__=<size>/ to set a different
|
||||||
|
code size.
|
||||||
|
|
||||||
|
<tag><tt/__OVERLAYSIZE__:/ Size of code in the overlays</tag>
|
||||||
|
Default: $1000. Use <tt/-D __OVERLAYSIZE__=<size>/ to set a different
|
||||||
|
code size.
|
||||||
|
|
||||||
</descrip><p>
|
</descrip><p>
|
||||||
|
|
||||||
|
|
||||||
<sect1><tt/apple2-reboot.cfg/<p>
|
<sect1><tt/apple2-asm.cfg/<p>
|
||||||
|
|
||||||
Configuration optimized for a binary program running on ProDOS 8 without
|
Configuration for a assembler programs which don't need a special setup.
|
||||||
BASIC.SYSTEM. Intended to be used with <bf/LOADER.SYSTEM - an
|
|
||||||
Apple ][ ProDOS 8 loader for cc65 programs/ (see above) together
|
|
||||||
with the function <tt/rebootafterexit()/.
|
|
||||||
|
|
||||||
If a ProDOS 8 system program doesn't quit to the ProDOS 8 dispatcher but rather
|
Parameters:
|
||||||
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!
|
|
||||||
|
|
||||||
<descrip>
|
<descrip>
|
||||||
|
|
||||||
<tag><tt/RAM:/ Main memory area</tag>
|
|
||||||
From $800 to $BEFF (45.75 KB)
|
|
||||||
|
|
||||||
<tag><tt/LC:/ Language Card memory area</tag>
|
|
||||||
From $D000 to $DFFF (4 KB)
|
|
||||||
|
|
||||||
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
||||||
Variable (default: $800)
|
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||||
|
|
||||||
<tag><tt/HEADER:/ Binary file header</tag>
|
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||||
DOS 3.3 header (address and length)
|
Default: No header. Use <tt/-u __EXEHDR__ apple2.lib/ to add a DOS 3.3 header
|
||||||
|
(address and length).
|
||||||
|
|
||||||
</descrip><p>
|
</descrip><p>
|
||||||
|
|
||||||
|
@ -230,10 +235,10 @@ range.
|
||||||
|
|
||||||
The easiest (and for really large programs in fact the only) way to have a cc65
|
The easiest (and for really large programs in fact the only) way to have a cc65
|
||||||
program use the memory from $800 to $2000 is to link it as binary
|
program use the memory from $800 to $2000 is to link it as binary
|
||||||
(as opposed to system) program using the linker configuration
|
(as opposed to system) program using the default linker configuration
|
||||||
<ref id="apple-load-cfg" name="apple2-loader.cfg"> with start address
|
<ref id="apple-def-cfg" name="apple2.cfg"> with __HIMEM__ set to $BF00
|
||||||
$803 and load it with the targetutil LOADER.SYSTEM. The program then works
|
and load it with the targetutil LOADER.SYSTEM. The program then works like a system
|
||||||
like a system program (i.e. quits to the ProDOS dispatcher).
|
program (i.e. quits to the ProDOS dispatcher).
|
||||||
|
|
||||||
Using LOADER.SYSTEM is as simple as copying it to the ProDOS 8 directory of the
|
Using LOADER.SYSTEM is as simple as copying it to the ProDOS 8 directory of the
|
||||||
program to load under name <program>.SYSTEM as a system program. For
|
program to load under name <program>.SYSTEM as a system program. For
|
||||||
|
@ -325,8 +330,8 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||||
<tag><tt/a2.hi.tgi (a2_hi_tgi)/</tag>
|
<tag><tt/a2.hi.tgi (a2_hi_tgi)/</tag>
|
||||||
This driver features a resolution of 280×192 with 8 colors and two
|
This driver features a resolution of 280×192 with 8 colors and two
|
||||||
hires pages. Note that programs using this driver will have to be linked
|
hires pages. Note that programs using this driver will have to be linked
|
||||||
with <tt/--start-addr $4000/ to reserve the first hires page or with
|
with <tt/-S $4000/ to reserve the first hires page or with <tt/-S $6000/
|
||||||
<tt/--start-addr $6000/ to reserve both hires pages.
|
to reserve both hires pages.
|
||||||
|
|
||||||
The function <tt/tgi_apple2_mix()/ allows to activate 4 lines of text. The
|
The function <tt/tgi_apple2_mix()/ allows to activate 4 lines of text. The
|
||||||
function doesn't clear the corresponding area at the bottom of the screen.
|
function doesn't clear the corresponding area at the bottom of the screen.
|
||||||
|
@ -374,7 +379,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||||
for an AppleMouse II Card compatible firmware. The default bounding
|
for an AppleMouse II Card compatible firmware. The default bounding
|
||||||
box is [0..279,0..191].
|
box is [0..279,0..191].
|
||||||
|
|
||||||
Programs using this driver will have to be linked with <tt/--start-addr $4000/
|
Programs using this driver will have to be linked with <tt/-S $4000/
|
||||||
to reserve the first hires page if they are intended to run on an
|
to reserve the first hires page if they are intended to run on an
|
||||||
Apple ][ (in contrast to an Apple //e) because the
|
Apple ][ (in contrast to an Apple //e) because the
|
||||||
AppleMouse II Card firmware writes to the hires page when initializing
|
AppleMouse II Card firmware writes to the hires page when initializing
|
||||||
|
|
|
@ -75,13 +75,30 @@ However while running module constructors/destructors the Language Card is disab
|
||||||
Enabling the Language Card allows to use it as additional memory for cc65
|
Enabling the Language Card allows to use it as additional memory for cc65
|
||||||
generated code. However code is never automatically placed there. Rather code
|
generated code. However code is never automatically placed there. Rather code
|
||||||
needs to be explicitly placed in the Language Card either per file by compiling
|
needs to be explicitly placed in the Language Card either per file by compiling
|
||||||
with <tt/--code-name HIGHCODE/ or per function by enclosing in <tt/#pragma
|
with <tt/--code-name LC/ or per function by enclosing in <tt/#pragma code-name
|
||||||
code-name (push, "HIGHCODE")/ and <tt/#pragma code-name (pop)/. In either case the
|
(push, "LC")/ and <tt/#pragma code-name (pop)/. In either case the cc65 runtime
|
||||||
cc65 runtime system takes care of actually moving the code into the Language
|
system takes care of actually moving the code into the Language Card.
|
||||||
Card.
|
|
||||||
|
|
||||||
The amount of memory available in the Language Card for generated code depends
|
The amount of memory available in the Language Card for generated code depends
|
||||||
on the chosen <ref id="link-configs" name="linker configuration">.
|
on the <ref id="link-configs" name="linker configuration"> parameters. There are
|
||||||
|
several usefull settings:
|
||||||
|
|
||||||
|
<descrip>
|
||||||
|
|
||||||
|
<tag>LCADDR: $D400, LCSIZE: $C00</tag>
|
||||||
|
For plain vanilla ProDOS 8 which doesn't actually use the Language Card bank 2
|
||||||
|
memory from $D400 to $DFFF. This is the default setting.
|
||||||
|
|
||||||
|
<tag>LCADDR: $D000, LCSIZE: $1000</tag>
|
||||||
|
For ProDOS 8 together with the function <tt/rebootafterexit()/. If a 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.
|
||||||
|
|
||||||
|
<tag>LCADDR: $D000, LCSIZE: $3000</tag>
|
||||||
|
For plain vanilla DOS 3.3 which doesn't make use of the Language Card at all.
|
||||||
|
|
||||||
|
</descrip><p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,126 +110,114 @@ The apple2enh package comes with additional secondary linker config files, which
|
||||||
are used via <tt/-t apple2enh -C <configfile>/.
|
are used via <tt/-t apple2enh -C <configfile>/.
|
||||||
|
|
||||||
|
|
||||||
<sect1>default config file (<tt/apple2enh.cfg/)<p>
|
<sect1>default config file (<tt/apple2enh.cfg/)<label id="apple-def-cfg"><p>
|
||||||
|
|
||||||
Default configuration optimized for a binary program running on ProDOS 8 with
|
Default configuration for a binary program.
|
||||||
BASIC.SYSTEM. A plain vanilla ProDOS 8 doesn't actually use the Language Card
|
|
||||||
bank 2 memory from $D400 to $DFFF.
|
Parameters:
|
||||||
|
|
||||||
<descrip>
|
<descrip>
|
||||||
|
|
||||||
<tag><tt/RAM:/ Main memory area</tag>
|
|
||||||
From $803 to $95FF (35.5 KB)
|
|
||||||
|
|
||||||
<tag><tt/LC:/ Language Card memory area</tag>
|
|
||||||
From $D400 to $DFFF (3 KB)
|
|
||||||
|
|
||||||
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
||||||
Variable (default: $803)
|
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||||
|
|
||||||
<tag><tt/HEADER:/ Binary file header</tag>
|
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||||
DOS 3.3 header (address and length)
|
Default: DOS 3.3 header (address and length). Use <tt/-D __EXEHDR__=0/ to omit
|
||||||
|
the header.
|
||||||
|
|
||||||
</descrip><p>
|
<tag><tt/__STACKSIZE__:/ C runtime stack size</tag>
|
||||||
|
Default: $800. Use <tt/-D __STACKSIZE__=<size>/ to set a different
|
||||||
|
stack size.
|
||||||
|
|
||||||
|
<tag><tt/__HIMEM__:/ Highest usable memory address presumed at link time</tag>
|
||||||
|
Default: $9600. Use <tt/-D __HIMEM__=<addr>/ to set a different
|
||||||
|
highest usable address.
|
||||||
|
|
||||||
<sect1><tt/apple2enh-dos33.cfg/<p>
|
<tag><tt/__LCADDR__:/ Address of code in the Language Card</tag>
|
||||||
|
Default: $D400. Use <tt/-D __LCADDR__=<addr>/ to set a different
|
||||||
|
code address.
|
||||||
|
|
||||||
Configuration optimized for a binary program running on DOS 3.3. A plain
|
<tag><tt/__LCSIZE__:/ Size of code in the Language Card</tag>
|
||||||
vanilla DOS 3.3 doesn't make use of the Language Card at all.
|
Default: $C00. Use <tt/-D __LCSIZE__=<size>/ to set a different
|
||||||
|
code size.
|
||||||
<descrip>
|
|
||||||
|
|
||||||
<tag><tt/RAM:/ Main memory area</tag>
|
|
||||||
From $803 to $95FF (35.5 KB)
|
|
||||||
|
|
||||||
<tag><tt/LC:/ Language Card memory area</tag>
|
|
||||||
From $D000 to $FFFF (12 KB)
|
|
||||||
|
|
||||||
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
|
||||||
Variable (default: $803)
|
|
||||||
|
|
||||||
<tag><tt/HEADER:/ Binary file header</tag>
|
|
||||||
DOS 3.3 header (address and length)
|
|
||||||
|
|
||||||
</descrip><p>
|
</descrip><p>
|
||||||
|
|
||||||
|
|
||||||
<sect1><tt/apple2enh-system.cfg/<label id="apple-sys-cfg"><p>
|
<sect1><tt/apple2enh-system.cfg/<label id="apple-sys-cfg"><p>
|
||||||
|
|
||||||
Configuration for a system program running on ProDOS 8.
|
Configuration for a system program running on ProDOS 8 and using the memory from
|
||||||
|
$2000 to $BEFF.
|
||||||
|
|
||||||
<descrip>
|
<descrip>
|
||||||
|
|
||||||
<tag><tt/RAM:/ Main memory area</tag>
|
<tag><tt/__STACKSIZE__:/ C runtime stack size</tag>
|
||||||
From $2000 to $BEFF (39.75 KB)
|
Default: $800. Use <tt/-D __STACKSIZE__=<size>/ to set a different
|
||||||
|
stack size.
|
||||||
|
|
||||||
<tag><tt/LC:/ Language Card memory area</tag>
|
<tag><tt/__LCADDR__:/ Address of code in the Language Card</tag>
|
||||||
From $D400 to $DFFF (3 KB)
|
Default: $D400. Use <tt/-D __LCADDR__=<addr>/ to set a different
|
||||||
|
code address.
|
||||||
|
|
||||||
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
<tag><tt/__LCSIZE__:/ Size of code in the Language Card</tag>
|
||||||
Fixed ($2000)
|
Default: $C00. Use <tt/-D __LCSIZE__=<size>/ to set a different
|
||||||
|
code size.
|
||||||
<tag><tt/HEADER:/ Binary file header</tag>
|
|
||||||
None
|
|
||||||
|
|
||||||
</descrip><p>
|
</descrip><p>
|
||||||
|
|
||||||
|
|
||||||
<sect1><tt/apple2enh-loader.cfg/<label id="apple-load-cfg"><p>
|
<sect1><tt/apple2enh-overlay.cfg/<p>
|
||||||
|
|
||||||
Configuration optimized for a binary program running on ProDOS 8 without
|
Configuration for overlay programs with the up to nine overlays. The overlay files
|
||||||
BASIC.SYSTEM. Intended to be used with <bf/LOADER.SYSTEM - an
|
don't include the DOS 3.3 header. See <tt>samples/overlaydemo.c</tt> for more
|
||||||
Apple ][ ProDOS 8 loader for cc65 programs/, which is available
|
information on overlays.
|
||||||
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.
|
|
||||||
|
|
||||||
<descrip>
|
<descrip>
|
||||||
|
|
||||||
<tag><tt/RAM:/ Main memory area</tag>
|
|
||||||
From $800 to $BEFF (45.75 KB)
|
|
||||||
|
|
||||||
<tag><tt/LC:/ Language Card memory area</tag>
|
|
||||||
From $D400 to $DFFF (3 KB)
|
|
||||||
|
|
||||||
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
||||||
Variable (default: $800)
|
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||||
|
|
||||||
<tag><tt/HEADER:/ Binary file header</tag>
|
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||||
DOS 3.3 header (address and length)
|
Default: DOS 3.3 header (address and length). Use <tt/-D __EXEHDR__=0/ to omit
|
||||||
|
the header.
|
||||||
|
|
||||||
|
<tag><tt/__STACKSIZE__:/ C runtime stack size</tag>
|
||||||
|
Default: $800. Use <tt/-D __STACKSIZE__=<size>/ to set a different
|
||||||
|
stack size.
|
||||||
|
|
||||||
|
<tag><tt/__HIMEM__:/ Highest usable memory address presumed at link time</tag>
|
||||||
|
Default: $9600. Use <tt/-D __HIMEM__=<addr>/ to set a different
|
||||||
|
highest usable address.
|
||||||
|
|
||||||
|
<tag><tt/__LCADDR__:/ Address of code in the Language Card</tag>
|
||||||
|
Default: $D400. Use <tt/-D __LCADDR__=<addr>/ to set a different
|
||||||
|
code address.
|
||||||
|
|
||||||
|
<tag><tt/__LCSIZE__:/ Size of code in the Language Card</tag>
|
||||||
|
Default: $C00. Use <tt/-D __LCSIZE__=<size>/ to set a different
|
||||||
|
code size.
|
||||||
|
|
||||||
|
<tag><tt/__OVERLAYSIZE__:/ Size of code in the overlays</tag>
|
||||||
|
Default: $1000. Use <tt/-D __OVERLAYSIZE__=<size>/ to set a different
|
||||||
|
code size.
|
||||||
|
|
||||||
</descrip><p>
|
</descrip><p>
|
||||||
|
|
||||||
|
|
||||||
<sect1><tt/apple2enh-reboot.cfg/<p>
|
<sect1><tt/apple2enh-asm.cfg/<p>
|
||||||
|
|
||||||
Configuration optimized for a binary program running on ProDOS 8 without
|
Configuration for a assembler programs which don't need a special setup.
|
||||||
BASIC.SYSTEM. Intended to be used with <bf/LOADER.SYSTEM - an
|
|
||||||
Apple ][ ProDOS 8 loader for cc65 programs/ (see above) together
|
|
||||||
with the function <tt/rebootafterexit()/.
|
|
||||||
|
|
||||||
If a ProDOS 8 system program doesn't quit to the ProDOS 8 dispatcher but rather
|
Parameters:
|
||||||
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!
|
|
||||||
|
|
||||||
<descrip>
|
<descrip>
|
||||||
|
|
||||||
<tag><tt/RAM:/ Main memory area</tag>
|
|
||||||
From $800 to $BEFF (45.75 KB)
|
|
||||||
|
|
||||||
<tag><tt/LC:/ Language Card memory area</tag>
|
|
||||||
From $D000 to $DFFF (4 KB)
|
|
||||||
|
|
||||||
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
<tag><tt/STARTADDRESS:/ Program start address</tag>
|
||||||
Variable (default: $800)
|
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||||
|
|
||||||
<tag><tt/HEADER:/ Binary file header</tag>
|
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||||
DOS 3.3 header (address and length)
|
Default: No header. Use <tt/-u __EXEHDR__ apple2enh.lib/ to add a DOS 3.3 header
|
||||||
|
(address and length).
|
||||||
|
|
||||||
</descrip><p>
|
</descrip><p>
|
||||||
|
|
||||||
|
@ -230,10 +235,10 @@ range.
|
||||||
|
|
||||||
The easiest (and for really large programs in fact the only) way to have a cc65
|
The easiest (and for really large programs in fact the only) way to have a cc65
|
||||||
program use the memory from $800 to $2000 is to link it as binary
|
program use the memory from $800 to $2000 is to link it as binary
|
||||||
(as opposed to system) program using the linker configuration
|
(as opposed to system) program using the default linker configuration
|
||||||
<ref id="apple-load-cfg" name="apple2enh-loader.cfg"> with start address
|
<ref id="apple-def-cfg" name="apple2enh.cfg"> with __HIMEM__ set to $BF00
|
||||||
$803 and load it with the targetutil LOADER.SYSTEM. The program then works
|
and load it with the targetutil LOADER.SYSTEM. The program then works like a system
|
||||||
like a system program (i.e. quits to the ProDOS dispatcher).
|
program (i.e. quits to the ProDOS dispatcher).
|
||||||
|
|
||||||
Using LOADER.SYSTEM is as simple as copying it to the ProDOS 8 directory of the
|
Using LOADER.SYSTEM is as simple as copying it to the ProDOS 8 directory of the
|
||||||
program to load under name <program>.SYSTEM as a system program. For
|
program to load under name <program>.SYSTEM as a system program. For
|
||||||
|
@ -328,8 +333,8 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||||
<tag><tt/a2e.hi.tgi (a2e_hi_tgi)/</tag>
|
<tag><tt/a2e.hi.tgi (a2e_hi_tgi)/</tag>
|
||||||
This driver features a resolution of 280×192 with 8 colors and two
|
This driver features a resolution of 280×192 with 8 colors and two
|
||||||
hires pages. Note that programs using this driver will have to be linked
|
hires pages. Note that programs using this driver will have to be linked
|
||||||
with <tt/--start-addr $4000/ to reserve the first hires page or with
|
with <tt/-S $4000/ to reserve the first hires page or with <tt/-S $6000/
|
||||||
<tt/--start-addr $6000/ to reserve both hires pages.
|
to reserve both hires pages.
|
||||||
|
|
||||||
Note that the second hires page is only available if the text display is not in
|
Note that the second hires page is only available if the text display is not in
|
||||||
80 column mode. This can be asserted by calling <tt/videomode (VIDEOMODE_40COL);/
|
80 column mode. This can be asserted by calling <tt/videomode (VIDEOMODE_40COL);/
|
||||||
|
@ -354,7 +359,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||||
<tag><tt/a2e.auxmem.emd (a2e_auxmem_emd)/</tag>
|
<tag><tt/a2e.auxmem.emd (a2e_auxmem_emd)/</tag>
|
||||||
Gives access to 47.5 KB RAM (190 pages of 256 bytes each) on an Extended
|
Gives access to 47.5 KB RAM (190 pages of 256 bytes each) on an Extended
|
||||||
80-Column Text Card.
|
80-Column Text Card.
|
||||||
|
|
||||||
Note that this driver doesn't check for the actual existence of the memory
|
Note that this driver doesn't check for the actual existence of the memory
|
||||||
and that it doesn't check for ProDOS 8 RAM disk content!
|
and that it doesn't check for ProDOS 8 RAM disk content!
|
||||||
|
|
||||||
|
@ -429,7 +434,7 @@ BASIC.SYSTEM) there are some limitations for DOS 3.3:
|
||||||
'Failed to alloc interrupt' on program startup. This implicitly means that
|
'Failed to alloc interrupt' on program startup. This implicitly means that
|
||||||
<tt/a2e.stdmou.mou/ and <tt/a2e.ssc.ser/ are not functional as they depend on
|
<tt/a2e.stdmou.mou/ and <tt/a2e.ssc.ser/ are not functional as they depend on
|
||||||
interrupts.
|
interrupts.
|
||||||
|
|
||||||
</descrip><p>
|
</descrip><p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -494,7 +499,7 @@ url="ca65.html" name="assembler manual">.
|
||||||
<tag/Drive ID/
|
<tag/Drive ID/
|
||||||
The function <url url="dio.html#s1" name="dio_open()"> has the single
|
The function <url url="dio.html#s1" name="dio_open()"> has the single
|
||||||
parameter <tt/device/ to identify the device to be opened. Therefore an
|
parameter <tt/device/ to identify the device to be opened. Therefore an
|
||||||
Apple II slot and drive pair is mapped to that <tt/drive_id/ according
|
Apple II slot and drive pair is mapped to that <tt/device/ according
|
||||||
to the formula
|
to the formula
|
||||||
|
|
||||||
<tscreen>
|
<tscreen>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user