Jump to content
IGNORED

High Speed SIO


danwinslow

Recommended Posts

Word of $30C, 30D : Timer1

It's the start setting of the transfer speed

 

Word of $310,311 : Timer2

Final transfer speed.

 

No, these locations are used only by the casette handler. They are used for adjusting the bit-rate to the incoming record.

 

They are not used at all for other devices. And even for tape handling they are not useful for any user's purpose. They are set by SIO, so whatever you put before entering SIO is ignored.

Link to comment
Share on other sites

I am using my own routines. I guess I will have to disassemble a high speed io routine.

 

Hmm, don't understand. Didn't you say you were calling SIO?

 

Anyway, you probably don't need any disassembling. There are several different sources available. And if you already have your own low speed routines, then (as long as they aren't too slow) they are suitable for any speed. The only difference is the specific value for the Pokey divisor.

Link to comment
Share on other sites

OK, now I understand what you meant, Ijor. You are correct, I am calling standard SIO. But there must be some value I can stick somewhere, to in effect duplicate what the OS does with the speed divisor byte returned from a $3F query. It must put it somewhere. I doubt if there is a whole seperate routine, its just a divisor value. I don't know where to put it or what else might be done.

 

It may be that SpartaDos is responding to it rather than the native SIO vector. In which case you are saying that I need to write my own SIO...or use the equivalent of the speedy upload. That would help the most I think, if there were a listing somewhere of one of the uploadable high speed SIO patches...does anyone know of any online accessible?

Edited by danwinslow
Link to comment
Share on other sites

I think what Ijor is trying to get across is you need to write your own serial ISR for Pokey to do high speed I/O.

 

When you put your divisor into Pokey and call the SIO vector, the OS serial ISR will immediately write $28 to that divisor location during its setup for SIO.

 

You need to bypass the OS SIO routine by providing your own serial ISR and transaction handler.

Link to comment
Share on other sites

OK, now I understand what you meant, Ijor. You are correct, I am calling standard SIO.

 

Oh, sorry for not being clear enough. I meant you must use your own SIO code, and not call SIO ($E459) at all.

 

But there must be some value I can stick somewhere ...

It may be that SpartaDos is responding to it rather than the native SIO vector.

 

The divisor is fixed in the ROM code, it is not read from a memory variable. So there is no way to use ROM SIO for custom speeds. If you want, and for quick testing purposes, you can “patch” SIO. Copy the SIO routines to RAM under the OS and modify the instruction with the fixed divisor. This is of course a quick dirty hack.

 

Yes, SpartaDOS and every other high-speed software have its own SIO routines. As a matter of fact, SpartaDos has a public/published vector for high-speed SIO. That is, you can call a vector in SpartaDos for using their high speed SIO code.

 

That would help the most I think, if there were a listing somewhere of one of the uploadable high speed SIO patches

 

Happy version 7 comes to mind. It includes high-speed SIO source code. You might need to remove/modify the happy detection code (don’t remember if it’s specific for the Happy or USD generic). But the actual SIO and interrupt code should be usable for any high speed device.

Link to comment
Share on other sites

Word of $30C, 30D : Timer1

It's the start setting of the transfer speed

 

Word of $310,311 : Timer2

Final transfer speed.

 

No, these locations are used only by the casette handler. They are used for adjusting the bit-rate to the incoming record.

 

They are not used at all for other devices. And even for tape handling they are not useful for any user's purpose. They are set by SIO, so whatever you put before entering SIO is ignored.

914739[/snapback]

 

Curious :?

 

Description for $30C,30D:

Register for storing the starting transferspeed.

600 Baud for Cassette

19200 Baud for the Diskdrive.

Link to comment
Share on other sites

LSIO COMTAB-10 

This is a pointer to the SpartaDOS high speed SIO routine. You can use the address contained here instead of $E459, the OS SIOV, to perform high speed sector I/O with your programs.

 

That's interesting...so I can let sparta handle it. I suppose I could take that tack with any DOS I find myself in...some do have high speed support and some don't. The question then would be determinng which one of a zillion or so possible DOS's are loaded. Hmm I think short term I will go with supporting a few of the major DOS's through their own routines, and then work on a generic high speed routine of my own later.

Thanks, folks.

Link to comment
Share on other sites

Curious  :?

 

Description for $30C,30D:

Register for storing the starting transferspeed.

600 Baud for Cassette

19200 Baud for the Diskdrive.

 

That description is wrong. Where you find that description?

914791[/snapback]

 

It's called "ATARI Profibuch" written by Julian Reschke & Andreas Wiethoff.

Link to comment
Share on other sites

It's called "ATARI Profibuch" written by Julian Reschke & Andreas Wiethoff.

 

Sorry, I don’t know that book/reference, but again, the description is wrong. Those locations are used as I explained above.

 

It is not too difficult to verify by yourself if you want. Just poke random values there before calling SIO and you would see that they don’t affect anything at all. For smart devices, you will see that SIO didn’t change the values. And for the tape, they will be ignored and replaced. They are timers used for auto-sensing the tape bit-rate speed.

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...