Date: Tue, 4 Feb 2014 21:51:39 +0000 (+0100)
Subject: Updated linuxdoc sources from https://github.com/groessler/cc65/tree/gh-pages-sgml.
X-Git-Tag: V2.15~181
X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=c3d93d259b65c51ed5ac8e6cd58327af908c9501;p=cc65
Updated linuxdoc sources from https://github.com/groessler/cc65/tree/gh-pages-sgml.
---
diff --git a/doc/apple2.sgml b/doc/apple2.sgml
index fb6dda7fe..ecab5c32b 100644
--- a/doc/apple2.sgml
+++ b/doc/apple2.sgml
@@ -87,13 +87,13 @@ on the chosen .
Linker configurations
-The ld65 linker comes with a builtin config file for the Apple ][,
-which is used via builtin config file
+default config file (
Default configuration optimized for a binary program running on ProDOS 8 with
BASIC.SYSTEM. A plain vanilla ProDOS 8 doesn't actually use the Language Card
@@ -317,13 +317,13 @@ The names in the parentheses denote the symbols to be used for static linking of
-
+
This driver features a resolution of 40×48 with 16 colors.
The function
+
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
-
+
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
-
+
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
-
+
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
-
+
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:
Disk File I/O
There's no disk file I/O support. Any attempt to use it yields an error with
,
- and
- have no effect.
+ The Apple ][ has no color text mode. Therefore the functions textcolor(),
+ bgcolor() and bordercolor() have no effect.
has no effect.
+ The Apple ][ has no hardware cursor. Therefore the function cursor() has
+ no effect.
-
-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 ().
-
-
-
License
This software is provided 'as-is', without any expressed or implied
diff --git a/doc/apple2enh.sgml b/doc/apple2enh.sgml
index 667ae9ec7..f20c187fd 100644
--- a/doc/apple2enh.sgml
+++ b/doc/apple2enh.sgml
@@ -87,13 +87,13 @@ on the chosen .
Linker configurations
-The ld65 linker comes with a builtin config file for the enhanced Apple //e,
-which is used via builtin config file
+default config file (
Default configuration optimized for a binary program running on ProDOS 8 with
BASIC.SYSTEM. A plain vanilla ProDOS 8 doesn't actually use the Language Card
@@ -320,13 +320,13 @@ The names in the parentheses denote the symbols to be used for static linking of
-
+
This driver features a resolution of 40×48 with 16 colors.
The function
+
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
-
+
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
-
+
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
-
+
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
-
+
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:
Disk File I/O
There's no disk file I/O support. Any attempt to use it yields an error with
,
- and
- have no effect.
+ textcolor(), bgcolor() and bordercolor() have no effect.
has no effect.
+ cursor() has no effect.
-
-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 ().
-
-
-
License
This software is provided 'as-is', without any expressed or implied
diff --git a/doc/ar65.sgml b/doc/ar65.sgml
index d4e19a5c5..d35bc9987 100644
--- a/doc/ar65.sgml
+++ b/doc/ar65.sgml
@@ -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).
-Bugs/Feedback
-
-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 ().
-
-
-
Copyright
ar65 (and all cc65 binutils) are (C) Copyright 1998-2000 Ullrich von
diff --git a/doc/atari.sgml b/doc/atari.sgml
index 9fe75ec2a..8ec359654 100644
--- a/doc/atari.sgml
+++ b/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: , it is
+recommended to use the . Even functions marked as "platform dependent" may be available on
@@ -35,35 +45,54 @@ information.
Binary format
-The standard binary output format generated by the linker for the
+The Atari DOS executable file format supports more than one load block (. 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 ).
-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.
Memory layout
-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
+
+
+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:
@@ -86,6 +115,135 @@ Special locations:
+
+
+The startup code rearranges the memory as follows:
+
+
+Sceen memory and display list are moved below the program start address.
+The ROM is disabled, making the memory in the areas [$C000-$CFFF]
+and [$D800-$FFF9] available.
+Character generator data is copied from ROM to the CHARGEN location specified in the
+linker config file. This is (in the default ). With the character generator at $E000, there are two upper memory
+areas available, [$D800-$DFFF] and [$E400-$FFF9].
+
+
+With the default load address of $2400 this gives a usable memory range of
+[$2400-$CFFF]. Note that the default load address for .
+
+
+Special locations:
+
+
+
+
+Linker configurations
+
+The ld65 linker comes with default config files for the Atari. There
+are two targets for the Atari,
+
+default config file (
+
+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
+ load chunk. It can
+optionally be left out, see .
+
+
+
+This config file aims to give the assembler programmer maximum
+flexibility. All program segments (
+
+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 "
+
+default config file (
+
+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
+ load chunk. It can
+optionally be left out, see .
+
+
+
+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 load chunk. It can
+optionally be left out, see .
Platform specific header files
@@ -157,48 +315,43 @@ The names in the parentheses denote the symbols to be used for static linking of
Graphics drivers
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 .
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.
Extended memory drivers
-
-
-
-
-
+Currently there is only one extended memory driver. It manages the second 64K of a 130XE.
+
+
+
+
+
Joystick drivers
-
+Currently there are two joystick drivers available:
-
- Supports up to four standard joysticks connected to the joystick ports of
- the Atari.
+
+
+
+
+
+
-
- Supports up to eight standard joysticks connected to a MultiJoy adapter.
-
+Mouse drivers
+Currently there are five mouse drivers available:
-Mouse drivers
+
+
+
+
+
+
-Currently no drivers available (in fact, the API for loadable mouse drivers
-does not exist). There is a static driver you can use.
+All mouse devices connect to joystick port #0.
RS232 device drivers
-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.
+
+
+
+
+
+
Limitations
+
+
+
+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.
+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.
+The It is not compatible with DOSes or other programs using the memory below the ROM.
+DIO implementation