evilmoo Posted April 27, 2020 Share Posted April 27, 2020 What's the theoretical limit on the transfer on a single SIO request? Is it 65,535 because DBYTLO/HI is a 16-bit integer, or is it lower? (I know each SIO command has its own limit as defined by the device's firmware -- I'm asking for possible new devices and commands.) Quote Link to comment Share on other sites More sharing options...
HiassofT Posted April 27, 2020 Share Posted April 27, 2020 (edited) Yes, the theoretical limit of the OS SIO code would be 65535 bytes. The practical limit is about 47k as the OS SIO code needs to store the data somewhere (eg $0400-$BFFF). I haven't tried doing such large transfers yet so I'm not 100% sure if it really works or if there might be a bug in the OS SIO code. However I'm doing 8k transfers in the The!Cart flasher and that works just fine. so long, Hias Edited April 27, 2020 by HiassofT 3 Quote Link to comment Share on other sites More sharing options...
+CharlieChaplin Posted April 27, 2020 Share Posted April 27, 2020 Afaik, tapes using non-standard block lengths (longer than the standard 128 Bytes) also use SIO instead of CIO... here is some guessing by ear: - Creative Sparks seems to use 256 or 384 Bytes per block - Novagen seems to use 512 Bytes per block - ESC, Ariola and a few others seem to use 1024 Bytes per block - Digital Integration (Fighter Pilot) seems to use 2048 bytes (or more?) per block + the awful Lenslok! - Aacksosoft (BC's Quest for Tires) seems to use 16384 Bytes per block (the whole game is one block!) Quote Link to comment Share on other sites More sharing options...
tschak909 Posted April 27, 2020 Share Posted April 27, 2020 1 hour ago, HiassofT said: Yes, the theoretical limit of the OS SIO code would be 65535 bytes. The practical limit is about 47k as the OS SIO code needs to store the data somewhere (eg $0400-$BFFF). I haven't tried doing such large transfers yet so I'm not 100% sure if it really works or if there might be a bug in the OS SIO code. However I'm doing 8k transfers in the The!Cart flasher and that works just fine. so long, Hias I can confirm @HiassofT's observations with my work on #FujiNet. I have done 4K to 8K transfers of TCP data over SIO, and it works just fine. Quite a long beep. -Thom 1 Quote Link to comment Share on other sites More sharing options...
E474 Posted April 27, 2020 Share Posted April 27, 2020 Hi, I think Datasoft used long data blocks (>128 bytes) on their tapes, I think maybe Canyon Climber, but it's been a long day (don't know if anyone with an original can confirm?). Also, I remember SubLogic's Night Mission Pinball (tape version, great game) loaded a single data block of about 32K, but I can't remember the exact details. I think when I was writing Dump1050 I managed to transfer 4k of data at once, but that was because of (my) buggy code, or it might have been messing around with the German Atari Magazin tutorials and I hadn't figured out how to use the Happy ROM correctly. Quote Link to comment Share on other sites More sharing options...
drac030 Posted April 27, 2020 Share Posted April 27, 2020 PC-Link transfers blocks of the size equal to the available memory buffer (32k+ for base RAM, 16k for ext banks) without any problem via SIO, so I guess there are not any "there might be a bug" which could limit the size of a single transfer apart from practical circumstances (like the size of the actual memory buffer). 1 Quote Link to comment Share on other sites More sharing options...
+CharlieChaplin Posted April 27, 2020 Share Posted April 27, 2020 1 hour ago, E474 said: Hi, I think Datasoft used long data blocks (>128 bytes) on their tapes, I think maybe Canyon Climber, but it's been a long day (don't know if anyone with an original can confirm?). Also, I remember SubLogic's Night Mission Pinball (tape version, great game) loaded a single data block of about 32K, but I can't remember the exact details. I think when I was writing Dump1050 I managed to transfer 4k of data at once, but that was because of (my) buggy code, or it might have been messing around with the German Atari Magazin tutorials and I hadn't figured out how to use the Happy ROM correctly. All the Datasoft tapes I had (including Canyon Climber) used standard blocks with 128 bytes. Activision also used standard blocks. Do not know about Sublogic's Night Mission Pinball though, since I never had it on tape... Quote Link to comment Share on other sites More sharing options...
E474 Posted April 28, 2020 Share Posted April 28, 2020 That's annoying, now I'm going to be wondering which set of games I was thinking of! Quote Link to comment Share on other sites More sharing options...
Rybags Posted April 28, 2020 Share Posted April 28, 2020 Doesn't the APE or Aspeqt built in binary loader use long blocks? Tape - I did an Atari AsmEd loader that had the entire 8K cart as a single block at higher bitrate. A problem doing that is that there's no compensation for tape stretch or speed variations though Pokey can supposedly handle +-5% In theory you could do a longer SIO block with a custom routine. e.g. fill a 130XE extended banks area with switching along the way. Even the 64K limit could be gotten around that way. Quote Link to comment Share on other sites More sharing options...
thorfdbg Posted April 28, 2020 Share Posted April 28, 2020 The 850 handler bootstrap mechanism uses longer blocks. Actually, the full handler is downloaded in one block. The 850 bootstrap is performed in 3 steps: First, a tiny bootstrap function is loaded. This function loads custom SIO parameters, over SIO, and then these parameters describe a big block of data that is used to transfer the handler in one go, then the handler is relocated. Quote Link to comment Share on other sites More sharing options...
tschak909 Posted April 28, 2020 Share Posted April 28, 2020 3 hours ago, thorfdbg said: The 850 handler bootstrap mechanism uses longer blocks. Actually, the full handler is downloaded in one block. The 850 bootstrap is performed in 3 steps: First, a tiny bootstrap function is loaded. This function loads custom SIO parameters, over SIO, and then these parameters describe a big block of data that is used to transfer the handler in one go, then the handler is relocated. The 1030 handler is even more...interesting, with the handler and modemlink software using two different loaders with different cycle counts resulting in two different loading pitches as it "shifts gears" -Thom 1 Quote Link to comment Share on other sites More sharing options...
+DrVenkman Posted April 28, 2020 Share Posted April 28, 2020 9 minutes ago, tschak909 said: The 1030 handler is even more...interesting, with the handler and modemlink software using two different loaders with different cycle counts resulting in two different loading pitches as it "shifts gears" -Thom Oh, very vaguely remember that from when I owned a 1030 and used it daily for BBS’ing as a teenager. Thanks for that weird little memory blurb. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.