X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=doc%2Flynx.sgml;h=856b909ec4f49daadf779b31dfd433dfdcf57c89;hb=8806c31e4a00785be628ea8cde35fa4c94cc2ab6;hp=424c53cafbb37ae4588d2dba500b492d41d4a59f;hpb=49d1b8f553c2e211fa04a2c391fa92252179a4a1;p=cc65 diff --git a/doc/lynx.sgml b/doc/lynx.sgml index 424c53caf..856b909ec 100644 --- a/doc/lynx.sgml +++ b/doc/lynx.sgml @@ -46,8 +46,7 @@ that shows how to create a complete bootable Lynx cart. Memory layout

cc65 generated programs with the default setup run with the I/O area and the -kernal enabled, which gives a usable memory range of $400 - $BE3F. -All boot ROM entry points may be called directly without additional code. +kernal enabled, which gives a usable memory range of $400 - $C037. Special locations: @@ -63,12 +62,17 @@ Special locations: '?' for all keys down at the same time.

@@ -81,7 +85,6 @@ Programs containing Lynx specific code may use the Lynx specific functions

-lynx_change_framerate lynx_eeprom_erase lynx_eeprom_read lynx_eeprom_write @@ -120,19 +123,36 @@ available, but must be statically linked, because no file I/O is available. See the documentation for the for information on how to do that. -The TGI driver is implemented as a 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 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. -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_flip() or tgi_ioctl(1, 0) will do a flip 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. + +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_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. +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 -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. +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). + +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. Extended memory drivers

@@ -147,7 +167,7 @@ the 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. Mouse drivers

@@ -156,8 +176,60 @@ No mouse drivers are currently available for the Lynx. RS232 device drivers

-No serial drivers are currently available for the Lynx. + + + 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: + + 62500 + 31250 + 9600 + 7200 + 4800 + 3600 + 2400 + 1800 + 1200 + 600 + 300 + 150 + 134.5 + 110 + 75 + + 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. + + The Lynx hardware will always check parity on incoming traffic. Currently + the driver cannot receive data from standard PC's due to this parity bug. + For working with Lynx to Lynx communication use EVEN parity. + + To send data to standard PC's use MARK or SPACE as parity setting. + + 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. +

Limitations