-------------------------------------------------------------------------------
-----------H----H--X----X-----CCCCC-----22222----0000-----0000-----11----------
----------H----H----X-X-----C--------------2---0----0---0----0---1-1-----------
---------HHHHHH-----X------C----------22222---0----0---0----0-----1------------
--------H----H----X--X----C----------2-------0----0---0----0-----1-------------
-------H----H---X-----X---CCCCC-----22222----0000-----0000----11111------------
-------------------------------------------------------------------------------
-- Contact: hxc2001<at>hxc2001.com ---------------------- http://hxc2001.com --
-------------------------------------------------------------------------------
HxC Floppy Emulator project
(c) 2006-2017 Jean-François DEL NERO / (c) HxC2001
Forum    : http://torlus.com/floppy/forum 
Facebook : https://www.facebook.com/groups/hxc2001
-------------------------------------------------------------------------------

                HxC STM32 USB Floppy Emulator release notes

   For bug report and feature request don't hesitate to send an email to :

                           hxc2001<at>hxc2001.com

-------------------------------------------------------------------------------
-- Work in progress / Alpha Firmware version :
-------------------------------------------------------------------------------

Cumulative modifications since the last stable firmware version :

15 January 2018: Firmware STM32 USB HxCFloppyEmulator v3.1.1.1a

- Fix broken Rotary support in normal mode.
  (Connection points reminder : Clock -> J7 pin 2,Direction -> J7 pin 1)

17 December 2017: Firmware STM32 USB HxCFloppyEmulator v3.1.1.0a

More direct raw formats support :

 - Akai formats (*.IMG)
 - Casio FZ1 (*.FZ1)
 - Emax machines formats (*.IMG)
 - Ensoniq EPS & Mirage series formats (*.IMG)
 - General Music formats (*.IMG)
 - Korg formats (*.IMG)
 - X68000 (*.HDM,*.XDF)

 - Internal optimizations.

Please report any issue to hxc2001 <at> hxc2001.com
And if you want a specific file/disk format supported by the HxC firmware, send me an email too !

Thanks ! :)

03 December 2017: Firmware STM32 USB HxCFloppyEmulator v3.1.0.4a

Major update !

- New direct file formats support (Read & Write !) :
 - Acorn machines : *.ADL,*.ADM,*.SSD,*.DSD and *.ADF file support
 - Camputer Lynx : *.LDF
 - Commodore C64 : *.D81
 - Thomson machines : *.FD
 - Sam Coupé : *.SAD, *.MGT
 - MSX Machines : *.IMG, *.DSK
 - Spectrum : *.TRD, *.SDD

- New menu entry : Target system family selection.
  This reduce a lot the risk of erroneous raw file identification.

- Lots of RAW file support improvements :
  All sector sizes supported, advanced track skew and interleaving support.
  FM & MFM support.

- Amstrad CPC DSK support : Fix for the One Disk/double sided Batman demo.

- Fix attempt of the "diymore.cc" OLED screens : OLED init screen delay
  menu option added.
 (Note : Please avoid these "diymore.cc" screens until i got an idea
  what is the root cause of the issue.)

- Internal improvement : Track cache layer improved, RAW files support/identification improved.

Please report any issue to hxc2001 <at> hxc2001.com
Thanks ! :)

11 November 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.33.12a

- Extra LCD size option added :
	- 2x40 characters (for 2x40 I2C-HD44780 screens)

- Clear internal settings function : Press "up" button at power up to
  clear the settings with the default values.

- SP1200 write support fix.

26 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.33.4a

- CPC DSK / RAW DSK : If not a CPC DSK file, open it as a RAW image.
- RAW Image : *.DSK and *.OUT files support added.

25 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.33.3a

- System tick optimization.

19 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.33.2a

- OLED screen support : Characters generator code speed optimization.

17 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.33.1a

- Config-Less Mode :

  Use the settings saved into the device internal flash memory and
  switch to normal/direct selection mode when no HXCSDFE.CFG are present.

  To change settings without config file, just use the embedded config menu
  (Remove the USB Stick and press both buttons to enter it).

  NOTE : Without HXCSDFE.CFG the last image selection is not saved.

- More CPC DSK format variant support.(again !)

15 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.32.5a

- More CPC DSK format variant support.

15 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.32.4a

Normal/Direct selection mode :

   - Don't load at power up the last selected image if this one was previously ejected.
   - Don't load at power up the last selected image if a button is pressed.

10 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.32.3a

Amstrad CPC EDSK & DSK : Fix some DSK identification issues.

10 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.32.2a

Amstrad CPC EDSK & DSK : Fix file type detection with CPC File selector v2.5

10 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.32.1a

Amstrad CPC EDSK & DSK : Write Support working !

9 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.31.2a

Amstrad CPC EDSK & DSK support : Fix issues with non-standard sector size images (Midline Process...).
                                 256/512/1024/2048/4096/8192 sector size supported.

9 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.31.1a

- Amstrad CPC DSK direct support added (Old and new format) : Read only for the moment.
  Write support and simple copy protection support incoming ;).

7 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.30.1a

- New setting menu item : auto selection setting.
  You can now set the desired timeout for the auto selection
  function or disable it.

4 October 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.29.5a

- Normal mode : Fix random "Bad file" and IMG read issue at power up/USB stick
  change.

- Some optimizations.

30 September 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.29.1a

- Write pipeline issue fixed.

- Fix : IMG/IMA/DSK and ST files are now visible in normal/direct browsing mode.

- Rotary support added. Connection points : Clock -> J7 pin 2,Direction -> J7 pin 1.

This version passed the 10 Hours intensive Read/Write tests successfully.
(R/W HD Density @ 500Kbits/s on HFE & IMG files).

24 September 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.28.1a

- HD ADF and non standard ADF sizes support added.

- HxCFEUSB_V3_0_28_1a_EXPERIMENTAL_AMIGADRIVE_ID firmware variant :
  Experimental emulation of the Amiga drive ID circuit.
  You need to strap the MTRON input to the J7's Pin 1 (The display connector).
  This variant is experimental, not ready for daily usage.

16 September 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.27.1a

- Extra LCD resolutions and sizes options added :

	- 2x16 characters (for 2x16 or 2x20 I2C-HD44780 and 128x32 OLED screens)
	- 2x18 characters (for 2x20 I2C-HD44780 and 128x32 OLED screens)
	- 2x20 characters (for 2x20 I2C-HD44780 and 128x32 OLED screens)
	- 2x21 characters (for 128x32 OLED screens only)

To select the desired resolution, enter the internal menu, and choose the "LCD size" sub-menu.

- To enter the internal config menu you can now press both up and down buttons. (without usb stick inserted).

- The internal config menu can now be browsed without the selection button, just wait 4 seconds to select an item.

- SD HxC Floppy Emulator internal EEPROM emulation added : The parameters changed into the internal config menu are
  now saved into the Flash memory and restored/used at power up.

- Some more internal optimizations.

11 September 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.26.6a

- Fix early adopter bootloader support (Before june 2015)

9 September 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.26.4a

- Fix write support with non contigus/fragmented tracks into the image (usb stick fragmentation issue).

6 September 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.26.3a

- SSD1306 OLED screen support fully working and enabled.
  You can now connect an SSD1306 based 128x32 OLED screen.

  These screens are compatible with this firmware : http://www.ebay.com/itm/302110929185  ( IIC Interface ! )

  You can connect the screen directly to the J7 connector. (additional pull-up resistors NOT required.)

 - GND, VCC 3V3, SCL and SDA position on J7 :

                           _____|
                          |     |
                          | USB |
                          |_____|
        OO______________________|
    SDA OO|SCL
    GND OO|VCC3V3
        J7|
          |
__________|

! > Take care with the 3.3V and GND while connecting the screen. Any mistake may damage the screen ! < !

3 September 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.25.1a

- Disk change signal delay reduced when swapping the images.

- Faster HFE write :
  - HFE write cache size extended.
  - Huge write back function optimization.

- Write flux decoder buffer size reduced to optimize the write latency (ACA500 ARIII support) .

- SSD1306 OLED support (W.I.P!) : SSD1306 Init and mire test.

- Floppy Interface assertion/deassertion IRQ completely turned into assembly.

- USB Stack optimization.

20 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.24.1a

- GPIOs access speed up (IRQ latency reduced).
- Write flux decoder speed up (+50%).
- I2C/LCD low level routines optimized and prepared to support the incoming OLED screen support.
  ( + I2C transmission issues fixed)
- User interface : Fix the printed total number of slot in autoboot and indexed mode.
- Indexed mode + LCD : The file name is printed (Fix).

17 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.23.5a

- Fix format/track write issues introduced by the v3.0.23.3a

17 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.23.3a

- Write descriptors and write pipeline added :
  The drive can now "capture" a new floppy write while it is writing
  previous write(s) to the stick.

11 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.22.1a

- Step signal : Faster irq.
- Write gate : glitch filter fixed.

11 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.21.6a

- LCD Display : Set the CGRAM address at init/reinit.

10 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.21.5a

- LCD Display : Automatic screen recovery/reinit.

10 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.21.4a

- LCD Display : Screen updater optimized.

9 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.21.3a

- Indexed/Selector mode : Fix the UP/DOWN buttons behavior.
- Attempt to fix the OLED mod support.

9 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.21.2a

- LCD Display : Fix possible blackout/garbages issue.

8 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.21.1a

- LCD Display : Refresh rate adjusted and I2C dead lock issue fixed.

- Normal / direct browsing  mode :

Auto selecting the current image or subfolder if you don't
press the buttons during than 4 seconds. If needed, the file name
scroll during the delay time.
This modification make the additional select button optional.
Of course the LCD still needed for this mode.

- Indexed/selector mode :

Delay added before selecting the image. Browsing through the slots
is smoother. If needed, the file name scroll during the delay time.

- 7 segments display :
  New error/message codes :
  "FAt" : Fat init error.
  "NFL" : No file. Empty stick ?
  "CFG" : Config file not found !
  "cFG" : Bad config file !
  "Nor" : Warning -> in Normal/Direct browsing mode. You should use a LCD screen.
  "AUt" : Autoboot.hfe not found.
  "Err" : File image error !
  "Ldr" : Into the bootloader.

- Config file save : Before writing to the disk, check that this is really needed.
                     (Parameters change check)

7 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.20.1a

- Low level I2C & LCD IO redesigned and optimized.
- Long names are now scrolling on the LCD during floppy emulation.
- Short name image type identification issue fixed.
- USB "Hot plug" support fixed in autoboot/"file selector" mode.

4 August 2017: Firmware STM32 USB HxCFloppyEmulator v3.0.19.2a

- New buttons behaviour and better debouncing filter. Navigation user-experience should be better now.
- Disk Eject function : Press both buttons to eject the disk. Working in indexed, autoboot mode, and normal mode.
- "Eject at power up" option added.
- Support up to 999 Images in autoboot mode (with the File selector) (Use the new CFG file and selector to use this feature)
- LCD : Display refresh improvements.
- New CFG file format : Some new flags and no more slots/disk drive limitation.
- Some critical parts rewritten in assembly. Huge code speed improvement -> Better HD density reliability. ED density to be tested ;).
- Code size reduced.
- Advanced USB mass storage cache implemented to improve read/write reliability.
  (Btw : Now when track size can be stored into the SRAM, the emulator will not read forever the data from the stick but use the cached data instead).
- IMG/ST file write support done.
- Huge RAW (*.ADF/*.ST/*.IMG) Write performance enhancement (Write 2 tracks at once !)
- RAW *.IMG files can be used in indexed mode : Name the files DSKA0000.IMG,DSKA0001.IMG,DSKA0002.IMG,...
- HFE write performance enhancement.
- "Autoboot.hfe not found" message added.
- 7 segments display "dots" glitch fixed.
- 128 & 256 bytes sectors support added in raw mode.
- FM support : Write to HFE file fixed.
- FM support : Raw (*.dsk) read/write support.
- New File format support (WIP) : HFEv3. Can now support copy protected images converted from IPF and others similar formats !
  Variable bitrate supported (CopyLock & SpeedLock). Weak/Flakey bits support to be added !
- Fix IPF support for these games: Jim Power, Z-Out,Xenon 2,Ghosts'n Goblins,Rainbow Islands,B.A.T II  and probably some others !
- Slot number printed on the second line during slot search with an LCD.
- XCopy write issue fixed.
- Sound buzzer output on the "JB" jumper position. You can connect a piezo or a magnetic buzzer (transistor needed for the magnetic version).
  The sound output can be disabled or enabled into the selector settings.
  (Note : Please remove these old sound mod using directly the step signal, they are producing reliability problems...)
- Mixed track format/density write support fixed (To be tested!).

  Current direct images support : *.HFE (RW),*.HFE V3 (RW) (early write support), *.ADF (RW), *.ST (RW), *.IMG (RW).
  Note : HFE files is a multiplatorms floppy image format supporting many systems and disk formats.

Selector software :
- New Bootblock for the Amiga version : The file selector is now "trackloaded" and start faster.
- Speed up the sub-directory change/browsing.
- Can start an image from the slot page with the F7 key.
- The File selector is now available under Windows and Linux ! : You can now edit the list from a PC !. (Compatible with all SD/USB HxC drives !)
  To launch it : HXCFEMNG -disk:[SD/USB drive letter:]
  See the selector readme file for more details.
  This is a new selection solution for all others machines without native file selector available.
- Linux/Windows version : You can now import from txt file / export to txt file / auto populate / check / fix and clear your slots configuration.
  Very useful for fast populating and compilations duplication ;)
- Windows version : Fix big size (>8GB) usb stick/sd access issue.
- populateslots option : autoboot.hfe filtered.
07 aug 2017:
- Fix the config file access error when the file haven't the archive flag set.


Converter / HxC Software :
- WIP : HFEv3 Import/export support added. This format support copy protections (variable bitrate protections and soon weakbits protections).

Thanks to all alpha/beta testers for testing the firmware and reporting the issues ! :)

-------------------------------------------------------------------------------
-- Stable Firmware versions :
-------------------------------------------------------------------------------

31 May 2016: Firmware STM32 USB HxCFloppyEmulator v3.0.8.2a

	- HD floppy disk format issue corrected : write buffer size corrected.

15 April 2016: Firmware STM32 USB HxCFloppyEmulator v3.0.8.1a

	- Last selected image save issue corrected.

14 April 2016: Firmware STM32 USB HxCFloppyEmulator v3.0.8.0a

	- "Autoboot"/ File selector mode :
	   Fast backward/forward mode : Keep the button pressed to speed up the image change.
	   Press both buttons in the same time to jump the autoboot/file selector image.

	- "Indexed mode :
	   Fast backward/forward mode : Keep the button pressed to speed up the image change.
	   Press both buttons in the same time to jump the DSKA0000 image.

	   Up to 1000 indexed images (DSKA0000-DSKA0999).

21 January 2016: Firmware STM32 USB HxCFloppyEmulator v3.0.6.7a

	- Tandy TL/2 write issue corrected - glitch filter reduced
	  (Probably solve write issue with some others machines too).

	- 2 digits display init issue corrected (I2C timeout reduced).

	- LCD support : Characters glitches with some long file name corrected.

11 October 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.6.6a

	- Some more random crash issues corrected into the disks images managers.
	  USB Stack updated.
	  Firmware Update strongly recommended !

26 September 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.6.4a

	- Random crash issues corrected into the disks images managers.

23 September 2015: Firmware USB HxCFloppyEmulator v3.0.6.3a

	- Some user interface delays added to make it more usable ;)
	- "Press select for the Setting menu" text added.

20 September 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.6.2a

	- Normal mode : Endless init loop corrected.

20 September 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.6.1a

	- Amiga : Disk change detection corrected : Desert Strike, Dizzy Crystal and
                  probably others games disk change detection are now working properly.

	- Direct access mode : Correct interface mode set when activated from an PC HD image.

13 September 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.6.0a

	- Low level write layer redesigned : Some write issues solved.

	- 2 digits display detection issue corrected.

	- HFE : Index timing changed/corrected.

	- Select button added at the JA jumper position.
	  This additional button and the I2C LCD screen allow you to freely
	  select a file image without the indexed mode or any selector software.

	- Indexed mode : "Previous"/"Minus" button repeat rate reduced.


3 August 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.5.4a

	- Amiga : Extra Disk change delay added. Solve some disk change issues (Protracker 3.15, Defender of the Crown,...).

25 June 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.5.1a

	- CPC Fileselector issue corrected (-> If no file extension, HFE format mode is selected).

20 June 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.5.0a

	- Direct *.ST / *.IMG file support added :)

	(Read only - Write support incoming !)
	For Atari ST users, you need to update your file manager too :
	http://hxc2001.com/download/floppy_drive_emulator/SDCard_HxC_Floppy_Emulator_Manager.zip

	Current image support : *.HFE (RW), *.ADF (RW), *.ST (RO), *.IMG (RO).
	(Note/Reminder : The HFE format was designed to be universal. This one can be used with many types of machines).


17 June 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.4.0a

	- I2C LCD auto detection/scan and communication improved/corrected

	- Low level pulses generator improved :
		- Code size reduced.
		- 250Kbits/s, 300Kbits/s, 500Kbits/s support (FM/MFM).
		- Variable bitrate & flakey bit support "Ready" ;)

07 June 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.3.1a

	- Some IOs timing improved.

        - Agony game issue almost corrected.

06 June 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.3.0a

	- USB Sticks are now mounting a way faster at power up ! :)

	- I2C LCD display support added !

	These kind of I2C LCD board is compatible with the firmware :

	http://www.ebay.com/itm/IIC-I2C-TWI-SP-I-Serial-Interface-Board-Module-Port-For-Arduino-1602LCD-Display-/310565362720?pt=LH_DefaultDomain_0&hash=item484f235c20
	(board only - without the LCD)

	http://www.ebay.com/itm/IIC-I2C-TWI-SPI-Serial-Interface-Board-Module-Port-for-Arduino-1602LCD-Display-/161245616356?pt=LH_DefaultDomain_0&hash=item258afcd8e4
	(board only - without the LCD)

	http://www.ebay.com/itm/New-Blue-IIC-I2C-TWI-1602-16x2-Serial-LCD-Module-Display-for-Arduino-/221439853893?pt=LH_DefaultDomain_0&hash=item338ed80545
	(board + LCD)

	http://www.ebay.com/itm/IIC-I2C-TWI-SP-I-Serial-Interface1602-16X2-Character-LCD-Module-Display-Yellow-/310565065933?pt=LH_DefaultDomain_0&hash=item484f1ed4cd
	(board + LCD)

	Any I2C address is supported : The firmware scan automatically the I2C bus at power up (0x20-0x27 and 0x38-0x3F address range scanned)
	So there is no specific requirement about the I2C address setting.

	To connect the I2C LCD, you have to connect SDA & SCL at the J7 connector (see below).
        Please note that 2 additionals 4.7Kohms pull up resistors (+5V) are needed on SCL & SDA.
	the +5V and GND wire can be connected on the programming connector (see below) :

	If you want to build the I2C board yourself, here is the schematic:
	http://hxc2001.com/download/floppy_drive_emulator/Ext_Slim_HxC_Floppy_Emulator_I2C_LCD_Schematic.pdf


- Possible +5V source on the PCB (on the programming connector):

 _____________________________
 |
-+--- NC
-+--- GND      O J3 (BOOT0)
-+--- GND      O VCC3V3
-+--- +5V     OO TX
 |        +5V OO RX
 |        GND OO RST
 |--
 |  |
 |  |


 - SCL & SDA position on J7 :

                           _____|
                          |     |
                          | USB |
                          |_____|
        OO______________________|
    SDA OO|SCL
    GND OO|VCC3V3
        J7|
          |
__________|



31 May 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.2.5a

	- CPC & Shugart disk change signal timing corrected.
	- Dead lock issue while existing the direct access mode corrected.

23 May 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.2.2a

	- Amiga Disk change timing corrected. (Goal!, Arabian Nights, and probably other titles)
	- The last disk selected is now saved to the USB Stick.
	- Long press on one button allows to select the manager disk (000).

15 May 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.2.0a

	- ADF Write support is now working correctly !
	This firmware have now the full Read & Write capability for both ADF & HFE format !

11 May 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.1.1a

	- Ready  / Dskchg amiga timing corrected.

11 May 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.1.0a

	- ADF file support added :)
	(Write support not tested yet ! And Manager v1.13 needed -> Please update it! :
	http://hxc2001.com/download/floppy_drive_emulator/SDCard_HxC_Floppy_Emulator_Manager.zip )


30 April 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.0.1a

	- Write Data line filter reduced (CPC issue)

28 April 2015: Firmware STM32 USB HxCFloppyEmulator v3.0.0.0a (HFE file support - "Gotek" HW)

	- First public USB version firmware.

    	-> FAT 12 / FAT 16 / FAT 32 USB stick support.

	-> Read & Write support.

	-> DD (MFM 250) & SD (FM 250) density support.

	-> Software compatible with the SD HxC Floppy Emulator : Use the same HXCSDFE.CFG file.

	-> USB Direct Access mode : Direct Floppy to USB bridging. Protocol compatible with the SD HxC :
	   see http://hxc2001.com/download/floppy_drive_emulator/SDCard_HxC_Floppy_Emulator_Direct_Access_mode.pdf
	   Amiga, Atari ST and CPC file managers are working with this firmware.

