mirror of
https://github.com/cc65/cc65.git
synced 2024-12-28 06:30:16 +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
|
||||
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
|
||||
with <tt/--code-name HIGHCODE/ or per function by enclosing in <tt/#pragma
|
||||
code-name (push, "HIGHCODE")/ and <tt/#pragma code-name (pop)/. In either case the
|
||||
cc65 runtime system takes care of actually moving the code into the Language
|
||||
Card.
|
||||
with <tt/--code-name LC/ or per function by enclosing in <tt/#pragma code-name
|
||||
(push, "LC")/ and <tt/#pragma code-name (pop)/. In either case the cc65 runtime
|
||||
system takes care of actually moving the code into the Language Card.
|
||||
|
||||
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>/.
|
||||
|
||||
|
||||
<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
|
||||
BASIC.SYSTEM. A plain vanilla ProDOS 8 doesn't actually use the Language Card
|
||||
bank 2 memory from $D400 to $DFFF.
|
||||
Default configuration for a binary program.
|
||||
|
||||
Parameters:
|
||||
|
||||
<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>
|
||||
Variable (default: $803)
|
||||
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||
|
||||
<tag><tt/HEADER:/ Binary file header</tag>
|
||||
DOS 3.3 header (address and length)
|
||||
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||
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
|
||||
vanilla DOS 3.3 doesn't make use of the Language Card at all.
|
||||
|
||||
<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)
|
||||
<tag><tt/__LCSIZE__:/ Size of code in the Language Card</tag>
|
||||
Default: $C00. Use <tt/-D __LCSIZE__=<size>/ to set a different
|
||||
code size.
|
||||
|
||||
</descrip><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>
|
||||
|
||||
<tag><tt/RAM:/ Main memory area</tag>
|
||||
From $2000 to $BEFF (39.75 KB)
|
||||
<tag><tt/__STACKSIZE__:/ C runtime stack size</tag>
|
||||
Default: $800. Use <tt/-D __STACKSIZE__=<size>/ to set a different
|
||||
stack size.
|
||||
|
||||
<tag><tt/LC:/ Language Card memory area</tag>
|
||||
From $D400 to $DFFF (3 KB)
|
||||
<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/STARTADDRESS:/ Program start address</tag>
|
||||
Fixed ($2000)
|
||||
|
||||
<tag><tt/HEADER:/ Binary file header</tag>
|
||||
None
|
||||
<tag><tt/__LCSIZE__:/ Size of code in the Language Card</tag>
|
||||
Default: $C00. Use <tt/-D __LCSIZE__=<size>/ to set a different
|
||||
code size.
|
||||
|
||||
</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
|
||||
BASIC.SYSTEM. Intended to be used with <bf/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.
|
||||
Configuration for overlay programs with the up to nine overlays. The overlay files
|
||||
don't include the DOS 3.3 header. See <tt>samples/overlaydemo.c</tt> for more
|
||||
information on overlays.
|
||||
|
||||
<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>
|
||||
Variable (default: $800)
|
||||
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||
|
||||
<tag><tt/HEADER:/ Binary file header</tag>
|
||||
DOS 3.3 header (address and length)
|
||||
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||
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>
|
||||
|
||||
|
||||
<sect1><tt/apple2-reboot.cfg/<p>
|
||||
<sect1><tt/apple2-asm.cfg/<p>
|
||||
|
||||
Configuration optimized for a binary program running on ProDOS 8 without
|
||||
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()/.
|
||||
Configuration for a assembler programs which don't need a special setup.
|
||||
|
||||
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!
|
||||
Parameters:
|
||||
|
||||
<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>
|
||||
Variable (default: $800)
|
||||
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||
|
||||
<tag><tt/HEADER:/ Binary file header</tag>
|
||||
DOS 3.3 header (address and length)
|
||||
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||
Default: No header. Use <tt/-u __EXEHDR__ apple2.lib/ to add a DOS 3.3 header
|
||||
(address and length).
|
||||
|
||||
</descrip><p>
|
||||
|
||||
@ -230,10 +235,10 @@ range.
|
||||
|
||||
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
|
||||
(as opposed to system) program using the linker configuration
|
||||
<ref id="apple-load-cfg" name="apple2-loader.cfg"> with start address
|
||||
$803 and load it with the targetutil LOADER.SYSTEM. The program then works
|
||||
like a system program (i.e. quits to the ProDOS dispatcher).
|
||||
(as opposed to system) program using the default linker configuration
|
||||
<ref id="apple-def-cfg" name="apple2.cfg"> with __HIMEM__ set to $BF00
|
||||
and load it with the targetutil LOADER.SYSTEM. The program then works like a system
|
||||
program (i.e. quits to the ProDOS dispatcher).
|
||||
|
||||
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
|
||||
@ -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>
|
||||
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
|
||||
with <tt/--start-addr $4000/ to reserve the first hires page or with
|
||||
<tt/--start-addr $6000/ to reserve both hires pages.
|
||||
with <tt/-S $4000/ to reserve the first hires page or with <tt/-S $6000/
|
||||
to reserve both hires pages.
|
||||
|
||||
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.
|
||||
@ -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
|
||||
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
|
||||
Apple ][ (in contrast to an Apple //e) because the
|
||||
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
|
||||
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
|
||||
with <tt/--code-name HIGHCODE/ or per function by enclosing in <tt/#pragma
|
||||
code-name (push, "HIGHCODE")/ and <tt/#pragma code-name (pop)/. In either case the
|
||||
cc65 runtime system takes care of actually moving the code into the Language
|
||||
Card.
|
||||
with <tt/--code-name LC/ or per function by enclosing in <tt/#pragma code-name
|
||||
(push, "LC")/ and <tt/#pragma code-name (pop)/. In either case the cc65 runtime
|
||||
system takes care of actually moving the code into the Language Card.
|
||||
|
||||
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>/.
|
||||
|
||||
|
||||
<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
|
||||
BASIC.SYSTEM. A plain vanilla ProDOS 8 doesn't actually use the Language Card
|
||||
bank 2 memory from $D400 to $DFFF.
|
||||
Default configuration for a binary program.
|
||||
|
||||
Parameters:
|
||||
|
||||
<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>
|
||||
Variable (default: $803)
|
||||
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||
|
||||
<tag><tt/HEADER:/ Binary file header</tag>
|
||||
DOS 3.3 header (address and length)
|
||||
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||
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
|
||||
vanilla DOS 3.3 doesn't make use of the Language Card at all.
|
||||
|
||||
<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)
|
||||
<tag><tt/__LCSIZE__:/ Size of code in the Language Card</tag>
|
||||
Default: $C00. Use <tt/-D __LCSIZE__=<size>/ to set a different
|
||||
code size.
|
||||
|
||||
</descrip><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>
|
||||
|
||||
<tag><tt/RAM:/ Main memory area</tag>
|
||||
From $2000 to $BEFF (39.75 KB)
|
||||
<tag><tt/__STACKSIZE__:/ C runtime stack size</tag>
|
||||
Default: $800. Use <tt/-D __STACKSIZE__=<size>/ to set a different
|
||||
stack size.
|
||||
|
||||
<tag><tt/LC:/ Language Card memory area</tag>
|
||||
From $D400 to $DFFF (3 KB)
|
||||
<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/STARTADDRESS:/ Program start address</tag>
|
||||
Fixed ($2000)
|
||||
|
||||
<tag><tt/HEADER:/ Binary file header</tag>
|
||||
None
|
||||
<tag><tt/__LCSIZE__:/ Size of code in the Language Card</tag>
|
||||
Default: $C00. Use <tt/-D __LCSIZE__=<size>/ to set a different
|
||||
code size.
|
||||
|
||||
</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
|
||||
BASIC.SYSTEM. Intended to be used with <bf/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.
|
||||
Configuration for overlay programs with the up to nine overlays. The overlay files
|
||||
don't include the DOS 3.3 header. See <tt>samples/overlaydemo.c</tt> for more
|
||||
information on overlays.
|
||||
|
||||
<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>
|
||||
Variable (default: $800)
|
||||
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||
|
||||
<tag><tt/HEADER:/ Binary file header</tag>
|
||||
DOS 3.3 header (address and length)
|
||||
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||
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>
|
||||
|
||||
|
||||
<sect1><tt/apple2enh-reboot.cfg/<p>
|
||||
<sect1><tt/apple2enh-asm.cfg/<p>
|
||||
|
||||
Configuration optimized for a binary program running on ProDOS 8 without
|
||||
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()/.
|
||||
Configuration for a assembler programs which don't need a special setup.
|
||||
|
||||
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!
|
||||
Parameters:
|
||||
|
||||
<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>
|
||||
Variable (default: $800)
|
||||
Default: $803. Use <tt/-S <addr>/ to set a different start address.
|
||||
|
||||
<tag><tt/HEADER:/ Binary file header</tag>
|
||||
DOS 3.3 header (address and length)
|
||||
<tag><tt/__EXEHDR__:/ Executable file header</tag>
|
||||
Default: No header. Use <tt/-u __EXEHDR__ apple2enh.lib/ to add a DOS 3.3 header
|
||||
(address and length).
|
||||
|
||||
</descrip><p>
|
||||
|
||||
@ -230,10 +235,10 @@ range.
|
||||
|
||||
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
|
||||
(as opposed to system) program using the linker configuration
|
||||
<ref id="apple-load-cfg" name="apple2enh-loader.cfg"> with start address
|
||||
$803 and load it with the targetutil LOADER.SYSTEM. The program then works
|
||||
like a system program (i.e. quits to the ProDOS dispatcher).
|
||||
(as opposed to system) program using the default linker configuration
|
||||
<ref id="apple-def-cfg" name="apple2enh.cfg"> with __HIMEM__ set to $BF00
|
||||
and load it with the targetutil LOADER.SYSTEM. The program then works like a system
|
||||
program (i.e. quits to the ProDOS dispatcher).
|
||||
|
||||
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
|
||||
@ -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>
|
||||
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
|
||||
with <tt/--start-addr $4000/ to reserve the first hires page or with
|
||||
<tt/--start-addr $6000/ to reserve both hires pages.
|
||||
with <tt/-S $4000/ to reserve the first hires page or with <tt/-S $6000/
|
||||
to reserve both hires pages.
|
||||
|
||||
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);/
|
||||
@ -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>
|
||||
Gives access to 47.5 KB RAM (190 pages of 256 bytes each) on an Extended
|
||||
80-Column Text Card.
|
||||
|
||||
|
||||
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!
|
||||
|
||||
@ -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
|
||||
<tt/a2e.stdmou.mou/ and <tt/a2e.ssc.ser/ are not functional as they depend on
|
||||
interrupts.
|
||||
|
||||
|
||||
</descrip><p>
|
||||
|
||||
|
||||
@ -494,7 +499,7 @@ url="ca65.html" name="assembler manual">.
|
||||
<tag/Drive ID/
|
||||
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
|
||||
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
|
||||
|
||||
<tscreen>
|
||||
|
Loading…
Reference in New Issue
Block a user