danwinslow Posted August 19, 2005 Share Posted August 19, 2005 (edited) Anyone have any info on how to set pokey for high speed IO, ie., 38.4k or 56k baud rates? I sort of thought sticking $10 into $D204 would work, but doesn't seem to do much. I am setting up the DCB myself, and jumping to $E459. Edited August 19, 2005 by danwinslow Quote Link to comment Share on other sites More sharing options...
danwinslow Posted August 19, 2005 Author Share Posted August 19, 2005 bump? Quote Link to comment Share on other sites More sharing options...
ijor Posted August 19, 2005 Share Posted August 19, 2005 You can't. You must use your own routines if you want a custom SIO speed. There are sources available. Or, as it was sometimes done, copy the SIO routines to RAM and modify them. Quote Link to comment Share on other sites More sharing options...
emkay Posted August 19, 2005 Share Posted August 19, 2005 bump? 914691[/snapback] Word of $30C, 30D : Timer1 It's the start setting of the transfer speed Word of $310,311 : Timer2 Final transfer speed. If that helps. But I'm not shure about the values. Quote Link to comment Share on other sites More sharing options...
ijor Posted August 19, 2005 Share Posted August 19, 2005 Word of $30C, 30D : Timer1It'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. Quote Link to comment Share on other sites More sharing options...
danwinslow Posted August 19, 2005 Author Share Posted August 19, 2005 I am using my own routines. I guess I will have to disassemble a high speed io routine. Quote Link to comment Share on other sites More sharing options...
ijor Posted August 19, 2005 Share Posted August 19, 2005 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. Quote Link to comment Share on other sites More sharing options...
danwinslow Posted August 19, 2005 Author Share Posted August 19, 2005 (edited) 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 August 19, 2005 by danwinslow Quote Link to comment Share on other sites More sharing options...
classics Posted August 19, 2005 Share Posted August 19, 2005 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. Quote Link to comment Share on other sites More sharing options...
danwinslow Posted August 19, 2005 Author Share Posted August 19, 2005 Well, isn't that essentially what the high speed uploadable routines do? Quote Link to comment Share on other sites More sharing options...
ijor Posted August 19, 2005 Share Posted August 19, 2005 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. Quote Link to comment Share on other sites More sharing options...
emkay Posted August 19, 2005 Share Posted August 19, 2005 Word of $30C, 30D : Timer1It'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. Quote Link to comment Share on other sites More sharing options...
danwinslow Posted August 19, 2005 Author Share Posted August 19, 2005 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. Quote Link to comment Share on other sites More sharing options...
ijor Posted August 19, 2005 Share Posted August 19, 2005 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? Quote Link to comment Share on other sites More sharing options...
emkay Posted August 19, 2005 Share Posted August 19, 2005 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. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted August 20, 2005 Share Posted August 20, 2005 have you looked these files? http://www.strotmann.de/twiki/bin/view/APG/WebHome http://www.strotmann.de/twiki/bin/view/APG...riFloppyEnhance maybe little help... Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted August 20, 2005 Share Posted August 20, 2005 or here? http://cat.asw.cz/~kubecj/asio.htm Quote Link to comment Share on other sites More sharing options...
danwinslow Posted August 20, 2005 Author Share Posted August 20, 2005 Yes I've seen those, Heaven. I spend a lot of time at that site . The HDI source code looks like it might have what I want. Thanks! Quote Link to comment Share on other sites More sharing options...
ijor Posted August 21, 2005 Share Posted August 21, 2005 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. 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.