Merge branch 'master' into master

This commit is contained in:
jedeoric
2019-01-25 10:15:21 +01:00
committed by GitHub
185 changed files with 2366 additions and 1226 deletions

View File

@@ -46,7 +46,7 @@ clean:
$(RM) -r ../html ../info
install:
$(if $(PREFIX),,$(error variable `PREFIX' must be set))
$(if $(PREFIX),,$(error variable "PREFIX" must be set))
ifeq ($(wildcard ../html),../html)
$(INSTALL) -d $(DESTDIR)$(htmldir)
$(INSTALL) -m0644 ../html/*.* $(DESTDIR)$(htmldir)

View File

@@ -469,25 +469,47 @@ BASIC.SYSTEM) there are some limitations for DOS 3.3:
<sect1>Direct console I/O<p>
<descrip>
<tag/Color/
The Apple&nbsp;&rsqb;&lsqb; has no color text mode. Therefore the functions textcolor(),
bgcolor() and bordercolor() have no effect.
</descrip><p>
The Apple&nbsp;&rsqb;&lsqb; has no color text mode. Therefore the functions
<tt/textcolor()/, <tt/bgcolor()/ and <tt/bordercolor()/ have no effect.
<sect1>Random number generator<p>
<descrip>
The random number seed is generated from the time the program waits for user input.
Therefore it is necessary to wait for at least one user keypress either via Standard
I/O or via Direct console I/O before initializing the pseudo random number generator.
<tag/Random number seed/
The random number seed is generated from the time the program waits for user input.
Therefore it is necessary to wait for at least one user keypress either via Standard
I/O or via Direct console I/O before initializing the pseudo random number generator.
</descrip><p>
<sect1>Realtime clock<p>
There are several types of realtime clocks. It's not desirable to have specific code
for all of them. As ProDOS 8 supports file timestamps, realtime clock owners usually
use ProDOS 8 drivers for their realtime clock. Those drivers read the realtime clock
and write the result to the date/time location in RAM (&dollar;BF90 to &dollar;BF93).
ProDOS 8 reads the date/time from that RAM location. If there's no realtime clock the
RAM location keeps containing zeros. ProDOS 8 uses those zeros as timestamps and the
files show up in a directory as <tt/&lt;NO DATE&gt;/.
There's no common interface to set realtime clocks so if a realtme clock <bf/IS/
present there's just nothing to do. However, if there's <bf/NO/ realtime clock present,
the user might very well be interested to "manually" set the RAM location in order to
have timestamps. But he surely doesn't want to manually set the RAM location over and
over again. Rather he wants to set it just once after booting ProDOS 8.
From that perspective it makes most sense to not set both the date and the time but
rather only set the date and have the time just stay zero. Then files show up in a
directory as <tt/DD-MON-YY 0:00/.
So <tt/clock_settime()/ checks if the current time equals 0:00. If it does <bf/NOT/
then a realtime clock is supposed to be active and <tt/clock_settime()/ fails with
<tt/ERANGE/. Otherwise <tt/clock_settime()/ sets the date - and completely ignores
the time provided as parameter.
<tt/clock_getres()/ too checks if the current time equals 0:00. If it does <bf/NOT/
then a realtime clock is supposed to be active and <tt/clock_getres()/ returns a time
resolution of one minute. Otherwise <tt/clock_getres()/ presumes that the only one
who sets the RAM location is <tt/clock_settime()/ and therefore returns a time
resolution of one day.

View File

@@ -470,25 +470,47 @@ BASIC.SYSTEM) there are some limitations for DOS 3.3:
<sect1>Direct console I/O<p>
<descrip>
<tag/Color/
The enhanced&nbsp;Apple&nbsp;//e has no color text mode. Therefore the functions
textcolor(), bgcolor() and bordercolor() have no effect.
</descrip><p>
The enhanced&nbsp;Apple&nbsp;//e has no color text mode. Therefore the functions
<tt/textcolor()/, <tt/bgcolor()/ and <tt/bordercolor()/ have no effect.
<sect1>Random number generator<p>
<descrip>
The random number seed is generated from the time the program waits for user input.
Therefore it is necessary to wait for at least one user keypress either via Standard
I/O or via Direct console I/O before initializing the pseudo random number generator.
<tag/Random number seed/
The random number seed is generated from the time the program waits for user input.
Therefore it is necessary to wait for at least one user keypress either via Standard
I/O or via Direct console I/O before initializing the pseudo random number generator.
</descrip><p>
<sect1>Realtime clock<p>
There are several types of realtime clocks. It's not desirable to have specific code
for all of them. As ProDOS 8 supports file timestamps, realtime clock owners usually
use ProDOS 8 drivers for their realtime clock. Those drivers read the realtime clock
and write the result to the date/time location in RAM (&dollar;BF90 to &dollar;BF93).
ProDOS 8 reads the date/time from that RAM location. If there's no realtime clock the
RAM location keeps containing zeros. ProDOS 8 uses those zeros as timestamps and the
files show up in a directory as <tt/&lt;NO DATE&gt;/.
There's no common interface to set realtime clocks so if a realtme clock <bf/IS/
present there's just nothing to do. However, if there's <bf/NO/ realtime clock present,
the user might very well be interested to "manually" set the RAM location in order to
have timestamps. But he surely doesn't want to manually set the RAM location over and
over again. Rather he wants to set it just once after booting ProDOS 8.
From that perspective it makes most sense to not set both the date and the time but
rather only set the date and have the time just stay zero. Then files show up in a
directory as <tt/DD-MON-YY 0:00/.
So <tt/clock_settime()/ checks if the current time equals 0:00. If it does <bf/NOT/
then a realtime clock is supposed to be active and <tt/clock_settime()/ fails with
<tt/ERANGE/. Otherwise <tt/clock_settime()/ sets the date - and completely ignores
the time provided as parameter.
<tt/clock_getres()/ too checks if the current time equals 0:00. If it does <bf/NOT/
then a realtime clock is supposed to be active and <tt/clock_getres()/ returns a time
resolution of one minute. Otherwise <tt/clock_getres()/ presumes that the only one
who sets the RAM location is <tt/clock_settime()/ and therefore returns a time
resolution of one day.

View File

@@ -40,7 +40,7 @@ The archiver is called as follows:
V Print the archiver version
</verb></tscreen>
You may add modules to a library using the `r' command (`a' is deprecated). If the library
You may add modules to a library using the <tt/'r'/ command ('a' is deprecated). If the library
does not exist, it is created (and a warning message is printed which you
may ignore if creation of the library was your intention). You may
specify any number of modules on the command line following the library.
@@ -55,7 +55,7 @@ Here's an example:
ar65 r mysubs.lib sub1.o sub2.o
</verb></tscreen>
This will add two modules to the library `mysubs.lib' creating the
This will add two modules to the library 'mysubs.lib' creating the
library if necessary. If the library contains modules named sub1.o or
sub2.o, they are replaced by the new ones.
@@ -65,9 +65,9 @@ Modules names in the library are stored without the path, so, using
ar65 v v r mysubs.lib ofiles/sub1.o ofiles/sub2.o
</verb></tscreen>
will verbose add two modules named `sub1.o' and `sub2.o' to the library.
will verbose add two modules named 'sub1.o' and 'sub2.o' to the library.
Deleting modules from a library is done with the `d' command. You may not
Deleting modules from a library is done with the <tt/'d'/ command. You may not
give a path when naming the modules.
Example:
@@ -76,11 +76,11 @@ Example:
ar65 d mysubs.lib sub1.o
</verb></tscreen>
This will delete the module named `sub1.o' from the library, printing an
This will delete the module named 'sub1.o' from the library, printing an
error if the library does not contain that module.
The `t' command prints a table of all modules in the library (`l' is deprecated).
The <tt/'t'/ command prints a table of all modules in the library ('l' is deprecated).
Any module names on the command line are ignored.
Example:
@@ -90,7 +90,7 @@ Example:
</verb></tscreen>
Using the `x' command, you may extract modules from the library. The
Using the <tt/'x'/ command, you may extract modules from the library. The
modules named on the command line are extracted from the library and put
into the current directory.
@@ -107,7 +107,7 @@ Example for extracting a module from the library:
</verb></tscreen>
The `V' command prints the version number of the assembler. If you send
The <tt/'V'/ command prints the version number of the assembler. If you send
any suggestions or bugfixes, please include your version number.
In addition to these operations, the archiver will check for, and warn

View File

@@ -29,7 +29,7 @@ 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 &dollar;D000 - &dollar;D7FF. Since the
<tt/atarixl/ runtime has some <ref name="limitations" id="limitations">, it is
<tt/atarixl/ runtime has some <ref name="limitations" id="xllimitations">, it is
recommended to use the <tt/atari/ target unless lack of memory dictates the
use of the <tt/atarixl/ target.
@@ -329,20 +329,20 @@ unsigned char ScreenMemory[100];
void DisplayList =
{
DL_BLK8,
DL_BLK8,
DL_BLK8,
DL_LMS(DL_CHR20x8x2),
ScreenMemory,
DL_CHR20x8x2,
DL_CHR20x8x2,
DL_CHR20x8x2,
DL_BLK4,
DL_CHR20x8x2,
DL_JVB
DL_BLK8,
DL_BLK8,
DL_BLK8,
DL_LMS(DL_CHR20x8x2),
ScreenMemory,
DL_CHR20x8x2,
DL_CHR20x8x2,
DL_CHR20x8x2,
DL_BLK4,
DL_CHR20x8x2,
DL_JVB
};
...
POKEW(560,(unsigned int)&amp;DisplayList); // SDLSTL
POKEW(560,(unsigned int)&amp;DisplayList); // SDLSTL
...
</verb>
@@ -411,6 +411,29 @@ char* pcAtasciiMappingString = "Hello Atari!";
does not.
<sect1>Keyboard codes<p>
For direct keyboard scanning in conjunction with e.g. the OS location "CH" (764/$2FC),
all keyboard codes are available as defined values on C and assembler side.
Example:
<verb>
...
while (!kbhit());
switch (PEEK(764))
{
case KEY_RETURN:
...
case KEY_SPACE:
...
case KEY_1:
...
}
...
</verb>
You can find the C defines in the file "<tt/atari.h/" or "<tt/atari.inc/" for the assembler variant.
<sect>Loadable drivers<p>
@@ -611,7 +634,18 @@ interface module.
<sect>Limitations<p>
<sect1><tt/atarixl/<#if output="info|latex2e"> limitations</#if><label id="limitations"<p>
<sect1><tt/Realtime clock/<label id="realtimeclock"<p>
Access to the realtime clock is supported only when running on SpartaDOS-X.
There needs to be a realtime clock driver installed. This is normally the case
in the default installation (CONFIG.SYS) of SpartaDOS-X.
A missing realtime clock driver in SpartaDOS-X is not supported, and the program
may crash when calling the <tt/clock_settime()/ or <tt/clock_gettime()/
functions.
The resolution of the realtime clock driver is 1 second.
<sect1><tt/atarixl target/<#if output="info|latex2e"> limitations</#if><label id="xllimitations"<p>
<itemize>
<item>The display is cleared at program start and at program termination. This is a side
@@ -932,16 +966,16 @@ chunk #2 (RAM memory area).
The contents of the new NEXEHDR and CHKHDR segments come from this
file (split.s):
<tscreen><verb>
.import __CODE_LOAD__, __BSS_LOAD__, __CODE_SIZE__
.import __DATA_LOAD__, __RODATA_LOAD__, __STARTUP_LOAD__
.import __CODE_LOAD__, __BSS_LOAD__, __CODE_SIZE__
.import __DATA_LOAD__, __RODATA_LOAD__, __STARTUP_LOAD__
.segment "NEXEHDR"
.word __STARTUP_LOAD__
.word __CODE_LOAD__ + __CODE_SIZE__ - 1
.segment "NEXEHDR"
.word __STARTUP_LOAD__
.word __CODE_LOAD__ + __CODE_SIZE__ - 1
.segment "CHKHDR"
.word __RODATA_LOAD__
.word __BSS_LOAD__ - 1
.segment "CHKHDR"
.word __RODATA_LOAD__
.word __BSS_LOAD__ - 1
</verb></tscreen>
<p>
Compile with
@@ -1008,16 +1042,16 @@ FEATURES {
New contents for NEXEHDR and CHKHDR are needed (split2.s):
<tscreen><verb>
.import __STARTUP_LOAD__, __BSS_LOAD__, __DATA_SIZE__
.import __DATA_LOAD__, __RODATA_LOAD__
.import __STARTUP_LOAD__, __BSS_LOAD__, __DATA_SIZE__
.import __DATA_LOAD__, __RODATA_LOAD__
.segment "NEXEHDR"
.word __RODATA_LOAD__
.word __DATA_LOAD__ + __DATA_SIZE__ - 1
.segment "NEXEHDR"
.word __RODATA_LOAD__
.word __DATA_LOAD__ + __DATA_SIZE__ - 1
.segment "CHKHDR"
.word __STARTUP_LOAD__
.word __BSS_LOAD__ - 1
.segment "CHKHDR"
.word __STARTUP_LOAD__
.word __BSS_LOAD__ - 1
</verb></tscreen>
Compile with
@@ -1048,7 +1082,7 @@ 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'
ld65: Error: Missing memory area assignment for segment 'MAINHDR'
</verb></tscreen>
The old "HEADER" memory description contained six bytes: &dollar;FFFF
@@ -1096,14 +1130,14 @@ including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
<enum>
<item> The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
<item> Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
<item> This notice may not be removed or altered from any source
distribution.
<item> The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
<item> Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
<item> This notice may not be removed or altered from any source
distribution.
</enum>
</article>

View File

@@ -339,6 +339,13 @@ The default drivers, <tt/mouse_stddrv (mouse_static_stddrv)/, point to <tt/c128-
<sect>Limitations<p>
<sect1>Realtime clock<p>
The realtime clock functions use the CIA1 TOD clock. As that clock only stores
the time but not the date, the date set by <tt/clock_settime()/ is simply stored
inside the C library for retrieval in the same program via <tt/clock_gettime()/.
<sect>Other hints<p>

View File

@@ -418,6 +418,13 @@ The default drivers, <tt/mouse_stddrv (mouse_static_stddrv)/, point to <tt/c64-1
<sect>Limitations<p>
<sect1>Realtime clock<p>
The realtime clock functions use the CIA1 TOD clock. As that clock only stores
the time but not the date, the date set by <tt/clock_settime()/ is simply stored
inside the C library for retrieval in the same program via <tt/clock_gettime()/.
<sect>Other hints<p>

View File

@@ -2730,7 +2730,7 @@ Here's a list of all control commands and a description, what they do:
<tag><tt>at_in_identifiers</tt><label id="at_in_identifiers"></tag>
Accept the at character (`@') as a valid character in identifiers. The
Accept the at character ('@') as a valid character in identifiers. The
at character is not allowed to start an identifier, even with this
feature enabled.
@@ -2765,13 +2765,13 @@ Here's a list of all control commands and a description, what they do:
<tag><tt>dollar_in_identifiers</tt><label id="dollar_in_identifiers"></tag>
Accept the dollar sign (`&dollar;') as a valid character in identifiers. The
Accept the dollar sign ('&dollar;') as a valid character in identifiers. The
dollar character is not allowed to start an identifier, even with this
feature enabled.
<tag><tt>dollar_is_pc</tt><label id="dollar_is_pc"></tag>
The dollar sign may be used as an alias for the star (`*'), which
The dollar sign may be used as an alias for the star ('*'), which
gives the value of the current PC in expressions.
Note: Assignment to the pseudo variable is not allowed.
@@ -2789,7 +2789,7 @@ Here's a list of all control commands and a description, what they do:
<tag><tt>leading_dot_in_identifiers</tt><label id="leading_dot_in_identifiers"></tag>
Accept the dot (`.') as the first character of an identifier. This may be
Accept the dot ('.') as the first character of an identifier. This may be
used for example to create macro names that start with a dot emulating
control directives of other assemblers. Note however, that none of the
reserved keywords built into the assembler, that starts with a dot, may be
@@ -2825,12 +2825,30 @@ Here's a list of all control commands and a description, what they do:
<tag><tt>pc_assignment</tt><label id="pc_assignment"></tag>
Allow assignments to the PC symbol (`*' or `&dollar;' if <tt/dollar_is_pc/
Allow assignments to the PC symbol ('*' or '&dollar;' if <tt/dollar_is_pc/
is enabled). Such an assignment is handled identical to the <tt><ref
id=".ORG" name=".ORG"></tt> command (which is usually not needed, so just
removing the lines with the assignments may also be an option when porting
code written for older assemblers).
<tag><tt>string_escapes</tt><label id="string_escapes"></tag>
Allow C-style backslash escapes within string constants to embed
special characters. The following escapes are accepted:
<itemize>
<item><tt>\\</tt> backslash (<tt>$5C</tt>)
<item><tt>\'</tt> single quote (<tt>$27</tt>)
<item><tt>\&quot;</tt> double quote (<tt>$22</tt>)
<item><tt>\t</tt> tab (<tt>$09</tt>)
<item><tt>\r</tt> carriage return (<tt>$0D</tt>)
<item><tt>\n</tt> newline (<tt>$0A</tt>)
<item><tt>\xNN</tt> (<tt>$NN</tt>)
</itemize>
Note that <tt>\n</tt> maps to ASCII <tt>$0A</tt>, not a platform specific
line ending character.
<tag><tt>ubiquitous_idents</tt><label id="ubiquitous_idents"></tag>
Allow the use of instructions names as names for macros and symbols. This
@@ -3799,7 +3817,7 @@ Here's a list of all control commands and a description, what they do:
page and direct (short) addressing is possible for data in this segment.
Beware: Only labels in a segment with the zeropage attribute are marked
as reachable by short addressing. The `*' (PC counter) operator will
as reachable by short addressing. The '*' (PC counter) operator will
work as in other segments and will create absolute variable values.
Please note that a segment cannot have two different address sizes. A

View File

@@ -242,6 +242,13 @@ The default drivers, <tt/mouse_stddrv (mouse_static_stddrv)/, point to <tt/cbm51
<sect>Limitations<label id="limitations"><p>
<sect1>Realtime clock<p>
The realtime clock functions use the CIA1 TOD clock. As that clock only stores
the time but not the date, the date set by <tt/clock_settime()/ is simply stored
inside the C library for retrieval in the same program via <tt/clock_gettime()/.
<sect1>Kernal and hardware access<p>
Since the program runs in bank 0, and the kernal and all I/O chips are located

View File

@@ -224,6 +224,13 @@ No mouse drivers are currently available for the Commodore 610.
<sect>Limitations<label id="limitations"><p>
<sect1>Realtime clock<p>
The realtime clock functions use the CIA1 TOD clock. As that clock only stores
the time but not the date, the date set by <tt/clock_settime()/ is simply stored
inside the C library for retrieval in the same program via <tt/clock_gettime()/.
<sect1>Kernal and hardware access<p>
Since the program runs in bank 1, and the kernal and all I/O chips are located

View File

@@ -44,7 +44,7 @@ Short options:
-o name Name the output file
-r Enable register variables
-t sys Set the target system
-u sym Force an import of symbol `sym'
-u sym Force an import of symbol 'sym'
-v Verbose mode
-vm Verbose map file
-C name Use linker config file
@@ -90,7 +90,7 @@ Long options:
--debug Debug mode
--debug-info Add debug info
--feature name Set an emulation feature
--force-import sym Force an import of symbol `sym'
--force-import sym Force an import of symbol 'sym'
--help Help (this text)
--include-dir dir Set a compiler include directory path
--ld-args options Pass options to the linker

View File

@@ -2587,7 +2587,7 @@ changing values. (See the description of <tt/cbm_k_udtim()/.)
of the realtime clock. <tt/clock_id/ has to be <tt/CLOCK_REALTIME/. If <tt/res/
is not <tt/NULL/, the resolution of the realtime clock is stored in the location
pointed to by <tt/res/. If <tt/res/ is <tt/NULL/, the clock resolution is not returned.
If the <tt/time/ argument of <tt/<ref id="clock_settime" name="clock_settime">/ is not
If the <tt/tp/ argument of <tt/<ref id="clock_settime" name="clock_settime">/ is not
a multiple of <tt/res/, then the value is truncated to a multiple of <tt/res/. On
success, zero is returned. On error, -1 is returned and <tt/errno/ is set to an
error code describing the reason for the failure.
@@ -2626,7 +2626,7 @@ retrieved value may not be valid. See also the platform-specific information.
<tag/Availability/POSIX 1003.1
<tag/See also/
<ref id="clock_getres" name="clock_getres">,
<ref id="clock_settime" name="clock_settime">
<ref id="clock_settime" name="clock_settime">,
<ref id="time" name="time">
<tag/Example/None.
</descrip>
@@ -2637,7 +2637,7 @@ retrieved value may not be valid. See also the platform-specific information.
<quote>
<descrip>
<tag/Function/Get the time from the realtime clock.
<tag/Function/Set the time on the realtime clock.
<tag/Header/<tt/<ref id="time.h" name="time.h">/
<tag/Declaration/<tt/int __fastcall__ clock_settime (clockid_t clock_id, const struct timespec *tp);/
<tag/Description/The <tt/clock_settime/ function sets the time since the 1970-01-01 00:00:00
@@ -3386,7 +3386,7 @@ used in presence of a prototype.
<descrip>
<tag/Function/Load and initialize an extended memory driver.
<tag/Header/<tt/<ref id="em.h" name="em.h">/
<tag/Declaration/<tt/void __fastcall__ em_load_driver (const char* name);/
<tag/Declaration/<tt/unsigned char __fastcall__ em_load_driver (const char* name);/
<tag/Description/Load an extended memory driver into memory and initialize
it. The function returns an error code that tells if all this has been
successful.

View File

@@ -49,16 +49,6 @@ Programs containing Gamate specific code may use the <tt/gamate.h/ header file.
</itemize>
<sect1>Hardware access<p>
The following pseudo variables declared in the <tt/gamate.inc/ include file do
allow access to hardware located in the address space.
<descrip>
</descrip><p>
<sect>Loadable drivers<p>
@@ -159,6 +149,3 @@ freely, subject to the following restrictions:
</enum>
</article>

View File

@@ -48,7 +48,7 @@ changed between <tt/tgi_init/ and <tt/tgi_done/.
It is safe to use these standard includes and their contents:
<tt/assert.h, conio.h, dio.h, errno.h, em.h, geos.h, joystick.h, modload.h, mouse.h, stdlib.h, string.h, tgi.h, time.h/
<p>
For <tt/time.h/ functions <tt/systime()/ and <tt/clock()/ note that the resolution is one second.
For <tt/time.h/ functions <tt/clock()/ and <tt/clock_gettime()/ note that the resolution is one second.
<p>
Functions from the headers above are either standard C library functions or cc65-specific, in
either case they are not GEOS specific and so they are not described here.
@@ -188,6 +188,14 @@ are covered by new names, but I tried to keep them in the naming convention.
<p>
This section covers the drawing package of GEOS along with text output routines.
<sect2>SetNewMode
<p>
<tt/void SetNewMode (void)/
<p>
This function is intended for use by GEOS 128 only, and will exhibit undefined behavior on the
C64. It will toggle between the 40 column screen mode and the 80 column screen mode. Many C128 GEOS
programs implement a "Switch 40/80" submenu option under the <tt/geos/ menu.
<sect2>SetPattern
<p>
<tt/void SetPattern (char pattern)/
@@ -1553,7 +1561,7 @@ char text = "foo";
DB_VARSTR (TXT_LN_X, TXT_LN_1_Y, &amp;r15),
...
</verb></tscreen>
will cause the word ``foo'' to appear in the window, but you may store the pointer to any text in
will cause the word ''foo'' to appear in the window, but you may store the pointer to any text in
<tt/r15/ (in this case) before the call to DoDlgBox.
<p>
<tt/DB_GETSTR(x, y, ptr, length)/ - will add a input-from-keyboard feature. <tt/ptr/ works as in the

View File

@@ -66,7 +66,7 @@ Short options:
-m name Create a map file
-o name Name the default output file
-t sys Set the target system
-u sym Force an import of symbol `sym'
-u sym Force an import of symbol 'sym'
-v Verbose mode
-vm Verbose map file
@@ -76,7 +76,7 @@ Long options:
--dbgfile name Generate debug information
--define sym=val Define a symbol
--end-group End a library group
--force-import sym Force an import of symbol `sym'
--force-import sym Force an import of symbol 'sym'
--help Help (this text)
--lib file Link this library
--lib-path path Specify a library search path
@@ -487,7 +487,7 @@ There are of course more attributes for a memory section than just start and
size. Start and size are mandatory attributes, that means, each memory area
defined <em/must/ have these attributes given (the linker will check that). I
will cover other attributes later. As you may have noticed, I've used a
comment in the example above. Comments start with a hash mark (`#'), the
comment in the example above. Comments start with a hash mark ('#'), the
remainder of the line is ignored if this character is found.
@@ -572,7 +572,7 @@ default behaviour is OK for our purposes, I did not use the attribute in the
example above. Let's have a look at it now.
The "file" attribute (the keyword may also be written as "FILE" if you like
that better) takes a string enclosed in double quotes (`&dquot;') that specifies the
that better) takes a string enclosed in double quotes ('&dquot;') that specifies the
file, where the data is written. You may specify the same file several times,
in that case the data for all memory areas having this file name is written
into this file, in the order of the memory areas defined in the <tt/MEMORY/

View File

@@ -89,7 +89,7 @@ Example output for the command
sim65 --verbose --verbose samples/gunzip65
</verb></tscreen>
<tscreen><verb>
Loaded `samples/gunzip65' at $0200-$151F
Loaded 'samples/gunzip65' at $0200-$151F
PVWrite ($0001, $13C9, $000F)
GZIP file name:PVWrite ($0001, $151F, $0001)

View File

@@ -192,6 +192,7 @@ port cardridge.
<sect1>Joystick drivers<p>
<descrip>
Telemon 2.4 & 3.0 manages joysticks but it had been handled yet. This means that
@@ -200,26 +201,24 @@ joysticks driver could be written easily.
Telemon 2.4 returns in keyboard buffer the direction of the joysticks. This means that
if you get input from keyboard by conio cgetc function, you will get direction from joysticks.
</descrip>
<sect1>Mouse drivers<p>
<descrip>
Telestrat manages also mouse, but it had been no handled yet in this version.
Telestrat mouse is really difficult to find.
</descrip>
<sect1>RS232 device drivers<p>
<descrip>
Telestrat has a RS232 port, but it's not usable in cc65. It is possible to use
RS232 port with Telemon calls (see XSOUT primitive for example)
</descrip>
<sect>Limitations<label id="limitations"><p>