mirror of
https://github.com/cc65/cc65.git
synced 2024-12-22 12:30:41 +00:00
Updated linuxdoc sources from https://github.com/groessler/cc65/tree/gh-pages-sgml.
This commit is contained in:
parent
aa7561ec45
commit
c3d93d259b
@ -87,13 +87,13 @@ on the chosen <htmlurl url="apple2-4.html" name="linker configuration">.
|
||||
|
||||
<sect>Linker configurations<p>
|
||||
|
||||
The ld65 linker comes with a builtin config file for the Apple ][,
|
||||
which is used via <tt/-t apple2/ (and displayed via <tt/--dump-config apple2/).
|
||||
The ld65 linker comes with a default config file for the Apple ][,
|
||||
which is used via <tt/-t apple2/.
|
||||
The apple2 package comes with additional secondary linker config files, which
|
||||
are used via <tt/-C <configfile>/.
|
||||
are used via <tt/-t apple2 -C <configfile>/.
|
||||
|
||||
|
||||
<sect1>builtin config file<p>
|
||||
<sect1>default config file (<tt/apple2.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
|
||||
@ -317,13 +317,13 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2.lo.tgi (apple2_40_48_16)/</tag>
|
||||
<tag><tt/a2.lo.tgi (a2_lo_tgi)/</tag>
|
||||
This driver features a resolution of 40×48 with 16 colors.
|
||||
|
||||
The function <tt/tgi_apple2_mix()/ allows to activate 4 lines of text. The
|
||||
function clears the corresponding area at the bottom of the screen.
|
||||
|
||||
<tag><tt/a2.hi.tgi (apple2_280_192_8)/</tag>
|
||||
<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
|
||||
@ -345,7 +345,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2.auxmem.emd (apple2_auxmem)/</tag>
|
||||
<tag><tt/a2.auxmem.emd (a2_auxmem_emd)/</tag>
|
||||
Gives access to 47.5 KB RAM (190 pages of 256 bytes each) on an Extended
|
||||
80-Column Text Card.
|
||||
|
||||
@ -359,7 +359,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2.stdjoy.joy (apple2_stdjoy)/</tag>
|
||||
<tag><tt/a2.stdjoy.joy (a2_stdjoy_joy)/</tag>
|
||||
Supports up to two standard analog joysticks connected to the game port of
|
||||
the Apple ][.
|
||||
|
||||
@ -370,7 +370,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2.stdmou.mou (apple2_stdmou)/</tag>
|
||||
<tag><tt/a2.stdmou.mou (a2_stdmou_mou)/</tag>
|
||||
Driver for the AppleMouse II Card. Searches all Apple II slots
|
||||
for an AppleMouse II Card compatible firmware. The default bounding
|
||||
box is [0..279,0..191].
|
||||
@ -391,7 +391,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2.ssc.ser (apple2_ssc)/</tag>
|
||||
<tag><tt/a2.ssc.ser (a2_ssc_ser)/</tag>
|
||||
Driver for the Apple II Super Serial Card. Supports up to 19200 baud,
|
||||
hardware flow control (RTS/CTS) and interrupt driven receives. Note
|
||||
that because of the peculiarities of the 6551 chip transmits are not
|
||||
@ -421,9 +421,8 @@ BASIC.SYSTEM) there are some limitations for DOS 3.3:
|
||||
<tag>Disk File I/O</tag>
|
||||
There's no disk file I/O support. Any attempt to use it yields an error with
|
||||
<tt/errno/ set to <tt/ENOSYS/. This implicitly means that loadable drivers
|
||||
are in general not functional as they depend on disk file I/O. However they
|
||||
may be converted to statically linked drivers using the co65 object-file
|
||||
converter.
|
||||
are in general not functional as they depend on disk file I/O. Therefore the statically
|
||||
linked drivers have to be used instead.
|
||||
|
||||
<tag/Interrupts/
|
||||
There's no <tt/interruptor/ support. Any attempt to use it yields the message
|
||||
@ -439,14 +438,12 @@ BASIC.SYSTEM) there are some limitations for DOS 3.3:
|
||||
<descrip>
|
||||
|
||||
<tag/Color/
|
||||
The Apple ][ has no color text mode. Therefore the functions
|
||||
<htmlurl url="funcref-205.html" name="textcolor()">,
|
||||
<htmlurl url="funcref-68.html" name="bgcolor()"> and
|
||||
<htmlurl url="funcref-69.html" name="bordercolor()"> have no effect.
|
||||
The Apple ][ has no color text mode. Therefore the functions textcolor(),
|
||||
bgcolor() and bordercolor() have no effect.
|
||||
|
||||
<tag/Cursor/
|
||||
The Apple ][ has no hardware cursor. Therefore the function
|
||||
<htmlurl url="funcref-88.html" name="cursor()"> has no effect.
|
||||
The Apple ][ has no hardware cursor. Therefore the function cursor() has
|
||||
no effect.
|
||||
|
||||
</descrip><p>
|
||||
|
||||
@ -511,15 +508,6 @@ url="ca65.html" name="assembler manual">.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -87,13 +87,13 @@ on the chosen <htmlurl url="apple2enh-4.html" name="linker configuration">.
|
||||
|
||||
<sect>Linker configurations<p>
|
||||
|
||||
The ld65 linker comes with a builtin config file for the enhanced Apple //e,
|
||||
which is used via <tt/-t apple2enh/ (and displayed via <tt/--dump-config apple2enh/).
|
||||
The ld65 linker comes with a default config file for the enhanced Apple //e,
|
||||
which is used via <tt/-t apple2enh/.
|
||||
The apple2enh package comes with additional secondary linker config files, which
|
||||
are used via <tt/-C <configfile>/.
|
||||
are used via <tt/-t apple2enh -C <configfile>/.
|
||||
|
||||
|
||||
<sect1>builtin config file<p>
|
||||
<sect1>default config file (<tt/apple2enh.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
|
||||
@ -320,13 +320,13 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2e.lo.tgi (apple2_40_48_16)/</tag>
|
||||
<tag><tt/a2e.lo.tgi (a2e_lo_tgi)/</tag>
|
||||
This driver features a resolution of 40×48 with 16 colors.
|
||||
|
||||
The function <tt/tgi_apple2_mix()/ allows to activate 4 lines of text. The
|
||||
function clears the corresponding area at the bottom of the screen.
|
||||
|
||||
<tag><tt/a2e.hi.tgi (apple2_280_192_8)/</tag>
|
||||
<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
|
||||
@ -352,7 +352,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2e.auxmem.emd (apple2_auxmem)/</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
|
||||
80-Column Text Card.
|
||||
|
||||
@ -366,7 +366,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2e.stdjoy.joy (apple2_stdjoy)/</tag>
|
||||
<tag><tt/a2e.stdjoy.joy (a2e_stdjoy_joy)/</tag>
|
||||
Supports up to two standard analog joysticks connected to the game port of
|
||||
the enhanced Apple //e.
|
||||
|
||||
@ -377,7 +377,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2e.stdmou.mou (apple2_stdmou)/</tag>
|
||||
<tag><tt/a2e.stdmou.mou (a2e_stdmou_mou)/</tag>
|
||||
Driver for the AppleMouse II Card. Searches all Apple II slots
|
||||
for an AppleMouse II Card compatible firmware. The default bounding
|
||||
box is [0..279,0..191].
|
||||
@ -392,7 +392,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2e.ssc.ser (apple2_ssc)/</tag>
|
||||
<tag><tt/a2e.ssc.ser (a2e_ssc_ser)/</tag>
|
||||
Driver for the Apple II Super Serial Card. Supports up to 19200 baud,
|
||||
hardware flow control (RTS/CTS) and interrupt driven receives. Note
|
||||
that because of the peculiarities of the 6551 chip transmits are not
|
||||
@ -422,9 +422,8 @@ BASIC.SYSTEM) there are some limitations for DOS 3.3:
|
||||
<tag>Disk File I/O</tag>
|
||||
There's no disk file I/O support. Any attempt to use it yields an error with
|
||||
<tt/errno/ set to <tt/ENOSYS/. This implicitly means that loadable drivers
|
||||
are in general not functional as they depend on disk file I/O. However they
|
||||
may be converted to statically linked drivers using the co65 object-file
|
||||
converter.
|
||||
are in general not functional as they depend on disk file I/O. Therefore the statically
|
||||
linked drivers have to be used instead.
|
||||
|
||||
<tag/Interrupts/
|
||||
There's no <tt/interruptor/ support. Any attempt to use it yields the message
|
||||
@ -441,13 +440,11 @@ BASIC.SYSTEM) there are some limitations for DOS 3.3:
|
||||
|
||||
<tag/Color/
|
||||
The enhanced Apple //e has no color text mode. Therefore the functions
|
||||
<htmlurl url="funcref-205.html" name="textcolor()">,
|
||||
<htmlurl url="funcref-68.html" name="bgcolor()"> and
|
||||
<htmlurl url="funcref-69.html" name="bordercolor()"> have no effect.
|
||||
textcolor(), bgcolor() and bordercolor() have no effect.
|
||||
|
||||
<tag/Cursor/
|
||||
The enhanced Apple //e has no hardware cursor. Therefore the function
|
||||
<htmlurl url="funcref-88.html" name="cursor()"> has no effect.
|
||||
cursor() has no effect.
|
||||
|
||||
</descrip><p>
|
||||
|
||||
@ -517,15 +514,6 @@ url="ca65.html" name="assembler manual">.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -117,14 +117,6 @@ operation does update the library. This is only a warning, the linker
|
||||
will ignore one of the duplicate symbols (which one is unspecified).
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the archiver, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
||||
ar65 (and all cc65 binutils) are (C) Copyright 1998-2000 Ullrich von
|
||||
|
600
doc/atari.sgml
600
doc/atari.sgml
@ -26,6 +26,16 @@ with the cc65 C compiler. It describes the memory layout, Atari specific
|
||||
header files, available drivers, and any pitfalls specific to that
|
||||
platform.
|
||||
|
||||
The Atari runtime support comes in two flavors: <tt/atari/ and <tt/atarixl/.
|
||||
The <tt/atari/ target supports all Atari 8-bit computers, the <tt/atarixl/ only
|
||||
supports XL type or newer machines (excluding the 600XL).
|
||||
|
||||
The <tt/atarixl/ runtime makes the whole 64K of memory available, with the
|
||||
exception of the I/O area at $D000 - $D7FFF. Since the
|
||||
<tt/atarixl/ runtime has some <ref name="limitations" id="limitations">, it is
|
||||
recommended to use the <tt/atari/ target unless lack of memory dictates the
|
||||
use of the <tt/atarixl/ target.
|
||||
|
||||
Please note that Atari specific functions are just mentioned here, they are
|
||||
described in detail in the separate <htmlurl url="funcref.html" name="function
|
||||
reference">. Even functions marked as "platform dependent" may be available on
|
||||
@ -35,35 +45,54 @@ information.
|
||||
|
||||
<sect>Binary format<p>
|
||||
|
||||
The standard binary output format generated by the linker for the
|
||||
The Atari DOS executable file format supports more than one load block (<it/chunk/).
|
||||
|
||||
The default binary output format generated by the linker for the
|
||||
Atari target is a machine language program with a standard executable
|
||||
header (FF FF <2 byte start address> <2 bytes end address>
|
||||
[program bytes]). These values are calculated in the crt0.s
|
||||
file from the __STARTUP_LOAD__ and __ZPSAVE_LOAD__ values, so keep
|
||||
this in mind if you create a custom linker config file and start
|
||||
moving segments around (see section
|
||||
header (FF FF <load chunk #1> ... <load chunk #n>).
|
||||
A load chunk has the format [<2 byte start address> <2 bytes end address>
|
||||
<chunk data>].
|
||||
A run vector is added to the end of the
|
||||
file ($02E0 $02E1 <run vector>) and is calculated using
|
||||
the <tt/start/ label in crt0.s. (Technically the run vector is also a load chunk,
|
||||
but is not regarded as such here.)
|
||||
|
||||
An <tt/atari/ program has two load chunks, an <tt/atarixl/ program has three load
|
||||
chunks. The load chunks are defined in the linker configuration files. For more
|
||||
detailed information about the load chunks see the chapter
|
||||
<ref name="Technical details" id="techdetail">. For the discussion here it's
|
||||
sufficient to know that the first load chunk(s) do preparation work and the
|
||||
main part of the program is in the last load chunk.
|
||||
|
||||
The values determining the size of the main part of the program (the only load
|
||||
chunk for <tt/atari/, the third load chunk for <tt/atarixl/) are calculated in
|
||||
the crt0.s file from the __STARTUP_LOAD__ and __BSS_LOAD__ values.
|
||||
Be aware of that if you create a custom linker config file and start moving segments around (see section
|
||||
<ref name="Reserving a memory area inside the program" id="memhole">).
|
||||
You can override this behaviour by creating your own crt0.s file and
|
||||
linking it into your program. A run vector is added to the end of the
|
||||
file ($02E0 <run vector>) and is calculated using
|
||||
__STARTUP_LOAD__ in crt0.s.
|
||||
|
||||
|
||||
<sect>Memory layout<p>
|
||||
|
||||
The default linker script assumes that the BASIC ROM is disabled (or
|
||||
the BASIC cartridge unplugged). This gives a usable memory range from
|
||||
$2E00 - $BC1F. The library startup code examines the
|
||||
<sect1><tt/atari/ target<p>
|
||||
|
||||
The default linker config file assumes that the BASIC ROM is disabled (or
|
||||
the BASIC cartridge unplugged). This gives a usable memory range of
|
||||
[$2000-$BC1F]. The library startup code examines the
|
||||
current memory configuration, which depends on the size of the
|
||||
installed memory and cartridges present, by inspecting the value in
|
||||
the MEMTOP ($2E5) variable. Then the initial stack pointer,
|
||||
which indicates the upper bound of memory used, is adjusted. The
|
||||
default load address of $2E00 was chosen to accommodate having
|
||||
a DOS loaded and a driver that resides in low memory such as the 850
|
||||
R: handler. You can override this behaviour by creating a custom
|
||||
installed memory and cartridges. It does so by using the value in
|
||||
the MEMTOP ($2E5) variable as highest memory address the program
|
||||
can use. The initial stack pointer, which is the upper bound of
|
||||
memory used by the program, is set to this value, minus an optionally
|
||||
defined __RESERVED_MEMORY__ value.
|
||||
|
||||
The default load address of $2000 can be changed by creating a custom
|
||||
linker config file or by using the "--start-addr" cl65 command line
|
||||
argument or the "--start-addr" or "-S" ld65 command line arguments.
|
||||
|
||||
Please note that the first load chunk (which checks the available memory)
|
||||
will always be loaded at $2E00, regardless of the specified start
|
||||
address. This address can only be changed by a custom linker config file.
|
||||
|
||||
Special locations:
|
||||
|
||||
<descrip>
|
||||
@ -86,6 +115,135 @@ Special locations:
|
||||
|
||||
</descrip><p>
|
||||
|
||||
<sect1><tt/atarixl/ target<p>
|
||||
|
||||
The startup code rearranges the memory as follows:
|
||||
|
||||
<enum>
|
||||
<item>Sceen memory and display list are moved below the program start address.
|
||||
<item>The ROM is disabled, making the memory in the areas [$C000-$CFFF]
|
||||
and [$D800-$FFF9] available.
|
||||
<item>Character generator data is copied from ROM to the CHARGEN location specified in the
|
||||
linker config file. This is (in the default <tt/atarixl.cfg/ file) at the same address as
|
||||
where it is in ROM ($E000, it can be changed, see <ref name="atarixl chargen location"
|
||||
id="chargenloc">). With the character generator at $E000, there are two upper memory
|
||||
areas available, [$D800-$DFFF] and [$E400-$FFF9].
|
||||
</enum>
|
||||
|
||||
With the default load address of $2400 this gives a usable memory range of
|
||||
[$2400-$CFFF]. Note that the default load address for <tt/atarixl/ is
|
||||
different (and lower) that the default load address for <tt/atari/. This is no problem since
|
||||
on the <tt/atarixl/ target the first load chunk makes sure that the loaded prgram won't overwrite
|
||||
memory below MEMLO. See <ref name="atarixl load chunks" id="xlchunks">.
|
||||
|
||||
|
||||
Special locations:
|
||||
|
||||
<descrip>
|
||||
<tag/Text screen/
|
||||
The text screen depends on the selected load address ($2400
|
||||
by default), and resides directly before that address, rounded to the next
|
||||
lower page boundary.
|
||||
The screen memory's start address can be obtained from the SAVMSC variable
|
||||
($58).
|
||||
|
||||
<tag/Stack/
|
||||
The C runtime stack is located at end of the RAM memory area ($CFFF)
|
||||
and grows downwards.
|
||||
|
||||
<tag/Heap/
|
||||
The C heap is located at the end of the program (end of BSS segment) and
|
||||
grows towards the C runtime stack.
|
||||
|
||||
</descrip><p>
|
||||
|
||||
<sect>Linker configurations<p>
|
||||
|
||||
The ld65 linker comes with default config files for the Atari. There
|
||||
are two targets for the Atari, <tt/atari/ and <tt/atarixl/.
|
||||
The default config file for <tt/atari/ is selected with
|
||||
<tt/-t atari/, and the default config file for <tt/atarixl/ is selected with
|
||||
<tt/-t atarixl/.
|
||||
The Atari package comes with additional secondary linker config files which
|
||||
can be used via <tt/-t atari -C <configfile>/ (for <tt/atari/ target) or
|
||||
<tt/-t atarixl -C <configfile>/ (for <tt/atarixl/ target).
|
||||
|
||||
<sect1><tt/atari/ config files<p>
|
||||
|
||||
<sect2>default config file (<tt/atari.cfg/)<p>
|
||||
|
||||
The default configuration is tailored to C programs. It creates files
|
||||
which have a default load address of $2000.
|
||||
|
||||
The files generated by this config file include the
|
||||
<ref name="&dquot;system check&dquot;" id="syschk"> load chunk. It can
|
||||
optionally be left out, see <ref name="Getting rid of the &dquot;system check&dquot; load chunk" id="nosyschk">.
|
||||
|
||||
<sect2><tt/atari-asm.cfg/<p>
|
||||
|
||||
This config file aims to give the assembler programmer maximum
|
||||
flexibility. All program segments (<tt/CODE/, <tt/DATA/, etc.) are
|
||||
optional.
|
||||
|
||||
By default it creates regular DOS executable files, which have a default
|
||||
load address of $2E00. It's also possible to generate an image of
|
||||
just the program data without EXE header, load address, or (auto-)start address.
|
||||
To you so, you have to define the symbols <tt/__AUTOSTART__/ and <tt/__EXEHDR__/
|
||||
when linking the program. Therefore, to generate a "plain" binary file, pass the
|
||||
options "<tt/-D__AUTOSTART__=1 -D__EXEHDR__=1/" to the linker.
|
||||
It's also possible to create a non auto-starting program file, by defining
|
||||
only the <tt/__AUTOSTART__/ symbol. Such a program has to be run manually
|
||||
after being loaded by DOS (for example by using the "M" option of DOS 2.5).
|
||||
Defining only the <tt/__EXEHDR__/ symbol will create a (useless) file which
|
||||
doesn't conform to the DOS executable file format (like a "plain" binary file)
|
||||
but still has the "autostart" load chunk appended.
|
||||
|
||||
The sections of the file which the defines refer to (<tt/__AUTOSTART__/ for
|
||||
the autostart trailer, <tt/__EXEHDR__/ for the EXE header and load address)
|
||||
is <it/left out/, keep this in mind.
|
||||
|
||||
The values you assign to the two symbols <tt/__AUTOSTART__/ and <tt/__EXEHDR__/
|
||||
don't matter.
|
||||
|
||||
<sect2><tt/atari-cart.cfg/<p>
|
||||
|
||||
This config file can be used to create 8K or 16K cartridges. It's suited both
|
||||
for C and assembly language programs.
|
||||
|
||||
By default, an 8K cartridge is generated. To create a 16K cartridge, pass the
|
||||
size of the cartridge to the linker, like "<tt/-D__CARTSIZE__=0x4000/".
|
||||
The only valid values for <tt/__CARTSIZE__/ are 0x2000 and 0x4000.
|
||||
|
||||
The option byte of the cartridge can be set with the <tt/__CARTFLAGS__/
|
||||
value, passed to the linker. The default value is $01, which means
|
||||
that the cartridge doesn't prevent the booting of DOS.
|
||||
|
||||
The option byte will be located at address $BFFD. For more information
|
||||
about its use, see e.g. "Mapping the Atari".
|
||||
|
||||
|
||||
<sect1><tt/atarixl/ config files<p>
|
||||
|
||||
<sect2>default config file (<tt/atarixl.cfg/)<p>
|
||||
|
||||
The default configuration is tailored to C programs. It creates files
|
||||
which have a default load address of $2400.
|
||||
|
||||
The files generated by this config file include the
|
||||
<ref name="&dquot;system check&dquot;" id="syschkxl"> load chunk. It can
|
||||
optionally be left out, see <ref name="Getting rid of the &dquot;system check&dquot; load chunk" id="nosyschk">.
|
||||
|
||||
<sect2><tt/atarixl-largehimem.cfg/<p>
|
||||
|
||||
This is the same as the default config file, but it rearranges the
|
||||
high memory beneath the ROM into one large block. In order for this
|
||||
config file to work, the runtime library has to be recompiled with a
|
||||
special define. See the file <tt/libsrc/atari/Makefile.inc/ in the
|
||||
source distribution.
|
||||
|
||||
The files generated by this config file include the
|
||||
<ref name="&dquot;system check&dquot;" id="syschkxl"> load chunk. It can
|
||||
optionally be left out, see <ref name="Getting rid of the &dquot;system check&dquot; load chunk" id="nosyschk">.
|
||||
|
||||
|
||||
<sect>Platform specific header files<p>
|
||||
@ -157,48 +315,43 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<sect1>Graphics drivers<p>
|
||||
|
||||
<descrip>
|
||||
<table><tabular ca="rrrr">
|
||||
<tt/atari/|<tt/atarixl/|screen resolution|display pages@<hline>
|
||||
<tt/atr3.tgi (atr3_tgi)/|<tt/atrx3.tgi (atrx3_tgi)/|40x24x4 (CIO mode 3, ANTIC mode 8)|1@
|
||||
<tt/atr4.tgi (atr4_tgi)/|<tt/atrx4.tgi (atrx4_tgi)/|80x48x2 (CIO mode 4, ANTIC mode 9)|1@
|
||||
<tt/atr5.tgi (atr5_tgi)/|<tt/atrx5.tgi (atrx5_tgi)/|80x48x4 (CIO mode 5, ANTIC mode A)|1@
|
||||
<tt/atr6.tgi (atr6_tgi)/|<tt/atrx6.tgi (atrx6_tgi)/|160x96x2 (CIO mode 6, ANTIC mode B)|1@
|
||||
<tt/atr7.tgi (atr7_tgi)/|<tt/atrx7.tgi (atrx7_tgi)/|160x96x4 (CIO mode 7, ANTIC mode D)|1@
|
||||
<tt/atr8.tgi (atr8_tgi)/|<tt/atrx8.tgi (atrx8_tgi)/|320x192x2 (CIO mode 8, ANTIC mode F)|1@
|
||||
<tt/atr8p2.tgi (atr8p2_tgi)/|<tt/atrx8p2.tgi (atrx8p2_tgi)/|320x192x2 (CIO mode 8, ANTIC mode F)|2@
|
||||
<tt/atr9.tgi (atr9_tgi)/|<tt/atrx9.tgi (atrx9_tgi)/|80x192x16b (CIO mode 9, ANTIC mode F, GTIA mode $40)|1@
|
||||
<tt/atr9p2.tgi (atr9p2_tgi)/|<tt/atrx9p2.tgi (atrx9p2_tgi)/|80x192x16b (CIO mode 9, ANTIC mode F, GTIA mode $40)|2@
|
||||
<tt/atr10.tgi (atr10_tgi)/|<tt/atrx10.tgi (atrx10_tgi)/|80x192x9 (CIO mode 10, ANTIC mode F, GTIA mode $80)|1@
|
||||
<tt/atr10p2.tgi (atr10p2_tgi)/|<tt/atrx10p2.tgi (atrx10p2_tgi)/|80x192x9 (CIO mode 10, ANTIC mode F, GTIA mode $80)|2@
|
||||
<tt/atr11.tgi (atr11_tgi)/|<tt/atrx11.tgi (atrx11_tgi)/|80x192x16h (CIO mode 11, ANTIC mode F, GTIA mode $C0)|1@
|
||||
<tt/atr14.tgi (atr14_tgi)/|<tt/atrx14.tgi (atrx14_tgi)/|160x192x2 (CIO mode 14, ANTIC mode C)|1@
|
||||
<tt/atr15.tgi (atr15_tgi)/|<tt/atrx15.tgi (atrx15_tgi)/|160x192x4 (CIO mode 15, ANTIC mode E)|1@
|
||||
<tt/atr15p2.tgi (atr15p2_tgi)/|<tt/atrx15p2.tgi (atrx15p2_tgi)/|160x192x4 (CIO mode 15, ANTIC mode E)|2
|
||||
</tabular>
|
||||
<!-- <caption>bla bla -->
|
||||
</table>
|
||||
|
||||
<tag><tt/atari10.tgi (atari_10)/</tag>
|
||||
|
||||
<tag><tt/atr10p2.tgi (atari_10p2)/</tag>
|
||||
|
||||
<tag><tt/atari11.tgi (atari_11)/</tag>
|
||||
|
||||
<tag><tt/atari14.tgi (atari_14)/</tag>
|
||||
|
||||
<tag><tt/atari15.tgi (atari_15)/</tag>
|
||||
|
||||
<tag><tt/atr15p2.tgi (atari_15p2)/</tag>
|
||||
|
||||
<tag><tt/atari3.tgi (atari_3)/</tag>
|
||||
|
||||
<tag><tt/atari4.tgi (atari_4)/</tag>
|
||||
|
||||
<tag><tt/atari5.tgi (atari_5)/</tag>
|
||||
|
||||
<tag><tt/atari6.tgi (atari_6)/</tag>
|
||||
|
||||
<tag><tt/atari7.tgi (atari_7)/</tag>
|
||||
|
||||
<tag><tt/atari8.tgi (atari_8)/</tag>
|
||||
|
||||
<tag><tt/atr8p2.tgi (atari_8p2)/</tag>
|
||||
|
||||
<tag><tt/atari9.tgi (atari_9)/</tag>
|
||||
|
||||
<tag><tt/atr9p2.tgi (atari_9p2)/</tag>
|
||||
|
||||
</descrip><p>
|
||||
|
||||
Many graphics modes require more memory than the text screen which is
|
||||
in effect when the program starts up. Therefore the programmer has to
|
||||
tell the program beforehand the memory requirements of the graphics
|
||||
modes the program intends to use.
|
||||
This can be done by using the __RESERVED_MEMORY__ linker config
|
||||
variable. The number specified there describes the number of bytes to
|
||||
subtract from the top of available memory as seen from the runtime
|
||||
library. This memory is then used by the screen buffer.
|
||||
|
||||
On the <tt/atari/ target his can be done by using the __RESERVED_MEMORY__
|
||||
linker config variable. The number specified there describes the number
|
||||
of bytes to subtract from the top of available memory as seen from the
|
||||
runtime library. This memory is then used by the screen buffer.
|
||||
|
||||
On the <tt/atarixl/ target the screen memory resides below the program
|
||||
load address. In order to reserve memory for a graphics mode, one
|
||||
simply uses a higher program load address. There are restrictions on
|
||||
selectable load addresses,
|
||||
see <ref name="Selecting a good program load address" id="loadaddr">.
|
||||
|
||||
The numbers for the different graphics modes presented below should
|
||||
only be seen as a rule of thumb. Since the screen buffer memory needs
|
||||
@ -251,41 +404,74 @@ the Atari ROM code.
|
||||
|
||||
<sect1>Extended memory drivers<p>
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/atr130xe.emd (atari_130xe)/</tag>
|
||||
|
||||
</descrip><p>
|
||||
Currently there is only one extended memory driver. It manages the second 64K of a 130XE.
|
||||
|
||||
<table>
|
||||
<tabular ca="rr">
|
||||
<tt/atari/|<tt/atarixl/@<hline>
|
||||
<tt/atr130.emd (atr130_emd)/|<tt/atrx130.emd (atrx130_emd)/
|
||||
</tabular>
|
||||
</table>
|
||||
|
||||
<sect1>Joystick drivers<p>
|
||||
|
||||
<descrip>
|
||||
Currently there are two joystick drivers available:
|
||||
|
||||
<tag><tt/ataristd.joy (atari_stdjoy)/</tag>
|
||||
Supports up to four standard joysticks connected to the joystick ports of
|
||||
the Atari.
|
||||
|
||||
<tag><tt/atarim8.joy (atari_multijoy)/</tag>
|
||||
Supports up to eight standard joysticks connected to a MultiJoy adapter.
|
||||
|
||||
</descrip><p>
|
||||
<table>
|
||||
<tabular ca="rrr">
|
||||
<tt/atari/|<tt/atarixl/|description@<hline>
|
||||
<tt/atrstd.joy (atrstd_joy)/|<tt/atrxstd.joy (atrxstd_joy)/|Supports up to two/four standard joysticks connected to the joystick ports of the Atari. (Four on the pre-XL systems, two on XL or newer.)@
|
||||
<tt/atrmj8.joy (atrmj8_joy)/|<tt/atrxmj8.joy (atrxmj8_joy)/|Supports up to eight standard joysticks connected to a MultiJoy adapter.
|
||||
</tabular>
|
||||
<caption>
|
||||
</table>
|
||||
|
||||
|
||||
<sect1>Mouse drivers<p>
|
||||
|
||||
Currently no drivers available (in fact, the API for loadable mouse drivers
|
||||
does not exist). There is a static driver you can use.
|
||||
Currently there are five mouse drivers available:
|
||||
|
||||
<table>
|
||||
<tabular ca="rrr">
|
||||
<tt/atari/|<tt/atarixl/|description@<hline>
|
||||
<tt/atrjoy.mou (atrjoy_mou)/|<tt/atrxjoy.mou (atrxjoy_mou)/|Supports a mouse emulated by a standard joystick.@
|
||||
<tt/atrst.mou (atrst_mou)/|<tt/atrxst.mou (atrxst_mou)/|Supports an Atari ST mouse.@
|
||||
<tt/atrami.mou (atrami_mou)/|<tt/atrxami.mou (atrxami_mou)/|Supports an Amiga mouse.@
|
||||
<tt/atrtrk.mou (atrtrk_mou)/|<tt/atrxtrk.mou (atrxtrk_mou)/|Supports an Atari trakball.@
|
||||
<tt/atrtt.mou (atrtt_mou)/|<tt/atrxtt.mou (atrxtt_mou)/|Supports an Atari touch tablet.
|
||||
</tabular>
|
||||
<caption>
|
||||
</table>
|
||||
|
||||
All mouse devices connect to joystick port #0.
|
||||
|
||||
|
||||
<sect1>RS232 device drivers<p>
|
||||
|
||||
Currently there are no RS232 loadable drivers available for the Atari
|
||||
platform. There is a static driver you can use.
|
||||
Currently there is one RS232 driver. It uses the R: device (therefore
|
||||
a R: driver needs to be installed) and was tested with the 850
|
||||
interface module.
|
||||
|
||||
<table>
|
||||
<tabular ca="rr">
|
||||
<tt/atari/|<tt/atarixl/@<hline>
|
||||
<tt/atrrdev.ser (atrrdev_ser)/|<tt/atrxrdev.ser (atrxrdev_ser)/
|
||||
</tabular>
|
||||
</table>
|
||||
|
||||
|
||||
<sect>Limitations<p>
|
||||
|
||||
<sect1><tt/atarixl/<label id="limitations"<p>
|
||||
|
||||
<itemize>
|
||||
<item>The display is cleared at program start and at program termination. This is a side
|
||||
effect of relocating the display memory below the program start address.
|
||||
<item>Not all possible CIO and SIO functions are handled by the runtime stub code which banks
|
||||
the ROM in and out. All functions used by the runtime library are handled, though.
|
||||
<item>The <tt/_sys()/ function is not supported.
|
||||
<item>It is not compatible with DOSes or other programs using the memory below the ROM.
|
||||
</itemize>
|
||||
|
||||
<sect>DIO implementation<label id="dio"><p>
|
||||
|
||||
@ -303,6 +489,143 @@ The console I/O is speed optimized therefore support for XEP80 hardware
|
||||
or f80.com software is missing. Of course you may use stdio.h functions.
|
||||
|
||||
|
||||
<sect>Technical details<label id="techdetail"><p>
|
||||
|
||||
<sect1><tt/atari/<p>
|
||||
|
||||
<sect2>Load chunks<p>
|
||||
|
||||
An <tt/atari/ program contains two load chunks.
|
||||
|
||||
<enum>
|
||||
<item>"system check"<label id="syschk">&nl;
|
||||
This load chunk is always loaded at address $2E00, and checks if the system has
|
||||
enough memory to run the program. It also checks if the program start address is not
|
||||
below MEMLO. If any of the checks return false, the loading of the program is aborted.&nl;
|
||||
The contents of this chunk come from the SYSCHKCHNK memory area of the linker config file.
|
||||
<item>main program&nl;
|
||||
This load chunk is loaded at the selected program start address (default $2000) and
|
||||
contains all of the code and data of the program.&nl;
|
||||
The contents of this chunk come from the RAM memory area of the linker config file.
|
||||
</enum>
|
||||
|
||||
|
||||
<sect1><tt/atarixl/<p>
|
||||
|
||||
<sect2>General operation<p>
|
||||
|
||||
The <tt/atarixl/ target banks out the ROM while the program is running in
|
||||
order to make more memory available to the program.
|
||||
|
||||
The screen memory is by default located at the top of available memory,
|
||||
$BFFF if BASIC is not enabled, $9FFF if BASIC is enabled.
|
||||
Therefore, in order to create a largest possible continuous memory area,
|
||||
the screen memory is moved below the program load address. This gives
|
||||
a memory area from <program load addr> to $CFFF.
|
||||
|
||||
The startup code installs wrappers for interrupt handlers and ROM routines.
|
||||
When an interrupt or call to a ROM routine happens, the wrappers enable the
|
||||
ROM, call the handler or routine, and disable the ROM again.
|
||||
|
||||
The "wrapping" of the ROM routines is done by changing the ROM entry
|
||||
point symbols in <tt/atari.inc/ to point to the wrapper functions.
|
||||
|
||||
For ROM functions which require input or output buffers, the wrappers
|
||||
copy the data as required to buffers in low memory.
|
||||
|
||||
<sect2>Load chunks<label id="xlchunks"><p>
|
||||
|
||||
An <tt/atarixl/ program contains three load chunks.
|
||||
|
||||
<enum>
|
||||
<item>"system check"<label id="syschkxl">&nl;
|
||||
This load chunk is always loaded at address $2E00, and checks if the system is
|
||||
suitable for running the program. It also checks if there is enough room between MEMLO
|
||||
and the program start address to move the text mode screen buffer there. If any of the
|
||||
checks return false, the loading of the program is aborted.&nl;
|
||||
The contents of this chunk come from the SYSCHKCHNK memory area of the linker config file.
|
||||
<item>"shadow RAM prepare"&nl;
|
||||
The second load chunk gets loaded to the selected program load address (default $2400).
|
||||
It moves the screen memory below the program load address, copies the character generator
|
||||
from ROM to its new place in RAM, and copies the parts of the program which reside in
|
||||
high memory below the ROM to their place. The high memory parts are included in this load chunk.&nl;
|
||||
At the beginning of this load chunk there is a .bss area, which is not part of the
|
||||
EXE file. Therefore the on-disk start address of this load chunk will be higher than the
|
||||
selected start address. This .bss area (segment LOWBSS) contains the buffers for the
|
||||
double buffering of ROM input and output data. If you add contents to this segment be aware
|
||||
that the contents won't be zero initialized by the startup code.&nl;
|
||||
The contents of this chunk come from the SRPREPCHNK memory area of the linker config file.
|
||||
<item>main program&nl;
|
||||
This load chunk is loaded just above the LOWBSS segment, replacing the code of
|
||||
the previous load chunk. It contains all remaining code and data sections of the program,
|
||||
including the startup code.&nl;
|
||||
The contents of this chunk come from the RAM memory area of the linker config file.
|
||||
</enum>
|
||||
|
||||
<sect2>Moving screen memory below the program start address<p>
|
||||
|
||||
When setting a graphics mode, the ROM looks at the RAMTOP location. RAMTOP
|
||||
describes the amount of installed memory in pages (RAMTOP is only one byte).
|
||||
The screen memory and display list are placed immediately below RAMTOP.
|
||||
|
||||
Now in order to relocate the screen memory to lower memory, the startup code
|
||||
puts a value into RAMTOP which causes the ROM routines to allocate the display
|
||||
memory below the program start address and then it issues a ROM call to setup
|
||||
the regular text mode.
|
||||
|
||||
<sect2>Selecting a good program load address<label id="loadaddr"><p>
|
||||
|
||||
Due to the movement of the screen memory below the program start, there are some
|
||||
load addresses which are sub-optimal because they waste memory or prevent a
|
||||
higher resolution graphics mode from being enabled.
|
||||
|
||||
There are restrictions at which addresses screen memory (display buffer and display
|
||||
list) can be placed. The display buffer cannot cross a 4K boundary and a display
|
||||
list cannot cross a 1K boundary.
|
||||
|
||||
The startup code takes this into account when moving the screen memory down.
|
||||
If the program start address (aligned to the next lower page boundary) minus
|
||||
the screen buffer size would result in a screen buffer which spans a 4K
|
||||
boundary, the startup code lowers RAMTOP to this 4K boundary.&nl;
|
||||
The size of the screen buffer in text mode is 960 ($3C0) bytes. So, for
|
||||
example, a selected start address of $2300 would span the 4K boundary
|
||||
at $2000. The startup code would adjust the RAMTOP value in such way that
|
||||
the screen memory would be located just below this boundary (at $1C40).
|
||||
This results in the area [$2000-$22FF] being wasted.
|
||||
Additionally, the program might fail to load since the lowest address used
|
||||
by the screen memory could be below MEMLO. (The lowest address used in this
|
||||
example would be at $1C20, where the display list would allocated.)
|
||||
|
||||
These calculations are performed by the startup code (in the first two
|
||||
load chunks), but the startup code only takes the default 40x24 text mode
|
||||
into account. If the program later wants to load TGI drivers which set
|
||||
a more memory consuming graphics mode, the user has to pick a higher
|
||||
load address.
|
||||
Using higher resolution modes there is a restriction in the ROM that it
|
||||
doesn't expect RAMTOP to be at arbitrary values. The Atari memory modules
|
||||
came only in 8K or 16K sizes, so the ROM expects RAMTOP to only have
|
||||
values in 8K steps. Therefore, when using the highest resolution modes
|
||||
the program start address must be at an 8K boundary.
|
||||
|
||||
|
||||
<sect2>Character generator location<label id="chargenloc"><p>
|
||||
|
||||
The default <tt/atarixl/ linker config file (<tt/atarixl.cfg/) leaves the
|
||||
character generator location at the same address where it is in ROM
|
||||
($E000). This has the disadvatage to split the upper memory into
|
||||
two parts ([$D800-$DFFF] and
|
||||
[$E400-$FFF9]). For applications which
|
||||
require a large continuous upper memory area, an alternative linker
|
||||
config file (<tt/atarixl-largehimem.cfg/) is provided. It relocates the
|
||||
character generator to $D800, providing a single big upper
|
||||
memory area at [$DC00-$FFF9].
|
||||
|
||||
With the character generator at a different address than in ROM, the routines
|
||||
which enable and disable the ROM also have to update the chargen pointer.
|
||||
This code is not enabled by default. In order to enable it,
|
||||
uncomment the line which sets CHARGEN_RELOC in <tt/libsrc/atari/Makefile.inc/
|
||||
and recompile the <tt/atarixl/ runtime library.
|
||||
|
||||
<sect>Other hints<p>
|
||||
|
||||
|
||||
@ -335,6 +658,9 @@ feature in the <htmlurl url="ca65.html" name="assembler manual">.
|
||||
|
||||
<sect1>Reserving a memory area inside a program<label id="memhole"><p>
|
||||
|
||||
(This section is primarily applicable to the <tt/atari/ target, but the
|
||||
principles apply to <tt/atatixl/ as well.)
|
||||
|
||||
The Atari 130XE maps its additional memory into CPU memory in 16K
|
||||
chunks at address $4000 to $7FFF. One might want to
|
||||
prevent this memory area from being used by cc65. Other reasons to
|
||||
@ -348,7 +674,7 @@ memory area (assuming a reserved area from $4000 to
|
||||
$BC1F.
|
||||
<p>
|
||||
Each load chunk of the executable starts with a 4 byte header which
|
||||
defines its load address and size. In the following linker scripts
|
||||
defines its load address and size. In the following linker config files
|
||||
these headers are named HEADER and SECHDR (for the MEMORY layout), and
|
||||
accordingly NEXEHDR and CHKHDR (for the SEGMENTS layout).
|
||||
<p>
|
||||
@ -360,30 +686,34 @@ segments should go above $7FFF.
|
||||
<p>
|
||||
The main problem is that the EXE header generated by the cc65 runtime
|
||||
lib is wrong. It defines a single load chunk with the sizes/addresses
|
||||
of the STARTUP, LOWCODE, INIT, CODE, RODATA, and DATA segments (the whole user
|
||||
program).
|
||||
of the STARTUP, LOWCODE, INIT, CODE, RODATA, and DATA segments, in
|
||||
fact, the whole user program (we're disregarding the "system check"
|
||||
load chunk here).
|
||||
<p>
|
||||
The contents of the EXE header come from the EXEHDR segment, which is
|
||||
defined in crt0.s. This cannot be changed without modifying and
|
||||
recompiling the cc65 atari runtime lib. Therefore the original EXE
|
||||
header must be discarded. It will be replaced by a user created
|
||||
one. The discarding is done by assigning the EXEHDR segment to the
|
||||
BANK memory area. The BANK memory area is discarded in the new linker
|
||||
script (written to file "").
|
||||
The contents of the EXE header come from the EXEHDR and MAINHDR segments.
|
||||
The EXEHDR segment just contains the $FFFF value which is required
|
||||
to be the first bytes of the EXE file.&nl;
|
||||
The MAINHDR are defined in in crt0.s. This cannot be changed without
|
||||
modifying and recompiling the cc65 atari runtime library. Therefore
|
||||
the original contents of this segment must be discarded and be
|
||||
replaced by a user created one. This discarding is done by assigning the
|
||||
MAINHDR segment to the (new introduced) DISCARD memory area. The DISCARD memory area is
|
||||
thrown away in the new linker config file (written to file "").
|
||||
We add a new FSTHDR segment for the chunk header of the first chunk.
|
||||
<p>
|
||||
The user needs to create a customized linker config file which adds
|
||||
new memory areas and segments to hold the new EXE header and the
|
||||
header data for the second load chunk. Also an assembly source file
|
||||
needs to be created which defines the contents of the new EXE header
|
||||
and the second load chunk header.
|
||||
new memory areas and segments to hold the new header data for the first load
|
||||
chunk and the header data for the second load chunk. Also an assembly source file
|
||||
needs to be created which defines the contents of the new header data
|
||||
for the two load chunks.
|
||||
<p>
|
||||
<p>
|
||||
This is an example of a modified cc65 Atari linker configuration file
|
||||
(split.cfg):
|
||||
<tscreen><verb>
|
||||
SYMBOLS {
|
||||
__STACKSIZE__ = $800; # 2K stack
|
||||
__RESERVED_MEMORY__: value = $0000, weak = yes;
|
||||
__STACKSIZE__: value = $800 type = weak; # 2K stack
|
||||
__RESERVED_MEMORY__: value = $0000, type = weak;
|
||||
}
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $2E00;
|
||||
@ -391,18 +721,22 @@ FEATURES {
|
||||
MEMORY {
|
||||
ZP: start = $82, size = $7E, type = rw, define = yes;
|
||||
|
||||
HEADER: start = $0000, size = $6, file = %O; # first load chunk
|
||||
HEADER: start = $0000, size = $2, file = %O; # first load chunk
|
||||
|
||||
FSTHDR: start = $0000, size = $4, file = %O; # second load chunk
|
||||
RAMLO: start = %S, size = $4000 - %S, file = %O;
|
||||
|
||||
BANK: start = $4000, size = $4000, file = "";
|
||||
DISCARD: start = $4000, size = $4000, file = "";
|
||||
|
||||
SECHDR: start = $0000, size = $4, file = %O; # second load chunk
|
||||
RAM: start = $8000, size = $3C20, file = %O; # $3C20: matches upper bound $BC1F
|
||||
}
|
||||
SEGMENTS {
|
||||
EXEHDR: load = BANK, type = ro;
|
||||
EXEHDR: load = HEADER, type = ro;
|
||||
|
||||
NEXEHDR: load = HEADER, type = ro; # first load chunk
|
||||
MAINHDR: load = DISCARD, type = ro;
|
||||
|
||||
NEXEHDR: load = FSTHDR, type = ro; # first load chunk
|
||||
STARTUP: load = RAMLO, type = ro, define = yes;
|
||||
LOWCODE: load = RAMLO, type = ro, define = yes, optional = yes;
|
||||
INIT: load = RAMLO, type = ro, optional = yes;
|
||||
@ -412,7 +746,6 @@ SEGMENTS {
|
||||
RODATA: load = RAM, type = ro, define = yes;
|
||||
DATA: load = RAM, type = rw, define = yes;
|
||||
BSS: load = RAM, type = bss, define = yes;
|
||||
ZPSAVE: load = RAM, type = bss, define = yes;
|
||||
|
||||
ZEROPAGE: load = ZP, type = zp;
|
||||
AUTOSTRT: load = RAM, type = ro; # defines program entry point
|
||||
@ -430,12 +763,13 @@ FEATURES {
|
||||
</verb></tscreen>
|
||||
<p>
|
||||
|
||||
A new memory area BANK was added which describes the reserved area.
|
||||
It gets loaded with the contents of the old EXEHDR segment. But the
|
||||
A new memory area DISCARD was added.
|
||||
It gets loaded with the contents of the (now unused) MAINHDR segment. But the
|
||||
memory area isn't written to the output file. This way the contents of
|
||||
the EXEHDR segment get discarded.
|
||||
the MAINHDR segment get discarded.
|
||||
<p>
|
||||
The newly added NEXEHDR segment defines the correct EXE header. It
|
||||
The newly added NEXEHDR segment defines the correct chunk header for the
|
||||
first intended load chunk. It
|
||||
puts the STARTUP, LOWCODE, INIT, and CODE segments, which are the
|
||||
segments containing only code, into load chunk #1 (RAMLO memory area).
|
||||
<p>
|
||||
@ -451,7 +785,6 @@ file (split.s):
|
||||
.import __DATA_LOAD__, __RODATA_LOAD__, __STARTUP_LOAD__
|
||||
|
||||
.segment "NEXEHDR"
|
||||
.word $FFFF
|
||||
.word __STARTUP_LOAD__
|
||||
.word __CODE_LOAD__ + __CODE_SIZE__ - 1
|
||||
|
||||
@ -473,8 +806,8 @@ CODE, BSS, ZPSAVE into high memory (split2.cfg):
|
||||
|
||||
<tscreen><verb>
|
||||
SYMBOLS {
|
||||
__STACKSIZE__ = $800; # 2K stack
|
||||
__RESERVED_MEMORY__: value = $0000, weak = yes;
|
||||
__STACKSIZE__: value = $800 type = weak; # 2K stack
|
||||
__RESERVED_MEMORY__: value = $0000, type = weak;
|
||||
}
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $2E00;
|
||||
@ -482,18 +815,22 @@ FEATURES {
|
||||
MEMORY {
|
||||
ZP: start = $82, size = $7E, type = rw, define = yes;
|
||||
|
||||
HEADER: start = $0000, size = $6, file = %O; # first load chunk
|
||||
HEADER: start = $0000, size = $2, file = %O; # first load chunk
|
||||
|
||||
FSTHDR: start = $0000, size = $4, file = %O; # second load chunk
|
||||
RAMLO: start = %S, size = $4000 - %S, file = %O;
|
||||
|
||||
BANK: start = $4000, size = $4000, file = "";
|
||||
DISCARD: start = $4000, size = $4000, file = "";
|
||||
|
||||
SECHDR: start = $0000, size = $4, file = %O; # second load chunk
|
||||
RAM: start = $8000, size = $3C20, file = %O; # $3C20: matches upper bound $BC1F
|
||||
}
|
||||
SEGMENTS {
|
||||
EXEHDR: load = BANK, type = ro; # discarded old EXE header
|
||||
EXEHDR: load = HEADER, type = ro; # discarded old EXE header
|
||||
|
||||
NEXEHDR: load = HEADER, type = ro; # first load chunk
|
||||
MAINHDR: load = DISCARD, type = ro;
|
||||
|
||||
NEXEHDR: load = FSTHDR, type = ro; # first load chunk
|
||||
RODATA: load = RAMLO, type = ro, define = yes;
|
||||
DATA: load = RAMLO, type = rw, define = yes;
|
||||
|
||||
@ -501,7 +838,6 @@ SEGMENTS {
|
||||
STARTUP: load = RAM, type = ro, define = yes;
|
||||
INIT: load = RAM, type = ro, optional = yes;
|
||||
CODE: load = RAM, type = ro, define = yes;
|
||||
ZPSAVE: load = RAM, type = bss, define = yes;
|
||||
BSS: load = RAM, type = bss, define = yes;
|
||||
|
||||
ZEROPAGE: load = ZP, type = zp;
|
||||
@ -521,17 +857,16 @@ FEATURES {
|
||||
|
||||
New contents for NEXEHDR and CHKHDR are needed (split2.s):
|
||||
<tscreen><verb>
|
||||
.import __STARTUP_LOAD__, __ZPSAVE_LOAD__, __DATA_SIZE__
|
||||
.import __STARTUP_LOAD__, __BSS_LOAD__, __DATA_SIZE__
|
||||
.import __DATA_LOAD__, __RODATA_LOAD__
|
||||
|
||||
.segment "NEXEHDR"
|
||||
.word $FFFF
|
||||
.word __RODATA_LOAD__
|
||||
.word __DATA_LOAD__ + __DATA_SIZE__ - 1
|
||||
|
||||
.segment "CHKHDR"
|
||||
.word __STARTUP_LOAD__
|
||||
.word __ZPSAVE_LOAD__ - 1
|
||||
.word __BSS_LOAD__ - 1
|
||||
</verb></tscreen>
|
||||
|
||||
Compile with
|
||||
@ -542,7 +877,7 @@ cl65 -t atari -C split2.cfg -o prog.com prog.c split2.s
|
||||
<sect2>Final note<label id="memhole_final_note"><p>
|
||||
|
||||
There are two other memory areas which don't appear directly in the
|
||||
linker script. They are the stack and the heap.
|
||||
linker config file. They are the stack and the heap.
|
||||
|
||||
The cc65 runtime lib places the stack location at the end of available
|
||||
memory. This is dynamically set from the MEMTOP system variable at
|
||||
@ -556,14 +891,47 @@ common/_heap.s defines the location of the heap and atari/crt0.s
|
||||
defines the location of the stack by initializing sp.
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
<sect1>Upgrading from an older cc65 version<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org"> or <htmlurl url="mailto:chris@groessler.org"
|
||||
name="chris@groessler.org"> ).
|
||||
If you are using a customized linker config file you might get some errors
|
||||
regarding the MAINHDR segment. Like this:
|
||||
|
||||
<tscreen><verb>
|
||||
ld65: Error: Missing memory area assignment for segment `MAINHDR'
|
||||
</verb></tscreen>
|
||||
|
||||
The old "HEADER" memory description contained six bytes: $FFFF
|
||||
and the first and last memory addess of the program. For the "system
|
||||
check" load chunk this had to be split into two memory assigments. The
|
||||
"HEADER" now only contains the $FFFF. The main program's first
|
||||
and last memory address were moved to a new segment, called "MAINHDR",
|
||||
which in the new linker config file goes into its own memory area (also
|
||||
called "MAINHDR").&nl;&nl;
|
||||
A simple way to adapt your old linker config file is to add the
|
||||
following line to the "SEGMENTS" section:
|
||||
|
||||
<tscreen><verb>
|
||||
MAINHDR: load = HEADER, type = ro;
|
||||
</verb></tscreen>
|
||||
|
||||
|
||||
|
||||
<sect1>Getting rid of the "system check" load chunk<label id="nosyschk"><p>
|
||||
|
||||
If, for some reason, you don't want to include the "system check" load
|
||||
chunk, you can do so by defining the symbol <tt/__SYSTEM_CHECK__/ when linking the
|
||||
program. The "system check" chunk doesn't include vital parts of the
|
||||
program. So if you don't want the system checks, it is save to leave them out.
|
||||
This is probably mostly interesting for debugging.
|
||||
|
||||
When using cl65, you can leave it out with this command line:
|
||||
|
||||
<tscreen><verb>
|
||||
cl65 -Wl -D__SYSTEM_CHECK__=1 <arguments>
|
||||
</verb></tscreen>
|
||||
|
||||
The value you assign to <tt/__SYSTEM_CHECK_/ doesn't matter. If the
|
||||
<tt/__SYSTEM_CHECK__/ symbol is defined, the load chunk won't be included.
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
@ -112,14 +112,14 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/atmos-228-200-3.tgi (atmos_228_200_3)/</tag>
|
||||
<tag><tt/atmos-228-200-3.tgi (atmos_228_200_3_tgi)/</tag>
|
||||
This driver was written by Greg King and Stefan Haubenthal.
|
||||
It features a resolution of 228×200 with a palette of two colors that
|
||||
can be chosen from the Atmos's eight colors. The driver supports a third
|
||||
palette-"color" that actually "flips" the pixel (it becomes the other color)
|
||||
that is on the screen under the graphics cursor.
|
||||
|
||||
<tag><tt/atmos-240-200-2.tgi (atmos_240_200_2)/</tag>
|
||||
<tag><tt/atmos-240-200-2.tgi (atmos_240_200_2_tgi)/</tag>
|
||||
This driver was written by Stefan Haubenthal and Greg King.
|
||||
It features a resolution of 240×200 with black and white colors.
|
||||
It is the default graphics driver for the Atmos.
|
||||
@ -136,7 +136,7 @@ No extended memory drivers are currently available for the Atmos.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/atmos-pase.joy (atmos_pase)/</tag>
|
||||
<tag><tt/atmos-pase.joy (atmos_pase_joy)/</tag>
|
||||
Supports two standard joysticks connected to the P.A.S.E. interface of the Atmos.
|
||||
|
||||
</descrip><p>
|
||||
@ -151,7 +151,7 @@ No mouse drivers are currently available for the Atmos.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/atmos-acia.ser (atmos_acia)/</tag>
|
||||
<tag><tt/atmos-acia.ser (atmos_acia_ser)/</tag>
|
||||
Driver for the Telestrat integrated serial controller and the Atmos with a
|
||||
serial add-on.
|
||||
Note that because of the peculiarities of the 6551 chip together with the
|
||||
@ -224,15 +224,6 @@ feature in the <htmlurl url="ca65.html" name="assembler manual">.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -168,13 +168,13 @@ Note: The graphics drivers for the VDC are incompatible with the extended
|
||||
memory drivers using the VDC memory!
|
||||
|
||||
<descrip>
|
||||
<tag><tt/c128-vdc.tgi (c128_640_200_2)/</tag>
|
||||
<tag><tt/c128-vdc.tgi (c128_vdc_tgi)/</tag>
|
||||
This driver was written by Maciej Witkowiak. It uses the 80 column display
|
||||
and features a resolution of 640*200 with two colors and an adjustable
|
||||
palette (that means that the two colors can be chosen out of the 16 VDC
|
||||
colors).
|
||||
|
||||
<tag><tt/c128-vdc2.tgi (c128_640_480_2)/</tag>
|
||||
<tag><tt/c128-vdc2.tgi (c128_vdc2_tgi)/</tag>
|
||||
This driver was written by Maciej Witkowiak. This driver uses the 80 column
|
||||
display and features a resolution of 640*480 with two colors and an
|
||||
adjustable palette (that means that the two colors can be chosen out of the
|
||||
@ -189,17 +189,16 @@ missing on VDC and are translated to the two colors missing from VIC palette.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/c128-georam.emd (c128_georam)/</tag>
|
||||
<tag><tt/c128-georam.emd (c128_georam_emd)/</tag>
|
||||
A driver for the GeoRam cartridge. The driver will always assume 2048 pages
|
||||
of 256 bytes each. There are no checks, so if your program knows better,
|
||||
just go ahead.
|
||||
|
||||
<tag><tt/c128-ram.emd (c128_ram)/</tag>
|
||||
<tag><tt/c128-ram.emd (c128_ram_emd)/</tag>
|
||||
An extended memory driver for the RAM in page 1. The common memory area is
|
||||
excluded, so this driver supports 251 pages of 256 bytes each.
|
||||
|
||||
<tag><tt/c128-ram2.emd (c128_ram2)/</tag>
|
||||
|
||||
<tag><tt/c128-ram2.emd (c128_ram2_emd)/</tag>
|
||||
An extended memory driver for the RAM in pages 1-3. The common memory area
|
||||
is excluded, so this driver supports up to 731 pages of 256 bytes each. The
|
||||
driver can be used as a full replacement for <tt/c128-ram.emd/, because RAM
|
||||
@ -207,17 +206,17 @@ missing on VDC and are translated to the two colors missing from VIC palette.
|
||||
machines with RAM in banks 2+3, so it has been made a separate driver. The
|
||||
additional code was contributed by Marco van den Heuvel.
|
||||
|
||||
<tag><tt/c128-ramcart.emd (c128_ramcart)/</tag>
|
||||
<tag><tt/c128-ramcart.emd (c128_ramcart_emd)/</tag>
|
||||
A driver for the RamCart 64/128 written and contributed by Maciej Witkowiak.
|
||||
Will test the hardware for the available RAM.
|
||||
|
||||
<tag><tt/c128-reu.emd (c128_reu)/</tag>
|
||||
<tag><tt/c128-reu.emd (c128_reu_emd)/</tag>
|
||||
A driver for the CBM REUs. The driver will determine from the connected REU
|
||||
if it supports 128KB of RAM or more. In the latter case, 256KB are assumed,
|
||||
but since there are no range checks, the application can use more memory if
|
||||
it has better knowledge about the hardware than the driver.
|
||||
|
||||
<tag><tt/c128-vdc.emd (c128_vdc)/</tag>
|
||||
<tag><tt/c128-vdc.emd (c128_vdc_emd)/</tag>
|
||||
A driver for the VDC memory of the C128 written and contributed by Maciej
|
||||
Witkowiak. Autodetects the amount of memory available (16 or 64K) and offers
|
||||
64 or 256 pages of 256 bytes each. Note: This driver is incompatible with
|
||||
@ -230,14 +229,14 @@ missing on VDC and are translated to the two colors missing from VIC palette.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/c128-ptvjoy.joy (c128_ptvjoy)/</tag>
|
||||
<tag><tt/c128-ptvjoy.joy (c128_ptvjoy_joy)/</tag>
|
||||
Driver for the Protovision 4-player adapter originally written by Groepaz
|
||||
for the C64 and converted for the C128 by me. See <htmlurl
|
||||
url="http://www.protovision-online.de/hardw/hardwstart.htm"
|
||||
name="http://www.protovision-online.de/hardw/hardwstart.htm"> for prices and
|
||||
building instructions. Up to four joysticks are supported.
|
||||
|
||||
<tag><tt/c128-stdjoy.joy (c128_stdjoy)/</tag>
|
||||
<tag><tt/c128-stdjoy.joy (c128_stdjoy_joy)/</tag>
|
||||
Supports up to two joysticks connected to the standard joysticks port of
|
||||
the C128.
|
||||
|
||||
@ -249,14 +248,21 @@ missing on VDC and are translated to the two colors missing from VIC palette.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/c128-1351.mou (c128_1351)/</tag>
|
||||
<tag><tt/c128-1351.mou (c128_1351_mou)/</tag>
|
||||
Supports a standard mouse connected to port #0 of the C128.
|
||||
|
||||
<tag><tt/c128-joy.mou (c128_joymouse)/</tag>
|
||||
<tag><tt/c128-inkwell.mou (c128_inkwell_mou)/</tag>
|
||||
Supports the Inkwell Systems lightpens, connected to port #0 of the
|
||||
C128. It can read both the one-button 170-C and the two-button 184-C pens.
|
||||
(It can read other lightpens and light-guns that send their button signal to
|
||||
the joystick left-button pin or the paddle Y [up/down] pin.) It works on
|
||||
only the 40-column screen.
|
||||
|
||||
<tag><tt/c128-joy.mou (c128_joy_mou)/</tag>
|
||||
Supports a mouse emulated by a standard joystick e.g. 1350 mouse in port
|
||||
#1 of the C128.
|
||||
|
||||
<tag><tt/c128-pot.mou (c128_potmouse)/</tag>
|
||||
<tag><tt/c128-pot.mou (c128_pot_mou)/</tag>
|
||||
Supports a potentiometer device e.g. Koala Pad connected to port #1 of
|
||||
the C128.
|
||||
|
||||
@ -267,7 +273,7 @@ missing on VDC and are translated to the two colors missing from VIC palette.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/c128-swlink.ser (c128_swlink)/</tag>
|
||||
<tag><tt/c128-swlink.ser (c128_swlink_ser)/</tag>
|
||||
Driver for the SwiftLink cartridge. Supports up to 38400 baud, hardware flow
|
||||
control (RTS/CTS) and interrupt driven receives. Note that because of the
|
||||
peculiarities of the 6551 chip together with the use of the NMI, transmits
|
||||
@ -323,15 +329,6 @@ feature in the <htmlurl url="ca65.html" name="assembler manual">.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
16
doc/c16.sgml
16
doc/c16.sgml
@ -160,7 +160,7 @@ No graphics drivers are currently available for the C16/C116.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/c16-ram.emd (c16_ram)/</tag>
|
||||
<tag><tt/c16-ram.emd (c16_ram_emd)/</tag>
|
||||
A driver for the hidden RAM below the BASIC and KERNAL ROMs. Supports 125
|
||||
pages with 256 bytes each if the machine is equipped with 64K of memory
|
||||
(a Plus/4 or a memory extended C16/116).
|
||||
@ -173,7 +173,7 @@ No graphics drivers are currently available for the C16/C116.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/c16-stdjoy.joy (c16_stdjoy)/</tag>
|
||||
<tag><tt/c16-stdjoy.joy (c16_stdjoy_joy)/</tag>
|
||||
Supports up to two joysticks connected to the standard joysticks port of
|
||||
the Commodore 16/116.
|
||||
|
||||
@ -183,8 +183,7 @@ No graphics drivers are currently available for the C16/C116.
|
||||
|
||||
<sect1>Mouse drivers<p>
|
||||
|
||||
Currently no drivers available (in fact, the API for loadable mouse drivers
|
||||
does not exist).
|
||||
No mouse drivers are currently available for the C16/C116.
|
||||
|
||||
|
||||
<sect1>RS232 device drivers<p>
|
||||
@ -237,15 +236,6 @@ feature in the <htmlurl url="ca65.html" name="assembler manual">.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
61
doc/c64.sgml
61
doc/c64.sgml
@ -65,15 +65,15 @@ Special locations:
|
||||
|
||||
<sect>Linker configurations<p>
|
||||
|
||||
The ld65 linker comes with a builtin config file for the Commodore 64,
|
||||
which is used via <tt/-t c64/ (and displayed via <tt/--dump-config c64/). The
|
||||
The ld65 linker comes with a default config file for the Commodore 64,
|
||||
which is used via <tt/-t c64/. The
|
||||
c64 package comes with additional secondary linker config files, which are
|
||||
used via <tt/-C <configfile>/.
|
||||
used via <tt/-t c64 -C <configfile>/.
|
||||
|
||||
|
||||
<sect1>builtin config file<p>
|
||||
<sect1>default config file (<tt/c64.cfg/)<p>
|
||||
|
||||
The builtin configuration is tailored to C programs. It supplies the load
|
||||
The default configuration is tailored to C programs. It supplies the load
|
||||
address and a small BASIC stub that starts the compiled program using a SYS
|
||||
command.
|
||||
|
||||
@ -210,7 +210,7 @@ the standard setup without any memory loss or need for a changed
|
||||
configuration.
|
||||
|
||||
<descrip>
|
||||
<tag><tt/c64-hi.tgi (c64_320_200_2)/</tag>
|
||||
<tag><tt/c64-hi.tgi (c64_hi_tgi)/</tag>
|
||||
This driver features a resolution of 320*200 with two colors and an
|
||||
adjustable palette (that means that the two colors can be chosen out of a
|
||||
palette of the 16 C64 colors).
|
||||
@ -221,45 +221,45 @@ configuration.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/c64-c256k.emd (c64_c256k)/</tag>
|
||||
<tag><tt/c64-c256k.emd (c64_c256k_emd)/</tag>
|
||||
A driver for the C64 256K memory expansion. This driver offers 768 pages of
|
||||
256 bytes each. Written and contributed by Marco van den Heuvel.
|
||||
|
||||
<tag><tt/c64-dqbb.emd (c64_dqbb)/</tag>
|
||||
<tag><tt/c64-dqbb.emd (c64_dqbb_emd)/</tag>
|
||||
A driver for the Double Quick Brown Box cartridge. This driver offers
|
||||
64 pages of 256 bytes each. Written and contributed by Marco van den Heuvel.
|
||||
|
||||
<tag><tt/c64-georam.emd (c64_georam)/</tag>
|
||||
<tag><tt/c64-georam.emd (c64_georam_emd)/</tag>
|
||||
A driver for the Berkeley Softworks GeoRam cartridge. The driver will
|
||||
determine the available RAM from the connected cartridge. It supports 64KB
|
||||
up to 2048KB of RAM.
|
||||
|
||||
<tag><tt/c64-isepic.emd (c64_isepic)/</tag>
|
||||
<tag><tt/c64-isepic.emd (c64_isepic_emd)/</tag>
|
||||
A driver for the ISEPIC cartridge. This driver offers just 8 pages of 256
|
||||
bytes each. Written and contributed by Marco van den Heuvel.
|
||||
|
||||
<tag><tt/c64-ram.emd (c64_ram)/</tag>
|
||||
<tag><tt/c64-ram.emd (c64_ram_emd)/</tag>
|
||||
A driver for the hidden RAM below the I/O area and kernal ROM. Supports 48
|
||||
256 byte pages. Please note that this driver is incompatible with any of the
|
||||
graphics drivers!
|
||||
|
||||
<tag><tt/c64-ramcart.emd (c64_ramcart)/</tag>
|
||||
<tag><tt/c64-ramcart.emd (c64_ramcart_emd)/</tag>
|
||||
A driver for the RamCart 64/128 written and contributed by Maciej Witkowiak.
|
||||
Will test the hardware for the available RAM.
|
||||
|
||||
<tag><tt/c64-reu.emd (c64_reu)/</tag>
|
||||
<tag><tt/c64-reu.emd (c64_reu_emd)/</tag>
|
||||
A driver for the CBM REUs. The driver will determine from the connected REU
|
||||
if it supports 128KB of RAM or more. In the latter case, 256KB are assumed,
|
||||
but since there are no range checks, the application can use more memory if
|
||||
it has better knowledge about the hardware than the driver.
|
||||
|
||||
<tag><tt/c64-vdc.emd (c64_vdc)/</tag>
|
||||
<tag><tt/c64-vdc.emd (c64_vdc_emd)/</tag>
|
||||
A driver for the VDC memory of the C128. Written and contributed by Maciej
|
||||
Witkowiak. Can be used if the program is running in C64 mode of the C128.
|
||||
Autodetects the amount of memory available (16 or 64K) and offers 64 or 256
|
||||
pages of 256 bytes each.
|
||||
|
||||
<tag><tt/dtv-himem.emd (dtv_himem)/</tag>
|
||||
<tag><tt/dtv-himem.emd (dtv_himem_emd)/</tag>
|
||||
A driver for the C64 D2TV (the second or PAL version). This driver offers
|
||||
indeed 7680 pages of 256 bytes each.
|
||||
|
||||
@ -270,23 +270,23 @@ configuration.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/c64-hitjoy.joy (c64_hitjoy)/</tag>
|
||||
<tag><tt/c64-hitjoy.joy (c64_hitjoy_joy)/</tag>
|
||||
Driver for the Digital Excess & Hitmen adapter contributed by Groepaz. See
|
||||
<htmlurl url="http://www.digitalexcess.de/downloads/productions.php"
|
||||
name="http://www.digitalexcess.de/downloads/productions.php"> on
|
||||
instructions how to build one. Up to four joysticks are supported.
|
||||
|
||||
<tag><tt/c64-ptvjoy.joy (c64_ptvjoy)/</tag>
|
||||
<tag><tt/c64-ptvjoy.joy (c64_ptvjoy_joy)/</tag>
|
||||
Driver for the Protovision 4-player adapter contributed by Groepaz. See
|
||||
<htmlurl url="http://www.protovision-online.de/hardw/hardwstart.htm"
|
||||
name="http://www.protovision-online.de/hardw/hardwstart.htm"> for prices and
|
||||
building instructions. Up to four joysticks are supported.
|
||||
|
||||
<tag><tt/c64-stdjoy.joy (c64_stdjoy)/</tag>
|
||||
<tag><tt/c64-stdjoy.joy (c64_stdjoy_joy)/</tag>
|
||||
Supports up to two standard joysticks connected to the joysticks port of
|
||||
the C64.
|
||||
|
||||
<tag><tt/c64-numpad.joy (c64_numpad)/</tag>
|
||||
<tag><tt/c64-numpad.joy (c64_numpad_joy)/</tag>
|
||||
Supports one joystick emulated by the numberpad of the C128 in C64 mode,
|
||||
the firebutton is labeled &dquot;5&dquot; and ENTER.
|
||||
|
||||
@ -297,14 +297,20 @@ configuration.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/c64-1351.mou (c64_1351)/</tag>
|
||||
<tag><tt/c64-1351.mou (c64_1351_mou)/</tag>
|
||||
Supports a standard mouse connected to port #0 of the C64.
|
||||
|
||||
<tag><tt/c64-joy.mou (c64_joymouse)/</tag>
|
||||
<tag><tt/c64-inkwell.mou (c64_inkwell_mou)/</tag>
|
||||
Supports the Inkwell Systems lightpens, connected to port #0 of the C64.
|
||||
It can read both the one-button 170-C and the two-button 184-C pens. (It can
|
||||
read other lightpens and light-guns that send their button signal to the
|
||||
joystick left-button pin or the paddle Y [up/down] pin.)
|
||||
|
||||
<tag><tt/c64-joy.mou (c64_joy_mou)/</tag>
|
||||
Supports a mouse emulated by a standard joystick e.g. 1350 mouse in port
|
||||
#1 of the C64.
|
||||
|
||||
<tag><tt/c64-pot.mou (c64_potmouse)/</tag>
|
||||
<tag><tt/c64-pot.mou (c64_pot_mou)/</tag>
|
||||
Supports a potentiometer device e.g. Koala Pad connected to port #1 of
|
||||
the C64.
|
||||
|
||||
@ -315,7 +321,7 @@ configuration.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/c64-swlink.ser (c64_swlink)/</tag>
|
||||
<tag><tt/c64-swlink.ser (c64_swlink_ser)/</tag>
|
||||
Driver for the SwiftLink cartridge. Supports up to 38400 baud, hardware flow
|
||||
control (RTS/CTS) and interrupt driven receives. Note that because of the
|
||||
peculiarities of the 6551 chip together with the use of the NMI, transmits
|
||||
@ -372,15 +378,6 @@ feature in the <htmlurl url="ca65.html" name="assembler manual">.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -112,14 +112,12 @@ Long options:
|
||||
--debug Debug mode
|
||||
--debug-info Add debug info to object file
|
||||
--feature name Set an emulation feature
|
||||
--forget-inc-paths Forget include search paths
|
||||
--help Help (this text)
|
||||
--ignore-case Ignore case of symbols
|
||||
--include-dir dir Set an include directory search path
|
||||
--large-alignment Don't warn about large alignments
|
||||
--listing name Create a listing file if assembly was ok
|
||||
--list-bytes n Maximum number of bytes per listing line
|
||||
--macpack-dir dir Set a macro package directory
|
||||
--memory-model model Set the memory model
|
||||
--pagelength n Set the page length for the listing
|
||||
--relax-checks Relax some checks (see docs)
|
||||
@ -195,14 +193,6 @@ Here is a description of all the command line options:
|
||||
command for a list of emulation features.
|
||||
|
||||
|
||||
<label id="option--forget-inc-paths">
|
||||
<tag><tt>--forget-inc-paths</tt></tag>
|
||||
|
||||
Forget the builtin include paths. This is most useful when building
|
||||
customized assembler modules, in which case the standard header files should
|
||||
be ignored.
|
||||
|
||||
|
||||
<label id="option-g">
|
||||
<tag><tt>-g, --debug-info</tt></tag>
|
||||
|
||||
@ -251,17 +241,6 @@ Here is a description of all the command line options:
|
||||
number of printed bytes.
|
||||
|
||||
|
||||
<label id="option--macpack-dir">
|
||||
<tag><tt>--macpack-dir dir</tt></tag>
|
||||
|
||||
This options allows to specify a directory containing macro files that are
|
||||
used instead of the builtin images when a <tt><ref id=".MACPACK"
|
||||
name=".MACPACK"></tt> directive is encountered. If <tt>--macpack-dir</tt>
|
||||
was specified, a <tt>.mac</tt> extension is added to the package name and
|
||||
the resulting file is loaded from the given directory. This is most useful
|
||||
when debugging the builtin macro packages.
|
||||
|
||||
|
||||
<label id="option-mm">
|
||||
<tag><tt>-mm model, --memory-model model</tt></tag>
|
||||
|
||||
@ -393,20 +372,19 @@ Here is a description of all the command line options:
|
||||
Normal include files are searched in the following places:
|
||||
|
||||
<enum>
|
||||
<item>The current directory.
|
||||
<item>A compiled-in directory, which is often <tt>/usr/lib/cc65/asminc</tt>
|
||||
on Linux systems.
|
||||
<item>The current file's directory.
|
||||
<item>Any directory added with the <tt/<ref id="option-I" name="-I">/ option
|
||||
on the command line.
|
||||
<item>The value of the environment variable <tt/CA65_INC/ if it is defined.
|
||||
<item>A subdirectory named <tt/asminc/ of the directory defined in the
|
||||
environment variable <tt/CC65_HOME/, if it is defined.
|
||||
<item>Any directory added with the <tt/<ref id="option-I" name="-I">/ option
|
||||
on the command line.
|
||||
<item>An optionally compiled-in directory.
|
||||
</enum>
|
||||
|
||||
Binary include files are searched in the following places:
|
||||
|
||||
<enum>
|
||||
<item>The current directory.
|
||||
<item>The current file's directory.
|
||||
<item>Any directory added with the <tt/<ref id="option--bin-include-dir"
|
||||
name="--bin-include-dir">/ option on the command line.
|
||||
</enum>
|
||||
@ -4319,6 +4297,15 @@ Currently defined macros are:
|
||||
beq Arg
|
||||
bcc Arg
|
||||
.endmacro
|
||||
|
||||
.macro bnz Arg
|
||||
bne Arg
|
||||
.endmacro
|
||||
|
||||
.macro bze Arg
|
||||
beq Arg
|
||||
.endmacro
|
||||
|
||||
</verb></tscreen>
|
||||
|
||||
|
||||
@ -4430,22 +4417,28 @@ For better orthogonality, the assembler defines similar symbols as the
|
||||
compiler, depending on the target system selected:
|
||||
|
||||
<itemize>
|
||||
<item><tt/__APPLE2__/ - Target system is <tt/apple2/
|
||||
<item><tt/__APPLE2__/ - Target system is <tt/apple2/ or <tt/apple2enh/
|
||||
<item><tt/__APPLE2ENH__/ - Target system is <tt/apple2enh/
|
||||
<item><tt/__ATARI__/ - Target system is <tt/atari/
|
||||
<item><tt/__ATARI__/ - Target system is <tt/atari/ or <tt/atarixl/
|
||||
<item><tt/__ATARIXL__/ - Target system is <tt/atarixl/
|
||||
<item><tt/__ATMOS__/ - Target system is <tt/atmos/
|
||||
<item><tt/__BBC__/ - Target system is <tt/bbc/
|
||||
<item><tt/__C128__/ - Target system is <tt/c128/
|
||||
<item><tt/__C16__/ - Target system is <tt/c16/
|
||||
<item><tt/__C16__/ - Target system is <tt/c16/ or <tt/plus4/
|
||||
<item><tt/__C64__/ - Target system is <tt/c64/
|
||||
<item><tt/__CBM__/ - Target is a Commodore system
|
||||
<item><tt/__CBM510__/ - Target system is <tt/cbm510/
|
||||
<item><tt/__CBM610__/ - Target system is <tt/cbm610/
|
||||
<item><tt/__GEOS__/ - Target system is <tt/geos/
|
||||
<item><tt/__GEOS__/ - Target is a GEOS system
|
||||
<item><tt/__GEOS_APPLE__/ - Target system is <tt/geos-apple/
|
||||
<item><tt/__GEOS_CBM__/ - Target system is <tt/geos-cbm/
|
||||
<item><tt/__LUNIX__/ - Target system is <tt/lunix/
|
||||
<item><tt/__LYNX__/ - Target system is <tt/lynx/
|
||||
<item><tt/__NES__/ - Target system is <tt/nes/
|
||||
<item><tt/__PET__/ - Target system is <tt/pet/
|
||||
<item><tt/__PLUS4__/ - Target system is <tt/plus4/
|
||||
<item><tt/__SIM6502__/ - Target system is <tt/sim6502/
|
||||
<item><tt/__SIM65C02__/ - Target system is <tt/sim65c02/
|
||||
<item><tt/__SUPERVISION__/ - Target system is <tt/supervision/
|
||||
<item><tt/__VIC20__/ - Target system is <tt/vic20/
|
||||
</itemize>
|
||||
@ -4744,15 +4737,6 @@ are used for the cbm load address.
|
||||
</enum>
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the assembler, if you find any bugs, or if
|
||||
you're doing something interesting with the assembler, I would be glad to
|
||||
hear from you. Feel free to contact me by email
|
||||
(<htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
||||
ca65 (and all cc65 binutils) are (C) Copyright 1998-2003 Ullrich von
|
||||
|
@ -248,15 +248,6 @@ that you have to pay for color.
|
||||
</enum>
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the converter, if you find any bugs, or if you're
|
||||
doing something interesting with the assembler, I would be glad to hear from
|
||||
you. Feel free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
||||
ca65html is (c) Copyright 2000-2007 Ullrich von Bassewitz. For its use, the
|
||||
|
@ -3,9 +3,10 @@
|
||||
<article>
|
||||
|
||||
<title>Commodore 510 (aka P500) specific information for cc65
|
||||
<author>Ullrich von Bassewitz, <htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">
|
||||
Stefan A. Haubenthal, <htmlurl url="mailto:polluks@sdf.lonestar.org" name="polluks@sdf.lonestar.org">
|
||||
<date>2006-05-22
|
||||
<author>Ullrich von Bassewitz, <htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">&nl;
|
||||
Stefan A. Haubenthal, <htmlurl url="mailto:polluks@sdf.lonestar.org" name="polluks@sdf.lonestar.org">&nl;
|
||||
<htmlurl url="mailto:greg.king5@verizon.net" name="Greg King">
|
||||
<date>2013-08-23
|
||||
|
||||
<abstract>
|
||||
An overview over the Commodore 510 runtime system as it is implemented for the
|
||||
@ -184,7 +185,7 @@ No graphics drivers are currently available for the Commodore 510.
|
||||
<sect1>Extended memory drivers<p>
|
||||
|
||||
<descrip>
|
||||
<tag><tt/cbm510-ram.emd (cbm510_ram)/</tag>
|
||||
<tag><tt/cbm510-ram.emd (cbm510_ram_emd)/</tag>
|
||||
A driver for the RAM in bank 1. Supports up to 255 pages with 256 bytes
|
||||
each.
|
||||
</descrip><p>
|
||||
@ -194,7 +195,7 @@ No graphics drivers are currently available for the Commodore 510.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/cbm510-std.joy (cbm510_stdjoy)/</tag>
|
||||
<tag><tt/cbm510-std.joy (cbm510_std_joy)/</tag>
|
||||
Supports up to two standard joysticks connected to the joysticks port of
|
||||
the Commodore 510.
|
||||
|
||||
@ -203,14 +204,27 @@ No graphics drivers are currently available for the Commodore 510.
|
||||
|
||||
<sect1>Mouse drivers<p>
|
||||
|
||||
No mouse drivers are currently available for the Commodore 510.
|
||||
<descrip>
|
||||
|
||||
<tag><tt/cbm510-joy.mou (cbm510_joy_mou)/</tag>
|
||||
Supports a mouse that is emulated by a standard joystick, e.g. 1350
|
||||
mouse, in joystick port #2 of the CBM510. That stick's fire button acts as
|
||||
the left mouse button. The fire button of a stick in joystick port #1 can
|
||||
act as the right mouse button.
|
||||
|
||||
<tag><tt/cbm510-inkwl.mou (cbm510_inkwl_mou)/</tag>
|
||||
Supports the Inkwell Systems lightpens, connected to port #1 of the CBM510.
|
||||
It can read both the 170-C and one button of the 184-C pens. (It can
|
||||
read other lightpens and light-guns that send their button signal to the
|
||||
joystick left-button pin.)
|
||||
|
||||
</descrip><p>
|
||||
|
||||
<sect1>RS232 device drivers<p>
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/cbm510-std.ser (cbm510_stdser)/</tag>
|
||||
<tag><tt/cbm510-std.ser (cbm510_std_ser)/</tag>
|
||||
Driver for the 6551 ACIA chip built into the Commodore 510. Supports up to
|
||||
19200 baud, hardware flow control (RTS/CTS) and interrupt driven receives.
|
||||
Note that because of the peculiarities of the 6551 chip transmits are not
|
||||
@ -268,15 +282,6 @@ code when they are linked into a program. See the discussion of the
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -186,7 +186,7 @@ really good:-).
|
||||
<sect1>Extended memory drivers<p>
|
||||
|
||||
<descrip>
|
||||
<tag><tt/cbm610-ram.emd (cbm610_ram)/</tag>
|
||||
<tag><tt/cbm610-ram.emd (cbm610_ram_emd)/</tag>
|
||||
A driver for the RAM in bank 2. Supports up to 255 pages with 256 bytes
|
||||
each.
|
||||
</descrip><p>
|
||||
@ -201,15 +201,14 @@ are no drivers for the non existing ports available.
|
||||
|
||||
<sect1>Mouse drivers<p>
|
||||
|
||||
Currently no drivers available (in fact, the API for loadable mouse drivers
|
||||
does not exist).
|
||||
No mouse drivers are currently available for the Commodore 610.
|
||||
|
||||
|
||||
<sect1>RS232 device drivers<p>
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/cbm610-std.ser (cbm610_stdser)/</tag>
|
||||
<tag><tt/cbm610-std.ser (cbm610_std_ser)/</tag>
|
||||
Driver for the 6551 ACIA chip built into the Commodore 610. Supports up to
|
||||
19200 baud, hardware flow control (RTS/CTS) and interrupt driven receives.
|
||||
Note that because of the peculiarities of the 6551 chip transmits are not
|
||||
@ -267,15 +266,6 @@ code when they are linked into a program. See the discussion of the
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -88,7 +88,6 @@ Long options:
|
||||
--dep-target target Use this dependency target
|
||||
--disable-opt name Disable an optimization step
|
||||
--enable-opt name Enable an optimization step
|
||||
--forget-inc-paths Forget include search paths
|
||||
--help Help (this text)
|
||||
--include-dir dir Set an include directory search path
|
||||
--list-opt-steps List all optimizer steps and exit
|
||||
@ -204,13 +203,6 @@ Here is a description of all the command line options:
|
||||
is defined to the value "1".
|
||||
|
||||
|
||||
<tag><tt>--forget-inc-paths</tt></tag>
|
||||
|
||||
Forget the builtin include paths. This is most useful when building
|
||||
customized C or runtime libraries, in which case the standard header
|
||||
files should be ignored.
|
||||
|
||||
|
||||
<tag><tt>-g, --debug-info</tt></tag>
|
||||
|
||||
This will cause the compiler to insert a <tt/.DEBUGINFO/ command into the
|
||||
@ -344,6 +336,7 @@ Here is a description of all the command line options:
|
||||
<item>apple2
|
||||
<item>apple2enh
|
||||
<item>atari
|
||||
<item>atarixl
|
||||
<item>atmos
|
||||
<item>c16 (works also for the c116 with memory up to 32K)
|
||||
<item>c64
|
||||
@ -357,6 +350,8 @@ Here is a description of all the command line options:
|
||||
<item>nes
|
||||
<item>pet (all CBM PET systems except the 2001)
|
||||
<item>plus4
|
||||
<item>sim6502
|
||||
<item>sim65c02
|
||||
<item>supervision
|
||||
<item>vic20
|
||||
</itemize>
|
||||
@ -514,24 +509,23 @@ Here is a description of all the command line options:
|
||||
|
||||
The compiler will accept one C file per invocation and create a file with
|
||||
the same base name, but with the extension replaced by ".s". The output
|
||||
file contains assembler code suitable for the use with the ca65 macro
|
||||
file contains assembler code suitable for use with the ca65 macro
|
||||
assembler.
|
||||
|
||||
Include files in single quotes are searched in the following places:
|
||||
Include files in quotes are searched in the following places:
|
||||
<enum>
|
||||
<item>The current directory.
|
||||
<item>The value of the environment variable <tt/CC65_INC/ if it is defined.
|
||||
<item>The current file's directory.
|
||||
<item>Any directory added with the <tt/-I/ option on the command line.
|
||||
<item>The value of the environment variable <tt/CC65_INC/ if it is defined.
|
||||
</enum>
|
||||
|
||||
Include files in angle brackets are searched in the following places:
|
||||
<enum>
|
||||
<item>A compiled in directory which is often <tt>/usr/lib/cc65/include</tt> on
|
||||
Linux systems.
|
||||
<item>Any directory added with the <tt/-I/ option on the command line.
|
||||
<item>The value of the environment variable <tt/CC65_INC/ if it is defined.
|
||||
<item>A subdirectory named <tt/include/ of the directory defined in the
|
||||
environment variable <tt/CC65_HOME/, if it is defined.
|
||||
<item>Any directory added with the <tt/-I/ option on the command line.
|
||||
<item>An optionally compiled-in directory.
|
||||
</enum>
|
||||
|
||||
|
||||
@ -709,7 +703,7 @@ The compiler defines several macros at startup:
|
||||
<descrip>
|
||||
<tag><tt>__APPLE2__</tt></tag>
|
||||
|
||||
This macro is defined if the target is the Apple ][ (-t apple2).
|
||||
This macro is defined if the target is the Apple ][ (-t apple2) or the enhanced Apple //e (-t apple2enh).
|
||||
|
||||
<tag><tt>__APPLE2ENH__</tt></tag>
|
||||
|
||||
@ -717,8 +711,11 @@ The compiler defines several macros at startup:
|
||||
|
||||
<tag><tt>__ATARI__</tt></tag>
|
||||
|
||||
This macro is defined if the target is one of the Atari computers
|
||||
(400/800/130XL/800XL).
|
||||
This macro is defined if the target is the Atari 400/800 (-t atari) or the Atari 800XL/130XE (-t atarixl).
|
||||
|
||||
<tag><tt>__ATARIXL__</tt></tag>
|
||||
|
||||
This macro is defined if the target is the Atari 800XL/130XE (-t atarixl).
|
||||
|
||||
<tag><tt>__ATMOS__</tt></tag>
|
||||
|
||||
@ -726,15 +723,15 @@ The compiler defines several macros at startup:
|
||||
|
||||
<tag><tt>__C128__</tt></tag>
|
||||
|
||||
This macro is defined if the target is the c128 (-t c128).
|
||||
This macro is defined if the target is the Commodore 128 (-t c128).
|
||||
|
||||
<tag><tt>__C16__</tt></tag>
|
||||
|
||||
This macro is defined if the target is the c16 (-t c16).
|
||||
This macro is defined if the target is the Commodore 16/116 (-t c16) or the Commodore Plus/4 (-t plus4).
|
||||
|
||||
<tag><tt>__C64__</tt></tag>
|
||||
|
||||
This macro is defined if the target is the c64 (-t c64).
|
||||
This macro is defined if the target is the Commodore 64 (-t c64).
|
||||
|
||||
<tag><tt>__CBM__</tt></tag>
|
||||
|
||||
@ -776,7 +773,15 @@ The compiler defines several macros at startup:
|
||||
|
||||
<tag><tt>__GEOS__</tt></tag>
|
||||
|
||||
This macro is defined if you are compiling for the GEOS system (-t geos).
|
||||
This macro is defined if you are compiling for one of the GEOS systems.
|
||||
|
||||
<tag><tt>__GEOS_APPLE__</tt></tag>
|
||||
|
||||
This macro is defined if you are compiling for the Apple GEOS system (-t geos-apple).
|
||||
|
||||
<tag><tt>__GEOS_CBM__</tt></tag>
|
||||
|
||||
This macro is defined if you are compiling for the GEOS 64/128 system (-t geos-cbm).
|
||||
|
||||
<tag><tt>__LINE__</tt></tag>
|
||||
|
||||
@ -792,7 +797,7 @@ The compiler defines several macros at startup:
|
||||
|
||||
<tag><tt>__NES__</tt></tag>
|
||||
|
||||
This macro is defined if the target is the NES (-t nes).
|
||||
This macro is defined if the target is the Nintendo Entertainment System (-t nes).
|
||||
|
||||
<tag><tt>__OPT__</tt></tag>
|
||||
|
||||
@ -816,15 +821,22 @@ The compiler defines several macros at startup:
|
||||
|
||||
<tag><tt>__PLUS4__</tt></tag>
|
||||
|
||||
This macro is defined if the target is the plus/4 (-t plus4).
|
||||
This macro is defined if the target is the Commodore Plus/4 (-t plus4).
|
||||
|
||||
<tag><tt>__STDC_HOSTED__</tt></tag>
|
||||
|
||||
This macro is expands to the integer constant 1.
|
||||
|
||||
<tag><tt>__SIM6502__</tt></tag>
|
||||
|
||||
This macro is defined if the target is sim65 in 6502 mode (-t sim6502).
|
||||
|
||||
<tag><tt>__SIM65C02__</tt></tag>
|
||||
This macro is defined if the target is sim65 in 65C02 mode (-t sim65c02).
|
||||
|
||||
<tag><tt>__SUPERVISION__</tt></tag>
|
||||
|
||||
This macro is defined if the target is the supervision (-t supervision).
|
||||
This macro is defined if the target is the Supervision (-t supervision).
|
||||
|
||||
<tag><tt>__TIME__</tt></tag>
|
||||
|
||||
@ -833,7 +845,7 @@ The compiler defines several macros at startup:
|
||||
|
||||
<tag><tt>__VIC20__</tt></tag>
|
||||
|
||||
This macro is defined if the target is the vic20 (-t vic20).
|
||||
This macro is defined if the target is the Commodore VIC20 (-t vic20).
|
||||
</descrip>
|
||||
|
||||
|
||||
@ -1308,15 +1320,6 @@ behavior as implementation-defined.
|
||||
|
||||
(to be done)
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the compiler, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
||||
This is the original compiler copyright:
|
||||
|
@ -88,7 +88,6 @@ Long options:
|
||||
--debug-info Add debug info
|
||||
--feature name Set an emulation feature
|
||||
--force-import sym Force an import of symbol `sym'
|
||||
--forget-inc-paths Forget include search paths (compiler)
|
||||
--help Help (this text)
|
||||
--include-dir dir Set a compiler include directory path
|
||||
--ld-args options Pass options to the linker
|
||||
@ -277,14 +276,6 @@ to do this.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the utility, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
||||
cl65 (and all cc65 binutils) are (C) Copyright 1998-2004 Ullrich von
|
||||
|
@ -316,15 +316,6 @@ will get an "undefined external" error for the _c64_hi symbol.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the converter, if you find any bugs, or if you're
|
||||
doing something interesting with the code, I would be glad to hear from you.
|
||||
Feel free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
||||
co65 is (C) Copyright 2003 Ullrich von Bassewitz. For usage of the binaries
|
||||
|
@ -651,15 +651,6 @@ directives explained above:
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the disassembler, if you find any bugs, or if
|
||||
you're doing something interesting with the assembler, I would be glad to hear
|
||||
from you. Feel free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
||||
da65 (and all cc65 binutils) are (C) Copyright 1998-2007 Ullrich von
|
||||
|
@ -2,12 +2,8 @@
|
||||
|
||||
<article>
|
||||
<title>cc65 Documentation Overview
|
||||
<author>Ullrich von Bassewitz, <htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">
|
||||
<date>2005-8-6
|
||||
|
||||
<abstract>
|
||||
Main documentation page, contains links to other available stuff.
|
||||
</abstract>
|
||||
<author><htmlurl url="https://github.com/oliverschmidt/cc65" name="">
|
||||
<date>
|
||||
|
||||
<sect>Program documentation<p>
|
||||
|
||||
@ -60,9 +56,6 @@ Main documentation page, contains links to other available stuff.
|
||||
<tag><htmlurl url="coding.html" name="coding.html"></tag>
|
||||
Contains hints on creating the most effective code with cc65.
|
||||
|
||||
<tag><htmlurl url="compile.txt" name="compile.txt"></tag>
|
||||
How to compile cc65 and the support tools.
|
||||
|
||||
<tag><htmlurl url="using-make.html" name="using-make.html"></tag>
|
||||
Build programs, using the GNU Make utility.
|
||||
|
||||
@ -159,21 +152,5 @@ Main documentation page, contains links to other available stuff.
|
||||
</descrip>
|
||||
|
||||
|
||||
<sect>Miscellaneous<p>
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><htmlurl url="newvers.txt" name="newvers.txt"></tag>
|
||||
Somewhat outdated. Lists the differences between my cc65 releases
|
||||
and the original Atari version that was created by J. R. Dunning.
|
||||
|
||||
<tag><htmlurl url="BUGS" name="BUGS"></tag>
|
||||
Known cc65 bugs.
|
||||
|
||||
<tag><htmlurl url="CREDITS" name="CREDITS"></tag>
|
||||
Here is who helped with the compiler and other tools.
|
||||
|
||||
</descrip>
|
||||
|
||||
</article>
|
||||
|
||||
|
@ -371,12 +371,12 @@ The emulation, also, supports that method.
|
||||
|
||||
<sect2>VICE<p>
|
||||
Available at <url
|
||||
url="http://www.viceteam.org/">:
|
||||
url="http://vice-emu.sourceforge.net/">:
|
||||
|
||||
Emulates Commodore 64/128/VIC-20/PET/CBM II/Plus 4 computers. Supports
|
||||
printers, serial port and adapters, stereo sound, disk drives and images, RAM
|
||||
expansions, cartridges, ethernet connection, cycle-exact NTSC/PAL video, mice,
|
||||
and joysticks. Includes monitor. Runs on MSDOS/PCDOS, Win9x/ME/NT/2000/XP, OS2,
|
||||
printers, serial port and adapters, stereo sound, disk drives and images, RAM expansions,
|
||||
cartridges, ethernet connection, cycle-exact NTSC/PAL video, mice, graphics tablet,
|
||||
lightpens, and joysticks. Includes monitor. Runs on MSDOS/PCDOS, Win9x/ME/NT/2000/XP, OS2,
|
||||
BeOS x86, Acorn RISC OS, and most Unixes.
|
||||
|
||||
Compile the tutorial with
|
||||
@ -395,7 +395,7 @@ Substitute the name of a Commodore computer for that <tt/<sys>/:
|
||||
<item><tt/vic20/
|
||||
</itemize>
|
||||
|
||||
Start the desired version of the emulator (CBM510 and CBM610 programs run on
|
||||
Start the desired version of the emulator (CBM610 programs run on
|
||||
the CBM II [<tt/xcbm2/] emulator).
|
||||
|
||||
In the Windows versions of VICE, choose <bf>File>Autoboot disk/tape
|
||||
|
@ -76,7 +76,6 @@ Long options:
|
||||
--config name Use linker config file
|
||||
--dbgfile name Generate debug information
|
||||
--define sym=val Define a symbol
|
||||
--dump-config name Dump a builtin configuration
|
||||
--end-group End a library group
|
||||
--force-import sym Force an import of symbol `sym'
|
||||
--help Help (this text)
|
||||
@ -140,7 +139,7 @@ Here is a description of all the command line options:
|
||||
|
||||
The -o switch is used to give the name of the default output file.
|
||||
Depending on your output configuration, this name may NOT be used as
|
||||
name for the output file. However, for the builtin configurations, this
|
||||
name for the output file. However, for the default configurations, this
|
||||
name is used for the output file name.
|
||||
|
||||
|
||||
@ -148,7 +147,7 @@ Here is a description of all the command line options:
|
||||
<tag><tt>-t sys, --target sys</tt></tag>
|
||||
|
||||
The argument for the -t switch is the name of the target system. Since this
|
||||
switch will activate a builtin configuration, it may not be used together
|
||||
switch will activate a default configuration, it may not be used together
|
||||
with the <tt><ref id="option-C" name="-C"></tt> option. The following target
|
||||
systems are currently supported:
|
||||
|
||||
@ -158,6 +157,7 @@ Here is a description of all the command line options:
|
||||
<item>apple2
|
||||
<item>apple2enh
|
||||
<item>atari
|
||||
<item>atarixl
|
||||
<item>atmos
|
||||
<item>c16 (works also for the c116 with memory up to 32K)
|
||||
<item>c64
|
||||
@ -171,6 +171,8 @@ Here is a description of all the command line options:
|
||||
<item>nes
|
||||
<item>pet (all CBM PET systems except the 2001)
|
||||
<item>plus4
|
||||
<item>sim6502
|
||||
<item>sim65c02
|
||||
<item>supervision
|
||||
<item>vic20
|
||||
</itemize>
|
||||
@ -252,9 +254,9 @@ Here is a description of all the command line options:
|
||||
<tag><tt>-S addr, --start-addr addr</tt></tag>
|
||||
|
||||
Using -S you may define the default starting address. If and how this
|
||||
address is used depends on the config file in use. For the builtin
|
||||
address is used depends on the config file in use. For the default
|
||||
configurations, only the "none", "apple2" and "apple2enh" systems honor an
|
||||
explicit start address, all other builtin config provide their own.
|
||||
explicit start address, all other default configs provide their own.
|
||||
|
||||
|
||||
<tag><tt>-V, --version</tt></tag>
|
||||
@ -313,56 +315,53 @@ Here is a description of all the command line options:
|
||||
|
||||
<sect>Search paths<p>
|
||||
|
||||
Starting with version 2.10 there are now several search paths for files needed
|
||||
by the linker: One for libraries, one for object files and one for config
|
||||
Starting with version 2.10, there are now several search-path lists for files needed
|
||||
by the linker: one for libraries, one for object files, and one for config
|
||||
files.
|
||||
|
||||
|
||||
<sect1>Library search path<p>
|
||||
|
||||
The library search path contains in this order:
|
||||
The library search-path list contains in this order:
|
||||
|
||||
<enum>
|
||||
<item>The current directory.
|
||||
<item>A compiled in library path which is often <tt>/usr/lib/cc65/lib</tt> on
|
||||
Linux systems.
|
||||
<item>Any directory added with the <tt><ref id="option--lib-path"
|
||||
name="--lib-path"></tt> option on the command line.
|
||||
<item>The value of the environment variable <tt/LD65_LIB/ if it is defined.
|
||||
<item>A subdirectory named <tt/lib/ of the directory defined in the environment
|
||||
variable <tt/CC65_HOME/, if it is defined.
|
||||
<item>Any directory added with the <tt><ref id="option--lib-path"
|
||||
name="--lib-path"></tt> option on the command line.
|
||||
<item>An optionally compiled-in library path.
|
||||
</enum>
|
||||
|
||||
|
||||
<sect1>Object file search path<p>
|
||||
|
||||
The object file search path contains in this order:
|
||||
The object file search-path list contains in this order:
|
||||
|
||||
<enum>
|
||||
<item>The current directory.
|
||||
<item>A compiled in directory which is often <tt>/usr/lib/cc65/obj</tt> on
|
||||
Linux systems.
|
||||
<item>Any directory added with the <tt><ref id="option--obj-path"
|
||||
name="--obj-path"></tt> option on the command line.
|
||||
<item>The value of the environment variable <tt/LD65_OBJ/ if it is defined.
|
||||
<item>A subdirectory named <tt/obj/ of the directory defined in the environment
|
||||
variable <tt/CC65_HOME/, if it is defined.
|
||||
<item>Any directory added with the <tt><ref id="option--obj-path"
|
||||
name="--obj-path"></tt> option on the command line.
|
||||
<item>An optionally compiled-in directory.
|
||||
</enum>
|
||||
|
||||
|
||||
<sect1>Config file search path<p>
|
||||
|
||||
The config file search path contains in this order:
|
||||
The config file search-path list contains in this order:
|
||||
|
||||
<enum>
|
||||
<item>The current directory.
|
||||
<item>A compiled in directory which is often <tt>/usr/lib/cc65/cfg</tt> on
|
||||
Linux systems.
|
||||
<item>Any directory added with the <tt><ref id="option--cfg-path"
|
||||
name="--cfg-path"></tt> option on the command line.
|
||||
<item>The value of the environment variable <tt/LD65_CFG/ if it is defined.
|
||||
<item>A subdirectory named <tt/cfg/ of the directory defined in the environment
|
||||
variable <tt/CC65_HOME/, if it is defined.
|
||||
<item>Any directory added with the <tt><ref id="option--cfg-path"
|
||||
name="--cfg-path"></tt> option on the command line.
|
||||
<item>An optionally compiled-in directory.
|
||||
</enum>
|
||||
|
||||
|
||||
@ -1025,24 +1024,6 @@ __STACKSIZE__=xxx/ on the command line.
|
||||
|
||||
|
||||
|
||||
<sect1>Builtin configurations<p>
|
||||
|
||||
The builtin configurations are part of the linker source. They can be retrieved
|
||||
with <tt/--dump-config/ and don't have a special format. So if you need a
|
||||
special configuration, it's a good idea to start with the builtin configuration
|
||||
for your system. In a first step, just replace <tt/-t target/ by <tt/-C
|
||||
configfile/. Then go on and modify the config file to suit your needs.
|
||||
|
||||
|
||||
|
||||
<sect1>Secondary configurations<p>
|
||||
|
||||
Several machine specific binary packages are distributed together with secondary
|
||||
configurations (in the cfg directory). These configurations can be used with
|
||||
<tt/-C configfile/ too.
|
||||
|
||||
|
||||
|
||||
<sect>Special segments<p>
|
||||
|
||||
The builtin config files do contain segments that have a special meaning for
|
||||
@ -1075,15 +1056,6 @@ initialized.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the linker, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
||||
ld65 (and all cc65 binutils) are (C) Copyright 1998-2005 Ullrich von
|
||||
|
@ -164,6 +164,7 @@ portable. conio implementations exist for the following targets:
|
||||
<item>apple2
|
||||
<item>apple2enh
|
||||
<item>atari
|
||||
<item>atarixl
|
||||
<item>atmos
|
||||
<item>c16 (works also for the c116 with up to 32K memory)
|
||||
<item>c64
|
||||
@ -187,8 +188,7 @@ which define constants for special characters and keys.
|
||||
|
||||
For systems that have a joystick, <tt/joystick.h/ will define a subroutine to
|
||||
read the current value, including constants to evaluate the result of this
|
||||
function. To help in writing portable code, the header file will define the
|
||||
symbol <tt/__JOYSTICK__/ on systems that have a joystick.
|
||||
function.
|
||||
|
||||
|
||||
|
||||
@ -201,23 +201,12 @@ the following targets:
|
||||
<item>apple2
|
||||
<item>apple2enh
|
||||
<item>atari
|
||||
<item>atarixl
|
||||
<item>c64
|
||||
<item>c128
|
||||
<item>cbm510
|
||||
</itemize>
|
||||
|
||||
The available functions are declared in <tt/mouse.h/ To help writing portable
|
||||
code, the header file will define the symbol <tt/__MOUSE__/ in systems that
|
||||
support a mouse.
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
The available functions are declared in <tt/mouse.h/.
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
@ -194,7 +194,7 @@ The names in the parentheses denote the symbols to be used for static linking of
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/lynx-160-102-16.tgi (lynx_160_102_16)/</tag>
|
||||
<tag><tt/lynx-160-102-16.tgi (lynx_160_102_16_tgi)/</tag>
|
||||
A TGI driver for the standard graphics mode (160×102 in 16 colors).
|
||||
|
||||
The TGI driver is implemented as an interrupt driven dual buffering device.
|
||||
@ -243,7 +243,7 @@ No extended memory drivers are currently available for the Lynx.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/lynx-stdjoy.joy (lynx_stdjoy)/</tag>
|
||||
<tag><tt/lynx-stdjoy.joy (lynx_stdjoy_joy)/</tag>
|
||||
A joystick driver for the standard buttons.
|
||||
|
||||
</descrip><p>
|
||||
@ -258,7 +258,7 @@ No mouse drivers are currently available for the Lynx.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/lynx-comlynx.ser (lynx_comlynx)/</tag>
|
||||
<tag><tt/lynx-comlynx.ser (lynx_comlynx_ser)/</tag>
|
||||
A serial driver for the ComLynx port.
|
||||
|
||||
The ComLynx port has Tx and Rx wired together. Every byte is sent
|
||||
@ -327,15 +327,6 @@ cc65 drivers require. But for the time being you can create less portable
|
||||
applications using these Lynx specific modules in <tt/lynx-cart-demo/.
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -161,15 +161,6 @@ following functions (and a few others):
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -187,15 +187,6 @@ t.o:
|
||||
</verb></tscreen>
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the converter, if you find any bugs, or if you're
|
||||
doing something interesting with the code, I would be glad to hear from you.
|
||||
Feel free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
||||
od65 is (C) Copyright 2000-2009, Ullrich von Bassewitz. For usage of the
|
||||
|
13
doc/pet.sgml
13
doc/pet.sgml
@ -150,13 +150,13 @@ No extended memory drivers are currently available for the PET.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/pet-ptvjoy.joy (pet_ptvjoy)/</tag>
|
||||
<tag><tt/pet-ptvjoy.joy (pet_ptvjoy_joy)/</tag>
|
||||
Driver for the Protovision 4-player adapter contributed by Groepaz. See
|
||||
<htmlurl url="http://www.protovision-online.de/hardw/hardwstart.htm"
|
||||
name="http://www.protovision-online.de/hardw/hardwstart.htm"> for prices and
|
||||
building instructions. Up to two joysticks are supported.
|
||||
|
||||
<tag><tt/pet-stdjoy.joy (pet_stdjoy)/</tag>
|
||||
<tag><tt/pet-stdjoy.joy (pet_stdjoy_joy)/</tag>
|
||||
Driver for the standard PET userport joystick.
|
||||
|
||||
</descrip><p>
|
||||
@ -228,15 +228,6 @@ the following code:
|
||||
</verb></tscreen>
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -163,7 +163,7 @@ No extended memory drivers are currently available for the Plus/4.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/plus4-stdjoy.joy (plus4_stdjoy)/</tag>
|
||||
<tag><tt/plus4-stdjoy.joy (plus4_stdjoy_joy)/</tag>
|
||||
Supports up to two joysticks connected to the standard joysticks port of
|
||||
the Plus/4.
|
||||
|
||||
@ -172,15 +172,14 @@ No extended memory drivers are currently available for the Plus/4.
|
||||
|
||||
<sect1>Mouse drivers<p>
|
||||
|
||||
Currently no drivers available (in fact, the API for loadable mouse drivers
|
||||
does not exist).
|
||||
No mouse drivers are currently available for the Plus/4.
|
||||
|
||||
|
||||
<sect1>RS232 device drivers<p>
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/plus4-stdser.ser (plus4_stdser)/</tag>
|
||||
<tag><tt/plus4-stdser.ser (plus4_stdser_ser)/</tag>
|
||||
Driver for the 6551 ACIA chip built into the Plus/4. Supports up to 19200
|
||||
baud, hardware flow control (RTS/CTS) and interrupt driven receives. Note
|
||||
that because of the peculiarities of the 6551 chip transmits are not
|
||||
@ -237,15 +236,6 @@ feature in the <htmlurl url="ca65.html" name="assembler manual">.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -382,15 +382,6 @@ Possible attributes for this format are:
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the assembler, if you find any bugs, or if
|
||||
you're doing something interesting with the assembler, I would be glad to
|
||||
hear from you. Feel free to contact me by email
|
||||
(<htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>Copyright<p>
|
||||
|
||||
sp65 (and all cc65 binutils) are (C) Copyright 1998-2012 Ullrich von Bassewitz
|
||||
|
@ -146,15 +146,6 @@ following functions (and a few others):
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
@ -153,10 +153,10 @@ No extended memory drivers are currently available for the VIC20.
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag><tt/vic20-stdjoy.joy (vic20_stdjoy)/</tag>
|
||||
<tag><tt/vic20-stdjoy.joy (vic20_stdjoy_joy)/</tag>
|
||||
Supports one standard joystick connected to the joysticks port of the VIC20.
|
||||
|
||||
<tag><tt/vic20-ptvjoy.joy (vic20_ptvjoy)/</tag>
|
||||
<tag><tt/vic20-ptvjoy.joy (vic20_ptvjoy_joy)/</tag>
|
||||
Driver for the Protovision 4-player adapter contributed by Groepaz. See
|
||||
<htmlurl url="http://www.protovision-online.de/hardw/hardwstart.htm"
|
||||
name="http://www.protovision-online.de/hardw/hardwstart.htm"> for prices and
|
||||
@ -219,7 +219,7 @@ code:
|
||||
|
||||
<tscreen><verb>
|
||||
/* Check for the existence of RAM */
|
||||
if (PEEK(0xA000) == POKE(0xA000, PEEK(0xA000)+1)) {<br>
|
||||
if (PEEK(0xA000) == POKE(0xA000, PEEK(0xA000)+1)) {
|
||||
/* Add it to the heap */
|
||||
_heapadd ((void *) 0xA000, 0x2000);
|
||||
}
|
||||
@ -236,15 +236,6 @@ feature in the <htmlurl url="ca65.html" name="assembler manual">.
|
||||
|
||||
|
||||
|
||||
<sect>Bugs/Feedback<p>
|
||||
|
||||
If you have problems using the library, if you find any bugs, or if you're
|
||||
doing something interesting with it, I would be glad to hear from you. Feel
|
||||
free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
|
||||
name="uz@cc65.org">).
|
||||
|
||||
|
||||
|
||||
<sect>License<p>
|
||||
|
||||
This software is provided 'as-is', without any expressed or implied
|
||||
|
Loading…
Reference in New Issue
Block a user