﻿0.3.14
- Fixed a timer bug in USB-to-ADB mode that roughly once an hour was mistaken
  for an ADB reset. This could cause a key to get stuck repeating on the Mac,
  and returned the Wombat's keyboard and mouse to their default ADB addresses,
  which could cause problems when other ADB devices are connected at the same
  time.
- Fixed a stuck arrow key in USB-to-ADB mode when scrolling the mouse wheel
  quickly, and a stuck control key when scrolling while right-clicking.
- Fixed several ADB protocol bugs in USB-to-ADB mode: the computer can now
  switch the keyboard back from separate left/right modifier keys to normal
  mode, the power button no longer stays "held down" after it's released (this
  matters for Macs like the IIsi), and an ADB flush now discards waiting key
  events.
- Fixed media keys and other special USB reports causing repeated mouse movement
  or phantom key presses in USB-to-ADB mode.
- Fixed a crash in the Control-Shift-Capslock-I help command when many USB
  devices are attached through a hub.
- Fixed keys that were tapped very quickly in ADB-to-USB mode, which could get
  stuck down on the computer until pressed again.
- Fixed the keypad = key in ADB-to-USB mode, and custom keymaps that use USB key
  codes above 0x65 (such as F13-F24). Holding modifier keys also no longer uses
  up the 6-key rollover limit.
- Fixed detection of ISO ADB keyboards in ADB-to-USB mode. Some ISO keyboards
  were treated as ANSI, which swapped two keys.
- Fixed the ADB mouse not working in ADB-to-USB mode when two ADB mice were
  connected.

0.3.13
- Fixed several bugs in USB-to-ADB mode that could cause the Wombat to crash,
  hang, or misread data from USB keyboards and mice with complex or unusual HID
  report descriptors. This included mice that declare more than 12 buttons (such
  as those using the Logitech Bolt receiver), keyboards that report more than 6
  keys at once, and devices with very large or malformed descriptors. Also fixed
  several places where an unusual USB configuration descriptor could cause the
  Wombat to read invalid data or stop responding.

0.3.12
- Added support for USB keyboards that report data with a bitmap of keys instead
  of a key array. This affected Logitech Bolt receiver firmware version 5.01,
  and probably many other types of keyboards. Also updated the handling of the
  scroll wheel and right-clicking for USB mice, in the case where no USB
  keyboard is connected, because those mouse actions simulate pressing keys
  (arrow keys and the control key) on the ADB keyboard.

0.3.11
- Fixed a bug in USB-to-ADB mode that caused devices to be ignored if their
  report descriptors were larger than 255 bytes. This affected many types of
  keyboards and mice with more complex functions, extra buttons, etc. Also fixed
  several other areas where USB communications could potentially misbehave or
  stall.

0.3.10
- Added more troubleshooting information about attached USB devices when in
  USB-to-ADB mode for the Control-Shift-Capslock-I help command. All the
  detected keyboard and mouse devices are listed, but only the devices at index
  1 are used. If your device is listed here but is not at index 1, another
  device of the same type has taken priority and your device is being ignored.
  If your device is not listed here at all, its HID report descriptor probably
  couldn't be parsed by the Wombat's firmware.

0.3.9
- Added support for changing the Wombat's built-in mouse scaling for USB-to-ADB
  mode. When the mouse wheel button is pressed and held for more than 0.5
  seconds, it switches between scale factors of 16/8/4/2/1. This is helpful for
  some USB mice where the default number of counts per inch is outside the range
  where the computer OS's mouse settings can compensate.
- Suppressed HID_ERR_BadLogicalMax while parsing the USB HID report descriptor.
  This enables some devices with errors in their report descriptors to work,
  including the Razer Basilisk v2 mouse.

0.3.8
- Fixes a problem with the latching caps lock key in ADB-to-USB mode, if you
  half-press caps lock without engaging the latch.

0.3.7
- Fixes problems with ADB devices using a Logitech chipset

0.3.6
- Fixes issue with keyup events for the Power Key

0.3.5
- Added support for remapping the Power Key for ADB-to-USB mode
- Added an option to disable 'mouse wheel arrow keys' behavior for USB-to-ADB
  mode, using the key mapping tool
- Enabled separate keycodes for left/right side modifier keys for Apple Extended
  Keyboard II

0.3.4
- Restored the USB device descriptor tables from version 0.3.2
- Changed the device's USB PID, to avoid any possible OS confusion if a
  previously-seen VID:PID unexpectedly changes its USB descriptor.

0.3.3
- Fixed caps lock LED handling in ADB-to-USB mode. Resolves problem with AEK II
  on modern MacOS systems
- Reversed the positions of the keyboard and mouse in the USB device descriptor
  tables for ADB-to-USB mode
- Changed the device's USB PID, to avoid any possible OS confusion if a
  previously-seen VID:PID unexpectedly changes its USB descriptor.

0.3.2
- Fixed USB-to-ADB compatibility problems with Apple Magic Keyboard A1644, and
  other USB keyboards with a Report ID in their Report Data

0.3.1
- Reorganized the USB device descriptor tables and HID reports that are used by
  ADB-to-USB mode. This should make the Wombat more compatible with operating
  systems like MacOS 9 that didn't like the old method of combining mouse and
  keyboard HID data in a single interface/endpoint. This required major code
  changes, so watch out for any possible new bugs.
- Changed the device's USB PID, to avoid any possible OS confusion if a
  previously-seen VID:PID unexpectedly changes its USB descriptor.

0.3.0
- Added support for custom keycode mapping tables. See keymap tool at
  https://www.bigmessowires.com/wombat-keymap.html

0.2.2
- Added factory test mode for manufacturing

0.2.1
- ADB-to-USB support for Kensington Turbo Mouse 4.0

0.2.0
- Changes to support multi-button mice, in both conversion directions
- USB mouse wheel movements send up/down arrow events to the host. Works well
  for open file dialogs and document scrolling.
- USB mouse right button can operate in one of two modes:
  1. Macintosh mode (default): right click sends control + left click event to
     the host. Works for context menus in Mac OS 8 and later.
  2. NeXT mode: right click sends a true right click event to the host.
  Toggle between Macintosh and NeXT modes by clicking the USB mouse wheel button
  (button 3).
- ADB mice and trackballs with more than one button can now use the extra
  buttons under Windows, OSX, or Linux. Tested with a 4-button Kensington Turbo
  Mouse 5 model 64210. Other multi-button ADB devices using extended Apple mouse
  protocol should work too. ADB devices using proprietary protocols may not
  work.

0.1.16
- Rebranding: updated name references to "USB Wombat"

0.1.15
- The state of the right mouse button is now passed in the standard protocol for
  USB-to-ADB mode. Is this useful for anything? Maybe works on NeXT?
- Fixed a bug that prevented ADB keyboard caps lock from functioning with macOS
  Sierra
- Fixed initilization of the ADB keyboard LEDs

0.1.14
- Changed the keymap types to US-GENERIC (ANSI QWERTY), ISO-GENERIC (UK and
  other non-US QWERTY), ISO-FR (AZERTY), and ISO-DE (QWERTZ)
- New help command Control-Shift-Capslock-G shows the current keymap type
- Fixed the output from help commands to appear correctly when using a
  non-QWERTY keyboard
- Fixed the key 3rd-right from L on Apple-brand USB ISO keyboards (UK-QWERTY
  \| key, FR-AZERTY `£, DE-QWERTZ #')

When using an ISO keyboard (USB or ADB), Retro USB needs to be set to keymap
type ISO. This will happen automatically at startup if an Apple-brand ISO
keyboard is detected (untested). If you have a non-Apple ISO keyboard, you'll
need to switch to ISO mode manually with Ctrl-Shift-Capslock-T.

Key mappings for some symbol keys may be incorrect when using a PC-type USB ISO
keyboard. This is normal, and is due to layout differences between Apple and
PC-type USB ISO keyboards. For best results, use an Apple-brand ISO keyboard or
any brand of US-ANSI keyboard.

The three variants of keymap type ISO are all equivalent for the purposes of
normal keyboard usage (typing stuff), and only affect the way output from help
commands is displayed for non-QWERTY keyboards. For normal keyboard typing,
*any* ISO keyboard will work in the ISO-GENERIC mode: Danish, Estonian, Spanish,
Swiss-German, etc.

0.1.12
- Adds support for Retro USB hardware version 1.1. Earlier firmware won't work
  with board revision 1.1.

0.1.11
- Fixed Ctrl-Shift-Capslock-I help command (displays keyboard/mouse ID) in
  USB-to-ADB mode

0.1.10
- Fixed a bug in ADB-to-USB mode that could cause missed keyboard events if the
  ADB mouse is moved while typing

0.1.9
- Fixed a bug that sometimes caused device initializations to fail when using
  multiple cascaded hubs (including keyboards with built-in hubs)
- Disabled debug logging that was accidentally left in 0.1.8

0.1.8
- Added support for ISO keyboards, commonly used outside the USA. This should
  fix the key mapping for the ^ or @ key (the key to the left of 1) and the <>
  key (the key to the right of the left shift). Mostly untested since I don't
  have any ISO keyboards.
- Keymap type can be cycled between ANSI, ISO, and JIS (currently
  non-functional) with the new help command Ctrl-Shift-Capslock-T
- The keymap type is automatically set to ISO at startup if an Apple-brand ISO
  keyboard is detected (untested). If you have a non-Apple ISO keyboard, you'll
  need to switch to ISO manually with Ctrl-Shift-Capslock-T.
- Single-function USB devices are now prioritized over composite devices.
  Prevents a mouse with a keyboard macro feature from usurping the role of
  keyboard.
- New help command shows the USB vid:pid or ADB handler ID of the keyboard and
  mouse: Ctrl-Shift-Capslock-I
- Disabled HID report descriptor parser's error check for report items with
  count = 0. Some real USB devices do this, like the Logitech RX 250 mouse.
- Added 250ms delay at startup in ADB-to-USB mode, before attempting any
  external communication

If you have an ISO keyboard, and you've previously used Retro USB with firmware
earlier than 0.1.8 on an OSX Mac, you'll need to delete the OSX keyboard
preferences to make it "forget" Retro USB. Delete the file
/Library/Preferences/com.apple.keyboardtype.plist, then restart. If you don't do
this, your key mappings may be incorrect.

0.1.7
- Permanently enables USB composite device support
- Increases mouse speed by 20% in USB-to-ADB mode

0.1.6 experimental
- Enables experimental support for USB composite devices, such as many wireless
  keyboard/mouse combos. Don't use this unless you're sure you need it, there
  are likely bugs.
- Fixes a bug introduced in 0.1.3 that broke the text output from help commands

0.1.5
- LED A now illuminates when there’s a working ADB or USB connection to the host
  computer. LED B blinks when there’s keyboard or mouse activity.
- F13 now functions as an ADB power key in standby mode, just like PRINT SCREEN.
  Some USB keyboards don’t have a PRINT SCREEN key, some don’t have F13, so you
  can’t please everybody.
- Special ADB keycodes for the right-side shift, control, and alt keys are no
  longer sent unless the host computer specifically requests them. This fixes
  some weirdness with these keys on the Apple IIGS at the BASIC prompt.

0.1.3
- Recompiled to use updated bootloader

0.1.2
- first release
