Difference between revisions of "83Plus:Software:usb8x/Asm Interface"
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. | ||
− | == | + | ==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 | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|[[/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 |