|
The Memotech MTX Series |
|
MEMOTECH DISK UPGRADE - HxC
|
|
|
|
From this . . . |
or this . . . |
|
to this ! |
Update : August 2014 |
Important
I have been recommending the HxC SD Floppy
Disk Emulator as a replacement for floppy
drives in Memotech disk systems for a while now, and
whilst this remains broadly true, please read
this section for a caveat should
you intend to use the device with an FDX |
|
Update : April 2018 |
Whilst the HxC emulator works well, there is a new
player in the market.
Keir Fraser has released replacement firmware
for the Gotek USB floppy drive emulator. These
devices are ultra-cheap, making it possible to add
replacement USB "drives" to FDX/SDX systems for
under £20. See my
Memotech Gotek
upgrade here. |
|
Background
Having improved the reliability of my FDX system
by replacing the original Astec
PSU with a HEC-200SR ATX PSU and
replacing the ageing 5.25" drives with 3.5" ones, I now
wanted to enhance the storage facilities on my
FDX.
Many vintage computers have had CF (Compact
Flash) or SD (Secure
Digital) memory card devices developed to emulate floppy and
hard disk drives. Unfortunately, there are no integrated storage
card options, such as
Andy
Key's
REMEMOrizer for the MTX, available for the FDX (yet ?), so even with the largest floppy
disk supported by the FDX (Type 07, 640k), a lot of disks are
required to store all of my old programs and data. As well as
that, the long term reliability of floppy disk media is not
guaranteed and backing up a collection of even a moderate
quantity of floppy disks is a chore that I can do without, There had to
be a better solution . . . . . . .
HxC Floppy Disk Drive Emulator
The HxC Floppy Drive Emulator is a Universal
Floppy Disk Emulator, developed by Jean-François Del Nero
(Jeff). It began as a way to emulate the 3.5" disk drives on
Atari ST and Commodore Amiga computers and has developed into a
solution that can replace floppy disk drives in a wide range of
computers, music samplers and a range of industrial machines -
in fact, just about anything that has a floppy drive interface.
There are two main kinds of HxC :-
-
A
USB version which allows connection of the floppy disk
drive interface of the target hardware to a PC via a USB
cable.
-
An
SD Card version which emulates floppy disk drives with
disk images stored on an SD card
Full details of the HxC Emulator can be found on
either
The HxC Emulator is a popular add-on for users
of vintage home computers and is widely discussed in forums such
as the amibay
(Amiga focused) or
startdot
(Acorn/BBC focused) forums. It also has its own
HxC
support forum, When looking through the HxC forum, there
were plenty of references to the use of the emulator with a
range of computers and other systems, but only a single thread
about its use with Memotech systems.
Jim Wills had purchased one
in 2011, but had apparently had problems getting it to work with
this FDX - and in particular, had never been successful writing from the FDX to the emulated
disk. There have been multiple improvements to the HxC firmware
since 2011 and I was hopeful that any issues either had been, or
could be, resolved.
The SD card based emulator is
available in a number of form factors, including :-
|
|
Click image to open full size
photo |
The original design, available since 2010.
This version has been successfully installed in a
wide range of home computers, music systems,
industrial machinery, etc.
You can see pictures the wide range of previous
installations on the HxC web site by following
this link.
|
|
The display and buttons can be remotely mounted, allowing
installation of the emulator inside the target
hardware. This example shows the emulator mounted
in place of the floppy disk drive in an Atari ST. |
|
For situations where more flexibility is
required, the emulator can be supplied in a case -
both grey and black are available. When I was
assessing the suitability of an HxC emulator for use
with my FDX, I decided to buy a cased model first,
as, if it turned out not to be suitable, I knew that
it would work with my Atari ST and BBC computers. |
|
Although the grey would have matched my Atari
and BBC computers better, I decided that the black
looked better and would match my FDX and SDX disk
systems.
And actually, if it did work, it would look nice
sat next to my SDX controller! |
|
However, assuming that it would work with the
FDX, the ultimate goal was to be able to install an
HxC inside the FDX in place of one of the existing
disk drives. A new model with a standard 3.5"
floppy disk drive form factor was released in 2012 -
hopefully, this is what my final solution will look
like. |
|
The 3.5" form factor "drive" is available with
grey and black adhesive labels for the facia. The
black label would be closer to matching my FDX, but
even then, is a little "cluttered" to match the
FDX's "minimalist" look. I know that some users
have elected just to paint, and in at least one
case, powder coat, the fascia completely black. This
would be a much neater solution for installation in
the FDX. |
|
Update : 2014 The Rev "F" is now
available with optional power coating for an
additional 3 Euros. This would be a far nicer look
for a device mounted in the FDX.
If you open the full size photo, you can see
indents in the coating from the fixings, this takes
a little away from the look of the fascia, but is
still better than the adhesive labels. |
|
An ultra slim line version was released in 2013
This allows the HxC to be mounted in a slim 3.5"
floppy drive case, such as those used for laptops
etc. |
|
|
|
Images courtesy of
Jean-François Del Nero
(Jeff) and Przemyslaw Krawczyk's (Lotharek)
|
FDX Drive Configuration
The FDX disk controller supports up to 4 floppy
disk drives and the starting point for me was with the FDX
configured for two, 3.5" 80 Track drives. I needed the original
drives to be addresses as DS0 and DS1 as some Memotech software,
e.g., FDXB.COM, will only run from the first physical disk -
addressed as DS0. I needed to be able to add the two emulated
HxC drives as IDs DS2 and DS3.
I had made the
necessary changes to the configuration switches on the FDX disk
controller when I installed the 3.5" drives, I had set up the
third and fourth drives to be compatible with Memotech Type 07
disk drives. If you need to modify the settings on your disk
controller, you can get the details of what is required by
following this link.
HxC Hardware Configuration
The HxC emulator is advertised as being fully
compatible with IBM PC floppy interfaces as well as fully
compatible with the Shugart "standard" found on many other
systems, it can also emulate two separate floppy drives and has
ID select pins marked DS0, DS2, DS2 and DS3, suggesting that it
can support drive IDs in this range. Whilst
the HxC manual does describe pinning of the HxC to assign the
emulated floppy drive ID(s), it is not too clear on IDs other
than 0 and 1, and setting ID 3 in particular appeared not to be
as straight forward as the lower IDs. I posted a question on the
HxC support forum*, but in the meantime, went ahead and
configured the HxC as device ID 2 - this would be connected to
my FDX as the "D" drive.
*Jeff has confirmed that "out of the box", DS2
is supported, but the connection for DS3 is not wired from the
34 pin header to the the circuit board on the HxC. To verify
that the HxC could be made to work as DS3, I was asked to do
some testing by either modifying the HxC (which I was not keen
to do) or modifying a floppy disk cable :- |
|
|
This has the effect of having the HxC appear to
the FDX to be Drive D: (using the normal pinning on the HxC
associating the HxC "A:" drive with DS2) and Drive E: (using the
pinning on the HxC for the "B" drive using the FDX DS3 signal,
wired to the HxC DS0 line in the interface).
This temporary work around has proved that the
HxC will work in my desired configuration of 3.25" disks as FDX
drives B: and C:, with HxC emulated drives as FDX drives D: and
E.
Update : August 2014 When I did some testing in
May 2013 to prove that the FDX & HxC combination
would work with drive ID DS3, I was led to believe
that a modification to the Rev "F" HxC would be
introduced 3-6 months after the tests. As it turns
out, there are no modifications being made to the
Rev "F" design and the seller will not perform the
required modification on an "as needed" basis, even
with instructions from the designer. Because of this
lack of flexibility to support the Shugart
"standard" and the FDX disk option for 4 drives, I
have cancelled my order for a Rev "F" HxC until this
deficiency is corrected. Until then, I will continue
to use my cased HxC. Update 2 : August 2014
A few words on my experiences while trying to get an
HxC Rev "F" configurable for drive ID's 0 to 3.
This has proven to be far more difficult than it
needed to be, so I have parked the idea of adding a
Rev "F" for the foreseeable future. I know that Jeff
is working on a new floppy replacement design and I
am hopeful that it will be able to support DS0 to
DS3 "out of the box". From my perspective, the
reason that things have been difficult is due the
way that HxC design and support (Jeff)
are divorced from manufacture and supply
(Lotharek) - it feels almost Kiplingesque - an
example of " Never the twain shall meet" ! I have
found Jeff (HxC developer) to be very helpful and
willing to discuss and resolve technical queries and
am now confident that it is possible to add a small
patch wire to the Rev "F" PCB to provide the device
with the flexibility to respond to drive ID DS3 in
addition to DS0 to DS2. On the other hand, Lotharek
(HxC seller) is far from flexible. Although Lotharek
is the sole source of supply for HxC, it is only
part of the product range in his extensive on-line
store, which is very much a commercial enterprise.
Whilst I have found that, in general, Retro computer
hobbyists and developers are willing to engage with
others, things are a bit different with Lotharek.
For whatever reason, the size of his operation
perhaps? His lack of time? The commercial nature of
his enterprise? etc.? He is very much a
"box-shifter", all of his products are available to
order from the website, but they are sold on a "take
it or leave it" basis, there is no flexibility for
any degree of "customisation". At one level, I can
understand this, but for the case in point, it is
very disappointing that a small modification to
correct a deficiency in the product that can cause
problems for a very few customers and prospective
customers on a one-off
basis is not possible unless an order for 200 units
is placed - not a viable option.
NB : These observations are based on my personal experiences
-
"your mileage may vary" In
summary, should you want to use HxC with SDX type
controllers, there will not be an issue as,
depending on the model, SDX controllers only support
1 or 2 floppy drives (DS0 and DS1). Similarly,
should you want to use HxC in an FDX and address the
drives as DS0, DS1 or DS2, then things will be fine.
However, should you wish to have 4 drives in your
FDX, it is highly likely that you will need the HxC
to be addresses as drives DS2 and DS3.
This is not possible
"out of the box" in the current versions of the HxC.
The options available are :-
- Modify the HxC yourself, doable, but you
will void the warranty, don't expect much
support from the seller
- Make a custom floppy cable, or bodge an
existing one like I did, this will work, but I
think it's a crude solution for correcting a
problem with the device. It's not an acceptable
long term solution for me.
- Wait for a new product or find an
alternative
|
HxC Software Configuration
The HxC is configured using a Windows
configuration tool : The latest version can be
downloaded from either of the websites above :
|
|
When the HxC starts up, it looks for a file
called hxcsdfe.cfg in the root
directory of a FAT32 formatted SD card. This file
sets various emulator options such as the backlight
timer, sound effects volume and basic disk
parameters. A default configuration file can be
created with the software. The first step is to copy
this file onto an SD card, freshly formatted as
FAT32. |
|
In the current general release of software, the
HxC needs the emulated floppy disks to have been
created on the PC, then copied over to the SD card.
A number of standard formats, such as for a PC or
the Amstrad CPC computer are defined in the
software, such as the 720K PC format shown here.
If you want to use non-standard "disks", such as
those for the Memotech FDX and SDX, the disk
configuration and format must be specified before
creating a new floppy "disk".. |
|
The required parameters for the most common
Memotech disk types are :
Parameter |
Type 03 |
Type 07 |
Track Type |
MFM |
MFM |
Bit rate |
250,000 |
250,000 |
RPM |
300 |
300 |
Number of Tracks |
40 |
80 |
Number of Sides |
2 |
2 |
Sectors per Track |
16 |
16 |
Sector Size |
256 |
256 |
Sector ID Start (default) |
1 |
1 |
Interleave |
3 |
3 |
Skew (default) |
0 |
0 |
Format Value ("E5") |
229 |
229 |
All other options
unchecked |
Resultant capacity |
Type 03 |
Type 07 |
Total Sectors |
1280 |
2560 |
Total Size |
327,680 |
655,360 |
|
|
It is easy to create new
HxC profile files (".fpf") with this
information but you can also download pre-built
profiles for Memotech disk Type 07 and Type 03 from
the bottom of this page. |
|
|
This picture, from
The PC Guide, illustrates the concepts of
interleave and
skew, it shows a simplistic overview of
a disk with the concentric tracks divided into a
number of sectors. Reading and writing a given
sector on a track takes a finite amount of time, if
adjacent sectors are being accessed and the disk
controller cannot process the data fast enough
before the head is over the next sector, it will
have to wait for a complete revolution of
the disk before being able to process the next
sector.
Skew relates to a similar concept, movement of the drive
head from one track to the next is a mechanical
operation. The diagram shows how sectors on adjacent
tracks may be "skewed" to optimise the track to
track seek time. |
|
The Memotech FDX disk controller
manual does not discuss skew, but does give the
interleave values for the different disk types,
which, apart from 8" Type 10 disks, are all the
same. Based on my reading of a poor quality scan of
the FDX controller manual, I initially thought that
controller does not use sector interleaving, so
initially set both interleave and skew to 0. |
Initial Testing
I created a number of Type 03 and Type 07 images
and copied them to the SD card, along with the HxC configuration
file. I connected up the HxC, booted the FDX from one of my Type
07 floppy drives and CONFIGured drive D: as a Type
07 disk. I could do DIR from CP/M and the "drive"
was recognised, reporting "NO FILE" (as expected),
which was encouraging.
When I tried to use the emulated drive "D"
though, I
found that it was extremely slow. It took a very long time to
copy files to and from it, even a directory listing was very
very slow. The disk checked out OK with no errors when running
RCHECK.COM, but the speed of checking the disk was
again painfully slow. I would estimate that the performance of the HxC was certainly no faster than 25% of a normal FDX floppy
drive. When the HxC was connected, I also experienced sector
read errors on real floppy drives that did not occur when the
HxC was not connected.
Needless to say, I was very disappointed at this
point!
I submitted a query to the
HxC
support forum which was very quickly
responded to by Jeff, the HxC developer.
<Quote>
"This is generally an interleave/skew/gap
setting problem : With the wrong interleave/skew/gap
setting, the host machine may not have the time to "catch"
the next sector and must do some additional disk rotation to
get it. In the worst case the machine has to make 16
rotation to get the 16 sector present on a track... (0.2s
*16 = more than 3s...) To got the right interleave/skew/gap
setting, update update the firmware with the 1.8.1.7 (in
your email box), and format one of your images on the host
machine. Send me back the image by email. "
<End Quote>
The new firmware supported formatting of the
"disk" from the host controller, when I formatted a "disk" on
the FDX, the performance of the system improved markedly. I have
not done any quantitative testing yet, but, so far, I am happy
with the performance.
When Jeff looked at the image file that had been
formatted on the FDX, he was quickly able to see that the FDX
controller was using an interleave value of 3 - his
comments above were spot on! Armed with this knowledge, I took
another look at the FDX controller manual and saw that I had
misinterpreted the information that I had read earlier. The
manual actually shows that the sector interleaving arrangement
is "1 - - 2 - - 3 - - 4" confirming Jeff's investigation. (I had
misread the FDX manual as "1-2-3-4" and wrongly took this to
mean that the sectors were read consecutively and that interleaving was not being used).
Early Observations
SD Card Options
The HxC can use SD cards up to 2GB and SD HC
cards up to 32GB, that sounds great - the bigger the better,
however, this is far more than actually needed and probably far
more than is manageable - certainly for a Memotech system. 32 GB is equivalent to some 8000 1,44MB
disks, and although the emulated floppies can be stored in
sub-directories, file navigation is all done using the "<<Prev",
"Enter" and
"Next>>", buttons, it is probably going to take you a long time to get to disk
4000!
I think it is probably far better to use a
number of smaller SD cards, but for Memotech systems, even a
256MB
SD card would hold all of the available library of
commercial software, your own data as well as a huge amount of
commercial and Public Domain CP/M software. A 256MB card is able
to store the equivalent of over 130 Type 07 floppies. Even using
sub-directories, that is going to need careful file management
if you are going to be able to retrieve the required floppy
image without a lot of searching.
The display panel is 16 characters wide, to
support long filenames, the display scrolls to allow the full
filename to be seen. Although the scroll speed can be adjusted
in the HxC configuration file, I find that navigating through
lists of files with long names is not a pleasant experience. I
use filenames with an 8.3 naming convention, it is obviously a
user preference to go with more descriptive filenames as opposed
to speed of navigation.
There is an argument for using higher capacity
cards though - whether you will use all of the available storage
space or not, and that is the speed of the card as shown in the
table below :-
SD Card Class |
Minimum Performance
MB / second |
2 |
2 |
4 |
4 |
6 |
6 |
10 |
10 |
Jeff recommends a good quality SD card such
as the Sandisk Class 10 Extreme Series. You will probably
not find a Class 10 SDHC card that holds less than 4GB and
even a Sandisk Extreme that size should cost you well under
£10. On the other hand, many people have older xMB sized SD
cards left over from old digital cameras, media players etc.
that would probably give acceptable performance on a
Memotech disk system, particularly as the file sizes being
used on the emulated disks are relatively small and the
performance of higher capacity cards can fall off when
reading & writing small files.
SD Card Filing Structure
Whilst an operating system such as Windows has
the option of sorting a display of the SD card directory
according to user preference, such as, Name, Date, Type. etc.
native FAT32 file ordering is mainly by the order they were
placed on the card. Due to memory constraints on the HxC, the
files are displayed in native FAT32 order by the emulator.
The
DriveSort program can be used to customise the order in
which the files will appear in the HxC display.
Backups
The ability to "copy & paste" floppy disk images
from the SD card to other storage locations using Windows is
going to make backing up
my Memotech software unbelievably easy! - I think that this
functionality alone is worth the cost of the HxC emulator and
the small amount of effort it is going to take to get all of my
FDX disks copied over to SD card.
Image Portability
The default file format used by the HxC is ".hfe",
a custom file format written by Jeff for the emulator, it is
openly available and details can be found in the HxC document at the bottom of this
page. This format is only used by the HxC floppy disk drive
emulator so the image files are only directly useable by people
with HxC hardware. However, the PC software can be used to
convert images between various other formats, including
TeleDisk and
ImageDisk. Teledisk was widely used to create floppy disk images
and some Memotech disk images are available in TeleDisk (.td0)
format, but TeleDisk is not free software and its current status is a bit of a
grey area, in any event, the HxC software can import, but not export images
in TeleDisk format. It can though, import and export images in ImageDisk (.imd)
format, written by Dave Dunfield, ImageDisk is Freeware.
There are also advantages in using ImageDisk (or
Teledisk) format for archiving or exchanging files, the HxC
format does not use any form of compression, and even a Memotech
Type 07 (620kb) disk image is almost 2 megabytes in size. The
ImageDisk file format compresses the same image down to 213kb -
around 10% of the size of the .hfe file. Of
course, the .hfe image can also be compressed with WinZip etc.,
which brings the image size down to around 183kb.
The HxC Floppy Disk Emulator software can also
read in files in RAW data format, i.e., the data bytes as they
are written on the disk, this means that it is also compatible
with Andy
Key's MFLOPPY format which other Memotech owners may already
be using. I was able to take Andy's SDX System disk from his
MLOPPY distribution, read it into the HxC PC software then write
out a file to the SD card which I could then use to boot my SDX.
My
CP/M Images page contains links to a number of Memotech disk
images available for download, until I get more of my Memotech
disk images converted, by way of example, I have posted a copy
of Andy's SDX System disk on the page. I would appreciate it if
you could let me know your experiences, good or bad, if you
download any of these images.
Wish List
I can already see that the HxC will be a great
add-on for my FDX (and SDX) disk systems, but the obvious
restriction is that the PC software can only create, read and
write complete disk images. For more common formats, such as for
the PC, the PC software can work with the "disk" at file level -
creating, browsing and exporting new "disks" as required.
Similar functionality for the Memotech disk
format is not available in the HxC software, and as there is
nothing like that available for Memotech users under Windows
(although there are some low level disk manipulation tools like
"dd" and "cpmtools"),
this would make a great enhancement to the HxC software for
Memotech users. However, with the very small user base of
Memotech owners with HxCs, I guess that this is unlikely to make
it into the PC software - unless of course, it would encourage
more Memotech owners to purchase the HxC - which I'm sure it
would.
Update, April 2018: Hopes raised, then
dashed . . . .
At one point, I was discussing the possibility a
file browser with Jeff, and having sent him more details of the
Memotech disk format and copies of "dd" and "cpmtools". Jeff did
start to work on this, but I guess it fell into the "too
difficult" bucket and he stopped returning my emails, so, sadly,
it looks like a Memotech hfe file browser will never happen.
HxC Related Resources
The most up to date documents will always be
found on Jeff and
Lotharek's
sites, the documents here are a snapshot of the documents that I
downloaded at the time that I bought my cased HxC in April 2013
- they are not guaranteed to be current by the time you download
them, but are posted here for convenience.
Documentation |
|
SD Card HxC Users Manual |
Rev.2.1 14/08/2011 |
|
SD Card HxC Product Brief |
Rev.2.2 28/05/2012 |
|
SD Card HxC .hfe file format |
Rev 1.1 20/06/2012 |
|
Software |
|
HxC Floppy Emulator Software |
Version 2.0.12.2 |
|
Floppy Software Release Notes |
Version 2.0.12.2 |
|
Supporting Files |
|
Memotech Type 03 Empty Disks |
100 Pre-formatted "Disks" |
|
Memotech Type 07 Empty Disks |
100 Pre-formatted "Disks" |
|
Memotech HxC Disk Profiles |
Type 03 and Type 07 Config |
|
|
|
|
|
|
|
|
|
|