Floppy drive emulator

This is the right place to discuss on how to implement hardware vsync, adding a VIA or AY chipset, puting multiple roms, or how to design a new flash expansion card.
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Floppy drive emulator

Post by Dbug »

I wonder if this think (sorry page is in french) would be doable to work with the FDC in the Oric:
http://jeanfrancoisdelnero.free.fr/flop ... index.html

(even if it's in french, there are photos and schematics that can be understood :)
romualdl
Officer Cadet
Posts: 52
Joined: Tue Jan 17, 2006 9:42 pm
Location: France

power of asm

Post by romualdl »

Hi there,

I know the guy and I saw this device at the last Infoticaires meeting in july. Very nice and smooth. But it's only MFM compatible.

Here's a short translation of his page:

For those like who have begun computing with legendary systems like the Atari ST or the Amiga and who try sometimes to take some time to watch demos and play some games there are some problems. These systems were based on 3"/720K floppies and you must often take some time re-creating those disks with your PC. And here come the problems: find a working floppy, format this disk with DOS and makedisk (because it may not work with windows)... After some time doing that you boot your Atari ST with the disk et you realise the disk has been losing some sectors and you cannot play the game.
For your amiga it's even worse than that, as it is impossible to prepare the disk with your PC.

The project I'm working on allows me to replace the floppy unit by a pcb which acts as an interface between the Atari or the Amiga and a machine acting as a server (PC or Mac).

Tech Info:
Hardware
- floppy unit + disk (read-only) emulation
- USB Interface type FTDI FT245BM.
- 2*1Ko SRAM Buffer (8ms buffer...)
- MFM 250Kbits
- head alignment management
- Floppy signal management:
-select side (/SIDE).
-serial reading (/RDATA).
-track 0 position (/TRK00).
-head direction (/DIR).
-head moving order (/STEP).
-Index (/INDEX).
-drive select (/DRVSB ou /DRVSA).
-ready signal (/READY) (for AMIGA)
-diskchange (/DSKCHG) (for AMIGA)

FloppyEmu... (wip)...

Spécifications Logicielles:

- driver FTDI D2XX Direct Drivers-based
- Tested with Windows 2000 / XP
- MFM standard format management (compatible IBM / Atari ST) and Amiga.
- reading of different image formats:
Atari ST: *.ST and *.MSA
Amiga: *.ADF and *.DMS
Multi plateform: *.IPF/Caps (with constant bitrate for the moment).
soon: *.STX/Pasti

- tested as servers :
PIII 700Mhz 512Mo de RAM USB 1.1
PIV 3GHz 1Go de RAM USB 2.0
Portable Inspiron 5000e (PIII 700Mhz 512Mo de RAM USB 1.1)
Portable Inspiron (PII 300Mhz 64Mo de RAM USB 1.1)

-emulator information:

really simple:
A server changes the useful data in the image file of a floppy (*.ST,*.MSA,*.ADF,...) into data that can be understood by the target system controller : i.e. the différent GAP and the useful data coded in MFM. Once everything is encoded, the server sends them in packet through MFM as the interface ask for them. The data transfer packet management is done so that you can emulate any kind of track length type, speed or rotation.
For those who would like to have more details, the card is including a serialiser and a pulse generator to send the MFM-encoded data to the target system. The card includes 2ko of SRAM. This memory is split into 2 pages: one where the shifter reads the data and another where the data from the USB are stored. Once the shifter has finished reading a page it switches to the second and the track number is sent to the PC to tell him the page has changed. The PC then sends the next packet which will be stored in the page just broadcasted. This page system allows a continuous flow from the shifter to be achieved.

Each byte represents 2 MFM bits of each side of the disk. THe first 4 bits are sent through the serializer if the target machine reads side 0 else the 4 msb are sent. The 2 sides encoding in the flow helps to avoid problems with the side change management by the server.

The card includes a counter which is incremented ou dec according to the floppy interface /STEP and /DIR signals. Each track change, the datas are masked until re-validation/ This re-validation is done through an instruction the PC inserts in the data flow. This instruction is coded with the 0xEE value + head position. If this value equals the one found in the card the data is unmasked, else not. The READY signal is directly linked to the mask. This helps to only send the track need by the target machine.

Another instruction is used to control the /INDEX and /DSKCHG signals. This instruction is made up with 0xCC and aa byte which bit 0 is the /INDEX signal state and bit 1 /DSKCHG signal state.

For more information on the physical content of a floppy (GAP and MFM encoding) read this :
Format ST / IBM / ISO :
- The floppy user guide
- Un datasheet : USB 3.5" Micro Floppy Disk Drive (see page 7-9)
Format Amiga :
- The .ADF (Amiga Disk File) format FAQ
- WinUAE sources ;-)

A first prototype working on the parallel port has been made with good old
logic gates. But soon the component quantity was becoming important and routing them would have been pain in the ... I then opted for CPLD. This card fonctions have been written with VHDL. The whole thing has been developped and tested on a 128 macrocells CPLD, MAX7000 series (the EPM7128S). This design should work with any CPLD/FPGA with enough logic gates (see the integration realised in a Xilinx Spartan 3 by Torlus).


[note by Romu: I'm also in contact with Torlus if needs be]

Bye
Romu
mmu_man
Flight Lieutenant
Posts: 322
Joined: Thu Sep 21, 2006 7:45 pm
Location: 26000 Valence, FRANCE
Contact:

Post by mmu_man »

It's theorically possible as the ORIC floppy controllers also use a shuggart interface.
romualdl
Officer Cadet
Posts: 52
Joined: Tue Jan 17, 2006 9:42 pm
Location: France

floppy

Post by romualdl »

Hi there,

I had a look at Andre Cheramy Sedoric a Nu and saw it was some kind of MFM stuff. And while discussing with Torlus on IRC, he said there should be no problem having it interfaced with an oric but the controller is still needed since it only replaces the physical part of the floppy.

A+
Romu
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

Is it possible to set the ID of the floppy between 0-3 easily, like with a switch ? Could be usefull to set it as ID 0 or 1 depending of the needs, like for creating real floppies with an atmos :)
romualdl
Officer Cadet
Posts: 52
Joined: Tue Jan 17, 2006 9:42 pm
Location: France

floppy emulator

Post by romualdl »

hi there,

Been to a retro-geek meeting this weekend. I had to bring an oric+microdisk controller so that Jeff could work on the oric floppy emulator.
The bad news was that what he had been working on without controller failed to work on the real one on Friday night. He then promised me it would work before Sunday. The other bad news is that he managed to get it running before the deadline (on Saturday).

Image
Image

So now his floppy emulator also works with oric computers. You still need a microdisk controller, during this weekend he only made it work with his pc-usb based interface knowing a standalone SD version is also developpped at the same time (also requiring a microdisk controller).

I should have brought a Jasmin drive so he could also work on this one... ;)

During the weekend I also discussed with Greg-Torlus who said he would like to work on some oric hardware development but I suppose he will tell you more about it when time comes since he is already a member of this forum.


A+
Romu
User avatar
Chema
Game master
Posts: 3014
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

That is excellent news! Pitty it still needs a controller... It would be great to have something that could replace the controller and disk drive completely....

Could that be possible?

Cheers
romualdl
Officer Cadet
Posts: 52
Joined: Tue Jan 17, 2006 9:42 pm
Location: France

disk

Post by romualdl »

hi there,

Yes that's what Torlus has in the pipes. Well as a side project since he's now working on a "universal USB flash cart programmer" for various video game systems (now working on snes, vcs2600, nec pcengine...)

When he said that having a standalone without controller system for the oric Jeff raised his brows saying "hey no need for that mine is working". Of course no problem between them since they know well each other.

As Jeff said during the meeting : "well I know I'm developping this only for 3 persons but I've nothing else to do during the weekend".

A+
Romu
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

Would be so great to not have to bring a microdisc unit with the huge PSU !
Me want one !
highwayman
Flying Officer
Posts: 148
Joined: Fri Oct 12, 2007 8:08 pm

Post by highwayman »

i'm surprised the oric even starts up with a meter of cable on the bus! :D

when i was building stuff i used to keep the ribbon under 10cm.
Post Reply