News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

X-mem question

Started by caver99, 22:12, 07 December 22

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prodatron

#25
Yes, IDE still rocks :) It's fast and easy. I still prefer this TBH.
Today we have X-Mass/SYMBiFACE II/CPC-IDE, SYMBiFACE 3/RSF3, M4 Board, HxC/Gotek direct SD card access, Usifac II, Albireo.
Really cool, that today they are all supported by several AmsDOS extensions and replacements. And most of them by SymbOS as well, I still have to add Usifac II support.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

GUNHED

And there is the 8255IDE from Jarek, still the fastest IDE device of all.

However the M4 card deleverst data inside the ROM and and that's the fastest possible way in CPC world. The only faster thing would be a real DMA chip (btw.: in this forum such a solution was presented).
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

TotO

@GUNHED I don't see why using a 8255 between the CPU and the HDD will make it faster than the X-MASS. It is more a commodity to interface a 8-bit bus to a 16-bit device.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Prodatron

#28
Quote from: TotO on 15:50, 14 December 22@GUNHED I don't see why using a 8255 between the CPU and the HDD will make it faster than the X-MASS. It is more a commodity to interface a 8-bit bus to a 16-bit device.

IIRC it is mirroring the same port to multiple addresses. Because of this you don't need to INC B after each INI, I think only after four or eight INIs it has to be corrected. This saves again some microseconds for reading a sector.

Without all the additional overhead the theoretical speed would be:
- 162kB/s: CPC-IDE/SF2/X-MASS:
- 186kB/s: 8255IDE (or 190?)
- 195kB/s: M4 Board

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

TotO

@Prodatron OK, I have expected that programming a PIO will took more time than directly accessing the device.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

GUNHED

@TotO : What Prodatron told. Good that he gave the answer and not me  ;)

About Speedrates: Using M4 should be the fastest, because read data can be read from ROM. In theory I can get there to about what Prodatron told. 

With my code I can read data in reality with around 122 KB / second (just tested with a 450 Kb file in 3,7 seconds approx). While IDE hard-discs etc are usually significantly slower in real life.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

TotO

#31
I'm not interrested about devices using a micro-sd card as mass-storage. But, I understand that is convenient. ;)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Prodatron

Quote from: TotO on 17:33, 14 December 22@Prodatron OK, I have expected that programming a PIO will took more time than directly accessing the device.
You are right. On the MSX we have the BeerIDE interface, which is using only a PPI8255 and not much more for communicating with the IDE interface. It is maybe the most easy IDE interface you can build for an 8bit system.

Here it is indeed like you say, as you have to go "through" the PPI, the communication is more circuitous and slower than with a usual IDE interface. In SymbOS MSX I get less than 90kB/s with this interface, the other ones are around 200kB/s.

No idea how Yarek did this, but I guess beside the 8255 he is using additional hardware as well.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

TotO

@Prodatron Thanks for your answer. Anyway, 160 KB/s was the good expected speed for the X-MASS when it was designed. Adding a PPI would have increased size, price, and affected the compatibility with existing software for an insignificant gain over that. :)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

GUNHED

Quote from: Prodatron on 11:22, 15 December 22
Quote from: TotO on 17:33, 14 December 22@Prodatron OK, I have expected that programming a PIO will took more time than directly accessing the device.
You are right. On the MSX we have the BeerIDE interface, which is using only a PPI8255 and not much more for communicating with the IDE interface. It is maybe the most easy IDE interface you can build for an 8bit system.

Here it is indeed like you say, as you have to go "through" the PPI, the communication is more circuitous and slower than with a usual IDE interface. In SymbOS MSX I get less than 90kB/s with this interface, the other ones are around 200kB/s.

No idea how Yarek did this, but I guess beside the 8255 he is using additional hardware as well.
His interface reads a 16 bit value from the IDE device and then provides two time 8 bits to the CPC.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

GUNHED

Quote from: TotO on 22:07, 14 December 22I'm not interrested about devices using a micro-sd card as mass-storage. But, I understand that is convenient. ;)
Is the storage media of the X-Mass more reliable compared to an SD card? Or is there another reason?
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

TotO

Quote from: GUNHED on 12:57, 15 December 22Is the storage media of the X-Mass more reliable compared to an SD card? Or is there another reason?
Sure, the DOM used on the X-MASS is an industrial SSD with SLC flash memory. It is designed to be used as a mass-storage not like a removable media (floppy disc, usb pen, ...). I'm using the micro-sd for the C4CPC, because it is not a problem if I lose ROM files that can be downloaded again. But I don't trust it for a main storage of a computer used to dev new softwares.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

eto

Quote from: Prodatron on 11:22, 15 December 22No idea how Yarek did this, but I guess beside the 8255 he is using additional hardware as well.
Except for address decoding no further "logic" is used.

A user has replicated the PCB a few years ago. You can check the schematics here: 
https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-8255-ide/msg178245/#msg178245

Is the software still around? I couldn't find anything anymore. 

GUNHED

Quote from: eto on 14:31, 15 December 22
Quote from: Prodatron on 11:22, 15 December 22No idea how Yarek did this, but I guess beside the 8255 he is using additional hardware as well.
Except for address decoding no further "logic" is used.

A user has replicated the PCB a few years ago. You can check the schematics here:
https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc-8255-ide/msg178245/#msg178245

Is the software still around? I couldn't find anything anymore.
That thread talks about two different IDE solutions. The IDE card from RPalmer is different / not compatible with the 8255IDE from Jarek.
About decoding: see before
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

GUNHED

Quote from: TotO on 13:20, 15 December 22
Quote from: GUNHED on 12:57, 15 December 22Is the storage media of the X-Mass more reliable compared to an SD card? Or is there another reason?
Sure, the DOM used on the X-MASS is an industrial SSD with SLC flash memory. It is designed to be used as a mass-storage not like a removable media (floppy disc, usb pen, ...). I'm using the micro-sd for the C4CPC, because it is not a problem if I lose ROM files that can be downloaded again. But I don't trust it for a main storage of a computer used to dev new softwares.
Well, lots of backups are always important - what ever media you use.  :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

TotO

Quote from: GUNHED on 00:51, 16 December 22Well, lots of backups are always important - what ever media you use. :)
Obviously, you can cross the ocean with a raft, the important thing is to take a lifebuoy. :-\
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

eto

Quote from: GUNHED on 00:50, 16 December 22That thread talks about two different IDE solutions. The IDE card from RPalmer is different / not compatible with the 8255IDE from Jarek.
About decoding: see before
In that thread the first post shows a reverse engineered version of Yareks adapter. I never spoke about RPalmer and have not looked into his solution.

I have not even a close idea what you mean with "About decoding: see before". My comment was a response to Prodatron who assumed that Yarek did include more logic than a 8255. But actually it's really just a 8255 and 2 ICs for address decoding. The way it is done is as simple as clever, but there's no advanced logic.

Nevertheless, as long as we don't have publicly available ROMS/drivers or source codes that support it, it's useless. And so far I could not find that. Might be buried somewhere in the forums though...

Prodatron

Yes, I am surprised, that Yareks 8255 solution was so clever, while the BeerIDE 8255 solution is a typical cumbersome 8255 thing like we have with the AY on the CPC, and even Toto assumed, that it should be slow because of the 8255 in-between. Because of this I thought Yarek would use more stuff, but he didn't (I am not good in reading/understanding schematics at all).

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

TotO

#43
Quote from: Prodatron on 12:31, 16 December 22Yes, I am surprised, that Yareks 8255 solution was so clever, while the BeerIDE 8255 solution is a typical cumbersome 8255 thing like we have with the AY on the CPC, and even Toto assumed, that it should be slow because of the 8255 in-between. Because of this I thought Yarek would use more stuff, but he didn't (I am not good in reading/understanding schematics at all).
The schematic is a 8-input nand IC to pre-decode 8bits from the address lines through a 3 lines demultiplexer. Nothing special, it is very common do to that. Next, the PIO 8255 interface the 8-bit CPU data bus to the 16-bit interface (PORT A and PORT B) and use the PORTC for the IDE control lines. It is the good way to do when you want to connect any 16-bit interface to a 8-bit system.

I don't know how are wired the other IDE interface using the same PIO 8255, probably without thinking about the code optimization that can be done to save some instructions because the design. Else, yes, it can be expected to be slower from a first point of view.

For example, just the fact to use A8 (invert) instead of A0 into the PlayCity design as allowed to save 2 scanlines for the player code.

"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

eto

Quote from: TotO on 13:57, 16 December 22For example, just the fact to use A8 (invert) instead of A0 into the PlayCity design as allowed to save 2 scanlines for the player code.
AH :-) I was already wondering, why it's inverted.

GUNHED

Quote from: eto on 10:50, 16 December 22Nevertheless, as long as we don't have publicly available ROMS/drivers or source codes that support it, it's useless. And so far I could not find that. Might be buried somewhere in the forums though...

But we have all that. Supporting ROMs (similar to Amsdos) and Source Code.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

eto

Quote from: GUNHED on 16:22, 16 December 22But we have all that. Supporting ROMs (similar to Amsdos) and Source Code.
I looked for it but didn't find it. It would be great if you could share where I can find it. 

On Yareks website there is no source and no ROM.

Even the WIki page does not have any helpful information or links to a ROM or source:
https://www.cpcwiki.eu/index.php/IDE8255

Prodatron

The 8255IDE wiki article claims, that this device is supposed to be supported in FutureOS. Beside some variables there is no information about this in the documentations (functions etc.), maybe Gunhed can tell us, where these functions are and how to use this?

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

GUNHED

Quote from: eto on 16:36, 16 December 22
Quote from: GUNHED on 16:22, 16 December 22But we have all that. Supporting ROMs (similar to Amsdos) and Source Code.
I looked for it but didn't find it. It would be great if you could share where I can find it.

On Yareks website there is no source and no ROM.

Even the WIki page does not have any helpful information or links to a ROM or source:
https://www.cpcwiki.eu/index.php/IDE8255

Well, I got in on disc. This means I need to move that to PC and that way to the internet.
Is there somebody at all who owns the interface (except me)?
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

eto

Quote from: GUNHED on 21:01, 16 December 22Is there somebody at all who owns the interface (except me)?
If I have the software, I would probably order the PCBs and give it a try. Not necessarily immediately but probably early next year. 

Do you also have the source? I would be really interested how read/write works and see the clever addressing in action. 

Powered by SMFPacks Menu Editor Mod