Download this file

Transcript
CITRON
Creative Industrial Electronic Systems
CITRON
Table of contents
Document revision
Rev.
001
002
003
004
005
006
Description
First issue
Adapted to CiTouchD 1.0.008
Adapted to CiTouchD 1.0.009
Adapted to CiTouchD 1.0.010; changed some default values in CITOUCHD.INI
Adapted to new firm address
New logo added
Reviser.
wh, pk
wh
wh
wh
wh
pk
Date
27. Nov. 1996
28. Jan. 1997
07. Feb. 1997
14. Jul. 1997
29. Aug. 1997
25. Feb. 1998
Exclusion of liability
The contents of this manual serve for information purposes only. Citron GmbH reserves the right to change the contents of this manual
without prior notice. While reasonable efforts have been made in the preparation of this manual to assure its accuracy, errors may occur.
Therefore, Citron GmbH assumes no liability resulting from errors or omissions in this manual or from the use of the information contained
herein.
Citron GmbH appreciates suggestions with regard to improvements or corrections.
This manual and the Software described herein are subject to copyright.
© Copyright 1992 - 1997 CITRON GmbH, Anwaltinger Str. 14, 86165 Augsburg, Germany
Tel. ++ 49 821 749450 FAX ++ 49 821 7494599
E-mail: [email protected]
http://www.citron.de
ALL RIGHTS RESERVED
Document information
File name: \\ntserv1\dokument\manuals\citouchd\ctd_e_r005.doc
Date: 29.08.97 11:40
Document revision: 3
Document reference: h:\dformat.dot\cidoku.dot
2
Table of contents
User's Manual CiTouchD
1 Table of contents
1 Table of contents........................................................................................................ 3
2 Introduction ................................................................................................................ 4
3 Loading CiTouchD ..................................................................................................... 4
4 Configuration.............................................................................................................. 4
4.1 Prompt parameters ..............................................................................................................................5
4.2 Pre-defined Mouse Button Emulation Modes.......................................................................................6
5 Software interface .................................................................................................... 12
5.1 Basics.................................................................................................................................................12
5.1.1 Coordinates systems ...................................................................................................................12
5.1.2 Supported video modes...............................................................................................................12
5.1.3 User-defined key emulation.........................................................................................................12
5.1.4 Additional operating parameters..................................................................................................14
5.1.5 Call of the API functions ..............................................................................................................19
5.2 Emulated mouse driver functions of Int33-API...................................................................................19
5.2.1 Numerical summary.....................................................................................................................19
5.2.2 Particularities of the Int 33 API emulation....................................................................................20
5.3 Extended API functions ......................................................................................................................24
5.3.1 Determining the identification number of CiTouchD....................................................................25
5.3.2 Summary of the extended API functions .....................................................................................28
5.3.3 Reference of the extended API functions ....................................................................................30
5.3.4 Reference of the structures .........................................................................................................42
5.3.5 Notification by the CiTouchD .......................................................................................................48
6 CITOUCHD.INI........................................................................................................... 49
6.1.1 [Acceleration] ...............................................................................................................................49
6.1.2 [Calibration]..................................................................................................................................50
6.1.3 [Commands] ................................................................................................................................51
6.1.4 [Hardware] ...................................................................................................................................52
6.1.5 [Settings]......................................................................................................................................53
6.1.6 [Sound] ........................................................................................................................................55
6.1.7 [Citouchd].....................................................................................................................................56
7 INDEX ........................................................................................................................ 57
3
CITRON
Introduction
2 Introduction
The CiTouchD mouse driver (Citron Touch driver for MS-DOS) enables the Citron Infrared Touch (in the
following referred to as IRT) to be used as a mouse substitute with the operating system MS-DOS. The
requirements to be met for the operation of the CiTouchD are a MS-DOS version 3.0 or higher and at
least an i386 microprocessor.
The mouse driver implemented in the CiTouchD provides all functions of a standard MS-DOS mouse
driver that are required for both the detection of the cursor position (position of the Touch interruption) and
the simulation of a mouse button. Any previously installed driver for a standard mouse is disabled by the
CiTouchD driver. Therefore this mouse cannot be used as an input medium anymore.
Before starting the installation, the IRT needs to be connected to a serial interface of the computer. Please
note that in order to operate the CiTouchD driver, the serial interface has to be capable of interpreting
Interrupts.
If a Citron-LDVGA graphics card is used in conjunction with the LDRI reception board, the connecting
cable to the display unit already took care of an adequate connection of the IRT. In this case only the base
address and the Interrupt channel for the SIO1 of the LDVG board are still to be set. This is carried out by
means of the utility LDVINST. For a description of this utility refer to the manual of the LDVGA.
Contrary to a regular mouse the CiTouchD is capable to work with absolute coordinates. That means, the
movement of a finger on the screen surface is not converted into a relative change of the cursor position.
The cursor always appears at the exact position the screen is just touched. In order to improve the
positioning accuracy, however, it is also possible to work with relative coordinates. The change between
the coordinates modes is carried out either statically, i.e. during the configuration or dynamically, i.e.
during the regular operation by means of a special finger movement, for example a dual touch.
The biggest challenge at the emulation of a mouse by a Touch is the simulation of the mouse buttons. Not
all features of a mouse button can be simulated at the same time and with the same accuracy. However,
due to the fact that the requirements vary between the respective application programs (for example
precise timing of the mouse click, high safety regarding faulty usage, drag and drop capability ...), in most
cases a certain share of the mouse functions is already sufficient for the use of the respective program. At
the CiTouchD the emulation of the mouse buttons is widely user-configurable and programmable.
All parameters that influence the operating methods of the CiTouchD, are saved in an INI-file in
ASCII-format. Therefore, all settings can be changed either during the installation or during regular
operation.
3 Loading CiTouchD
The CiTouchD driver is loaded by executing the file CITOUCHD.EXE either from the MS-DOS prompt or
from the AUTOEXEC.BAT and stays resident in the computer’s memory.
Before starting CiTouchD, the IRT needs to be connected to a serial interface of the computer. Please
note that in order to operate the CiTouchD driver, the serial interface has to be capable of interpreting
Interrupts.
If a Citron-LDVGA graphics card is used in conjunction with the LDRI board, the connecting cable to the
display unit already took care of an adequate connection of the IRT. In this case only the base address
and the Interrupt channel for the SIO1 of the LDVGA board are still to be set. This is carried out by means
of the utility LDVINST. For a description of this utility refer to the manual of the LDVGA.
4 Configuration
The parameters to configure the behaviour of the CiTouchD can be set in three different ways:
1. Passed on as a prompt parameter
2. As entries in the file CITOUCHD.INI
3. Calls from the programming interface (Int 33h or Int 2Fh API)
The CiTouchD uses the parameters in the following order:
First the driver reads its parameters from the file CITOUCHD.INI. In case of a specific entry
missing, its default value is used. If the program was started with additional prompt parameters,
these parameters overrule the ones from the file CITOUCHD.INI. The prompt parameters will then
update the entries in the CITOUCHD.INI. The possible entries of the CITOUCHD.INI are described
in chapter "
CITOUCHD.INI“on page 49.
4
User's Manual CiTouchD
Configuration
Calls from the programming interface only change the internal variables of the driver. The contents of the
file CITOUCHD.INI is not changed that way.
4.1 Prompt parameters
CiTouchD is able to interpret the following prompt parameters in any order. It distinguishes between small
and capital letters:
Parameters
/? [/h] [/H]
?
?D
Range
-
CITOUCH.INI
-
Default
-
?T
-
-
-
/b:
1..3
[Settings]
Button =
1
/c:
1..4
[Hardware]
Interrupt =
IO_Base
1
/d
-
-
-
/k:
0..64
[Citouchd]
Stack =
6
/i:
0..15
4
/m:
0..7
[Hardware]
Interrupt =
[Commands]
for possible entries
refer to next chapter
/p:
1..FFF
F
[Hardware]
IO_Base =
3F8
/r:
0..2
[Citouchd]
HardReset =
0
3D-Touch: 7
2D-Touch: 5
Description
Lists all permitted prompt parameters
Installation status of CiTouchD
Requests current settings of the
resident share of CiTouchD
Hard- and software revision of
connected IRT
Determines the mouse button to be
emulated:
1 = left-hand side mouse button
2 = right-hand side mouse button
3 = both mouse buttons at the same
time
Determines the number of the serial
interface to be used by the IRT. This
option combines /i: and /p:, assuming
the standard PC serial interfaces:
COM1 (/c:1) -> Port = 3F8h, IRQ 4
COM2 (/c:2) -> Port = 2F8h, IRQ 3
COM3 (/c:3) -> Port = 3E8h, IRQ 4
COM4 (/c:4) -> Port = 2E8h, IRQ 3
Removes the resident part of the
CiTouchD driver from the memory
Determines size of stack set up by
CiTouchD in steps of 256 byte. In
case of /k:0, CiTouchD uses the stack
of the currently running program.
Determines number IRQ to be used
by serial interface
Mouse Button Emulation Modes;
depending on the mode additional
parameters are required. These are
separated by commas without any
blanks.
Determines base address of serial
interface. This parameter is
interpreted as hexadecimal number.
There are no preceding zeros
required.
Determines whether Touch is reset by
the Mouse-API-Functions 00h and
2Fh (reset lasts up to 10 seconds).
0 = No reset
1 = reset in function 2Fh only
2 = reset in function 00h only
5
CITRON
/t:
Configuration
0,1,2,
128
[Hardware]
IRT_Mode =
0
Determines communication protocol
of connected IRT:
0 = automatic detection
1 = Mode-C (2D-Touch)
2 = CTS1 (3D-Touch)
If the correct communication protocol
is determined by this parameter, the
linking of the IRT takes place faster
than with the automatic detection.
The columns of the table above have the following meaning:
Parameters
Syntax of the prompt parameter
Range
Permitted value range
CITOUCHD.INI
[Section] and respective entry in the file CITOUCHD.INI
Default
Value that is used if both the prompt parameter and the entry in the file
CITOUCHD.INI are missing
Description
Brief description of the function of the prompt parameter.
4.2 Pre-defined Mouse Button Emulation Modes
There is a total of 8 pre-defined Mouse Button Emulation Modes. One of them is selected by means of the
prompt parameter /m: at the start of CiTouchD. If there is no Mouse Button Emulation Mode explicitly
selected at the start of CiTouchD, the Emulation Mode determined in the section [Commands] of the file
CITOUCHD.INI is used.
In the following the pre-defined modes are described.
/m:0
Enter
Description
As soon as coordinates are reported, the emulated mouse button is pressed. The
key remains pressed until the Touch Zone is released.
Parameter
none
Example
c:\>citouchd.exe /m:0
Advantages
• Accurate timing of the mouse click
• Easy handling
• Cursor motion at pressed mouse button possible
Disadvantages
• Inaccurate positioning of the mouse click when absolute coordinates are used
• Relative coordinates not useful
• Little safety regarding faulty handling
CITOUCHD.INI
[Commands]
Time1
Time2
Time3
Idle_T1
T1_Trigger
Trigger_T2
T2_UPT3
UPT3_Idle
UPT3_Trigger
6
=0
=0
=0
=2
=1
=6
=0
=0
=0
User's Manual CiTouchD
Configuration
/m:1
Exit
Description
As soon as the Touch Zone is released, a short mouse click occurs.
Parameter
none
Example
c:\>citouchd.exe /m:1
Advantages
• Accurate timing of the mouse click
• Easy handling
• Accurate positioning of the mouse click
Disadvantages
• Relative coordinates not useful
• Cursor motion at pressed mouse button not possible
CITOUCHD.INI
[Commands]
Time1
Time2
Time3
Idle_T1
T1_Trigger
Trigger_T2
T2_UPT3
UPT3_Idle
UPT3_Trigger
=0
=0
=0
=1
=6
=1
=0
=0
=0
/m:2,t
Tap
Description
A mouse click is emulated if the Touch zone is released and then interrupted again
within a preset time span. This process is called "Tap". The key remains pressed
until the Touch Zone is again released.
Parameter
Example
Tap Time (t): Time span in which the IRT has to be interrupted again in order to
create a Tap. The Tap Time can be set in steps of 55 ms between 0 ms and 2
s.
c:\>citouchd.exe /m:2,300
Advantages
• Efficient safety regarding faulty usage
• Cursor motion at pressed mouse button possible
Disadvantages
• Inaccurate positioning of the mouse click when absolute coordinates are used
• Relatively complicated handling
CITOUCHD.INI
[Commands]
Time1
Time2
Time3
Idle_T1
T1_Trigger
Trigger_T2
T2_UPT3
UPT3_Idle
UPT3_Trigger
[Settings]
TapTime
=0
=0
=0
=2
=5
=6
=0
=0
=0
=t
7
CITRON
Configuration
/m:3,t1,t2
Time
Description
A mouse click is emulated if the Touch Zone is interrupted and no mouse motion
occurs for a time span T1. The key remains pressed until the Touch Zone is
released. If within a time span T2 the Touch Zone is interrupted again, a second
mouse click takes place immediately. This way a double-click can be created.
Parameter
Example
Time to Click (t1): After this time has elapsed, the first mouse click occurs. T1
can be set in steps of 55 ms between 0 ms and 2 s.
Time to Idle (t2): If within this time span the Touch Zone is interrupted again, the
second mouse click takes place immediately. T2 can be set in steps of 55 ms
between 0 ms and 2 s.
c:\>citouchd.exe /m:3,500,300
Advantages
• Easy handling
• Cursor motion at pressed mouse button possible
Disadvantages
• Inaccurate timing of the mouse click
• Little safety regarding faulty handling
CITOUCHD.INI
[Commands]
Time1
Time2
Time3
Idle_T1
T1_Trigger
Trigger_T2
T2_UPT3
UPT3_Idle
UPT3_Trigger
= t1
=0
= t2
=2
=2
=6
=0
=0
=2
/m:4,n
Dual Touch
Description
If the Touch Zone is interrupted and a second interruption occurs simultaneously, a
mouse click is emulated. The mouse button remains pressed for the duration of this
dual touch.
Parameter
Dual Touch Skip Count (n): Determines the number of dual touch messages to
be skipped before the mouse click is emulated. The number of messages to
be skipped can be set between 0 and 255.
Example
c:\>citouchd.exe /m:4,1
Advantages
• Easy handling
• Accurately localized and timed positioning of the mouse click
Disadvantages
• Little safety regarding faulty handling
• Cursor motion at pressed mouse button not possible
CITOUCHD.INI
[Commands]
Time1
Time2
Time3
Idle_T1
T1_Trigger
Trigger_T2
T2_UPT3
UPT3_Idle
UPT3_Trigger
[Settings]
DblErrSkip
8
=0
=0
=0
=2
=4
=8
=0
=0
=0
=n
User's Manual CiTouchD
Configuration
m:5,n
Dual / Exit
Description
If the Touch Zone is interrupted and a second interruption occurs simultaneously, a
mouse click is emulated. Contrary to the "Dual Touch", the mouse button remains
pressed until the Touch zone is completely released, i.e. both interruptions are
cleared.
Parameter
Dual Touch Skip Count (n): Determines the number of dual touch messages to
be skipped before the mouse click is emulated. The number of messages to
be skipped can be set between 0 and 255.
Example
c:\>citouchd.exe /m:5,1
Advantages
• Easy handling
• Accurately localized and timed positioning of the mouse click
• Cursor motion at pressed mouse button possible
Disadvantages
• Little safety regarding faulty handling
• Creating double-clicks is very difficult
CITOUCHD.INI
[Commands]
Time1
Time2
Time3
Idle_T1
T1_Trigger
Trigger_T2
T2_UPT3
UPT3_Idle
UPT3_Trigger
[Settings]
DblErrSkip
=0
=0
=0
=2
=4
=6
=0
=0
=0
=n
m:6,t1,t2
Time / Time
Description
A mouse click is emulated if the Touch Zone is interrupted and no mouse motion
occurs for a time span T1. If the cursor continues to be motionless, after time span
T2 has elapsed the mouse button is briefly released and then immediately pressed
again.
Parameter
Time to Click (t1): After this time has elapsed, the first mouse click occurs. T1
can be set in steps of 55 ms between 0 ms and 2 s.
Time to Second Click (t2): After this time span has elapsed, the second mouse
click and further ones take place until the Touch Zone is released. T2 can be
set in steps of 55 ms between 0 ms and 2 s.
Example
c:\>citouchd.exe /m:6,500,300
Advantages
• Easy handling
• Easy and accurately positioned creation of double-clicks
Disadvantages
• Inaccurate timing of the mouse click
• Little safety regarding faulty handling
CITOUCHD.INI
[Commands]
Time1
Time2
Time3
Idle_T1
T1_Trigger
Trigger_T2
T2_UPT3
UPT3_Idle
UPT3_Trigger
= t1
= t2
=0
=2
=2
=1
=6
=6
=2
9
CITRON
Configuration
m:7,p
Z-Press
Description
This particular item is only available if the IRT is equipped with pressure sensors.
As soon as the pressure exerted onto the front screen exceeds a predetermined
limit value, a mouse click is emulated. The key remains pressed until this pressure
minus a hysteresis, falls below the limit value again.
Parameter
Example
Pressure Sensitivity (p): Limit value of the pressure exerted onto the front
screen, adjustable between 0 and 255. The actual pressure intensity depends
on the installation of the IRT.
c:\>citouchd.exe /m:7,10
Advantages
• Easy handling
• Cursor motion at pressed mouse button possible
• Efficient safety regarding faulty handling
Disadvantages
• IRT needs to be equipped with pressure sensors
CITOUCHD.INI
[Commands]
Time1
Time2
Time3
Idle_T1
T1_Trigger
Trigger_T2
T2_UPT3
UPT3_Idle
UPT3_Trigger
[Settings]
Pressure
10
=0
=0
=0
=3
=1
=7
=0
=0
=0
=p
User's Manual CiTouchD
Software interface
5 Software interface
This chapter comprises descriptions of both the functions of the CiTouchD driver and the software
interfaces provided for application programs.
5.1 Basics
In order to utilize the API functions of the CiTouchD driver, it is essential to clearly understand the function
of the mouse driver emulation. The following chapters are supposed to contribute to this understanding.
5.1.1 Coordinates systems
Within the Touch driver positions always refer to a virtual graphics screen. The screen's resolution
depends on the respective video mode as well as the corresponding graphics card that mode is based on.
Since in the various text modes this virtual graphics screen is also used for determining the Touch
interruptions and represents the basis for the communication with the Touch interface, the graphic
coordinates need to be converted into column and line coordinates for the cursor. Since each column and
line equal 8 dots, the graphic coordinates need to be divided by 8.
The origin of the graphics screen is situated in the left-hand side top corner. Since coordinates counted
towards the right-hand side and down are positive coordinates, the column and line coordinates of the
cursor will always be positive.
The functions 0Fh and 0Bh of the Int33-API supply relative coordinates. Due to reasons of compatibility to
the mouse, the unit „mickeys“(= 1/400 inch) was retained. Function 0Fh allows the ratio between mickeys
and 8 virtual pixels to be set.
Relative coordinates are signed. Negative vectors represent a movement towards the left-hand side and
up, positive vectors represent a movement towards the right-hand side and down.
5.1.2 Supported video modes
All video modes that are set by the function 00h of the EGA / VGA-BIOS are supported:
Screen mode
00h
01h
02h
03h
04h
05h
06h
07h
0Dh
0Eh
0Fh
10h
11h
12h
13h
Text/Graphics
Text
Text
Text
Text
Graphics
Graphics
Graphics
Text
Graphics
Graphics
Graphics
Graphics
Graphics
Graphics
Graphics
Resolution
40*25 characters
40*25 characters
80*25 characters
80*25 characters
320*200 dots
320*200 dots
640*200 dots
80*25 characters
320*200 dots
640*200 dots
640*350 dots
640*350 dots
640*480 dots
640*480 dots
320*200 dots
Virtual screen
320*200 dots
320*200 dots
640*200 dots
640*200 dots
320*200 dots
320*200 dots
640*200 dots
640*200 dots
320*200 dots
640*200 dots
640*350 dots
640*350 dots
640*480 dots
640*480 dots
320*200 dots
5.1.3 User-defined key emulation
In the CiTouchD driver mouse button events are created by the so-called Button-Machine. This ButtonMachine represents a programmable, asynchronous state machine. The transition from one state to the
next one takes place as soon as all the required conditions are met. Illustration 5-1 shows the exact statetransition diagram of the Button-Machine:
After the initialization of the driver, the Button-Machine is in state "IDLE". All mouse buttons are in the
released condition. The various states are stepped through in the direction of the arrows.
In the states "T1", "T2" and "T3" a time can be determined that needs to elapse before the respective
state can be left. In addition to the time that has to elapse, to leave state "T1" the condition declared in
11
CITRON
Software interface
"T1_Trigger" has to be met at the same time. Contrary to T1, for the states "T2" and "T3" to step to the
following state it is sufficient to either meet the declared condition or wait for the time to elapse.
Upon entering the state "TRIGGER", a mouse click is emulated. Upon transition to the state "T3", the
mouse button is released again.
•
IDLE
t:=T1
‡
‚
T3
T1
ˆ
Button Down
†
t:=T3
Button Up
Button Down
…
T2
ƒ
•
‚
ƒ
„
…
†
‡
ˆ
Condition1
¬ Condition1 ∨ Mouse Movement
Condition2 ∧ t=0
Condition3
¬ Condition3
Condition4 ∨ t=0
Condition5 ∨ t=0
Condition6
TRIGGER
„
t:=T2
Illustration 5-1, State machine for the Mouse Button Emulation
Possible conditions for state transitions:
•
•
•
•
•
•
•
•
•
Never:
Immediately:
Enter:
Z-Press:
Dual Touch:
Tap:
Leave:
Z-Release:
No Dual Touch:
This condition never occurs
This condition occurs always and immediately
Coordinates are reported
The pressure limit value was exceeded
Dual touching was detected
A "Tap" was detected
There are no more coordinates reported
The pressure fell below the limit value again
There is no more dual touching detected
The key emulation mode "Time", for instance, can be programmed as follows:
T1 = 550 ms
T2 = 0 ms
T3 = 550 ms
Idle_T1
T1_Trigger
Trigger_T2
T2_UPT3
UPT3_Idle
UPT3_Trigger
= "Enter"
= "Enter"
= "Leave"
= "Never"
= "Never"
= "Enter"
Another example is a new emulation mode called "Z-Press / Exit". Similar to the mode "Dual / Exit", the
release of the mouse button does not already happen when the pressure falls below the limit value but
only after the Touch zone has been completely released. The parameters for this mode are:
T1 = 0 ms
T2 = 0 ms
T3 = 0 ms
Idle_T1
T1_Trigger
Trigger_T2
T2_UPT3
UPT3_Idle
UPT3_Trigger
12
= "Enter"
= "Z-Press"
= "Leave"
= "Never"
= "Never"
= "Never"
User's Manual CiTouchD
Software interface
5.1.4 Additional operating parameters
In order to ease the mouse emulation by the IRT as much as possible, there are additional parameters to
adapt the behaviour of the mouse emulation to the necessities of the user and the requirements of the
application program. These parameters are either preset in the file CITOUCHD.INI or temporarily changed
by an application program calling the extended API functions.
5.1.4.1 Smoothing
When using absolute coordinates, in the video mode the resolution of the IRT in the Mode-C
communication protocol is not sufficient to activate each pixel of the screen. At a screen resolution of 640
x 480 pixels, one IRT coordinates change equals approximately 8 pixels. If the touch spot is now just at
the transition of one coordinate to the other, the cursor continuously jumps back and forth a few pixels. In
order to prevent this annoying effect, a smoothing factor can be set. To do so, an average value of a
certain number of IRT coordinates messages is created. The number of coordinates messages to be
taken into consideration for the calculation of this average value can be determined for the X- and Y-axis
separately.
The API functions and the corresponding structure elements for the smoothing parameters are as follows:
citGetDriverSettings (function 0Bh)
citSetDriverSettings (function 14h)
Requesting the settings
Changing the settings
The corresponding elements of the structure DRIVERSETTINGS (refer to page 47) are:
dsSmoothX
Smoothing factor of the X-axis
dsSmoothY
Smoothing factor of the Y-axis
dsSmoothAlways 0 = after each new interruption of the Touch Zone the creation of the average
value is started anew. That means, at first the cursor is positioned directly onto
the touch spot. The average value is created of additional cursor motions only.
1 = after leaving the Touch Zone the old average value remains. If the Touch
Zone is interrupted a second time, according to the determined smoothing
factor the cursor moves from its old position step by step towards the new
touch spot.
dsCoordSkip
Determines the number of coordinates messages of the IRT to be skipped
before a new cursor position is reported. Skipping the first coordinates
messages may prove useful, for example, if the IRT is installed rather far away
from the screen surface. In that case the IRT would already detect a valid
interruption before the finger actually touches the screen surface. On its way
between the interruption of the detection and the screen surface the finger
generally shifts. The user, however, expects a change of the cursor position
only when he actually touches the screen surface. By skipping the first
coordinates messages the expected behaviour can be achieved.
The admissible values of dsSmoothX and dsSmoothY range from 0 up to dsSmoothMax. This value can
be requested by means of citGetDriverConstants (function 0Eh).
The following entries in the file CITOUCHD.INI control the smoothing behaviour:
[Settings]
X_Smoothing
Y_Smoothing
SmoothAlways
CoordinateSkip
corresponds to dsSmoothX
corresponds to dsSmoothY
corresponds to dsSmoothAlways
corresponds to dsCoordSkip
5.1.4.2 Coordinates mode
The CiTouchD driver is able to work with either absolute or relative coordinates. In case absolute
coordinates are used, the cursor jumps directly onto the spot of the interruption of the Touch Zone. In
case relative coordinates are used, however, the cursor always moves relatively to its present position.
The direction of the cursor motion corresponds to the direction of the moving interruption spot. Since the
13
CITRON
Software interface
distance covered by the cursor may be smaller than the one of the actual finger movement, a resolution
can be achieved that corresponds to the one of a conventional mouse.
The speed the cursor moves with when using relative coordinates can be set by means of the following
functions:
citGetCalibrationRel (function 0Ah)
citSetCalibrationRel (function 13h)
Request of calibration of the relative coordinates
Change of calibration of the relative coordinates
Both functions take the address of a CALIBRATIONREL (refer to page 44) structure as argument
for output data (citGetCalibrationRel) or input data (citSetCalibrationRel).
The coordinates mode the CiTouchD is working in is set by means of the following function:
citGetDriverSettings (function 0Bh)
citSetDriverSettings (function 14h)
Request of coordinates mode
Change of coordinates mode
The corresponding elements of the structure DRIVERSETTINGS (refer to page 47) are:
dsAbsolute
0 = The relative coordinates mode is always used
1 = The absolute coordinates mode is always used.
It is still possible during regular operation to change between the various coordinates modes. The
following function determines the condition of a change to take place between the absolute and the
relative coordinate's mode:
citGetCommands (function 07h)
citSetCommands (function 10h)
Request of condition for mode change
Change of condition for mode change
The corresponding elements of the structure COMMANDS (refer to page 45) are:
cmModeChange
0 = During regular operation a change between the absolute and the relative
coordinates mode is possible.
3 = This option is only available if the IRT is equipped with pressure sensors. If
the preset limit value of the pressure exerted onto the front screen is
exceeded, a change takes place between the absolute and the relative
coordinates mode.
4 = At each dual touching a change takes place between the absolute and the
relative coordinates mode.
5 = At each "Tap" a change takes place between the absolute and the relative
coordinates mode (for the description of a "Tap" please refer to page 8).
In order to prevent the risk of faulty usage at critical applications, it is possible to confine the conditions for
the cursor to change. The following conditions are possible:
• Enter:
cmCoordEnterZ = 0
cmCoordSignalZ = 0
A new cursor position is reported as soon as a valid interruption of the Touch
Zone occurs.
• Z-Press/Enter: cmCoordEnterZ = 1
cmCoordSignalZ = 0
This option is only available if the IRT is equipped with pressure sensors. In
order for a new cursor position to be reported after an interruption, the preset
limit value of the pressure exerted onto the front screen needs to be exceeded
too. For additional changes of the cursor position it is sufficient that the Touch
Zone remains interrupted.
• Z-Press:
14
cmCoordEnterZ = 1
cmCoordSignalZ = 1
This option is only available if the IRT is equipped with pressure sensors. New
cursor positions are only reported as long as the preset limit value of the
pressure exerted onto the front screen is exceeded.
User's Manual CiTouchD
Software interface
This behaviour is set by means of the following functions:
citGetCoordMode (function 08h)
citSetCoordMode (function 11h)
Request of parameters
Change of parameters
Both functions take the address of a COORDMODE (refer to page 46) structure as argument for
output data (citGetCoordMode) or input data (citSetCoordMode).
In the file CITOUCHD.INI the following entries control the coordinates mode:
[Calibration]
XRel_Div
XRel_Mul
YRel_Div
YRel_Mul
SmoothAlways
CoordinateSkip
[Commands]
ModeChange
[Settings]
AbsoluteMouse
CoordEnterZ
CoordSignalZ
Divisor for the X-coordinates scaling (corresponds to crDivX)
Multiplier for the X-coordinates scaling (corresponds to crMulX)
Divisor for the Y-coordinates scaling (corresponds to crDivY)
Multiplier for the Y-coordinates scaling (corresponds to crMulY)
Corresponds to dsSmoothAlways
Corresponds to dsCoordSkip
Corresponds to cmModeChange
Corresponds to dsAbsolute
Corresponds to cmCoordEnterZ
Corresponds to cmCoordSignalZ
5.1.4.3 Cursor Control
By means of these parameters a distance between the present cursor position in relation to the touch spot
as well as an accelerated movement of the cursor in relation to the finger can be set. According to the
installation of the IRT, it may not always be possible to reach the outermost edge of the screen with a
finger. By means of the cursor acceleration of the CiTouchD driver, outside an area of adjustable size the
cursor position moves faster than the finger towards the edge of the screen. This way the outermost edge
of the screen can be reached at any rate. The cursor acceleration is exclusively used in conjunction with
absolute coordinates.
15
CITRON
Software interface
The following API functions are used to set the acceleration parameters:
citGetAcceleration (function 20h)
citSetAcceleration (function 21h)
Request of acceleration parameters
Change of acceleration parameters
Both functions take the address of a ACCELERATION (refer to page 43) structure as argument for
output data (citGetAcceleration) or input data (citSetAcceleration).
The following API functions are used to set the distance between touch spot and cursor position:
citGetDriverSettings (Function 0Bh)
citSetDriverSettings (Function 14h)
Request of distance
Change of distance
The corresponding elements of the structure DRIVERSETTINGS (refer to page 47) are:
dsOfsX
X- distance between touch spot and cursor position
dsOfsY
Y- distance between touch spot and cursor position
In the file CITOUCHD.INI the following entries relate to the cursor control:
[Acceleration]
X_Border
Beyond this X-border the acceleration is active (corresponds to acBorderX)
Y_Border
Beyond this Y-border the acceleration is active (corresponds to acBorderY)
X_Mul
Acceleration factor for X-direction (corresponds to acMulX)
Y_Mul
Acceleration factor for Y-direction (corresponds to acMulY)
[Settings]
X_Offset
Corresponds to dsOfsX
Y_Offset
Corresponds to dsOfsY
5.1.4.4 Control of background illumination
The IRT comprises a "Touch Saver" function that is automatically activated if the Touch Zone was not
interrupted for a certain adjustable period of time. If the Touch Saver is active, the scan rate of the light
barriers is decreased, too. Therefore, with activated Touch Saver the IRT responds slower to Interruptions
of the Touch Zone than with a deactivated Touch Saver. In addition to that the IRT comprises a PWM
output that, for example, can be used to control the background illumination of TFT-displays.
For each of the two Touch Saver states, "active" and "inactive", the CiTouchD driver assigns a certain
mark-to-space ratio and therewith a varying background illumination intensity to the PWM output. The
activation time of the Touch Saver can be set by means of the following API functions:
citGetTouchSettings (Function 0Ch)
citSetTouchSettings (Function 15h)
Request activation time
Change activation time
The corresponding elements of the structure TOUCHSETTINGS (refer to page 48) are:
tsTSaver
Activation time of Touch Saver (0 = immediately active, 65535 = deactivated)
tsTScan
Time interval between two scan operations at activated TouchSaver
The following API functions are used to set the intensity of the background illumination:
citGetDimming (Function 1Dh)
citSetDimming (Function 1Eh)
Request of illumination intensity
Change of illumination intensity
Both functions take the address of a DIMMING (refer to page 46) structure as argument for output
data (citGetDimming) or input data (citSetDimming).
In the file CITOUCHD.INI the following entries control the Touch Saver function:
[Settings]
DimmingHigh
Illumination intensity with inactive Touch Saver (regular operation, corresponds
to tsDimmHigh)
DimmingLow
Illumination intensity with active Touch Saver (corresponds to tsDimmLow)
SaverScan
Corresponds to tsTScan
SaverTime
Corresponds to tsTSaver
16
User's Manual CiTouchD
Software interface
5.1.5 Call of the API functions
An application program communicates with the CiTouchD driver via software interrupts. To do so, the
program writes the function number into the AL register and then releases the respective software
Interrupt. Additional parameters are written into the other registers of the processor. The exact usage of
the registers is explained in the respective functional descriptions.
5.2 Emulated mouse driver functions of Int33-API
The Int 33-API (Application Program Interface, Interrupt 33h) of the CiTouchD driver is compatible to the
®
Microsoft mouse driver version 8.0. Therefore, this chapter is confined to the particularities of some
functions. A detailed description of each single function of the API is omitted.
5.2.1 Numerical summary
The following table lists the supported functions of the Int33-API in numerical order. The functions marked
†
with a cross ( ) can be called from the application program, however, they are not functional. The
®
functions marked with an asterisk (*) vary in details from the Microsoft mouse driver and are described
further below.
Number
00h
01h
02h
03h
Designation
int33ResetAndStatus
int33ShowCursor
int33HideCursor
int33GetPosBtn
04h
05h
int33SetCursorPos
int33GetBtnPress
06h
07h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
10h
13h
14h
15h
16h
17h
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
1Fh
20h
21h
22h
23h
24h
25h
26h
27h
int33GetBtnRelease
int33SetMinMaxHor
int33SetMinMaxVer
int33SetGraphicsCursor
int33SetTextCursor
int33ReadMotionCounters
int33InstallEvent
int33LightPenOn
int33LightPenOff
int33SetMickeyPixelRatio
int33ConditionalOff
int33SetDoubleThreshold
int33SwapEvents
int33GetStateSize
int33SaveState
int33RestoreState
int33SetAltEvent
int33GetAltEvent
int33SetSensitivity
int33GetSensitivity
int33SetInterruptRate
int33SetCrtPage
int33GetCrtPage
int33Disable
int33Enable
int33SoftReset
int33SetLanguage
int33GetLanguage
int33Inquire
int33InquireEx
int33GetMouseScreen
int33GetCursorMask
Description
Reset of driver and touch hardware
Show mouse cursor on screen
Hide mouse cursor
Determine mouse position and status of emulated mouse
button
Move mouse cursor
Determine the number of operations of emulated mouse
button
How often was the emulated mouse button released ?
Set horizontal moving range of mouse cursor
Set vertical moving range of mouse cursor
Define mouse cursor in video mode
Define mouse cursor in text mode
Read motion values
Install Event Handler
†
Activate emulation of light pen
†
Deactivate emulation of light pen
Set ratio between mickeys and pixels
Define area in which mouse function is excluded
Set threshold for doubling of mouse speed. *
Swap Event Handlers
Determine size of touch status buffer
Save touch status
Restore touch status
Install alternative Event Handler
Determine address of alternative Event Handlers
Set mouse sensitivity *
Request mouse sensitivity
Set Interrupt rate of mouse hardware *
Set screen page for mouse cursor
Determine screen page of mouse cursor
Deactivate Touch driver
Activate Touch driver
Software reset of CiTouchD driver
Set language for messages *
Request language for messages
Inquire version, mouse type and IRQ *
Inquire general information
Request expansion of the virtual mouse screen
Request bit masks of screen cursor *
17
CITRON
28h
29h
2Ah
2Bh
2Ch
2Dh
2Fh
30h
31h
32h
33h
34h
Software interface
int33SetVideoMode
int33InquireVideoModes
int33GetCursorInfo
int33SetAcceleration
int33GetAcceleration
int33GetSelectAccel
int33HardReset
int33InquireBallpoint
int33GetVirtualScreen
int33InquireFunc
int33InquireAll
int33GetIni
†
Set video mode
Inquire a list of available video modes *
Request information about mouse cursor
Set acceleration curve *
Read out current acceleration curve *
Set / request current acceleration curve *
Reset of Touch hardware
Determine / request settings of ballpoint mouse *
Request expansion of the virtual screen
Inquire supported functions
Inquire settings
Determine path to CITOUCHD.INI
5.2.2 Particularities of the Int 33 API emulation
®
Some functions of the Int 33 API vary in details from the Microsoft mouse driver. These functions are
described in the following.
Function 13h
Set threshold for doubling of mouse speed. *
Input:
AX = 0013h
DX = Threshold for doubling of mouse speed
Response:
none
Particularities:
The threshold for doubling of mouse speed in DX is internally saved,
besides that, however, ignored.
Function 1Ah
Set mouse sensitivity *
Input:
AX = 001Ah
BX = Number of horizontal mickeys that correspond to 8 pixels
CX = Number of vertical mickeys that correspond to 8 pixels
DX = Threshold for doubling of mouse speed
Response:
none
Particularities:
The threshold for doubling of mouse speed in DX is internally saved,
besides that, however, ignored.
Function 1Ch
Set Interrupt rate of mouse hardware *
Input:
AX = 001Ch
BX = Interrupt rate
Response:
none
Particularities:
18
The rate that was passed is internally saved, besides that, however,
ignored.
User's Manual CiTouchD
Software interface
Function 22h
Set language for messages *
Input:
AX = 0022h
BX = Code number of language
Response:
none
Particularities:
Only code number 0 (= English) is supported. All other code numbers
are disregarded.
Function 24h
Inquire version, mouse type and IRQ *
Input:
AX = 0024h
Response:
BH
BL
CH
CL
= Pre-comma part of version number
= Post-comma part of version number
= Mouse type (always 2 = serial mouse)
= IRQ number
Particularities:
Since CiTouchD basically supports each IRQ number available on a
PC, values greater than 7 can be returned to CL, too.
Function 27h
Request bit masks of screen cursor *
Input:
AX = 0027h
Response:
AX = AND mask at software cursor / start line at hardware cursor
BX = XOR mask at software cursor / end line at hardware cursor
CX = Length of horizontal motion in mickeys
DX = Length of vertical motion in mickeys
Particularities:
Since an IRT works with absolute coordinates the values in CX and
DX are always 0.
Function 29h
Inquire a list of available video modes *
Input:
AX = 0029h
CX = 0 (request first video mode) or <> 0 (request next modes)
Response:
BX = Segment address of a string
CX = Code number of video mode
DX = Offset address of a string
Particularities:
In order to indicate that it is not possible to request modes, the value
0 is always returned to CX.
Function 2Bh
Set acceleration curve *
Input:
AX = 002Bh
BX = Number of acceleration curve to be activated
ES = Segment address of identification data
SI = Offset address of identification data
Response:
AX = FFFFh (error) or 0021h (OK)
BX = Number of mouse buttons
Particularities:
Since acceleration curves in conjunction with an IRT do not make
sense, a FFFFh is always returned to AX.
19
CITRON
Function 2Ch
Software interface
Read out current acceleration curve *
Input:
AX = 002Ch
Response:
AX = Function status: <> 0 (error) or 0000h (OK)
BX = Number of current acceleration curve (0..3)
ES = Segment address of buffer
SI = Offset address of buffer
Particularities:
Since acceleration curves in conjunction with an IRT do not make
sense, a FFFFh is always returned to AX.
Function 2Dh
Set / request current acceleration curve *
Input:
AX = 002Dh
BX = -1 (request current acceleration curve) or
BX = 1..4 (activate this acceleration curve)
Response:
AX = Function status: <> 0 (error) or 0000h (OK)
BX = Number of current acceleration curve (0..3)
ES = Segment address of buffer with designation of curve
SI = Offset address of buffer with designation of curve
Particularities:
Since acceleration curves in conjunction with an IRT do not make
sense, a FFFFh is always returned to AX.
Function 30h
Determine / request settings of ballpoint mouse *
Input:
AX = 0030h
BX = Rotation angle
CX = Command code
Response:
AX = Function status: -1 (no ballpoint mouse) or <> 0 (OK)
BX = Rotation angle
CX = Active buttons
Particularities:
Since CiTouchD does not support ballpoint mice, a FFFFh is always
returned to AX.
5.3 Extended API functions
The extended API functions are accessible via the so-called Multiplex Interrupt 2Fh. By means of this
Multiplex Interrupt various parameters and operational modes of the driver are requested or set,
respectively. To do so, the identification number of the CiTouchD driver is written into the AH register and
the number of the addressed function into the AL register. These are special API functions of the
CiTouchD driver and are described in the following.
The mouse emulation of the CiTouchD driver can be entirely parameterized. These parameters are read
from either the prompt at the program start or the file CITOUCHD.INI. The contents of the file
CITOUCHD.INI are described at page 49. In order to change the parameter of the run time, a number of
API functions are provided that are all implemented via an Int 2Fh (Multiplex Interrupt) interface. These
functions are described in the following.
5.3.1 Determining the identification number of CiTouchD
Upon each call of an extended API function via the Multiplex Interrupt, the identification number of the
CiTouchD driver has to be written into the AH register. The Multiplex Interrupt owes its name to the fact
that by its means not only one single (DOS) program can be accessed, but that it is open-ended to all TSR
20
User's Manual CiTouchD
Software interface
programs that require a communication interface to the outside. After a TSR program was called up for
the first time and is installed consequently, further calls from the DOS prompt can be used to either set
certain parameters in the running copy of this program or to remove it from the memory again. The newly
called up program establishes the contact with its already installed part via the Multiplex Interrupt.
Any program that wants to use the Multiplex Interrupt (abbreviated: MUX), first needs to give itself an 8 bit
®
identification number. The identification numbers from 00h up to BFh are reserved by Microsoft for their
own DOS programs. However, the range from C0h up to FFh is available and can be used by application
programs, i.e. by own TSR programs.
Since the identification number can be freely chosen between C0h and FFh, it is may occur that several
programs use the same number. In order to prevent this problem, any program that wants to use the
Multiplex Interrupt needs to provide a function for an installation check. This function is carried out if at a
Multiplex Interrupt the identification number of the respective program is written into the AH register and
the value 00h into the AL register. If one of the already installed Handlers detects its identification number,
it has to return a value unequal 00h (generally FFh) to the AL register. This way the CiTouchD driver runs
through all identification numbers from C0h upwards and takes the first free one.
Since due to this behaviour the identification number of the CiTouchD is not certain in advance, any
program that wants to use the driver functions provided via the Multiplex Interrupt 2Fh needs to request
the currently valid identification number beforehand. In order to search for the correct identification
number, starting at the identification number C0h (to be stored in register AH) the program calls the
function 00h (to be stored in register AL) of the Multiplex Interrupt 2Fh as long until the ES:DI register pair
points onto the string "CiTouchD". The identification number that went with the successful function call
equals the current identification number of the CiTouchD driver. Relating to this identification number, the
functions of the CiTouchD that are provided via the Multiplex Interrupt can now be called.
If the search for the identification number remains without success until number FFh, the CiTouchD driver
is not installed.
The following examples in the programming languages C, Pascal and Assembler utilize this method in
order to request the existence of a LDVGA graphics board by means of the function 25h
(citDetectLDVGA) which is described further below.
Example in C:
/*****************************************************************************
detectLDVGA - Check if LDVGA graphics card is present (Microsoft C example)
******************************************************************************/
#include
#include
#include
#include
#define
#define
#define
#define
<conio.h>
<dos.h|>
<stdio.h>
<string.h>
IDENSTR
IDSTRLEN
PRESENCE
DETECTLDVGA
"CiTouchD"
8
0x00
/* Literal for interrupt 2f/function 00h */
0x25
/* Literal for interrupt 2f/function 25h/37d */
int main( void )
{
union _REGS ir, or;
struct _SREGS sregs;
int i;
unsigned char idenNr; /* Identify number of CiTouchD */
void far *pIdenStr;
for( i=0xC0; i<0x100; i++ )
/* ID number from 0xC0...0xFF are allowed
{
/* for non system TSRs using MUX interrupt
ir.h.al = PRESENCE;
/* Verify presence function
ir.h.ah = i;
/* Identify number
_int86x( 0x2F, &ir, &or, &sregs );
*/
*/
*/
*/
/* Look, if a tsr with multiplex support is installed under
this identify number
*/
if( or.h.al == 0xFF )
{
/* point to given identifier string
*/
pIdenStr = (void far*) ( ((unsigned long)sregs.es << 16) + or.x.di);
/* Look, if identifier string matches searched one
if( !_fstrncmp( pIdenStr, IDENSTR, IDSTRLEN ) )
*/
21
CITRON
Software interface
{
break;
}
}
}
if( i == 256 )
printf( "\nCiTouchD not installed!\n" );
else
{
idenNr = ( unsigned char )i;
/* store identify number
*/
/* detect LDVGA */
ir.h.al = DETECTLDVGA;
ir.h.ah = idenNr;
_int86x( 0x2F, &ir, &or, &sregs );
if( or.x.ax )
printf( "LDVGA detected.\n" );
else
printf( "No LDVGA detected.\n" );
}
return( 0 );
}
Example in Pascal:
(***************************************************************************
detectLDVGA Check if LDVGA graphics card is present (Turbo Pascal example)
***************************************************************************)
uses dos;
(* For 'Intr' *)
const
IdenStr
= 'CiTouchD';
PRESENCE
= $00;
citDetectLDVGA = $25;
var
Regs
IdenNr
IdenStrPtr
TmpIden
i
j
Found
:
:
:
:
:
:
:
Registers;
Byte;
Pointer;
String;
Integer;
Byte;
Boolean;
begin
Found := False;
i := $C0;
repeat
Regs.AL := PRESENCE;
Regs.AH := Byte( i );
Intr( $2F, Regs );
(* ID number from $C0...$FF are
allowed *)
(* Verify presence function
(* Identify number
*)
*)
(* Look, if a tsr with multiplex support is installed under this identfy number
*)
if Regs.AL = $FF then begin
IdenStrPtr := Ptr( Regs.ES, Regs.DI ); (* Point to given identifier string *)
(* Convert given null terminated C-String in Pascal string and compare *)
TmpIden := '';
for j := 1 to 8 do begin
TmpIden := TmpIden + Char( Ptr( Regs.ES, Regs.DI )^ );
Regs.DI := Regs.DI + 1;
end;
if TmpIden = IdenStr then
Found := TRUE;
end;
i := i + 1;
until Found OR (i > $FF);
22
User's Manual CiTouchD
Software interface
if Not Found then
writeln( 'CiTouchD not installed!' )
else begin
idenNr := Byte( i - 1);
(* store identify number *)
(* detect LDVGA *)
Regs.AL := citDetectLDVGA;
Regs.AH := idenNr;
Intr( $2F, Regs );
if Regs.AX <> 0 then
writeln('LDVGA found!')
else
writeln('No LDVGA detected.');
end;
end.
Example in Assembler:
;/////////////////////////////////////////////////////////////////////////////
;// S w i t c h A
Switch back to TBT/Assembler example
;// Assemble with MASM or TASM
;/////////////////////////////////////////////////////////////////////////////
.MODEL small, pascal
.DOSSEG
CR
LF
IDLEN
PRESENCE
DETECTLDVGA
EQU
EQU
EQU
EQU
EQU
13t
10t
8t
000h
025h
.STACK
.DATA
MsgErr
MsgFound
MsgNoLDVGA
IDStr
IDNr
BYTE
BYTE
BYTE
BYTE
BYTE
CR, LF, "CiTouchD not installed!", CR, LF, '$'
CR, LF, "LDVGA found!", CR, LF, '$'
CR, LF, "No LDVGA detected.", CR, LF, '$'
'CiTouchD', 0
?
;// Multiplex indentifier string
;// Storage for found MUX code
.CODE
Start
PROC
NEAR
mov
mov
ax, DGROUP
ds, ax
;// Initialize DS
;// Start searching with number 0C0h...0FFh
mov
bx, 0C0h
;// only bl is of interest
;// (bx is used for easier overflow
;// test )
cld
;// String compare from left to right
SearchIDLoop:
mov
mov
int
al, PRESENCE
ah, bl
02Fh
;// verify presence function
;// next identifier number to search for
;// Look if a tsr with multiplex support is installed under this identify number
cmp
al, 0FFh
jne
SearchIDLoopNext
;// Look, if identify string matches
;// (ES:DI points to 'CiTouchD' if right tsr)
mov
cx, IDLEN
mov
si, OFFSET IDStr
;// DS:SI points to compare string
REPE
cmpsb
jnz
SearchIDLoopNext
;// No match -> carry on search
mov
IDNr, bl
;// else store ID number and
jmp
Detect
;// search LDVGA
SearchIDLoopNext:
23
CITRON
Software interface
inc
cmp
bx
bx, 0100h
jne
SearchIDLoop
;// look if search for all possible
;// ID numbers
;// -> if not next try
;// ID String not found -> quit with error message
mov
dx, OFFSET MsgErr
;// DS:DX points to message
jmp
PrintOut
;// check presence of LDVGA via multiplex function DETECTLDVGA
Detect:
mov
al, DETECTLDVGA
mov
ah, IDNr
;// use examined ID number
int
02Fh
or
ax, ax
;// have we found the LDVGA
jz
NotFound
;// -> NO
mov
dx, OFFSET MsgFound
;// DS:DX points to message
jmp
PrintOut
NotFound:
mov
PrintOut:
mov
int
MainExit:
mov
int
Start
dx, OFFSET MsgNoLDVGA
;// DS:DX points to message
ah, 09h
21h
;// Request print string function 09h
ax, 04C00h
21h
;// end program
ENDP
END
Start
5.3.2 Summary of the extended API functions
The following charts list a brief summary of all CiTouchD API functions in functional order.
5.3.2.1 Requesting CiTouchD parameters
By means of these commands all configuration parameters of the CiTouchD driver can be read out.
No.
05h
06h
07h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
1Bh
1Dh
20h
22h
27h
Designation
citGetFlags
citGetSerialHardware
citGetCommands
citGetCoordMode
citGetCalibrationAbs
citGetCalibrationRel
citGetDriverSettings
citGetTouchSettings
citGetTouchHardware
citGetDriverConstants
citGetVersion
citGetDimming
citGetAcceleration
citGetButtonBeep
citGetCitdFlags
Returned data
Current driver status
Parameters of serial interface
Parameters for Mouse Button Emulation
Parameters for coordinates calculation
Calibration parameters for absolute coordinates
Calibration parameters for relative coordinates
Variable driver parameters
Variable parameters of the IRT
Unchanging parameters of the IRT
Unchanging driver parameters
Versions number of CITOUCHD.EXE
Mark-to-space ratio of IRT's PWM output
Parameter for cursor acceleration
Parameter for mouse clicks
Extended driver status
Page
31
31
31
32
32
32
32
33
33
33
38
38
40
40
42
5.3.2.2 Changing CiTouchD parameters
By means of these commands all configuration parameters of the CiTouchD driver can be changed.
No.
0Fh
24
Designation
citSetSerialHardware
Changed parameters
Parameters of serial interface
Page
33
User's Manual CiTouchD
Software interface
10h
11h
12h
13h
14h
15h
1Eh
citSetCommands
citSetCoordMode
citSetCalibrationAbs
citSetCalibrationRel
citSetDriverSettings
citSetTouchSettings
citSetDimming
Parameters for Mouse Button Emulation
Parameters for coordinates calculation
Calibration parameters for absolute coordinates
Calibration parameters for relative coordinates
Variable driver parameters
Variable parameters of the IRT
Mark-to-space ratio of IRT's PWM output
34
34
34
35
35
35
40
21h
23h
28h
citSetAcceleration
citSetButtonBeep
citSetCitdFlags
Parameter for cursor acceleration
Parameter for mouse clicks
Setting of the Hardware-Reset-Handling
40
41
42
5.3.2.3 Communication with the IRT
The CiTouchD driver provides an easy-to-handle interface for both transmitting commands to the IRT and
receiving of reports from the IRT.
Before an application program is able to communicate with the IRT, the reception channel needs to be
opened by means of the function citOpen(). However, a CiTouchD driver with an open reception channel
does not report cursor motions or mouse clicks anymore. Therefore it is essential not to forget the call-up
of citClose() after having received the desired reports! Only complete reports are sent from the IRT to the
application program. This way it is not necessary for the application program having to recognize reports'
limits. However, only those IRT functions can be used that do not require a new initialization of the IRT.
Therefore, especially a reprogramming of the IRT's FLASH Memory is not possible.
Two methods are provided for the reception of IRT reports: Polling and Notification.
At the Polling the function citReceiveStatus() has to request continuously whether there is a complete
report from the IRT available. Is this the case, the report can be read by means of the function
citReceive().
At the Notification, however, an Event Handler of the application program is called up as soon as a
complete report was received. The address of the Event Handlers is determined by the user when calling
up the function citOpen(). At page 48 the structure of the notification is described.
If there is another report received by the IRT although the reception buffer was net read-out yet, the newly
received report is disregarded. This guarantees that an explicitly requested report cannot be overwritten
by subsequent coordinates messages of the IRT.
Possible commands for the IRT and the structure of IRT reports vary between the Mode-C communication
protocol and the CTS1 protocol. The respective commands are described in the user’s manual of the IRT.
No.
16h
17h
18h
Designation
citSend
citReceive
citOpen
19h
1Ah
1Ch
citClose
citReceiveStatus
citCheckBreak
Function
Transmits one byte to the IRT
Receives a complete report from the IRT
Opens the reception channel between IRT and
computer
Closes the reception channel
Determines the status of the reception channel
Checks a serial interface for 100ms Breaks
Page
35
36
36
36
38
38
5.3.2.4 General help functions
Besides the interfaces required for the mouse emulation, the CiTouchD driver also provides several useful
functions.
No.
00h
01h
25h
26h
Command
citPresence
citGetPSP
citDetectLDVGA
citPlaySound
Function
Requests installation status
Determines PSP of resident driver
Checks whether an LDVGA graphics board exists
Emits a sound to the PC speaker
Page
30
30
41
41
25
CITRON
Software interface
5.3.3 Reference of the extended API functions
In the following a reference of the extended API functions is listed in numerical order. These functions can
be accessed via the Int 2Fh (Multiplex Interrupt). How to determine the required identification number of
the CiTouchD driver was already described earlier in this manual.
Function 00h
citPresence
Input:
AL
AH
= 00h
= Identification number of the CiTouchD driver
Response:
AL
= 0FFh Identification number valid, ES:DI points onto a string
with 8 characters of length.
= 00h No resident program with this identification number
available. In this case is ES:DI invalid.
AL
Description:
If CiTouchD is installed, this function returns the value FFh to the AL
register and a pointer onto the identification string „CiTouchD“
(ASCIIZ-Format) to the ES:DI register pair. Exclusively in this case
the other functions of the Multiplex Interrupt can be called up, too.
The value to be written into register AH depends on the computer's
configuration. For a detailed description refer to the chapter
"Determining the identification number" at page 25.
Function 01h
citGetPSP
Input:
AL
AH
Response:
ES:DI = Segment and offset of the resident part of CiTouchD
Description:
This function provides the PSP of the resident part of the driver.
26
= 01h
= Identification number of the CiTouchD driver
User's Manual CiTouchD
Software interface
citGetFlags
Function 05h
Input:
AL
AH
= 05h
= Identification number of the CiTouchD driver
Response:
AX
= Current status of the CiTouchD driver
Description:
The current driver status is carried in the return word as bit flags. The
single bits have the following meaning:
Bit 3 = IF_SMOOTH_ALWAYS
Smoothing is also active
between two touchings
Bit 4 = IF_FIRST_COORDINATE First coordinates message
Bit 5 = IF_BEEP_MODE
Acoustic signals as response
to mouse clicks
Bit 6 = IF_ABSOLUTE_MODE
Absolute coordinates are used
Bit 7 = IF_Z_TOUCH
A 3D-IRT was detected
Bit 8 = IF_ENABLED
The driver is activated
Bit 11 = IF_INT_ON
The hardware Interrupts are
enabled
Bit 12 = IF_BREAK
Breaks were received by IRT
Bit 13 = IF_AUTOREINIT
Automatic reinitialization is
enabled
Bit 14 = IF_ON_SLAVEPIC
The used Interrupt vector is
situated at the second PIC of
the computer.
Bit 15 = IF_IRT_EXISTS
An IRT was detected
Function 06h
citGetSerialHardware
Input:
AL
= 06h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a SERIALHARDWARE structure for the
returning of the serial interface parameters.
Response:
AX
= Number of bytes written into the SERIALHARDWARE
structure
Description:
The serial interface parameters are written into the
SERIALHARDWARE structure the pointer of which was passed in
ES:DI. For a description of this structure refer to page 47.
Function 07h
citGetCommands
Input:
AL
= 07h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a COMMANDS structure for the returning of
the Mouse Button Emulation parameters.
Response:
AX
Description:
= Number of bytes written into the COMMANDS structure
The parameters for the Mouse Button Emulation are written into the
COMMANDS structure the pointer of which was passed in ES:DI. For
a description of this structure refer to page 45. For a description of
the function of the Mouse Button Emulation refer to chapter "Userdefined key emulation" at page 12.
27
CITRON
Function 08h
Software interface
citGetCoordMode
Input:
AL
= 08h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a COORDMODE structure for the returning of
the coordinates output parameters.
Response:
AX
= Number of bytes written into the COORDMODE structure
Description:
The parameters for the coordinates output are written into the
COORDMODE structure the pointer of which was passed in ES:DI.
For a description of this structure refer to page 46.
Function 09h
citGetCalibrationAbs
Input:
AL
= 09h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a CALIBRATIONABS structure for the
returning of the absolute calibration parameters.
Response:
AX
= Number of bytes written into the CALIBRATIONABS
structure
Description:
The calibration parameters of the absolute coordinates mode are
written into the CALIBRATIONABS structure the pointer of which was
passed in ES:DI. For a description of this structure refer to page 44.
Function 0Ah
citGetCalibrationRel
Input:
AL
= 0Ah
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a CALIBRATIONREL structure for the
returning of the relative calibration parameters.
Response:
AX
= Number of bytes written into the CALIBRATIONREL
structure
Description:
The calibration parameters of the relative coordinates mode are
written into the CALIBRATIONREL structure the pointer of which was
passed in ES:DI. For a description of this structure refer to page 44.
Function 0Bh
citGetDriverSettings
Input:
AL
= 0Bh
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a DRIVERSETTINGS structure for the
returning of the driver parameters.
Response:
AX
Description:
28
= Number of bytes written into the DRIVERSETTINGS
structure
The variable driver parameters are written into the
DRIVERSETTINGS structure the pointer of which was passed in
ES:DI. For a description of this structure refer to page 47.
User's Manual CiTouchD
Software interface
Function 0Ch
citGetTouchSettings
Input:
AL
= 0Ch
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a TOUCHSETTINGS structure for the
returning of the variable IRT parameters.
Response:
AX
= Number of bytes written into the TOUCHSETTINGS
structure
Description:
The variable IRT parameters are written into the TOUCHSETTINGS
structure the pointer of which was passed in ES:DI. For a description
of this structure refer to page 48.
Function 0Dh
citGetTouchHardware
Input:
AL
= 0Dh
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a TOUCHHARDWARE structure for the
returning of the unchanging IRT parameters.
Response:
AX
= Number of bytes written into the TOUCHHARDWARE
structure
Description:
The unchanging IRT parameters are written into the
TOUCHHARDWARE structure the pointer of which was passed in
ES:DI. For a description of this structure refer to page 48.
Function 0Eh
citGetDriverConstants
Input:
AL
= 0Eh
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a DRIVERCONSTANTS structure for the
returning of driver constants.
Response:
AX
= Number of bytes written into DRIVERCONSTANTS
structure
Description:
The unchanging driver parameters are written into the
DRIVERCONSTANTS structure the pointer of which was passed in
ES:DI. For a description of this structure refer to page 46.
Function 0Fh
citSetSerialHardware
Input:
AL
= 0Fh
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a SERIALHARDWARE structure with the new
serial interface parameters.
Response:
AX
AX
Description:
= 0001h
= 0000h
The new parameters could be set..
The parameters could not be changed.
The serial interface parameters are changed according to the
SERIALHARDWARE structure the pointer of which was passed in
ES:DI. For a description of this structure refer to page 47. If the
parameters could not be changed, the old status remains.
29
CITRON
Function 10h
Software interface
citSetCommands
Input:
AL
= 10h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a COMMANDS structure with the new parameters for the Mouse Button Emulation.
Response:
AX
AX
= 0001h
= 0000h
The new parameters could be set.
The parameters could not be changed.
Description:
The parameters for the Mouse Button Emulation are changed
according to the COMMANDS structure the pointer of which was
passed in ES:DI. For a description of this structure refer to page 45.
For a description of the function of the Mouse Button Emulation refer
to chapter "User-defined key emulation" at page 12. If the parameters
could not be changed, the old status remains.
Function 11h
citSetCoordMode
Input:
AL
= 11h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a COORDMODE structure with the new
parameters for the coordinates output.
Response:
AX
AX
= 0001h
= 0000h
The new parameters could be set.
The parameters could not be changed.
Description:
The parameters for the coordinates output are changed according to
the COORDMODE structure the pointer of which was passed in
ES:DI. For a description of this structure refer to page 46. If the
parameters could not be changed, the old status remains.
Function 12h
citSetCalibrationAbs
Input:
AL
= 12h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a CALIBRATIONABS structure with the new
absolute calibration parameters.
Response:
AX
EX
Description:
30
= 0001h
= 0000h
The new parameters could be set.
The parameters could not be changed.
The calibration parameters of the absolute coordinates mode are
changed according to the CALIBRATIONABS structure the pointer of
which was passed in ES:DI. For a description of this structure refer to
page 44. If the parameters could not be changed, the old status
remains.
User's Manual CiTouchD
Software interface
Function 13h
citSetCalibrationRel
Input:
AL
= 13h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a CALIBRATIONREL structure with the new
relative calibration parameters.
Response:
AX
AX
= 0001h
= 0000h
The new parameters could be set.
The parameters could not be changed.
Description:
The calibration parameters of the relative coordinates mode are
changed according to the CALIBRATIONREL structure the pointer of
which was passed in ES:DI. For a description of this structure refer to
page 44. If the parameters could not be changed, the old status
remains.
Function 14h
citSetDriverSettings
Input:
AL
= 14h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a DRIVERSETTINGS structure with the new
driver parameters.
Response:
AX
AX
= 0001h
= 0000h
The new parameters could be set.
The parameters could not be changed.
Description:
The new driver parameters are changed according to the
DRIVERSETTINGS structure the pointer of which was passed in
ES:DI. For a description of this structure refer to page 47. If the
parameters could not be changed, the old status remains.
Function 15h
citSetTouchSettings
Input:
AL
= 15h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a TOUCHSETTINGS structure with the new
IRT parameters.
Response:
AX
AX
= 0001h
= 0000h
The new parameters could be set.
The parameters could not be changed.
Description:
The new IRT parameters are changed according to the
TOUCHSETTINGS structure the pointer of which was passed. For a
description of this structure refer to page 48. If the parameters could
not be changed, the old status remains.
Function 16h
citSend
Input:
AL
AH
BL
Response:
none
= 16h
= Identification number of the CiTouchD driver
= Data byte to be transmitted to the IRT.
Description:
A byte is transmitted to the IRT. Supposed that the transmission
buffer of the interface module is full, the transmission will wait until
this module is empty.
Commands in the CTS1 protocol have to be encoded beforehand, i.e.
the application program has to add the DC2/DC4 and SYN
sequences.
Function 17h
citReceive
31
CITRON
Input:
Software interface
AL
= 17h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a buffer the received report is copied to.
Response:
AX = Status of the reception buffer
Possible return values:
00h = CRS_IDLE
No report available
01h = CRS_READY
A report was received
02h = CRS_OVER
Further reports were received.
However, the reported that was
received first still completely
exists in the buffer.
04h = CRS_CLOSE
The driver was not opened by
citOpen (function 18h).
Description:
By means of this function a report that was completely received by
the IRT can be read out. If there is no report available it is not waited
for but immediately returned with an according status code. The
maximum required size for the reception buffer can be requested by
means of the function citGetDriverConstants (function 0Eh).
Reports in the CTS1 protocol are already decoded, i.e. they do not
contain DC2/DC4 and SYN sequences anymore.
Function 18h
citOpen
Input:
AL
= 18h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto either an Event Handler or NUL in case there
are no notifications to be transmitted.
Response:
AX
AX
= 0001h The reception channel could be opened.
= 0000h The reception channel could not be opened.
Possible causes for that are either an already opened
reception channel or a driver that was not initialized.
Description:
Before an application program is able to receive reports from the IRT,
the reception channel needs to be opened beforehand. However, a
CiTouchD driver with an open reception channel does not report
cursor motions or mouse clicks anymore. Therefore it is essential not
to forget the call-up of citClose (function 19h) after having received
the desired reports!
Function 19h
citClose
Input:
AL
AH
= 19h
= Identification number of the CiTouchD driver
Response:
AX
AX
= 0001h Reception channel could be closed
= 0000h Reception channel could not be closed. Possible
causes for that are either an already closed reception
channel or a driver that was not initialized.
Description:
32
For the CiTouchD driver to restore its normal function as a mouse
driver, the reception channel, that was opened earlier to be able to
receive reports, has now to be closed again.
User's Manual CiTouchD
Software interface
Function 1Ah
Input:
citReceiveStatus
AL
AH
= 1Ah
= Identification number of the CiTouchD driver
Response:
AX = Status of the reception buffer
Possible return values:
00h = CRS_IDLE
No report available
01h = CRS_READY
A report was received
02h = CRS_OVER
Further reports were received.
However, the reported that was
received first still completely
exists in the buffer.
04h = CRS_CLOSE
The driver was not opened by
citOpen (function 18h).
Description:
The current status of the reception buffer is requested.
Function 1Bh
Versions number of CITOUCHD.EXE
Input:
AL
AH
= 1Bh
= Identification number of the CiTouchD driver
Response:
DH
DL
AH
AL
= Main version number
= Sub version number
= Revision number
= Stage
Description:
The version number of CiTouchD is requested. However, by means of
®
the function int33Inquire the Microsoft mouse driver compatible
version is returned.
Function 1Ch
citCheckBreak
Input:
AL
AH
= 1Ch
= Identification number of the CiTouchD driver
Response:
AX
AX
= 0001h
= 0000h
There were 100ms Breaks detected
There were no 100ms Breaks detected
Description:
A not initialized IRT transmits BREAK signals in time intervals of
100ms. By means of this function a serial interface can be searched
for these signals.
Function 1Dh
citGetDimming
Input:
AL
= 1Dh
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a DIMMING structure for the returning of
dimming parameters.
Response:
AX
Description:
= Number of bytes written into DIMMING structure
The parameters for the control of the PWM output of the IRT are
written into the DIMMING structure the pointer of which was passed
in ES:DI. For a description of this structure refer to page 46.
33
CITRON
Function 1Eh
Software interface
citSetDimming
Input:
AL
= 1Eh
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a DIMMING structure with the new parameters
for the control of the IRT's PWM output.
Response:
AX
AX
= 0001h
= 0000h
The new parameters could be set.
The parameters could not be changed.
Description:
The parameters for the control of the IRT's PWM output are changed
according to the DIMMING structure the pointer of which was passed
in ES:DI. For a description of this structure refer to page 46. If the
parameters could not be changed, the old status remains.
Function 20h
citGetAcceleration
Input:
AL
= 20h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto an ACCELERATION structure for the returning
of the parameters for the cursor acceleration.
Response:
AX
= Number of bytes written into ACCELERATION structure
Description:
The parameters for the cursor acceleration are written into the
ACCELERATION structure the pointer of which was passed in ES:DI.
For a description of this structure refer to page 43.
Function 21h
citSetAcceleration
Input:
AL
= 21h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto an ACCELERATION structure with the new
parameters for the cursor acceleration.
Response:
AX
AX
= 0001h
= 0000h
The new parameters could be set.
The parameters could not be changed.
Description:
The parameters for the cursor acceleration are changed according to
the ACCELERATION structure the pointer of which was passed in
ES:DI. For a description of this structure refer to page 43. If the
parameters could not be changed, the old status remains.
Function 22h
citGetButtonBeep
Input:
AL
= 22h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a BUTTONBEEP structure for the returning of
mouse click parameters.
Response:
AX
Description:
34
= Number of bytes written into BUTTONBEEP structure
The parameters for the creation of a mouse click are written into the
BUTTONBEEP structure the pointer of which was passed in ES:DI.
For a description of this structure refer to page 43.
User's Manual CiTouchD
Software interface
Function 23h
citSetButtonBeep
Input:
AL
= 23h
AH = Identification number of the CiTouchD driver
ES:DI = Pointer onto a BUTTONBEEP structure with the new parameters for the mouse click creation.
Response:
AX
AX
= 0001h
= 0000h
The new parameters could be set.
The parameters could not be changed.
Description:
The parameters for the creation of a mouse click are changed
according to BUTTONBEEP structure the pointer of which was
passed in ES:DI. For a description of this structure refer to page 43. If
the parameters could not be changed, the old status remains.
Function 25h
citDetectLDVGA
Input:
AL
AH
= 25h
= Identification number of the CiTouchD driver
Response:
AX
AX
= 0001h
= 0000h
A Citron LDVGA board was detected
There is no Citron LDVGA board available.
Description:
This function determines whether a Citron Long-Distance-VGA board
is available.
Function 26h
citPlaySound
Input:
AL
AH
BX
CX
Response:
none
Description:
= 26h
= Identification number of the CiTouchD driver
= Sound pitch in Hertz [Hz]
= Duration in milliseconds [ms]
This function emits a sound with the determined pitch and duration to
the PC speaker. The function itself returns as soon as the beep
emission has started. This way the computer is not blocked for the
duration of the beep.
35
CITRON
Software interface
Function 27h
Extended driver status
Input:
AL
AH
Response:
AX = Current operating mode of the CiTouchD driver
Description:
= 27h
= Identification number of the CiTouchD driver
The return value carries the operating mode as a bit sequence. The
single bits have the following meaning:
Bit 0 = CTDF_VESA ->VGA board supports VESA standard
Bit 1 = CTDF_CHANGEMODE ->Video Mode was changed
Bit 2 = CTDF_TEXT -> Graphics board works in the text mode
Bit 3 = CTDF_SOFT -> Usage of the software text cursor
Bit 4 = CTDF_EGA -> EGA board found
Bit 5 = CTDF_VGA -> VGA board found
Bit 6 = CTDF_MONO -> monochrome EGA/VGA video mode
Bit 7 = CTDF_EXTVIDEO -> Function of extended Video BIOS
Bit 8 = CTDF_STACK -> CiTouchD uses own stack
Bit 9 = CTDF_HARDRESET0 -> Touch Reset in function Int33h/00h
Bit 10 = CTDF_HARDRESET2F-> Touch Reset in function Int33/2Fh
Bit 11 = CTDF_HIDE -> No own cursor in WINDOWS
Bit 12 = CTDF_SYS -> CiTouchD loaded in CONFIG.SYS
Bit 13 = CTDF_CONDOFF -> Conditional off is active
This version of CiTouchD does not support CTDF_EGA,
CTDF_EXTVIDEO and CTDF_SYS yet. These bits are always 0.
Function 28h
Setting of the Hardware-Reset-Handling
Input:
AL
AH
BX
= 28h
= Identification number of the CiTouchD driver
= Flags to be changed
Response:
AX
= 0 in case the Read-Only-Flags are to be changed.
Description:
By changing the flags CTDF_HARDRESET0 Bit 9 and
CTDF_HARDRESET2F Bit 10, the response of the Touch to a reset
caused by the Int33h functions 00h and 2Fh can be changed.
All other flags are read-only and have to be set to 0 in BX.
5.3.4 Reference of the structures
In order to pass parameters to the extended API functions, numerous structures are defined. In the
following these structures are listed in alphabetical order. Please note, that the API functions do not
expect additional fill-up bytes between the structure elements. The following data types are used:
36
Type
char
BYTE
short
WORD
BOOL
Length
1 byte
1 byte
2 byte
2 byte
2 byte
DWORD
4 byte
Value rage
-128… 127
0… 255
-32768… 32767
0… 65535
0, 1
Description
Signed integer value
Unsigned integer value
Signed integer value
Unsigned integer value
Unsigned integer value. Values unequal 0 are interpreted as
TRUE, the value 0 is interpreted as FALSE.
0… 4294967295 Unsigned integer value
User's Manual CiTouchD
Software interface
ACCELERATION
This structure contains the parameters for the cursor acceleration.
Type
short
short
WORD
WORD
Name
acMulX
acMulY
acBorderX
acBorderY
Description
Acceleration factor for X-coordinates
Acceleration factor for Y-coordinates
Width of acceleration range (in Touch coordinates !)
Height of acceleration range (in Touch coordinates !)
The items acMulX and acMulY are signed fixed-point numbers. Their value range is calculated by
the formulas
acMulX max =
32767 *dcFixedBias
caMulX
acMulYmax =
32767 *dcFixedBias
caMulY
The scaling factor dcFixedBias for the fixed-point numbers can be requested by means of
citGetDriverConstants (function 0Eh). The items caMulX or caMulY, respectively, can be
requested by means of citGetCalibrationAbs (function 09h).
The items acBorderX and acBorderY are declared in Touch coordinates. Their value range is:
acBorderX max = 32767
acBorderYmax = 32767
BUTTONBEEP
This structure contains the parameters for the mouse click creation.
Type
WORD
WORD
Name
bbFreqDown
bbTimeDown
WORD
bbFreqUp
WORD
bbTimeUp
WORD
bbClickMode
Description
Frequency of beep in Hertz [Hz] when key is pressed
Duration of beep in milliseconds [ms] when key is
pressed
Frequency of beep in Hertz [Hz] when key is
released
Duration of beep in milliseconds [ms] when key is
released
The following constants determine the conditions for
a beep to be created:
00h = BC_OFF
No beep creation
01h = BC_DOWN Beep creation when emulated
key is pressed
02h = BC_UP
Beep creation when emulated
key is released
37
CITRON
Software interface
CALIBRATIONABS
This structure contains the parameters for the calibration of absolute coordinates. The formula that
is used for the calibration of absolute coordinates represents a simple straight line equation.
y = mx + t , with y = calibrated coordinates and x = coordinates provided by IRT
CiTouchD expects calibrated coordinates with a value range from 0 up to 65535.
Type
DWORD
short
DWORD
short
WORD
Name
caMulX
caAddX
caMulY
caAddY
caOrientation
Description
"m" for the X-coordinate
"t" for the X-coordinate
"m" for the Y-coordinate
"t" for the Y-coordinate
Orientation of the IRT in relation to the display.
Corresponding to the position of the IRT's
connecting plug in relation to the left-hand side top
corner of the display, one of the following values is
used:
00h = OR_TOPLEFT
left-hand side top
corner
01h = OR_TOPRIGHT
right-hand side top
corner
02h = OR_BOTTOMRIGHT right-hand side
bottom corner
03h = OR_BOTTOMLEFT
left-hand side
bottom corner
The items caMulX and caMulY are unsigned fixed-point numbers. The scaling factor for the fixedpoint numbers can be requested by means of citGetDriverConstants (function 0Eh).
CALIBRATIONREL
This structure contains the parameters for the calibration of relative coordinates. The following
formula is used for the calibration of relative coordinates:
y = x ⋅md
Type
short
WORD
short
WORD
38
Name
crMulX
crDivX
crMulY
crDivY
Description
"m" for the X-coordinate
"d" for the X-coordinate
"m" for the Y-coordinate
"d" for the Y-coordinate
User's Manual CiTouchD
Software interface
COMMANDS
This structure contains the parameters for Mouse Button Emulation. The creation of a mouse click
is described at the chapter "User-defined key emulation" at page 12.
Type
WORD
WORD
WORD
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
Name
cmdT1
cmdT2
cmdT3
cmdIdleT1
cmdT1Trigger
cmdTriggerT2
cmdT2UpT3
cmdUpT3Idle
cmdUpT3Trigger
cmdModeChange
BYTE
cmdReserved1
Description
First time constant in steps of 1 ms
Second time constant in steps of 1 ms
Third time constant in steps of 1 ms
Condition 1
Condition 2
Condition 3
Condition 4
Condition 5
Condition 6
Condition for the change between absolute and
relative coordinates.
reserved
Possible values for the conditions from 1 to 6:
Value
00h
01h
02h
03h
04h
05h
Designation
BM_NEVER
BM_IMMED
BM_ENTER
BM_ZPRESS
BM_DUAL
BM_TAP
06h
07h
BM_LEAVE
BM_ZRLSE
08h
BM_NODUAL
Meaning
Never TRUE
Always TRUE
TRUE as soon as the Touch Zone is interrupted
TRUE as soon as a certain pressure onto the Touch Zone is exceeded
TRUE as soon as a dual touching of the Touch Zone occurs
TRUE when the Touch Zone is released and then interrupted again within a
certain period of time ("tap")
TRUE as soon as Touch Zone is released
TRUE as soon as the pressure exerted onto the Touch Zone falls below its
limit value again
TRUE as soon as the dual touching of the Touch Zone ends
The following values can be used for the field "cmdModeChange":
Value
00h
03h
04h
05h
Designation
MC_NEVER
MC_ZPRESS
MC_DUAL
MC_TAP
Meaning
Never change mode
TRUE as soon as a certain pressure onto the Touch Zone is exceeded
TRUE as soon as a dual touching of the Touch Zone occurs
TRUE when the Touch Zone is released and then interrupted again within a
certain period of time ("tap")
39
CITRON
Software interface
COORDMODE
The structure contains the parameters for the coordinates creation.
Type
BOOL
Name
cmCoordEnterZ
Description
TRUE
FALSE
BOOL
cmCoordSignalZ
TRUE
FALSE
The first coordinates message after
interrupting the Touch Zone requires the preset
limit value for the pressure exerted onto the
front screen to be exceeded.
The first coordinates message immediately
occurs after interrupting the Touch Zone.
Additional coordinates messages also require
the preset limit value for the pressure exerted
onto the front screen to be exceeded.
For additional coordinates messages it is
sufficient that the Touch Zone remains
interrupted.
DIMMING
The structure contains the parameters for the control of the PWM output of the IRT.
Type
WORD
WORD
BOOL
Name
blDimmingHigh
blDimmingLow
blSaverActive
Description
Mark-to-space ratio at deactivated Touch Saver
Mark-to-space ratio at activated Touch Saver
TRUE at activated Touch Saver
The values for blDimmingHigh and blDimmingLow range from 0 up to 255. If both values equal 0,
the mark-to-space ratio is set to its maximum regardless of the status of the Touch Saver. The
activation time for the Touch Saver is determined by means of citSetTouchSettings (function
15h).
The value for blSaverActive is set by means of citGetDimming (function 1Dh). The function
citSetDimming (function 1Eh) disregards this parameter, therefore it is neither able to activate nor
deactivate the Touch Saver!
DRIVERCONSTANTS
This structure contains the unchanging parameters (constants) of the CiTouchD driver.
40
Type
WORD
Name
dcSmoothMax
WORD
dcFixedBias
WORD
dcReportMax
WORD
dcKeyNum
WORD
dcKeyMode
Description
Upper limit for the smoothing factors. The smoothing
factors have to be smaller than the value declared
here.
Scaling factor of the fixed-point format for the
calibration of absolute coordinates.
Maximum size of buffer for the reception of IRT
reports.
The IRT is operated in the key mode in which one
single key is defined by means of the number
declared here.
Operating mode of the key in the Mode-C protocol.
User's Manual CiTouchD
Software interface
DRIVERSETTINGS
This structure contains the variable parameters of the CiTouchD driver.
Type
WORD
WORD
short
short
WORD
Name
dsSmoothX
dsSmoothY
dsOfsX
dsOfsY
dsTapTime
WORD
dsCoordSkip
WORD
dsDberrSkip
WORD
dsButtonNum
BOOL
dsAutoInit
BOOL
dsButtonClick
BOOL
BOOL
dsAbsolute
dsSmoothAlways
Description
Smoothing factor for the X-axis
Smoothing factor for the Y-axis
X-distance between touch spot and cursor position
Y-distance between touch spot and cursor position
Time span in which the IRT has to be interrupted a
second time in order to create a Tap. The Tap Time
is declared in steps of 55 ms.
Number of coordinates messages to be disregarded
before a new cursor position is reported.
Number of dual touching messages to be
disregarded before a dual touching is actually
detected.
Number of Mouse Button to be emulated.
1 = left-hand side mouse button
2 = right-hand side mouse button
3 = both mouse buttons simultaneously
TRUE if after an interruption of the connection
between the IRT and the computer the linking is to
be automatically restored.
TRUE if an acoustic signal is to occur as response to
a mouse click
TRUE if absolute coordinates are to be used.
TRUE if the coordinates smoothing should also
cover the release and once more interruption of the
Touch Zone.
SERIALHARDWARE
This structure contains the parameters of the serial interface.
Type
WORD
short
WORD
Name
shPort
shInterrupt
shBaudDiv
Description
Base address of the serial interface module
Respective ISA Bus Interrupt channel
Divisor for the baud rate
41
CITRON
CITOUCHD.INI
TOUCHHARDWARE
This structure contains the unchanging parameters of the IRT.
Type
WORD
WORD
WORD
WORD
WORD
Name
thBeamsX
thBeamsY
thResolutionX
thResolutionY
thProtocol
Char
char
char
BYTE
char
thDesignator[33]
thAssy[17]
thMem
thReserved1
thComment[257]
Description
Number of physically present X-light barriers
Number of physically present Y-light barriers
Maximum X-coordinate provided by the IRT
Maximum Y-coordinate provided by the IRT
Communication protocol used by the IRT. This field
can take over one of the values defined by the
TP_??? constants.
Designation of the IRT (0-terminated string)
ASSY number of the IRT (0-terminated string)
'E' = EPROM, 'F' = FLASH Memory
reserved
At the Mode-C protocol: optional comment
(0-terminated string)
At the CTS1 protocol: Serial number of the IRT
(0-terminated string)
TOUCHSETTINGS
This structure contains the variable parameters of the IRT.
Type
WORD
WORD
WORD
Name
tsMinBeamsX
tsMinBeamsY
tsBeamTimeout
WORD
tsTCont
WORD
WORD
tsPressLevel
tsTSaver
WORD
tsTScan
Description
Minimum number of interrupted X-light barriers
Minimum number of interrupted Y-light barriers
Blank-out time for defective light barriers in steps of
1 s.
Time interval between two coordinates messages in
steps of 1 ms.
Pressure sensitivity
Time span to elapse before the Touch Saver is
activated in steps of 1 s.
Time interval between two scan operations at
activated Touch Saver in steps of 1 ms.
5.3.5 Notification by the CiTouchD
If upon the call of citOpen (function 18h) a pointer to an Event Handler was passed, CiTouchD calls up
this Event Handler as soon as a complete report was received from the IRT. Please note that the Event
Handler is called within the Interrupt-Service-Routine of CiTouchD and therefore should return as quickly
as possibly. Especially DOS or BIOS functions, respectively, may not be called! Upon the call of the Event
Handler the registers are set to the following values:
AX
CX
ES:DI
Status of reception buffer (like at citReceive, function 17h)
Number of bytes in the reception buffer
Pointer onto the reception buffer, read-only-register!
The Event Handler has to return one of the following values to AX:
00h Reception buffer was not read, status of buffer not to be changed.
01h Reception buffer was read, contents of buffer to be erased.
6 CITOUCHD.INI
The CiTouchD driver saves its parameters in the file CITOUCHD.INI. When CiTouchD is started the
values saved here are used unless they are overwritten by parameters entered at the prompt.
42
User's Manual CiTouchD
CITOUCHD.INI
In the following the various sections and entries of the file CITOUCHD.INI are listed in alphabetical order.
If an entry is omitted, either the default value that is saved in the driver or the respective prompt parameter
is used.
Sections of the file CITOUCHD.INI:
Section
Function
[Acceleration]
Parameters for the cursor acceleration
[Calibration]
Calibration of absolute and relative coordinates
[Commands]
Mouse button emulation
[Hardware]
Parameters of the serial interface
[Settings]
General settings for the driver and the IRT
[Sound]
Settings for the mouse click creation
[Citouchd]
Settings for the behaviour of CiTouchD as mouse driver
6.1.1 [Acceleration]
This section contains the parameters for the cursor acceleration when absolute coordinates are used.
In the section [Acceleration] the following entries are possible:
X_Border = 0..32767
This entry determines the width of the area in which the cursor is accelerated in comparison to the finger
movement. The default value is 7864, which equals 24%.
Y_Border = 0..32767
This entry determines the height of the area in which the cursor is accelerated in comparison to the finger
movement. The default value is 7864, which equals 24%.
X_Mul = 0..(32767*dcFixedBias)/caMulX
This entry determines the factor with which the cursor is accelerated in comparison to the finger
movement in X-direction. The default value 256, which equals a factor of 1,0.
Y_Mul = 0..(32767*dcFixedBias)/caMulY
This entry determines the factor with which the cursor is accelerated in comparison to the finger
movement in Y-direction. The default value 256, which equals a factor of 1,0.
43
CITRON
CITOUCHD.INI
6.1.2 [Calibration]
This section contains the calibration parameters for absolute and relative coordinates.
In the section [Calibrations] the following entries are possible:
X_Add = -32767..32767
This entry determines the offset of the straight line equation for the calibration of absolute X-coordinates.
The default value is 0.
X_Mul = 0..65535
This entry determines the slope of the straight line equation for the calibration of absolute X-coordinates.
X_Mul represents an unsigned fixed-point number. The scaling factor can be requested by means of the
function citGetDriverConstants. The default value is 256.
XRel_Div = 0..65535
This entry determines the divisor for the scaling of relative X-coordinates.
The default value is 1.
XRel_Mul = -32768..+32767
This entry determines the multiplier for the scaling of relative X-coordinates..
The default value is -1.
Y_Add = -32767..32767
This entry determines the offset of the straight line equation for the calibration of absolute Y-coordinates.
The default value is 0.
Y_Mul = 0..65535
This entry determines the slope of the straight line equation for the calibration of absolute Y-coordinates.
Y_Mul represents an unsigned fixed-point number. The scaling factor can be requested by means of the
function citGetDriverConstants (function 0Eh). The default value is 256.
YRel_Div = 0..65535
This entry determines the divisor for the scaling of relative Y-coordinates.
The default value is 1.
YRel_Mul = -32768..+32767
This entry determines the multiplier for the scaling of relative Y-coordinates..
The default value is -1.
44
User's Manual CiTouchD
CITOUCHD.INI
6.1.3 [Commands]
This section contains the parameters for the Mouse Button Emulation. For a description of the Mouse
Button Emulation refer to chapter "Pre-defined Mouse Button Emulation Modes" at page 6.
The values for the conditions of the status transitions have the following meaning:
Value
Meaning
0
1
2
3
4
5
6
7
8
Never
Immediately
Enter
Z-Press
Dual Touch
Tap
Leave
Z-Release
No Dual Touch
In the section [Commands] the following entries are possible:
Idle_T1 = 0..8
This entry determines the condition for the transition from status "IDLE" to the status "T1". The default
value is 2.
ModeChange = 0 | 3 | 4 | 5
Condition for the change between absolute and relative coordinates. The default value is 0.
T1_Trigger = 0..8
This entry determines the condition for the transition from status "T1" to the status "TRIGGER". The
default value is 4.
T2_UPT3 = 0..8
This entry determines the condition for the transition from status "T2" to the status "T3". The default value
is 0.
Time1 = 0..65535
This entry determines the time constant for the status "T1". The value entered here corresponds to the
desired time constant in milliseconds. The default value is 0.
Time2 = 0..65535
This entry determines the time constant for the status "T2". The value entered here corresponds to the
desired time constant in milliseconds. The default value is 0.
Time3 = 0..65535
This entry determines the time constant for the status "T3". The value entered here corresponds to the
desired time constant in milliseconds. The default value is 0.
45
CITRON
CITOUCHD.INI
Trigger_T2 = 0..8
This entry determines the condition for the transition from status "TRIGGER" into the status "T2". The
default value is 6.
UPT3_Idle = 0..8
This entry determines the condition for the transition from status "T3" into the status "IDLE". The default
value is 0.
UPT3_Trigger = 0..8
This entry determines the condition for the transition from status "T3" into the status "TRIGGER". The
default value is 0.
6.1.4 [Hardware]
This section contains the parameters of the serial interface.
In the section [Hardware] the following entries are possible:
BaudDivisor = 0..65535
This entry determines the divisor for the baud rate generator. The following formula is used to calculate
the baud rate:
f Quarz
BaudRate =
;
generally fQuarz = 1.8432 MHz
16 ⋅BaudDivisor
The default value for BaudDivisor is 6 or 19200 baud if fQuarz = 1.8432 MHz.
Interrupt = 0..15
This entry determines the number of the ISA Bus Interrupt channel of the serial interface. The default
value is 4.
IO_Base = 0..65535
This entry determines the base address of the serial interface module. The default value is 0x3f8.
IRT_Mode = 0 | 1 | 2
This entry contains the most recently detected communication protocol of the IRT. This way the IRT can
be linked faster. In case this entry is either omitted or faulty, the CiTouchD driver attempts to detect the
current communication protocol automatically. The following assignment of values to detected
communication protocols is used:
Value
0
1
2
46
Meaning
No protocol detected
Mode-C protocol
CTS1 protocol
CITOUCHD.INI
User's Manual CiTouchD
6.1.5 [Settings]
This section contains all variable operational parameters of both the driver and the IRT.
In the section [Settings] the following entries are possible:
AbsoluteMouse = Yes | No
This entry determines whether after an initialization of the driver absolute or relative coordinates are used.
If the entry "ModeChange" in the section [Commands] contains any other value than 0, the coordinates
mode can be dynamically changed during regular operation. The default value is Yes (1).
AutoReinit = Yes | No
This entry determines whether after an interruption of the connection between the IRT and the computer
the linking should take place automatically. The default value is Yes (1).
BeamTimeout = 0..65535
This entry determines the blank-out time for defective light barriers. If an interruption of any IRT's light
barrier lasts longer than the time span determined here in seconds, it is excluded from the coordinates
calculation. The value 0 prevents the blanking-out of light barriers. The default value is 20.
Button = 1..3
This entry determines the Mouse Button to be emulated. 1 represents the left-hand side Mouse Button, 2
the right-hand side Mouse Button and 3 both mouse buttons at the same time. The default value is 1.
ButtonClick = Yes | No
This entry determines whether an acoustic signal at the PC speaker is to occur as a response to a mouse
click. The default value is Yes (1).
ContTime = 0..65535
This entry determines the time interval between two coordinates messages of the IRT. The value entered
here corresponds to a time interval in milliseconds. In this context the time required for the transmission of
a coordinates message has to be regarded (depends on the baud rate).
The default value is 22.
CoordEnterZ = Yes | No
This entry determines whether after the interruption of the Touch Zone the first reported cursor position
additionally requires the pressure exerted onto the screen to exceed its limit value. However, for that the
IRT needs to be equipped with a Z-axis. The default value is No (0).
CoordinateSkip = 0..65535
This entry determines the number of coordinates messages of the IRT to be disregarded after the
interruption of the Touch Zone. The default value is 1.
47
CITRON
CITOUCHD.INI
CoordSignalZ = Yes | No
This entry determines whether after the interruption of the Touch Zone further cursor positions additionally
require the pressure exerted onto the screen to exceed its limit value. The default value is No (0).
DblErrSkip = 0..65535
This entry determines the number of dual touching messages of the IRT to be disregarded before a dual
touching is actually detected. The default value is 1.
DimmingHigh = 0..255
This entry determines the mark-to-space ratio of the IRT's PWM output at deactivated Touch Saver. The
default value is 0.
DimmingLow = 0..255
This entry determines the mark-to-space ratio of the IRT's PWM output at activated Touch Saver. The
default value is 0.
MinXBeams = 1..5
This entry determines the number of X-light barriers that have to be interrupted simultaneously in order to
be detected as a valid interruption. The default value is 1.
MinYBeams = 1..5
This entry determines the number of Y-light barriers that have to be interrupted simultaneously in order to
be detected as a valid interruption. The default value is 1.
Pressure = 0..255
This entry determines the required pressure to be exerted onto the front screen in order to release the
pressure-controlled events of the driver. The value 0 deactivates the Z-axis of the IRT. The default value
is 20.
SaverScan = 1..65535
This entry determines the scan rate of the IRT at activated Touch Saver. The actual scan rate
corresponds to the value entered here in milliseconds. The default value is 500.
SaverTime = 0..65535
This entry determines the time span to elapse before the Touch Saver is activated. The activation time
corresponds to the value entered here in seconds. At a value of 0 the Touch Saver is immediately
activated. At a value of 65535 the Touch Saver is never activated. The default value is 65535.
48
User's Manual CiTouchD
CITOUCHD.INI
SmoothAlways = Yes | No
This entry determines whether the calculation of the average value of absolute coordinates should also
cover the release and once more interruption of the Touch Zone. The default value is No (0).
TapTime = 0..65535
This entry determines the time interval in which the Touch Zone has to be interrupted a second time in
order to create a Tap. The time interval corresponds to the value entered here in milliseconds. The default
value is 500.
X_Offset = -32768..+32767
This entry determines the X-distance between the touch spot and the current cursor position. Positive
values shift the cursor position towards the right-hand side, negative values towards the left-hand side.
The default value is 0.
X_Smoothing = 0..dcSmoothMax-1
This entry determines the number of coordinates messages of which an average value is calculated for
the smoothing of absolute X-coordinates. The upper limit can be requested by means of the function
citGetDriverConstants. The default value is 10.
Y_Offset = -32768..+32767
This entry determines the Y-distance between the touch spot and the current cursor position. Positive
values shift the cursor position downwards, negative values upwards. The default value is 0.
Y_Smoothing = 0..dcSmoothMax-1
This entry determines the number of coordinates messages of which an average value is calculated for
the smoothing of absolute Y-coordinates. The upper limit can be requested by means of the function
citGetDriverConstants. The default value is 10.
6.1.6 [Sound]
This section contains the parameters for the creation of the mouse click.
In the section [Sound] the following entries are possible:
ButtonClick = 0 | 1 | 2 | 3
This entry determines the conditions for a beep to be emitted. To do so, one or a combination of the
following values can be used:
Value
0
1
2
3
Meaning
No beep emitted
Beep emitted when mouse button is pressed
Beep emitted when mouse button is released
Beep emitted when mouse button is either pressed
or released
The default value is 1.
FreqDown = 0..65535
49
CITRON
CITOUCHD.INI
This entry determines the pitch of the beep to be emitted when the mouse button is pressed in steps of 1
Hz. The default value is 783.
FreqUp = 0..65535
This entry determines the pitch of the beep to be emitted when the mouse button is released in steps of 1
Hz. The default value is 1046.
TimeDown = 0..65535
This entry determines the duration of the beep to be emitted when the mouse button is pressed in steps of
1 millisecond. The default value is 30.
TimeUp = 0..65535
This entry determines the duration of the beep to be emitted when the mouse button is released in steps
of 1 millisecond. The default value is 30.
6.1.7 [Citouchd]
This section contains the parameters for the behaviour of the CiTouchD as mouse driver.
In the section [Citouchd] the following entries are possible.
Stack = 0..64
This entry determines the amount of stack that CiTouchD reserved for itself. The value entered here
corresponds to the stack size in blocks of 256 byte. In case of Stack = 0 CiTouchD works with the stack of
the currently running program. The default value is 6.
HardReset = 0 | 1| 2
This entry determines whether a reset of the Touch is to be carried out in the mouse API functions
(Software-Interrupt 33h) 00h (int33ResetAndStatus) and 2Fh (int33HardReset). Since (in case of failure)
this process may take up to 10 seconds the reset can be deactivated. The default value is 0.
Value
0
1
2
50
Meaning
A reset of the Touch is carried out neither in function
00h nor in function 2Fh.
A reset of the Touch is carried out in function
int33HardReset only.
A reset of the Touch is carried out either in function
00h or in function 2Fh.
User's Manual CiTouchD
INDEX
7 INDEX
A
absolute coordinates........................................ 13
AbsoluteMouse ................................................ 47
ACCELERATION....................................... 37; 43
API functions.................................................. 17
Asynchronous state machine........................... 11
AutoReinit ........................................................ 47
B
Backlight Dimming ........................................ 16
citGetDimming.............................................. 16
citGetTouchSettings..................................... 16
citSetDimming .............................................. 16
citSetTouchSettings ..................................... 16
DimmingHigh................................................ 16
DimmingLow ................................................ 16
SaverScan.................................................... 17
SaverTime.................................................... 17
BaudDivisor...................................................... 46
BeamTimeout .................................................. 47
Button............................................................... 47
BUTTONBEEP ................................................ 37
ButtonClick................................................. 47; 49
Button-Machine................................................ 11
C
Calibration.................................................. 43; 44
CALIBRATIONABS......................................... 38
CALIBRATIONREL ......................................... 38
CiTouchD ............................................... 4; 43; 50
CITOUCHD.INI ................................................ 43
Citron Infrared Touch......................................... 4
COMMANDS ....................................... 39; 43; 45
Control of background illumination............. 16
ContTime ......................................................... 47
CoordEnterZ .................................................... 47
Coordinates mode ......................................... 13
AbsoluteMouse............................................. 15
citGetCalibrationRel ..................................... 14
citGetCommands ......................................... 14
citGetCoordMode ......................................... 15
citGetDriverSettings ..................................... 14
citSetCalibrationRel...................................... 14
citSetCommands.......................................... 14
citSetCoordMode.......................................... 15
citSetDriverSettings...................................... 14
CoordEnterZ................................................. 15
CoordinateSkip............................................. 15
CoordSignalZ ............................................... 15
Enter............................................................. 14
ModeChange................................................ 15
SmoothAlways.............................................. 15
XRel_Div ...................................................... 15
XRel_Mul ......................................................15
YRel_Div .......................................................15
YRel_Mul.......................................................15
Z-Press .........................................................14
Z-Press / Enter..............................................14
Coordinates systems ........................................11
CoordinateSkip .................................................47
COORDMODE .................................................40
CoordSignalZ....................................................48
Cursor acceleration ..........................................15
Cursor Control ................................................15
citGetAcceleration.........................................16
citGetDriverSettings ......................................16
citSetAcceleration .........................................16
citSetDriverSettings ......................................16
X_Border.......................................................16
X_Mul............................................................16
X_Offset ........................................................16
Y_Border .......................................................16
Y_Mul ............................................................16
Y_Offset ........................................................16
D
DblErrSkip ........................................................48
DIMMING .........................................................40
DimmingHigh ....................................................48
DimmingLow.....................................................48
Document revision..............................................2
DRIVERCONSTANTS......................................40
DRIVERSETTINGS ..........................................41
Dual Touch .......................................................12
Dual Touch Skip Count...................................8; 9
E
Enter .................................................................12
Extended API functions ..............................20; 26
citCheckBreak...............................................33
citClose .........................................................32
citDetectLDVGA............................................35
citGetAcceleration.........................................34
citGetButtonBeep..........................................34
citGetCalibrationAbs .....................................28
citGetCalibrationRel ......................................28
citGetCommands ..........................................27
citGetCoordMode..........................................28
citGetDimming ..............................................33
citGetDriverConstants...................................29
citGetDriverSettings ......................................28
citGetFlags....................................................27
citGetPSP .....................................................26
citGetSerialHardware....................................27
citGetTouchHardware ...................................29
citGetTouchSettings......................................29
citOpen..........................................................32
citPlaySound .................................................35
citPresence ...................................................26
citReceive .....................................................32
51
CITRON
citReceiveStatus........................................... 33
citSend ......................................................... 31
citSetAcceleration......................................... 34
citSetButtonBeep.......................................... 35
citSetCalibrationAbs ..................................... 30
citSetCalibrationRel...................................... 31
citSetCommands.......................................... 30
citSetCoordMode.......................................... 30
citSetDimming .............................................. 34
citSetDriverSettings...................................... 31
citSetSerialHardware.................................... 29
citSetTouchSettings ..................................... 31
Extended driver status ................................. 36
Setting of the Hardware-Reset-Handling ..... 36
Versions number of CITOUCHD.EXE.......... 33
F
FreqDown ........................................................ 50
FreqUp ............................................................. 50
H
HardReset........................................................ 50
Hardware ................................................... 43; 46
I
Identification Number.................................... 21
Idle_T1 ............................................................. 45
Immediately...................................................... 12
Int 33-API ......................................................... 17
Interrupt............................................................ 46
IO_Base ........................................................... 46
IRT ..................................................................... 4
IRT_Mode ........................................................ 46
L
Leave ............................................................... 12
M
mickeys............................................................ 11
MinXBeams ..................................................... 48
MinYBeams...................................................... 48
ModeChange ................................................... 45
Multiplex Interrupt ............................................ 20
Example in Assembler ................................. 23
Example in C................................................ 21
Example in Pascal........................................ 22
N
Never ............................................................... 12
No Dual Touch................................................. 12
52
INDEX
Notification..................................................25; 42
P
Particularities of the Int 33 API......................18
Determine / request settings of ballpoint
mouse .......................................................20
Inquire a list of available video modes ..........19
Inquire version, mouse type and IRQ ...........19
Read out current acceleration curve .............20
Request bit masks of screen cursor .............19
Set acceleration curve ..................................19
Set Interrupt rate of mouse hardware ...........18
Set language for messages ..........................19
Set mouse sensitivity ....................................18
Set threshold for doubling of mouse speed. .18
Set/request current acceleration curve .........20
Polling ...............................................................25
Pre-defined Mouse Button Emulation Modes .....6
Pre-defined Mouse Button Modes
Dual / Exit.......................................................9
Dual Touch ....................................................8
Enter...............................................................6
Exit .................................................................7
Tap..................................................................7
Time................................................................8
Time / Time ....................................................9
Z-Press.........................................................10
Pressure ...........................................................48
Pressure Sensitivity ..........................................10
prompt parameters .............................................5
/b: ....................................................................5
/c: ....................................................................5
/d 5
/i: 5
/k: ....................................................................5
/m: ...................................................................5
/p: ....................................................................5
/r: 5
/t: 6
S
SaverScan ........................................................48
SaverTime ........................................................48
SERIALHARDWARE .......................................41
Settings.......................................................43; 47
SmoothAlways ..................................................49
Smoothing ........................................................13
citGetDriverSettings ......................................13
citSetDriverSettings ......................................13
CoordinateSkip .............................................13
SmoothAlways ..............................................13
X_Smoothing ................................................13
Y_Smoothing ................................................13
Sound .........................................................43; 49
Stack.................................................................50
State Machine...................................................12
User's Manual CiTouchD
INDEX
T
V
T1_Trigger ....................................................... 45
T2_UPT3 ......................................................... 45
Tap................................................................... 12
Tap Time............................................................ 7
TapTime........................................................... 49
TBT .............................................................. 6; 10
test ................................................................... 23
Time ................................................................. 12
Time to Click .................................................. 8; 9
Time to Idle ........................................................ 8
Time to Second Click......................................... 9
Time1 ............................................................... 45
Time2 ............................................................... 45
Time3 ............................................................... 45
TimeDown........................................................ 50
TimeUp ............................................................ 50
Touch Saver..................................................... 16
TOUCHHARDWARE ....................................... 42
TOUCHSETTINGS .......................................... 42
Trigger_T2 ....................................................... 46
Video Modes.....................................................11
virtual graphics screen......................................11
U
UPT3_Idle ........................................................ 46
UPT3_Trigger .................................................. 46
User-defined key emulation ............................. 11
X
X_Add ...............................................................44
X_Border ..........................................................43
X_Mul .........................................................43; 44
X_Offset............................................................49
X_Smoothing ....................................................49
XRel_Div...........................................................44
XRel_Mul ..........................................................44
Y
Y_Add ...............................................................44
Y_Border...........................................................43
Y_Mul..........................................................43; 44
Y_Offset............................................................49
Y_Smoothing ....................................................49
YRel_Div...........................................................44
YRel_Mul ..........................................................44
Z
Z-Press .............................................................12
Z-Press / Exit ....................................................12
Z-Release .........................................................12
53