]> git.sur5r.net Git - cc65/blobdiff - doc/lynx.sgml
Added space after function name.
[cc65] / doc / lynx.sgml
index 554d911d94f5f0dcefc001b1f980e122ee41991a..0eef70535793d9861fe35aded81770f248d5de48 100644 (file)
@@ -1,11 +1,10 @@
 <!doctype linuxdoc system>
 
 <article>
-
 <title>Atari Lynx specific information for cc65
-<author>Karri Kaksonen, <htmlurl url="mailto:karri@sipo.fi" name="karri@sipo.fi">
-Ullrich von Bassewitz, <htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">
-<date>2011-04-01
+<author>
+<url url="mailto:karri@sipo.fi" name="Karri Kaksonen">,<newline>
+<url url="mailto:uz@cc65.org" name="Ullrich von Bassewitz">
 
 <abstract>
 An overview over the Atari Lynx runtime system as it is implemented for the
@@ -24,7 +23,7 @@ with the cc65 C compiler. It describes the memory layout, Lynx specific header
 files, available drivers, and any pitfalls specific to that platform.
 
 Please note that Lynx specific functions are just mentioned here, they are
-described in detail in the separate <htmlurl url="funcref.html" name="function
+described in detail in the separate <url url="funcref.html" name="function
 reference">. Even functions marked as "platform dependent" may be available on
 more than one platform. Please see the function reference for more
 information.
@@ -38,10 +37,9 @@ Here is a small traditional Hello World program for the Atari Lynx.
 #include <lynx.h>
 #include <tgi.h>
 #include <6502.h> 
-extern char lynxtgi[];
 
 void main(void) {
-  tgi_install(&amp;lynxtgi);
+  tgi_install(tgi_static_stddrv);
   tgi_init();
   CLI();
   while (tgi_busy())
@@ -70,36 +68,10 @@ in your own program you need to load it at run time.
 
 Unfortunately the Lynx does not have a disk drive from where to load it.
 Therefore you must already load it at compile time. The easiest way is to
-link it in statically.
-
-This relocatable driver is found in <tt>$(CC65_HOME)/tgi/lynx-160-102-16.tgi</tt>.
-Copy it from here.
-
-The name comes from 160 by 102 pixels (The Lynx LCD size), 16 colors.
-
-In order to link in this statically we have to make it back to a source
-file so that we can compile it. The next command will turn the compiled
-driver object file into an assembler source and compile it with the ca65
-assembler.
+automatically link it in statically from the Lynx C library.
 
 <tscreen><verb>
-co65 --code-label _lynxtgi lynx-160-102-16.tgi
-ca65 -t lynx lynx-160-102-16.s
-</verb></tscreen>
-
-This will create a linkable object file called lynx-160-102-16.o
-
-Then we need to compile our main file to a linkable object file. 
-
-<tscreen><verb>
-cc65 -t lynx main.c
-ca65 -t lynx main.s
-</verb></tscreen>
-
-Finally we have to link them together to produce an executable cart.
-
-<tscreen><verb>
-cl65 -t lynx -o game.lnx main.o lynx-160-102-16.o lynx.lib
+cl65 -t lynx -o game.lnx main.c
 </verb></tscreen>
 
 This will create a bootable cart image called game.lnx
@@ -214,46 +186,52 @@ structures, accessing the struct fields will access the chip registers.
 
 <sect>Loadable drivers<p>
 
+The names in the parentheses denote the symbols to be used for static linking of the drivers.
+
+
 <sect1>Graphics drivers<p>
 
-A TGI driver for the standard graphics mode (160&times;102 in 16 colors) is
-available, but must be statically linked, because no file I/O is available.
-See the documentation for the <htmlurl url="co65.html" name="co65 utility">
-for information on how to do that.
+<descrip>
+
+  <tag><tt/lynx-160-102-16.tgi (lynx_160_102_16_tgi)/</tag>
+  A TGI driver for the standard graphics mode (160&times;102 in 16 colors).
+
+  The TGI driver is implemented as an interrupt driven dual buffering device.
+  To use it as a single-buffer device set draw page and view page to the same
+  value 0 or 1;
+
+  The TGI driver has a few Lynx-specific extensions.
 
-The TGI driver is implemented as an interrupt driven dual buffering device.
-To use it as a single-buffer device set draw page and view page to the same
-value 0 or 1;
+  Calling tgi_sprite(spr) or tgi_ioctl(0, spr) will display a standard Lynx
+  sprite on screen.
 
-The TGI driver has a few Lynx-specific extensions.
+  Calling tgi_flip() or tgi_ioctl(1, 0) will do a flip screen.
 
-Calling tgi_sprite(spr) or tgi_ioctl(0, spr) will display a standard Lynx
-sprite on screen.
+  Calling tgi_setbgcolor(bgcolor) or tgi_ioctl(2, bgindex) will set the text
+  background color to the index defined by bgindex. If bgindex is 0 then the
+  background color is transparent.
 
-Calling tgi_flip() or tgi_ioctl(1, 0) will do a flip screen.
+  To set the framerate of the display hardware call tgi_setframerate(rate) or
+  tgi_ioctl(3, rate). The supported framerates are 50, 60 and 75 frames per
+  second. Actually there is no real reason to use anything else than 75 frames
+  per second.
 
-Calling tgi_setbgcolor(bgcolor) or tgi_ioctl(2, bgindex) will set the text
-background color to the index defined by bgindex. If bgindex is 0 then the
-background color is transparent.
+  To check if the drawing engine is busy with the previous swap you can
+  call tgi_busy or tgi_ioctl(4, 0). It returns 0 if idle and 1 if busy
 
-To set the framerate of the display hardware call tgi_setframerate(rate) or
-tgi_ioctl(3, rate). The supported framerates are 50, 60 and 75 frames per
-second. Actually there is no real reason to use anything else than 75 frames
-per second.
+  To update displays you can call tgi_updatedisplay() or tgi_ioctl(4, 1) it
+  will wait for the next VBL interrupt and set the draw buffer to the
+  view buffer. The draw buffer is also changed to (drawbuffer xor 1).
 
-To check if the drawing engine is busy with the previous swap you can
-call tgi_busy or tgi_ioctl(4, 0). It returns 0 if idle and 1 if busy
+  You can also enable or disable collision detection by a call to
+  tgi_setcollisiondetection(active) or tgi_ioctl(5, active). The collision
+  result is located before the sprite structure by default in this driver.
 
-To update displays you can call tgi_updatedisplay() or tgi_ioctl(4, 1) it
-will wait for the next VBL interrupt and set the draw buffer to the
-view buffer. The draw buffer is also changed to (drawbuffer xor 1).
+  In order to reserve memory for the collision detection buffer you need to
+  specify lynx-coll.cfg as the configuration file to the linker.
 
-You can also enable or disable collision detection by a call to
-tgi_setcollisiondetection(active) or tgi_ioctl(5, active). The collision
-result is located before the sprite structure by default in this driver.
+</descrip><p>
 
-In order to reserve memory for the collision detection buffer you need to
-specify lynx-coll.cfg as the configuration file to the linker.
 
 <sect1>Extended memory drivers<p>
 
@@ -262,10 +240,13 @@ No extended memory drivers are currently available for the Lynx.
 
 <sect1>Joystick drivers<p>
 
-A joystick driver for the standard buttons is available, but must be
-statically linked, because no file I/O is available. See the documentation for
-the <htmlurl url="co65.html" name="co65 utility"> for information on how to do
-that.
+<descrip>
+
+  <tag><tt/lynx-stdjoy.joy (lynx_stdjoy_joy)/</tag>
+  A joystick driver for the standard buttons.
+
+</descrip><p>
+
 
 <sect1>Mouse drivers<p>
 
@@ -276,6 +257,9 @@ No mouse drivers are currently available for the Lynx.
 
 <descrip>
 
+  <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
   to all connected Lynxes. Only one Lynx can send at a time. There is no
   protocol created for communication. You are on your own.
@@ -342,15 +326,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
@@ -362,14 +337,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>