-------------------------------------------------------------------------------
-----------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
-------------------------------------------------------------------------------

Note : Online version with images available at this address :

http://torlus.com/floppy/forum/viewtopic.php?f=33&t=1683&p=16457

-------------------------------------------------------------------------------
- General STM32 HxC Floppy Emulator Firmware Usage                            -
-------------------------------------------------------------------------------

 -> Format the USB Stick in FAT32 (FAT12 & FAT16 also supported).

 -> (Optional if you have an LCD/OLED screen)
    Copy the right HXCSDFE.CFG file to the root of the USB Stick
    (See "Mode selection" below for more details).

 -> Copy or generate your disks images to the USB Stick.
    (See "File images supported" below for mode details).

 -> Insert the USB Stick into the emulator.

-------------------------------------------------------------------------------
- Mode selection                                                              -
-------------------------------------------------------------------------------

There are actually three main modes available :

---------------
- Normal mode -
---------------

In this mode the file image/disk to load is directly selected with the buttons
and the LCD screen. One I2C screen is needed to be able to use this mode.
An optional "select" push button can be connected on the JA connector.
No extra software needed.

config file is optional (Config-Less support).

If you you want to have the last image selection image feature, the config file
to copy to the root of the flash media is into the folder
Config_Files/Normal_mode/HXCSDFE.CFG

----------------
- Indexed mode -
----------------

In this mode the file images must be named DSKA0000.HFE/.IMG, DSKA0001.HFE/.IMG, DSKA0002.HFE/.IMG,...
(HFE & IMG images supported)
The 2/3 digits display shows the actual file number selected.

No LCD and/or extra push button is needed to use this mode.
No extra software needed.

This is the recommended mode when you don't have the extra LCD & button and when
your machine can't use the autoboot mode (see below).

The config file to copy to the root of the flash media for this mode :

Config_Files/Indexed_mode/HXCSDFE.CFG

-----------------------------------
- "Autoboot" / File selector mode -
-----------------------------------

In this mode, the AUTOBOOT.HFE software is used to select the images to load
directly on the computer.
This software is actually available on Amiga, Atari ST and CPC computers.

No LCD and/or extra push button is required to use this mode, but the LCD may help you
to see which disk is actually mounted.

The config and the software file to copy to the root of the flash media for this mode
are in the folder File_Selector/ and Config_Files/Autoboot_mode

-------------------------------------------------------------------------------
- Internal parameters settings                                                -
-------------------------------------------------------------------------------

There is many parameters that can be changed. You generally don't have to change
them as the default values are fine in most cases.
Anyway if needed these settings can be changed with the internal menu.
To access it, remove the USB stick and press both buttons. Then you can navigate
through the various available options.

If you don't have a LCD/OLED screen the alternate way to change them is to
use/edit the HXCSDFE.CFG file with the HxC Floppy Emulator software.

The file selectors have also a setting page that can be used to change these
parameters.

Here is some of the available parameters :

- Floppy Interface mode (predefined modes and custom modes).

- Single or Double step track mode.

- Emulation Bitrate (Auto or forced).

- Floppy write protect state.

- Step Sound output settings.

- LCD/OLED characters per line setting (16/18/20 or 21 characters per line).

- LCD Backlight timeout setting.

- Select Button emulation (on/off and timeout setting).

-------------------------------------------------------------------------------
- File images supported                                                       -
-------------------------------------------------------------------------------

Direct support :


- Universal support :
All machines are supported by the (H)xC (F)loppy (E)mulator (HFE) file format :
 *.HFE ( Read / Write ),  *.HFE (v3 - Copy protected images/"ipf" support) ( Read )

- Amiga :
 *.ADF ( Read / Write )

- Atari ST:
 *.ST  ( Read / Write )

- PC and compatibles (Computers, Synth and tools...) 
 *.IMG ( Read / Write ), *.IMA ( Read / Write )

- MSX :
 *.DSK ( Read / Write ), *.IMG ( Read / Write )

- Roland : 
 *.OUT ( Read / Write )

- Amstrad CPC/Spectrum/Tatung Einstein : 
 *.DSK (CPC/ZX Spectrum Normal & Extended DSK) ( Read / Write )

- Acorn :
 *.ADL,*.ADM,*.SSD,*.DSD and *.ADF files support  (all Read / Write )

- Camputer Lynx :
 *.LDF ( Read / Write )

- Commodore C64 :
 *.D81 ( Read / Write )

- Thomson machines : 
 *.FD ( Read / Write )

- Sam Coupé : 
 *.SAD ( Read / Write ), *.MGT ( Read / Write )

- Spectrum : 
 *.TRD, *.SDD, *.DSK (all Read / Write )


The HFE files can be generated from a large kind of files images with this software :

http://hxc2001.com/download/floppy_drive_emulator/HxCFloppyEmulator_soft_beta.zip


Indirect image support (With the HFE support) :

KRYOFLUXSTREAM      :  KryoFlux Stream Loader                (*.raw)
AMIGA_DMS           :  AMIGA DMS Loader                      (*.dms)
AMIGA_ADZ           :  AMIGA ADZ Loader                      (*.adz)
AMIGA_EXTADF        :  AMIGA EXTENDED ADF Loader             (*.adf)
AMIGA_OLDEXTADF     :  AMIGA OLD EXTENDED ADF Loader         (*.adf)
ZXSPECTRUM_FDI      :  ZX SPECTRUM FDI Loader                (*.fdi)
AMIGA_ADF           :  AMIGA ADF Loader                      (*.adf)
ACORN_ADF           :  ACORN ADF Loader                      (*.adf)
AMSTRADCPC_DSK      :  Amstrad CPC DSK Loader                (*.dsk)
ATARIST_DIM         :  ATARI ST DIM Loader                   (*.dim)
ATARIST_STX         :  Atari ST STX/Pasti Loader             (*.stx)
ATARIST_STT         :  ATARI ST STT Loader                   (*.stt)
COPYQM              :  COPYQM IMG Loader                     (*.dsk)
TELEDISK_TD0        :  TELEDISK TD0 Loader                   (*.td0)
ATARIST_MSA         :  ATARI ST MSA Loader                   (*.msa)
ATARIST_STW         :  STW Loader                            (*.stw)
RAW_IMZ             :  IBM PC IMZ Loader                     (*.imz)
HXCMFM_IMG          :  HXC MFM IMG Loader                    (*.mfm)
ORIC_DSK            :  ORIC DSK Loader                       (*.dsk)
ATARIST_ST          :  ATARI ST ST Loader                    (*.st)
ROLAND_W30          :  Roland W30 file Loader                (*.w30)
SPS_IPF             :  SPS IPF Loader                        (*.ipf)
TI994A_V9T9         :  TI99 4A V9T9 Loader                   (*.v9t9)
AMIGA_FS            :  AMIGA FS Loader                       (*.amigados)
PROPHET2000         :  PROPHET 2000 Loader                   (*.img)
RAW_IMG             :  IBM PC IMG Loader                     (*.img)
FLP_IMG             :  FLP PC Magazine image Loader          (*.flp)
MSX_DSK             :  MSX DSK Loader                        (*.dsk)
FAT12FLOPPY         :  FAT12/MS DOS Loader                   (*.fat)
HXC_HFE             :  SD Card HxCFE HFE file Loader         (*.hfe)
VTR_IMG             :  VTR IMG Loader                        (*.vtr)
IMD_IMG             :  ImageDisk IMD file Loader             (*.imd)
HXC_AFI             :  HxC AFI file loader                   (*.afi)
C64_D81             :  C64 D81 Loader                        (*.d81)
ZXSPECTRUM_TRD      :  Zx Spectrum TRD Loader                (*.trd)
ZXSPECTRUM_SCL      :  ZX SPECTRUM SCL Loader                (*.scl)
THOMSONTO8D_SAP     :  THOMSON TO8D SAP Loader               (*.sap)
TRS80_JV1           :  TRS80 JV1 Loader                      (*.jv1)
TRS80_JV3           :  TRS80 JV3 Loader                      (*.jv3)
TRS80_JVC           :  TRS80 JVC Loader                      (*.jvc)
SVD                 :  SVD Loader                            (*.svd)
NEC_D88             :  NEC D88 Loader                        (*.d88)
X68000_HDM          :  X68000 HDM file Loader                (*.hdm)
RAW_LOADER          :  RAW Sector loader                     (*.img)
SNES_SMC            :  Super famicom SMC Loader              (*.smc)
VEGAS6809           :  VEGAS6809 image Loader                (*.veg)
TRS80_DMK           :  TRS80 DMK Loader                      (*.dmk)
TI994A_PC99         :  TI99 4A PC99 Loader                   (*.pc99)
APRIDISK            :  APRIDISK Loader                       (*.dsk)
ENSONIQ_EDE         :  ENSONIQ EDE Loader                    (*.ede)
FAT12FLOPPY         :  FAT12/MS DOS Loader                   (*.fat)
ENSONIQ_GKH         :  ENSONIQ GKH Loader                    (*.gkh)
THOMSON_FD          :  THOMSON FD Loader                     (*.fd)
CASIO_FZF           :  Casio FZF file Loader                 (*.fzf)
DRAGON3264_VDK      :  DRAGON32 & 64 VDK Loader              (*.vdk)
OBERHEIM_DPX        :  Oberheim DPX Loader                   (*.dpx)
ENSONIQ_EDM         :  Ensoniq mirage EDM Loader             (*.edm)
EMAX_EM             :  EMAX EM1 & EM2 Loader                 (*.em1)
SAMCOUPE_MGT        :  SAM COUPE MGT Loader                  (*.mgt)
SAMCOUPE_SAD        :  SAM COUPE SAD Loader                  (*.sad)
EMULATORII          :  E-mu Emulator II / SP1200 dsk Loader  (*.emuiifd)
EMULATORII_EMUII    :  E-mu Emulator II *.eii Loader         (*.eii)
EMULATORI           :  E-mu Emulator I dsk Loader            (*.emufd)
CAMPUTERSLYNX       :  CAMPUTERSLYNX Loader                  (*.ldf)
BBC_ADL             :  BBC ADL floppy image loader           (*.adl)
BBC_SSD_DSD         :  BBC SSD & DSD floppy image loader     (*.dsd)
FEI                 :  FEI Loader                            (*.fei)
SYSTEM_24           :  System 24 loader                      (*.s24)
SCP_FLUX_STREAM     :  SCP Stream Loader                     (*.scp)
APPLE2_NIB          :  Apple II NIB Loader                   (*.nib)
APPLE2_DO           :  Apple II DO Loader                    (*.do)
SPECCYDOS_SDD       :  Speccy DOS SDD File Loader            (*.sdd)
ARBURG              :  ARBURG RAW Loader                     (*.arburgfd)
GENERIC_XML         :  Generic XML file Loader               (*.xml)

(Note : the actual STM32 firmware wasn't yet tested with the above mentionned machines !)

Software step by step guide :
http://hxc2001.com/download/floppy_drive_emulator/HxC_Floppy_Emulator_Software_User_Manual_ENG.pdf

-------------------------------------------------------------------------------
- Optional Add-on hardware                                                    -
-------------------------------------------------------------------------------

--------------------------------------
- I2C SSD1306 128x32 OLED LCD Screen -
--------------------------------------
Note : Since the 3.0.26.1a

  You can 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 3.3V, 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 ! < !


-----------------------
- I2C 2x16 LCD Screen -
-----------------------

 These kind of I2C LCD boards are 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 additionnals 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|
          |
__________|


-----------------------
- Extra select button -
-----------------------

The optional select/middle button, usable with the "normal" mode
can be added on the JA jumper position.
JA is present near the floppy connector.

-----------------------
- Buzzer sound output -
-----------------------

You can connect a piezo or a magnetic buzzer to the JB jumper position.
A transistor is 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 floppy step signal, they are producing reliability problems...)


(c)2006-2017 Jean-François DEL NERO
(c)2006-2017 HxC2001

http://hxc2001.com
http://hxc2001.free.fr/floppy_drive_emulator/index.html

