Measurement-computing Personal488 rev.3.0 For DOS & Windows 3.Xi Manual de usuario Pagina 116

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 400
  • Tabla de contenidos
  • SOLUCIÓN DE PROBLEMAS
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 115
II. SOFTWARE GUIDES - 8. Driver488/DRV 8K. Other Languages
Personal488 Users Manual, Rev. 3.0 II-101
I/O Control (IOCTL) Communication
DOS provides several I/O Control (IOCTL) functions that are useful with Driver488/DRV. Two of
these:
IOCTL GetDeviceData
and
IOCTL SetDeviceData
allow Driver488/DRV to be configured
for faster Raw Mode communication, while the other two:
IOCTL Read
and
IOCTL Write
, perform
the functions of the BASIC
IOCTL$
function and
IOCTL#1
command, respectively.
IOCTL Get & Set Device Data
When communicating with character devices, DOS normally checks the transferred data for control
characters such as
X-ON
,
X-OFF
and
control-Z
. However when communicating with
Driver488/DRV, this is not desirable. First of all, it might interfere with control characters that are
supposed to be transferred to or from Driver488/DRV. Second, and more importantly, while DOS is
checking for control characters, it only transfers one character at a time to or from Driver488/DRV.
This is much less efficient than transferring large blocks of data. Thus, whenever possible, DOS should
be configured to not check for control characters when communicating with Driver488/DRV. This is
typically accomplished by a function called
RawMode
in the language-specific support files (such as
IEEEIO.C
) provided with Driver488/DRV. The DOS
IOCTL Get and SetDeviceData
functions
are used together to configure Driver488/DRV for
RawMode
(binary) communication as:
mov AX,4400h ;DOS Get Device Data Function
mov BX,ieee ;File handle for Driver488/DRV
int 21h ;Execute DOS function
mov DH,0 ;Must clear DH
or DL,20h :Set dont check for control characters bit
mov AX,4401h ;DOS Set Device Data Function
mov BX,ieee ;File handle
int 21h ;Execute DOS function
The first part of this code fragment reads the current device control settings from DOS. These are
returned in the
DX
register which is then modified to tell DOS not to check for control characters.
Finally, DOS is again called to implement the new control settings. Once the
ieee
file has been
opened and configured for
RawMode
, we are ready to communicate with Driver488/DRV.
IOCTL Read & Write
IOCTL Read
and
IOCTL Write
provide a back-door communication channel to Driver488/DRV.
This alternate method of communication is normally used to send special commands (
Write
) and
request status (
Read
) from Driver488/DRV.
Driver488/DRV recognizes only one
IOCTL Write
command:
BREAK
. When
IOCTL Write
is used
to send
BREAK
to Driver488/DRV, it forces Driver488/DRV into a quiescent, ready state in which it is
waiting for a new command. The
BREAK
command also forces the
EOL OUT
terminators to their
default values. Thus Driver488/DRV is reset so that it is ready and able to receive new commands,
regardless of what it was previously doing.
It is recommended that the
BREAK
command be sent before any other Driver488/DRV commands. In
assembly language,
BREAK
may be sent as indicated in the table.
brk DB BREAK ;BREAK command text
brklen EQU $-brk ;Length of BREAK command
mov AX, 4403h ;IOCTL Write function
mov BX, ieee ;File handle
mov CX, brklen ;# chars to send
mov DX, offset
brk
;DS:DX -> command
int 21h ;Execute DOS function
jc error ;Check for error
This is identical to the BASIC command
IOCTL
described in Section III: Command References of
this manual.
The
IOCTL Read
command is used to receive status from Driver488/DRV. It receives a single ASCII
character, either
0
,
1
,
2
, or
3
. The meaning of each response is:
Vista de pagina 115
1 2 ... 111 112 113 114 115 116 117 118 119 120 121 ... 399 400

Comentarios a estos manuales

Sin comentarios