]> git.sur5r.net Git - cc65/blobdiff - doc/lynx.sgml
Improved cbm_dir routines by Thomas Giesel.
[cc65] / doc / lynx.sgml
index 424c53cafbb37ae4588d2dba500b492d41d4a59f..903e9819f2c7d06c195484c9c0e650c83ccfb7b8 100644 (file)
@@ -125,14 +125,26 @@ 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.
 
-Calling tgi_ioctl(0, spr) will display a standard Lynx sprite on screen.
+Calling tgi_sprite(spr) or tgi_ioctl(0, spr) will display a standard Lynx
+sprite on screen.
 
-Calling tgi_ioctl(1, 0) will do a flip screen. If you decide to flip the
-screen then it may be a good idea to call the install-routine for the
-joystick to get that flipped too.
+Calling tgi_flip() or tgi_ioctl(1, 0) will do a flip screen.
 
-Calling 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_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 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 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 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).
 
 <sect1>Extended memory drivers<p>
 
@@ -147,7 +159,7 @@ the <htmlurl url="co65.html" name="co65 utility"> for information on how to do
 that.
 
 The joystick will check to see if the screen is flipped or not in the install
-routine and adapt itself to the currect state.
+routine and adapt itself to the correct state.
 
 <sect1>Mouse drivers<p>
 
@@ -156,8 +168,54 @@ No mouse drivers are currently available for the Lynx.
 
 <sect1>RS232 device drivers<p>
 
-No serial drivers are currently available for the Lynx.
+<descrip>
 
+  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.
+
+  If the Lynx returns framing error then it is likely that another Lynx is
+  sending data at the same time.
+
+  The Lynx can also send a break and receive a break. The Lynx break is
+  recognized if the bit is down for 24 bit cycles or more.
+
+  To send a break you just set the break bit. The length of the break depends
+  on how long this bit is down.
+
+  The driver supports the baudrates:
+  <itemize>
+  <item>62500
+  <item>31250
+  <item>9600
+  <item>7200
+  <item>4800
+  <item>3600
+  <item>2400
+  <item>1800
+  <item>1200
+  <item>600
+  <item>300
+  <item>150
+  <item>134.5
+  <item>110
+  <item>75
+  </itemize>
+  The parity bit supports MARK and SPACE. It also supports EVEN and ODD parity
+  but the parity bit is included in the calculation. Most of us don't want it
+  this way. But there is nothing we can do about it. Just don't use EVEN or ODD
+  when communicating to other equipment than the Lynx. 
+
+  There is always only one stop bit. And the data length is always 8 bits.
+
+  We have no handshaking available. Even software handshake is impossible
+  as ComLynx has only one wire for the data.
+
+  Both transmit and receive are interrupt driven. The driver reserves a fixed
+  area $200-$2ff for the transmit ring buffer and $300-$3ff for the receive
+  ring buffer. This area can not be used at startup for anything as the Lynx
+  ROM needs this area for decryption purposes.
+</descrip><p>
 
 
 <sect>Limitations<p>