Difference between revisions of "83Plus:Software:usb8x/Changelog"

From WikiTI
Jump to: navigation, search
(0.10 info)
(0.11 info added)
Line 1: Line 1:
 +
==Version 0.11==
 +
  INPUTS TO MOUSE DRIVER CHANGED
 +
  Logging support is disabled by default
 +
  Removed USBInfo and demos
 +
  Callback is now driver-wide instead of a per-pipe .  This means SetupInPipe no longer takes callback as input
 +
  Converted remaining routines to restore interrupts to original state instead of di/ei
 +
  Added keyboard, silverlink, and gamepad drivers
 +
  Removed lots of old code that wasn't being used anymore
 +
  Mouse (and kbd) driver can now passthrough callbacks to user program
 +
  DISAVE/EIRESTORE now compile time option because it was (maybe?) causing trouble
 +
  MSD callback saves/restores ix
 +
  Restructured interrupt to allow for logging
 +
  Added compile time option to turn on/off logging for individual log entry types
 +
  Added assertion macros/compile-time option
 +
  Added compile time option for assertion-checking IM2 interrupt
 +
  Entry points can now have IX inputs
 +
  DriverInit checks base code version for 2.30+
 +
  Driver routines now kill host device if driver init fails
 +
Entry Points Added:
 +
  Asm - KBDInit - Initialize keyboard driver
 +
  Asm - KBDGetKey - Get keypress from keyboard
 +
  Asm - KBDGetMods - Get modifier/lock key status
 +
  Asm - KBDCheckDirect - Check current keyboard matrix status
 +
  Asm - SilverInit - Initialize silverlink
 +
  Asm - SilverSend - Send data on silverlink
 +
  Asm - SetCallBack - Sets the callback address
 +
  Asm - PadInit - Initialize gamepad driver
 +
  Asm - PadSetup - Get a key mapping
 +
  Asm - PadStart - Start passing pad information to the callback function
 +
  Asm - GetErrorCode - Get the current error code
 +
  Asm - SendControlDataOut - Send a control command that includes outbound data stage
 +
  BASIC - KBDInit
 +
  BASIC - KBDGetKey
 +
Known bugs:
 +
  Interrupts may be getting disabled at some point.  Use ei in mousegetkey and kbdgetkey loops.
 +
  AutoSetup may leave device in various states of initialization on error instead of killing it.
 +
  Some drivers don't seem to work as well (at all?) on boot code 1.00
 +
To Do:
 +
  Add Silver BASIC entry points
 +
  Add option to KBDInit to set up something (cursor hook?) to implement key repeat
 +
 +
 
==Version 0.10==
 
==Version 0.10==
 
   Input list to BASIC library no longer required to be 7 elements long  
 
   Input list to BASIC library no longer required to be 7 elements long  

Revision as of 18:24, 10 September 2006

Version 0.11

 INPUTS TO MOUSE DRIVER CHANGED
 Logging support is disabled by default
 Removed USBInfo and demos
 Callback is now driver-wide instead of a per-pipe .  This means SetupInPipe no longer takes callback as input
 Converted remaining routines to restore interrupts to original state instead of di/ei
 Added keyboard, silverlink, and gamepad drivers
 Removed lots of old code that wasn't being used anymore
 Mouse (and kbd) driver can now passthrough callbacks to user program
 DISAVE/EIRESTORE now compile time option because it was (maybe?) causing trouble
 MSD callback saves/restores ix
 Restructured interrupt to allow for logging
 Added compile time option to turn on/off logging for individual log entry types
 Added assertion macros/compile-time option
 Added compile time option for assertion-checking IM2 interrupt
 Entry points can now have IX inputs
 DriverInit checks base code version for 2.30+
 Driver routines now kill host device if driver init fails
Entry Points Added:
 Asm - KBDInit - Initialize keyboard driver
 Asm - KBDGetKey - Get keypress from keyboard
 Asm - KBDGetMods - Get modifier/lock key status
 Asm - KBDCheckDirect - Check current keyboard matrix status
 Asm - SilverInit - Initialize silverlink
 Asm - SilverSend - Send data on silverlink
 Asm - SetCallBack - Sets the callback address
 Asm - PadInit - Initialize gamepad driver
 Asm - PadSetup - Get a key mapping
 Asm - PadStart - Start passing pad information to the callback function
 Asm - GetErrorCode - Get the current error code
 Asm - SendControlDataOut - Send a control command that includes outbound data stage
 BASIC - KBDInit
 BASIC - KBDGetKey
Known bugs:
 Interrupts may be getting disabled at some point.  Use ei in mousegetkey and kbdgetkey loops.
 AutoSetup may leave device in various states of initialization on error instead of killing it.
 Some drivers don't seem to work as well (at all?) on boot code 1.00
To Do:
 Add Silver BASIC entry points
 Add option to KBDInit to set up something (cursor hook?) to implement key repeat


Version 0.10

 Input list to BASIC library no longer required to be 7 elements long 
 KillUSB BASIC entry point now disables driver as well killing the device
 ExecLib now returns error via list rather than system error on non-existant entry point
Other:
 BASIC entry points now require 42 bytes of free RAM to execute
Entry Points Added:
 BASIC - GetIDs
 BASIC - GetClass
 BASIC - Version
 BASIC - MSDInit - Initializes mass storage driver
 BASIC - MSD_ImportVariable - Imports *.8x* file from specified directory 
 BASIC - MSD_ExportVariable - Exports variable in RAM/Flash to specified directory as *.8x* file
 Asm - KBDVersion - Returns version/memory needed for kbd driver
 MSD - MSDVersion - Returns major/minor version and memory requirements of mass storage driver
 MSD - MSD_Initialize - Initializes mass storage device
 MSD - UFI_Initialize - Initializes mass storage device for sector read/write operations
 MSD - UFI_Read - Reads one sector of LBA address into sector buffer
 MSD - UFI_Write - Writes one sector of data from sector buffer to LBA address
 MSD - FAT_Initialize - Initializes mass storage device for FAT16 file system operations
 MSD - FAT_lookupPath - Sees if a file in specified folder exists
 MSD - DOS_openFile - Open file in specified folder for reading/writing 
 MSD - DOS_fileSeek - Adjusts seek pointer in specified file handle
 MSD - DOS_fileRead - Reads bytes from a file at current seek pointer
 MSD - DOS_fileWrite - Writes bytes to a file at current seek pointer
 MSD - DOS_createFile - Creates new, empty file in specified directory
 MSD - DOS_createDirectory - Creates new, empty directory in specified directory
 MSD - DOS_deleteFileEntry - Deletes file or folder
 MSD - DOS_countFilesInDir - Returns number of file/folder entries in specified directory
 MSD - DOS_getNextFile - Gets next file in list from a specified directory
 MSD - FAT_getStartingCluster - Gets starting cluster of specified directory
 MSD - MSD_ImportVariable - Imports *.8x* file from specified directory
 MSD - MSD_ExportVariable - Exports variable in RAM/Flash to specified directory as *.8x* file
 MSD - DOS_getFileSize - Gets file size from specified directory entry
 MSD - DOS_getDirEntry - Gets directory entry for specified file/directory

Version 0.09

 Changed descriptor equates and added more for other descriptor types
 Added logging and log viewer
 Added code to load HID report descriptor
 Added SendDataPart entry point.  Hopefuly temporarily
 Added hub related stuff:
  SetAddress now sets next available address instead of constant address
  Added SetHubFeature and ClearHubFeature calls
  Added SetHubPortFeature and ClearHubPortFeature calls
  Added GetHubStatus and GetHubPortStatus calls
  Added appropriate desc and log equates
 Added prelim hub demo code (doesn't work)
 Added prelim calc-calc code (doesn't work)
 Sporadic crashes on exit from app.  Cause?
 GetPipeInfo can now return both pipeIn and pipeOut
 MSD demo now autodetects correct output pipe
 Added FindPipe entry point to return the address of a pipe based on characterisitics
 DriverInit now returns error if OS version isn't high enough
 Added a LogCustom entry point to allow apps to make entries in the log file
Bugs fixed:
 Fixed bug with logging (otir replacement crashed on odd sizes)
 Devices with I and O endpoints at same addr should work
 Minor fix to U_CALL system (allows multipage apps)
Other:
 Added errDemo and errFindPipe
 Added pipeBitIn and pipeBitOut equates
 Renamed usbInt and usbBulk to pipeInt and pipeBulk
 Created usb8xtsm.inc include file in TASM compatible syntax
Known bugs:
 Interrupts are getting disabled at some point.  Requires ei in mousegetkey loop.
 USBInfo interface has some bugs.

Version 0.08

 Graphlink code now checks to make sure a graphlink is connected
 Fixed a bug in GetIDs
 Any call using ReadDescriptor (e.g. GetIDs and GetClass) will now work after AutoSetup
  however, don't use any of these calls inside of an interrupt.
 Added preliminary mouse driver
 Added di/ei to SendControlData as well (so don't use in int)
 Reworked menu scheme because there's flash test code now.
 SendControlData now takes argument for how much data to recieve in response
 Callback routine can now be passed cbStall or cbNak
 Fixed stupid bug in SendData
 Exposed WaitTimerB entry point
 Added GetPipeInfo entry point and test code to info section
 Lowered mouse movement threshold to fifteen ticks/pixel

Version 0.07

 Changed appname to "USB8X" from "USBDRV8X" because of TIOS bugs
 Added BASIC interface through OpenLib and ExecLib
 Prettied the graphlink demo a little bit
 Fixed crashing problem on port 82 and 91 errors
 Created KillDriver call, and took that functionality out of HostKill
 Fixed some random bugs
 Tried adding back in the routine to kill host before init if necessary
  and took it back out again.  *sigh*
 Added about screen

Version 0.06

 Added conditional code to port 3A check because it wasn't working on
  certain calculators (boot 1.00?).
 Changed appname to USB8X
 Added entry point for ReqData
 Minimum OS version 2.30

Version 0.05

 Added OTG descriptor information
 Added AutoSetup.  Works for mouse and graphlink at least.
 Added error reporting to routines
 Initial public release

Version 0.04

 Transitioned to USB hook for interrupt data handling
 Added lots of important code
 Added silverlink demo

Version 0.03

 Removed unneccessary stuff
 Fixed endpoint descriptor interval display
 Created entry point table and accessor

Version 0.02

 Added display template for HID descriptor
 Got mouse cursor demo working
 Mouse mapped to kbdScanCode demo working

Version 0.01

 Port Logging and Log viewing works
 Port view now unimplimented
 USB initialization and read/display of descriptors works
 USB device configuration works

Version 0.00

Port monitor functionality converted to ZDS form