Next Previous Contents

6. Loadable drivers

The names in the parentheses denote the symbols to be used for static linking of the drivers.

6.1 Graphics drivers

lynx-160-102-16.tgi (lynx_160_102_16)

A TGI driver for the standard graphics mode (160×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.

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.

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).

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.

In order to reserve memory for the collision detection buffer you need to specify lynx-coll.cfg as the configuration file to the linker.

6.2 Extended memory drivers

No extended memory drivers are currently available for the Lynx.

6.3 Joystick drivers (lynx_stdjoy)

A joystick driver for the standard buttons.

6.4 Mouse drivers

No mouse drivers are currently available for the Lynx.

6.5 RS232 device drivers

lynx-comlynx.ser (lynx_comlynx)

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.

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:

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.

Next Previous Contents