Difference between revisions of "83Plus:Software:usb8x/Asm Interface"

From WikiTI
Jump to: navigation, search
m (U_CALL_INIT carry)
(split into high level vs low level)
Line 6: Line 6:
 
After the U_CALL system has been initialized with U_CALL_INIT, use the U_CALL macro to call usb8x entry points.   
 
After the U_CALL system has been initialized with U_CALL_INIT, use the U_CALL macro to call usb8x entry points.   
  
==Available Entry Points==
+
==High Level Entry Points==
 +
These are the entry points you're most likely interested in using if you want to create a program using usb8x to access a specific device (e.g. a mouse).
 +
 
 +
{| border="1" cellpadding="2"  cellspacing="0"
 +
|-
 +
|[[/DriverInit|DriverInit]] || Initialize the USB driver
 +
|-
 +
|[[/DriverKill|DriverKill]] || Uninitialize the USB driver
 +
|-
 +
|[[/HostKill|HostKill]] || Uninitialize a USB device
 +
|-
 +
|[[/IsDeviceConnected|IsDeviceConnected]] || Tests if a device is connected to the USB port
 +
|-
 +
|[[/MouseGetKey|MouseGetKey]] || Returns mouse movement and button presses
 +
|-
 +
|[[/MouseInit|MouseInit]] || Initializes mouse driver
 +
|-
 +
|[[/WaitTimerB|WaitTimerB]] || Precise delay
 +
|}
 +
 
 +
 
 +
==Low Level Entry Points==
 +
These are the entry points you're most likely interested in using if you want to create a device driver for a new device.
 
{| border="1" cellpadding="2"  cellspacing="0"  
 
{| border="1" cellpadding="2"  cellspacing="0"  
 
|-
 
|-
Line 34: Line 56:
 
|-
 
|-
 
|[[/LogCustom|LogCustom]] || Adds an entry to current log file
 
|[[/LogCustom|LogCustom]] || Adds an entry to current log file
|-
 
|[[/MouseGetKey|MouseGetKey]] || Returns mouse movement and button presses
 
|-
 
|[[/MouseInit|MouseInit]] || Initializes mouse driver
 
 
|-
 
|-
 
|[[/PipeInfo|PipeInfo]] || Gets direction, type, and packet size for a pipe
 
|[[/PipeInfo|PipeInfo]] || Gets direction, type, and packet size for a pipe

Revision as of 12:17, 16 July 2006

Many usb8x functions can be used by other programs/applications through usb8x's assembly language U_CALL interface. Macros are provded in usb8x.inc to simplify the process. The macros require a 32-byte RAM buffer defined as USBDriverCall. The U_CALL system must be initialized by the application as follows:

U_CALL_INIT CallBackRoutine

Where CallBackRoutine is a subroutine that will be called when data arrives on the USB port. If U_CALL_INIT returns carry, usb8x is not loaded on the calculator.


After the U_CALL system has been initialized with U_CALL_INIT, use the U_CALL macro to call usb8x entry points.

High Level Entry Points

These are the entry points you're most likely interested in using if you want to create a program using usb8x to access a specific device (e.g. a mouse).

DriverInit Initialize the USB driver
DriverKill Uninitialize the USB driver
HostKill Uninitialize a USB device
IsDeviceConnected Tests if a device is connected to the USB port
MouseGetKey Returns mouse movement and button presses
MouseInit Initializes mouse driver
WaitTimerB Precise delay


Low Level Entry Points

These are the entry points you're most likely interested in using if you want to create a device driver for a new device.

AutoSetup Automatically sets up USB device
ConfigureDevice Chooses a device configuration
DriverInit Initialize the USB driver
DriverKill Uninitialize the USB driver
FindDescriptor Finds a specific descriptor in a list
FindPipe Finds a pipe matching characteristics
GetClass Returns the class and subclass for the current device
GetIDs Returns product and vender IDs for current device
GetVersion Returns the current driver version
HostInit Initialize a USB device
HostKill Uninitialize a USB device
IsDeviceConnected Tests if a device is connected to the USB port
LogCustom Adds an entry to current log file
PipeInfo Gets direction, type, and packet size for a pipe
ReadDescriptor Reads a descriptor from the device
ReqData Request data from an incoming pipe
SendControlData Sends data to the control pipe
SendData Send data to the device
SetupInPipe Sets up an incoming pipe
SetupLog Starts logger
SetupOutPipe Sets up an outgoing pipe
StopLog Stops logger
WaitTimerB Precise delay