News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_CPCIak

Pros & Cons HxC SD-Interface

Started by CPCIak, 13:07, 11 May 10

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Jeff_HxC2001

Quote from: Gryzor on 06:53, 02 August 10
Btw: any hope there will be a solution, some day, that won't need those huge converted image files?


No way ! : i have already explained my point of view here :
http://eab.abime.net/showpost.php?p=685774&postcount=40

Quote from: Jeff
Quote from: Akira;685734Hi Jeff!
Thanks a lot about your work on HxC
I am still curious as to why different file formats cannot be supported and you need to convert. A little more in-depth explanation will clear people's doubts ;)

Mainly Because :

A low cost MCU have low memory, and are not very powerfull.

Example:

The HxC Floppy Emulator and The SDiskEmul uses a PIC18F4525 MCU.
its Specifications are :
 
-10Mips MCU @ 40 Mhz
-48kB of Flash.
And the most problematic thing:
-3900 byte of RAM

>Flash Size problem : This is very hard to implement all file format in the firmware (flash space problem).
The actual loaders of supported by the HxC Floppy Emulator (36 formats supported !) take 300KB of code.

>RAM Size problem: With less of 4Kb of RAM, hard to implement an gzip lib in the pic (ADZ format...) or directly managed complex format as IPF.

>Speed problem : In any case data must be converted to MFM/FM (all emulators does this) and for this you need time (and memory space). Making the conversion of an ADF file can be long. For example on SdiskEmul this take 20 seconds (and this is in ASM) ...
 

    Additionally I think that the pre-conversion isn't a problem: In anycase you use a computer to copy image file to the SDCard. So conversion program or not, this doesn't change nothing for me.  On the contrary this make the device more reliable (final image file are verified – the mcu code implementation is simpler -> less potential bugs).
   
  If the conversion program are well designed, this can be a powerful tool to managed floppies images. You can also create AmigaOS image file with some files present on the pc.
  With the HxC Floppy Emulator software you can convert a complete tree of file images by a simple drag&drop.
 
  Finally this conversion program make the hardware secondary (I think this important for the future...). I can change the MCU by another one, or an fpga without rewriting the whole thing.
  So from the developer point of view the central point of the hxc floppy emulator is the conversion program, not the hardware. 
   
  This how I design the whole project, and this will not change in the future.
  But I believe that MCUs will be powerful enough to directly digest the conversion tool latter.
   
  Last words : We have sold hundred's of floppy emulators, and I have no bad return from users about the conversion program.
   
  (I have probably forget some arguments here ;-) )

And with a 16GB sdcard i don't where is the problem !  ;)


andycadley

Well mine arrived today (much quicker than I expected) and I have to say it's absolutely brilliant!  ;D

Had a few teething troubles as it refused to see one of my old SD cards, but once I swapped that out it's all been plain sailing. My 6128+ has a whole new lease of life all over again. I'd highly recommend everyone get one of these.

Gryzor

Hey Jeff,

Thanks for the explanation. Well, just for discussion's sake, loaders could reside on the CF itself, but this still wouldn't address the speed problem.

Hey, I just saw that a 16GB SD is only €29 in Greece!

steve

Here's a question for jeff, will the floppy emulator work with a disk controller that does not have a data separator, I have a 464 plus and can get most of the parts needed to populate the disk controller section of the pcb, but I doubt that I could get a data separator, I want to install the hxc inside the case so the connections from it to the FDC will be short, but do you think it would work?

Gryzor

#79
Soooo.... today I finally found my 6128. It was in a mislabeled box, dammit!!!

I upgraded the firmware, fiddled around for several minutes before realising I hadn't connected the floppy drive (geez...) and couldn't get the machine to read drive B, then tried to load Gryzor... only to fail, because it apparently wants to reside on Drive A (anyone can confirm this?). Damn. I'm tired, off to bed with my book for now.

One question though - what are these slots supposed to be???

Oh - and another question: how do you run multi-face or multi-disk games? I was thinking Orion Prime... or is it, indeed, the slots thing? Do you import different dsk's in different slots and then reboot?

Cheers
Gryzor

Jeff_HxC2001

Quote from: Gryzor on 21:41, 04 August 10
Soooo.... today I finally found my 6128. It was in a mislabeled box, dammit!!!

I   upgraded the firmware, fiddled around for several minutes before   realising I hadn't connected the floppy drive (geez...) and couldn't get   the machine to read drive B, then tried to load Gryzor... only to fail,   because it apparently wants to reside on Drive A (anyone can confirm   this?). Damn. I'm tired, off to bed with my book for now.

One question though - what are these slots supposed to be???

Oh   - and another question: how do you run multi-face or multi-disk games? I   was thinking Orion Prime... or is it, indeed, the slots thing? Do you   import different dsk's in different slots and then reboot?

Cheers
Gryzor

  Exactly. Insert in each slot a disk/face of a game.
  During the game you have just to push the right button to change the   disk. (right increment the slot number, left decrement, middle: select   the manager disk).
 
  On CPC 6128 you can for the external disk drive as A without open it :   just connect pin 23 & 24 together of the floppy cable.
  For more details : http://hxc2001.free.fr/floppy_drive_emulator/SDCard_HxC_Floppy_Emulator_User_Manual.pdf

Jeff_HxC2001

Quote from: steve on 19:50, 04 August 10
Here's a question for jeff, will the floppy emulator work with a disk controller that does not have a data separator, I have a 464 plus and can get most of the parts needed to populate the disk controller section of the pcb, but I doubt that I could get a data separator, I want to install the hxc inside the case so the connections from it to the FDC will be short, but do you think it would work?

mhh no the FDC need a Clock to be able to get data. So the data separator is needed.
On some japanese machine the data separator is located in the disk drive, so to support them i have to design a small board to generate this clock.
For the moment this will not work.

Jeff_HxC2001

Quote from: Gryzor on 19:42, 04 August 10
Hey Jeff,

Thanks for the explanation. Well, just for discussion's sake, loaders could reside on the CF itself, but this still wouldn't address the speed problem.

Hey, I just saw that a 16GB SD is only €29 in Greece!

Which speed problem ? The loading time of the manager ?

Gryzor

Hello Jeff! So nice to see you're following the thread :)

Yeah, I have the manual printed by me and I saw the twisting solution, I think I prefer to disable the internal drive altogether though.

On another note, can you provide some info on the display info? For instance, what's that "RA" indication flashing up there? And Sx? Is this supposed to be Slot #(it doesn't change on mine)?

Also, on the interface, there must be a misunderstanding somewhere... according to the UI, it keeps inserting images to "Drive A" though I have set it up to be Drive B.

Gryzor

Quote from: Jeff_HxC2001 on 07:52, 05 August 10
Which speed problem ? The loading time of the manager ?

The conversion and loading time. You said loaders take up a lot of space and (if I'm reading this correctly) this is why you have ended up with a common file format that, I guess, only needs one loader. So, as I said, you could keep the original files and load the loader from the SD each time - one loader for DSKs, one for ADFs, one for MSAs... but still, this would entail a delay while the board does the conversion - 20 secs, as you say.

Jeff_HxC2001

Quote from: Gryzor on 07:52, 05 August 10

On   another note, can you provide some info on the display info? For   instance, what's that "RA" indication flashing up there? And Sx? Is this   supposed to be Slot #(it doesn't change on mine)?

  No the slot number isn't printed on the lcd :
  RA: Read A
  RB: Read B
  SX: Side X
 
 
 
Quote from: Gryzor on 07:52, 05 August 10
Also,   on the interface, there must be a misunderstanding somewhere...   according to the UI, it keeps inserting images to "Drive A" though I   have set it up to be Drive B.

  No there are no error : Drive A & B in the emulator correspond to   Drive A & B of the emulator !!!! After for the system this depend   what setting you have : For example with the jumpers you can connect the   "Drive  B" (second drive) of the emulator as drive A for the host   system. In fact i need to change the name "Drive A" / "Drive B" by   something else.

Jeff_HxC2001

Quote from: Gryzor on 07:55, 05 August 10
The conversion and loading time. You said loaders take up a lot of space and (if I'm reading this correctly) this is why you have ended up with a common file format that, I guess, only needs one loader. So, as I said, you could keep the original files and load the loader from the SD each time - one loader for DSKs, one for ADFs, one for MSAs... but still, this would entail a delay while the board does the conversion - 20 secs, as you say.

Yes this a good idea but this can't be done with this MCU : There are very few ram (<4KB) and the number of flash reprogramming is limited.


Gryzor

Thanks for the indications info.

On the UI: I'm still a bit confused after your answer. Maybe I've missed something vital - the emulator can actually emulate two drives? And, I thought the jumpers control the emu's single drive letter, so that you can set it either as A (by disabling or twisting) or drive B (my setup). But if the emu supports two virtual drives, then how do you control each one separately?

And about the loaders: well, indeed, if you don't have enough space on the board, it means it'd need a redesign. As I said, it was more for the sake of discussion :)

Jeff_HxC2001

Quote from: Gryzor on 08:08, 05 August 10
Thanks for the indications info.

On the UI: I'm still a bit confused after your answer. Maybe I've missed something vital - the emulator can actually emulate two drives? And, I thought the jumpers control the emu's single drive letter, so that you can set it either as A (by disabling or twisting) or drive B (my setup). But if the emu supports two virtual drives, then how do you control each one separately?

And about the loaders: well, indeed, if you don't have enough space on the board, it means it'd need a redesign. As I said, it was more for the sake of discussion :)

Yes it can emulate 2 disk drives.

But on CPC it seems you need to get the DS0 signal inside the computer (non present on the external port. There are only DS1).
So for most CPC users the "Drive B" field on the UI is useless.(if you don'y hack a little your computer.  ;) )

Gryzor

Quote from: Jeff_HxC2001 on 08:20, 05 August 10
Yes it can emulate 2 disk drives.

But on CPC it seems you need to get the DS0 signal inside the computer (non present on the external port. There are only DS1).
So for most CPC users the "Drive B" field on the UI is useless.(if you don'y hack a little your computer.  ;) )

Ah - there you have it. I still haven't tried it with my ST, so I guess that's where I got confused.

Btw, I don't remember and I don't have my ST in front of me - what kind of cable do you need?

Jeff_HxC2001

Quote from: Gryzor on 08:08, 05 August 10
And about the loaders: well, indeed, if you don't have enough space on the board, it means it'd need a redesign. As I said, it was more for the sake of discussion :)

Put all features in the device can be good. But don't forget a very important factor : The final price !!!
Add a more powerful MCU with more ram will increase the final price and make the device harder to build (and probably more expensive to assemble). How many people will buy this if the price go higher than 100 euros ?
Use of an overkill solution is the easy way but also the expensive way  ;) .

Devilmarkus

I think an ABBA switch should do the job here.
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Gryzor

#92
Btw, is it only me or does the converter program always crashes after a while when doing batch jobs?

Win7, 64x...


Hm, I think it's on certain images (I attach one). But it happens too often, so you can't really user it for a big collection...

steve

Thank you jeff for your reply, I had read that the TRS 80 model one did not have a data separator, so I was hoping that it was not really necessary.

Jeff_HxC2001

Quote from: Gryzor on 11:29, 05 August 10
Btw, is it only me or does the converter program always crashes after a while when doing batch jobs?

Win7, 64x...


Hm, I think it's on certain images (I attach one). But it happens too often, so you can't really user it for a big collection...

Could send me these problematic images ?


Gryzor

Oops sorry I forgot to attach. Here are a couple...

Jeff_HxC2001

Quote from: Gryzor on 13:09, 05 August 10
Oops sorry I forgot to attach. Here are a couple...

Bug found, and corrected (i hope ;-) )

Please give me a feedback with this beta version :
http://hxc2001.free.fr/floppy_drive_emulator/HxCFloppyEmulator_soft_beta.zip

Gryzor

Ooh! Already? Let's test it...

Yup! It works :) Btw, it took exactly one minute to convert 412 files that resided on an external USB disk. Pretty quick!

Thanks!

Gryzor

#98
A couple of minor suggestions for the CPC interface:

-It is possible to jump to a position after the end of a file list. Ideally it should stop you at the last entry...
-Esc (or maybe another button) should probably be mapped to "dir up". This would save time when in long directories...
-It'd be great if the folder view had multiple columns!

That's about it. Working like a charm!

-oh, except for one thing: every other time the CPC can't read the disk inserted. I have to power the board off and then back on for it to be read...

***Request***
The versions of Discology that I have at hand run through |CPM. But CPM tries to read drive A. Anyone has a version of Discology (v5 preferably?) that runs normally and thus can be loaded through HxC? Thanks in advance!

Cholo

Quote from: Gryzor on 07:52, 05 August 10
... Also, on the interface, there must be a misunderstanding somewhere... according to the UI, it keeps inserting images to "Drive A" though I have set it up to be Drive B.
Jeff already expained about the drive selector but ..

just wanted to mention that all Amstrad users should remember to tick the "disable disc drive selector" option when they make their config file, to avoid getting the selector that has no purpose (on amstrads).


Powered by SMFPacks Menu Editor Mod