beautypg.com

3 x12_sendcommand function call – Sensoray 512 DOS User Manual

Page 18

background image

18

6.3 X12_SENDCOMMAND function call

The X12_SENDCOMMAND function is used to send a command to the 512 driver. See section 6.3 for
command details.

Entry:
Register Description Value

SI Function number X12_SENDCOMMAND + either CARD0 for the first card

or CARD1 for the second card.

AX Command X12_VI_START
X12_VI_STOP

X12_VI_GETDMADATA
X12_VI_PUTDMADATA
X12_VI_SETINPUT
X12_VI_SETINPUTTYPE
X12_VI_GETSTATUS
X12_RESETDEVICE

Exit:
Register Description Value

AX Timeout flag Non-zero is timeout
Zero is success

Example:

#include “x12.h” //Included for 512 dos driver support
#include “dos.h” //Included for software interrupt support
.
.
X12PARAM _far *Param; //Declare a pointer to an X12PARAM object
union REGS regs; //
.
.
regs.x.si = X12_GETCMDPARAPTR + CARD0; //Select the driver function
int86(X12INT,®s,®s); //Call the driver
Param = (X12PARAM _far *) MK_FP(regs.x.dx, regs.x.ax); //Make a pointer from the returned register values

Param->Mode = ENCODE;
regs.x.ax = X12_VI_START; //The video start command
regs.x.si = X12_SENDCOMMAND + CARD0; //Select the driver function
int86(X12INT,®s,®s); //Call the driver

if(regs.x.ax)
{
printf("Error Timeout\n");
return 0;
}

IMPORTANT:

Every time the X12_SENDCOMMAND is called any changes to the X12PARAM

members DO0, DO1, DO2 or DDIR0, DDIR1, DDIR2 take effect. Upon return VQSize, DI0, DI1, DI2,
DroppedFrames, FrameCount, and Status are updated.