Jump to content
Sign in to follow this  
Laemeur

Changing RESET key function on XL?

Recommended Posts

Is it possible to get the RESET key on the XL series computers to do anything other than reset the system? Trying to change the interrupt routine vectors at $E474 and $E477 with POKEs is apparently not possible. Can I get around that with ML, or am I just approaching this from the wrong direction entirely?

Share this post


Link to post
Share on other sites

Not really.

 

For starters, it's a hardware Reset, and not a function key.

A Reset also sets the PIA back to it's default ($FF) outputs on the PORTA/B. So, that means Basic Off, OS ROM On, so any RAM-based OS idea becomes kinda null.

 

A cartridge can get almost immediate control of the system if it's a "Diagnostic" type... some games are like that, e.g. Star Raiders. Disadvantage is that they then inherit a system where virtually no initialisation has taken place, e.g. no screen setup, most OS RAM not initialised yet.

 

For disk-based stuff, CASINI, DISKINI and DOSVEC are the best bets. ($02,03) if bit 2 of location 9=1, ($0C,D) if bit 1 of 9=1. DOSVEC is the last thing the OS will attempt to run if no cartridge is present - by default it will go to the Self-test/Memo pad routine.

Share this post


Link to post
Share on other sites

Hmm. That's what I was starting to suspect.

 

Thanks very much for the comprehensive answer. I really appreciate it.

Share this post


Link to post
Share on other sites

I should have added - if you burned your own OS to Eprom, or had an AtariMax 32in1, then you could insert your own code... of course you then have something that's unique to whatever machine it's in though.

Share this post


Link to post
Share on other sites

What you can do is making a custom routine, which will be started AFTER reset is pressed.

 

I think that is not what you want, but it is possible to start a custom routine after the OS reset routine.

Share this post


Link to post
Share on other sites

Is it not possible to modify some of the translator disks to do this, as they replace the os and then vector jump to the new os in ram. A software version os swap as opposed to a chip swap. That might be where to start

 

What you can do is making a custom routine, which will be started AFTER reset is pressed.

 

I think that is not what you want, but it is possible to start a custom routine after the OS reset routine.

Share this post


Link to post
Share on other sites

The only options are the disk/tape init vectors, and DOSVEC.

 

All Translator does is use that method, switch the alternate OS in, then continue with the (alternate) warmstart code.

Share this post


Link to post
Share on other sites

there is more than one translator type OS so I was thinking using the same method the code could be used to shoehorn something in there at the very least allowing the system to pick up exactly where it left off...

The only options are the disk/tape init vectors, and DOSVEC.

 

All Translator does is use that method, switch the alternate OS in, then continue with the (alternate) warmstart code.

Share this post


Link to post
Share on other sites
Is it possible to get the RESET key on the XL series computers to do anything other than reset the system? Trying to change the interrupt routine vectors at $E474 and $E477 with POKEs is apparently not possible. Can I get around that with ML, or am I just approaching this from the wrong direction entirely?

Sounds like you can't get around this problem directly.

 

You could build a switch for the interupt line on the SIO port. The vector is VINTER ($204). Just change it to point to your routine.

 

I'm not 100% sure but I don't think any SIO devices currently available use the interupt line.

 

- Steve Sheppard

Edited by a8isa1

Share this post


Link to post
Share on other sites
Is it possible to get the RESET key on the XL series computers to do anything other than reset the system? Trying to change the interrupt routine vectors at $E474 and $E477 with POKEs is apparently not possible. Can I get around that with ML, or am I just approaching this from the wrong direction entirely?

Sounds like you can't get around this problem directly.

 

You could build a switch for the interupt line on the SIO port. The vector is VINTER ($204). Just change it to point to your routine.

 

I'm not 100% sure but I don't think any SIO devices currently available use the interupt line.

 

- Steve Sheppard

 

There's more control on the RESET on Atari 800 than XL/XE. What exactly does he want the RESET to do and is it time critical?

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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...