Jump to content
ijor

Hyper Speed SIO loader

Recommended Posts

Hyper fast SIO loader at 600 Kbps ...

 

 

Using synchronous mode, of course. Technical details, docs and link to source code, shortly in a separate thread.

  • Like 13
  • Thanks 3

Share this post


Link to post
Share on other sites

Wow, when I discussed with Hias I heard there wasn't much scope for faster from a software perspective.

Share this post


Link to post
Share on other sites

I should add its March 1st today not April 1st 

  • Like 1
  • Haha 1

Share this post


Link to post
Share on other sites
Posted (edited)
1 hour ago, ijor said:

Hyper fast SIO loader at 600 Kbps ...

 

 

 

Using synchronous mode, of course. Technical details, docs and link to source code, shortly in a separate thread.

 

Well, that's fixed-storage (HD) speed territory!

 

...At least for linear, "burst"-type of operations, like loading a file straight, which is VERY different than, say, moving a SDX directory (with +100 files) to somewhere else (a much more transactional operation, in nature, but typical in a productive environment).

 

What HW modifications are required to achieve this (pretty high) level of performance through SIO? If no HW modifications / surgery required, then that is another show of the A8 brute-force, when DMA is not possible or practical !

Edited by Faicuai

Share this post


Link to post
Share on other sites
Posted (edited)

standard SIO port is in the description, we discussed external clock with a chip to keep the data happy based on some work and provided either links or mentions to the work at some point. I wonder if this will turn out to be the same sort of affair... the chip was to keep a clock overlap from corrupting data in the earlier discussions.

 

Extremely nice to see some activity here. I am very excited and interested in what the solution is.

 

You are showing 48KiloBytes a second give or take in the video. No errors. D*mn fine work.

Edited by _The Doctor__

Share this post


Link to post
Share on other sites
2 hours ago, ijor said:

Using synchronous mode, of course.

excuse me for a moment, just wet my pants

  • Haha 2

Share this post


Link to post
Share on other sites
Posted (edited)

This is extremely interesting. If the source isn't too big, I could attempt to implement a driver in the U1MB/Incognito PBI BIOS.

 

Edited by flashjazzcat
  • Like 4

Share this post


Link to post
Share on other sites

This is not a trick or an April 1st joke. It is very real. The video is a live capture of a real Atari 8-bit computer without any hardware modification whatsoever. The numbers displayed were computed on real time when processing the transfer.

 

  • Like 3

Share this post


Link to post
Share on other sites
1 hour ago, flashjazzcat said:

This is extremely interesting. If the source isn't too big, I could attempt to implement a driver in the U1MB/Incognito PBI BIOS.

 

I assume this would be for 800 mode, because otherwise you could use the PBI, or I miss something?

I'm not really familiar with the Incognito hardware. Does it have any kind of MCU or FPGA? Or it is just a CPLD and the firmware runs on the Atari CPU?

 

There are here two sides, as in a typical SIO2XX implementation. The Atari needs a special loader, but it is rather small and I don't see a problem with that. However you need something on the other side to generate the synchronous serial transfer, and it has to be something much faster than Sally or a bare 6502. I used an STM32 MCU. Don't know, in your case you have access to the system (PHI2) clock I guess, right? This should make things much easier to process transfer fully synchronously.

Share this post


Link to post
Share on other sites
Posted (edited)
13 minutes ago, ijor said:

This is not a trick or an April 1st joke. It is very real. The video is a live capture of a real Atari 8-bit computer without any hardware modification whatsoever. The numbers displayed were computed on real time when processing the transfer.

 

the loader is exactly what he means, the device outside the Atari is just that... whoever makes devices utilizing it would then be supported without possibly having to load the loader... it could be in rom or patched in using pbi etc..

Edited by _The Doctor__

Share this post


Link to post
Share on other sites
Posted (edited)

I could also see a cartridge containing the loader and serving the ATR (AVG style) depending on where and how the loader needs to live

Edited by _The Doctor__

Share this post


Link to post
Share on other sites
Posted (edited)

ok i took the pills i'm ready to see the loader.

 

---

the SIO protocol is preserved? data added to the checksum when completing data in SERIN?

Edited by xxl

Share this post


Link to post
Share on other sites
23 minutes ago, ijor said:

I assume this would be for 800 mode, because otherwise you could use the PBI, or I miss something?

No: this would be in XL/XE mode using the inbuilt PBI math pack overlay ROM. It already has an implementation of Hias' HSIO driver with SIO2BT support added. So, the need for OS patching is totally done away with.

 

25 minutes ago, ijor said:

I'm not really familiar with the Incognito hardware. Does it have any kind of MCU or FPGA? Or it is just a CPLD and the firmware runs on the Atari CPU?

CPLD for logic, but everything procedural is done on the 6502.

 

26 minutes ago, ijor said:

There are here two sides, as in a typical SIO2XX implementation. The Atari needs a special loader, but it is rather small and I don't see a problem with that. However you need something on the other side to generate the synchronous serial transfer, and it has to be something much faster than Sally or a bare 6502. I used an STM32 MCU. Don't know, in your case you have access to the system (PHI2) clock I guess, right? This should make things much easier to process transfer fully synchronously.

I still have a Nucleo development board here (borrowed), which I guess would work. Looking forward to the full details!

Share this post


Link to post
Share on other sites
44 minutes ago, xxl said:

the SIO protocol is preserved? data added to the checksum when completing data in SERIN?

 

Not all the SIO protocol is preserved. I'm not using A/C/E because they are a waste in this context, although this could be added, if wanted. But yes, the SIO checksum is fully supported and it is computed on the fly while receiving the packet. Which, believe me, it's not an easy thing to do at this speed. I'll elaborate and post full sources in the other thread.

  • Like 3

Share this post


Link to post
Share on other sites
Posted (edited)
1 hour ago, flashjazzcat said:

No: this would be in XL/XE mode using the inbuilt PBI math pack overlay ROM. It already has an implementation of Hias' HSIO driver with SIO2BT support added. So, the need for OS patching is totally done away with.

....

CPLD for logic, but everything procedural is done on the 6502.

 

Ah, ok, I understand. Yes, that would probably be doable.

 

1 hour ago, flashjazzcat said:

I still have a Nucleo development board here (borrowed), which I guess would work. Looking forward to the full details!

Good, but not every Nucleo is good enough. At least not if you want to support all the features. And by that I mean clock aligning (no errors) at the maximum frequency (~597 KHz). I'm using a board like this that usually costs even less than a Nucleo:

 

https://www.ebay.com/itm/Core407V-STM32F407VET6-STM32-Cortex-M4-Development-Board-Motherboard-Module-Kit/182289028741

Edited by ijor

Share this post


Link to post
Share on other sites

Couldn't the checksum just be computed at end of frame?  Or are we talking IO operations of large chunks where it'd create a big overhead between blocks?

Share this post


Link to post
Share on other sites
5 hours ago, Rybags said:

Couldn't the checksum just be computed at end of frame? 

 

Yes, of course. But that would take extra time.

Share this post


Link to post
Share on other sites
Posted (edited)

Hi ijor,

 

   This is very impressive! I have the same STM32 board (I started on UnoCart hacking literally this weekend), do you need any extra components, or are you connecting the pins on the STM32 board directly to an SIO connector?

Edited by E474

Share this post


Link to post
Share on other sites
7 hours ago, E474 said:

This is very impressive! I have the same STM32 board (I started on UnoCart hacking literally this weekend), do you need any extra components, or are you connecting the pins on the STM32 board directly to an SIO connector?

Hi E474,

 

Great board! Isn't it? :)  Insane powerful for that price!

 

I'm not using any other components at all and I do am connecting the pins directly to the SIO connector. In theory some kind of buffering might be recommended because these chips aren't really 5V tolerant. They are 5V tolerant only as long as it is powered. That means that the chip might be damaged if you power up the Atari but not the board. In this case, actually, the signals are not directly connected to 5V at the Atari, but only through rather weak pullup resistors. So the risk might be low. Also the buffering gets a bit complicated because at least the output clock must be tristated. If you also consider that the board is so cheap that it is not big deal if you need to replace, then the whole idea of using buffering, might be even silly :)

 

Btw, I accidentally erased the original flash. Not big deal but I would like to get it back, if possible. Do you still have the original factory flash that power up as a SD card reader? If so, exactly which version of the board you have?

Share this post


Link to post
Share on other sites

Hi ijor,

 

   Looking back through my emails, it's this one: https://www.aliexpress.com/item/33013274704.html - but it has been sitting in a static bag until last weekend, so I have only now had any free time to do anything with it.

 

    If you want to send me info on how to dump the factory firmware I can have a go, but I am a newbie with this board (I have set up Attollic studio on Linux, and built/uploaded a new firmware to the UnoCart, but it is really early days for my STM32 hacking).

 

   I agree it's not such an expensive board, but when I ordered it I also got a screen with it, but that pushed it over £15 in total, so it got hit with UK import fees and handling charges from the Post Office. If I had ordered as 2 separate shipments/packages both would have been under £15, and would have sailed through customs, for half the eventual price.

 

   I don't know enough about hardware to figure out how to prevent the problems you've described, hopefully someone like @mozzwald or @Mr Robot will flesh it out into a simple circuit. I will be a bit cautious though, as I'm not a big fan of magic blue smoke.

 

   So far I haven't had time to really see what this board can do, I was reading up on DMA2D, but have just found out that's only present in the F429 and higher, not the F407! Still, I have a working tool-chain for coding now, it's just finding the time to sit down and get up to speed on it. 

   

   Very nice work on the Hyper Speed SIO Loader - happy to help out especially given we have what look like identical STM boards!

 

Share this post


Link to post
Share on other sites
On 3/2/2021 at 12:30 AM, ijor said:

Good, but not every Nucleo is good enough. At least not if you want to support all the features.

It's an H743ZI with a maximum frequency of 400MHz. Electrotrains lent it to me for UNO cart hacking purposes. Do you think it's good enough for this application?

 

  • Like 1

Share this post


Link to post
Share on other sites
On 3/3/2021 at 10:38 AM, flashjazzcat said:

It's an H743ZI with a maximum frequency of 400MHz. Electrotrains lent it to me for UNO cart hacking purposes. Do you think it's good enough for this application?

 

Wow, that's a nice Nucleo! Yep, I think it is good enough. LOL.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...