Jump to content

Photo

Hard reset on Atari 8-bit

Atari 6502 hard reset

22 replies to this topic

#1 Waynetho OFFLINE  

Waynetho

    Space Invader

  • 26 posts

Posted Wed Mar 6, 2019 11:16 PM

I've been reading several threads regarding various hard reset schemes people are using or have recommended and every method seems to be convoluted and complicated to deploy when back in the mid-80's many of my friends with Ataris and myself would simply run a momentary push-button switch through a resistor to pin-40 of the 6502 (Sally) chip that would pull the reset pin low while pressing the button.

 

This always seemed to me to be the most elegant solution and the simplest as well.  Since pin-40 of the processor is the RESET pin, logically this would be the right path.  Since the pin is pulled high through a resistor already, pulling it low (to ground) through a lower value resistor will cause the processor to reset, thus rebooting the computer.

 

The Atari users in my group of friends never had any failures due to this method of choice for hard resetting the Atari. 

 

Does anyone know why other more intricate or complicated methods are the only ones talked about now (methods that use TTL chips and focus on various other chips and pins)??  


Edited by Waynetho, Wed Mar 6, 2019 11:17 PM.


#2 TGB1718 OFFLINE  

TGB1718

    Star Raider

  • 69 posts

Posted Thu Mar 7, 2019 4:33 AM

I did a similar thing but without the resistor, I used the "Channel" switch used the change the UHF channel on the side of the 800.

 

I always used a monitor with a Scart, so disconnected the UHF switch and wired 6502 reset to the switch and 0V

 

Used it all the time with no problems (still wotking fine today 37+ years later)



#3 Rybags OFFLINE  

Rybags

    Gridrunner

  • 16,087 posts
  • Location:Australia

Posted Thu Mar 7, 2019 5:16 AM

Hard reset to coldstart is only relevant to the 400/800 since XL/XE uses it instead of the original NMI method - an improvement since a locked up CPU needed a full coldstart to recover on the older machines.

 

The equivalent method on the later machines is to toggle the state of the cartridge sense which will trigger a coldstart on reset due to the OS thinking a cartridge swap has occurred.  The nickname "freezer" used as most of the OS variants will freeze the machine when the state change happens.

 

From what I've read, simply grounding the reset pin isn't always a good thing, hence the more complex circuits used in some cases.



#4 Magic Knight OFFLINE  

Magic Knight

    Dragonstomper

  • 594 posts
  • Waiting for SHATRON to be released...
  • Location:Castle of Karn (Scotland UK)

Posted Thu Mar 7, 2019 5:43 AM

What resistance would be suitable for this reset to gnd method on a stock 800?


Edited by Magic Knight, Thu Mar 7, 2019 5:45 AM.


#5 TGB1718 OFFLINE  

TGB1718

    Star Raider

  • 69 posts

Posted Thu Mar 7, 2019 2:07 PM

Think I may have told a little 'porkey' :), what I did was wire the switch to the junction of R156 and C198 which provide

a short pulse when the 800 is turned on to provide the RESET.

 

Shorting to 0V at this point can do no damage as its the input to a CD4050 CMOS buffer via a 100k resistor.



#6 Waynetho OFFLINE  

Waynetho

    Space Invader

  • Topic Starter
  • 26 posts

Posted Thu Mar 7, 2019 9:05 PM

Hard reset to coldstart is only relevant to the 400/800 since XL/XE uses it instead of the original NMI method - an improvement since a locked up CPU needed a full coldstart to recover on the older machines.

 

The equivalent method on the later machines is to toggle the state of the cartridge sense which will trigger a coldstart on reset due to the OS thinking a cartridge swap has occurred.  The nickname "freezer" used as most of the OS variants will freeze the machine when the state change happens.

 

From what I've read, simply grounding the reset pin isn't always a good thing, hence the more complex circuits used in some cases.

That's weird.  I started with a 400 in 1980 and as soon as I could afford one, I bought an 800XL and used it until retiring my Atari days in the late 90s.  I could have sworn I did the reset pin thing on the 800XL but it must have been the 400 instead.  I tested the pin-40 reset on my 130XE just down and it just acts like the reset button on the keyboard.

 

Both had a lot of modifications. 

 

My 400 had a full-stroke keyboard and I built a 52k memory card from a kit and installed it.  A fellow Atari person did a COMPOSITE VID/AUD mod on it.

My 800XL had a hand-built Newell 256K clone (built from schematic), a homebrewed 3-OS switch-board (similar to Newell's Ramrod XL but using an easier to find 3P2T/Center-off switch instead), an external 1200XL keyboard and a small postage-stamp size board that would lock the RAM in the 8K or 16K cartridge area when selected so copies of "booby-trapped" cartridges could be run properly.

 

I guess the reset button was on the 400....

 

My first floppy was a Percom that I upgraded with a DD data separator, an upgraded drive in the case and three DSQD slave drives connected via ribbon cable (I ran a bulletin board).

 

Too bad there's not an easy way to set the "reboot on reset" flag without poking the memory location.



#7 Waynetho OFFLINE  

Waynetho

    Space Invader

  • Topic Starter
  • 26 posts

Posted Thu Mar 7, 2019 9:14 PM

What resistance would be suitable for this reset to gnd method on a stock 800?

The resistor is only to prevent applying a hard ground to a hard voltage source.  If you want to attempt this mod on an original 800, start with a 1k or 2k resistor and test to make sure it resets with that resistance.  If it works, keep it, otherwise try a lower value (470 ohm for instance) until you find a value that works reliably.

 

I just was always cautious about doing a hard ground to reset because I didn't want to blow anything up.  The RESET pin though, is a PULLED UP signal (denoted by a line over the RST).  If I'm not mistaken, the mainboard is designed with a pull-up resistor to keep this pin high. 



#8 _The Doctor__ OFFLINE  

_The Doctor__

    Flux Capacitor Master Craftsman

  • 6,726 posts
  • Location:10-0-11-00:02

Posted Thu Mar 7, 2019 10:00 PM

Name of Bulletin Board System please :)



#9 Waynetho OFFLINE  

Waynetho

    Space Invader

  • Topic Starter
  • 26 posts

Posted Thu Mar 7, 2019 10:40 PM

Name of Bulletin Board System please :)

It hasn't existed in many years but it was a small local BBS in McKinney TX called the McKinney Connection and it started out using a basic BBS software (can't remember what it was called, don't think it was FoReM).  Then it was moved to BBS Express!

 

Later after I moved to a PC computer I ran a "Remote-Access" system that was on the Fido-Net global network called "The Avenger".

 

I haven't run a BBS since 1995.

 

This is from the FidoNet node list I just looked up online, from 1990:

 

1:124/4207 Wayne Thomason Allen TX The Avenger


Edited by Waynetho, Thu Mar 7, 2019 10:44 PM.


#10 bob1200xl OFFLINE  

bob1200xl

    River Patroller

  • 2,619 posts

Posted Fri Mar 8, 2019 12:08 AM

The line over the signal name means that it is activated when grounded, rather than held at 5v. (the actual voltage values are more like .4v or 2.8v)  (not a good idea to wire a pin directly to +5v or ground - use a 1K resistor)

 

The 400/800 do not pull RESET low when you press the reset button, so you can't recover from a lockup consistently. Adding the switch to pin 40 drives RESET directly, ensuring a hard reset.

 

The XL/XE systems do toggle RESET when you press the reset key. The software looks at some memory locations to determine if a cold start is required. The memory in a stock XL/XE Atari will fade very quickly when you power cycle, giving you a hard reset. Memory used in upgrades often retain data for as much as 19 seconds, making a power cycle kind of a pain.

 

Using a FREEZER mod will not only make cold resets easier but also give you a way to re-boot without losing ramdisk data.

 

Bob



#11 Rybags OFFLINE  

Rybags

    Gridrunner

  • 16,087 posts
  • Location:Australia

Posted Fri Mar 8, 2019 2:15 AM

The 4-bit Ram chips as used in later XEs can have a tendency to hold their contents longer, at times a couple of seconds or more powered off is needed.



#12 Waynetho OFFLINE  

Waynetho

    Space Invader

  • Topic Starter
  • 26 posts

Posted Sat Mar 9, 2019 2:02 PM

Can the Antic pin 6 being pulled low work without the "Turbo Freezer" adapter being installed (assuming the "Freezer mod" is the same as the "Turbo Freezer" board I have seen online)?



#13 Waynetho OFFLINE  

Waynetho

    Space Invader

  • Topic Starter
  • 26 posts

Posted Sat Mar 9, 2019 2:08 PM

NVM.  I just found the freezer mod by Bob Woolley (Is that you, Atari Bob?)  It requires 74HC chips and trace interruptions (cuts) so not as simple as I thought it could be.


Edited by Waynetho, Sat Mar 9, 2019 2:12 PM.


#14 bob1200xl OFFLINE  

bob1200xl

    River Patroller

  • 2,619 posts

Posted Sat Mar 9, 2019 9:36 PM

Yes, it's me. My second hardware hack from way back when. (first was enabling $D6-$D7)

 

It is a little invasive. I wish I could make it simpler, but I can't.

 

You can usually force a hard RESET by hitting the RESET key very quickly. Or, Just plug in a cart or pull the existing cart. with the power on, of course.

 

With battery-backed SRAM, you don't have to worry about power cycles.

 

Do you really need a FREEZER?

 

Bob



#15 Rybags OFFLINE  

Rybags

    Gridrunner

  • 16,087 posts
  • Location:Australia

Posted Sun Mar 10, 2019 1:29 AM

A non invasive freezer could be made using an unwanted cart board but of course that's not much good if you want to use cartridges.

 

The quick hit reset method - in succession - that Bob mentions - it works because the OS has a bit of a bug where it clears page 3 of RAM which momentarily zeroes the 3 magic number sequence that differentiates between powerup and warmstart.  If the second press occurs before they're set again, you get a coldstart.

With a bit of practice it's actually fairly easy to use that method.



#16 Waynetho OFFLINE  

Waynetho

    Space Invader

  • Topic Starter
  • 26 posts

Posted Sun Mar 10, 2019 1:51 AM

I'm not new to "invasive", although most of my mods back in the day were add-ons and they didn't require permanent modifications other than desoldering and replacing ram or socketing other chips. 

 

If I recall correctly, the most invasive I got besides a ram upgrade was when I installed my cartridge booby-trap defeat (I called "Rom Smash").  It's been 34 years since that mod but I still have one in my collection.of junk and the schematic and drawings.  I just don't have the custom program I wrote that dumped the cartridges to files with a loader though..

 

"Rom Smash" was a combination of two separate circuits that worked in tandem.  It was a built-in BASIC defeat that required pin 11 on the PIA be lifted with one wire attached to the pin and another to the socket, and a circuit that activated either the 8K (cartridge pin 14) or 16K (cartidge pin A) chip select when the CPU went into a write cycle (cartridge pin R), if the switch was in 8K or 16K mode.  This effectively hid memory under the cartridge when it was in danger of being corrupted by any booby-traps in the cartridge.

 

To this day I haven't cut a trace on any Atari.

 

 



#17 Mathy OFFLINE  

Mathy

    River Patroller

  • 2,930 posts
  • Location:Heerlen, NL

Posted Sun Mar 10, 2019 11:31 AM

Hello Bob, guys, Lenore

 

Or, Just plug in a cart or pull the existing cart. with the power on, of course.

 

If we use some kind of cartridge or ECI extender board, it should be easy to somehow simulate the "unplug" with some extra circuitry.

 

Sincerely

 

Mathy


Edited by Mathy, Sun Mar 10, 2019 11:31 AM.


#18 Waynetho OFFLINE  

Waynetho

    Space Invader

  • Topic Starter
  • 26 posts

Posted Sun Mar 10, 2019 12:09 PM

I just realized that I wasn't totally clear on my description of "Rom Smash".  The reason the BASIC rom defeat and the cartridge images worked was that magical "loader" that was in the header of the dumped cartridge.  The support software would ask one question, (DOS Needed?) and tailor the loader accordingly. 

 

The program would then determine whether the cartridge was 8K or 16K (nevermind the ones that have larger bank-switched memory like those from OSS).  It would save the loader for that cartridge and DOS requirements and add the cartridge dump to the file after.

 

When the loader started, it either said "INSERT DOS DISK and flip switch to 8K [*or "16K"] or just "Flip switch to 8K [*or "16K"].  The loader would be constantly checking the 8K and 16K high-byte for its inability to be changed (store, invert, read, replace if different than stored).  Once the loader couldn't change the appropriate RAM position, it would start the load of the remainder of the file which was the cartridge dump.  Since the BASIC rom defeat was also activated before the cartridge image is loaded, the RAM is available to hold the image.

 

Then anytime the CPU was trying to write to memory (ANYWHERE), the cartridge selects were active, hiding the RAM in those locations.  When the CPU wasn't writing to RAM, the ram was available in the cartridge area.

 

The interesting thing is, the program relied on the ability to carefully plug in a cartridge (thus toggling the cartridge selects) WITHOUT locking up or rebooting the computer - and this worked most of the time on my 800XL and several others that I built the system for.

 

It's all coming back to me now... :)



#19 slx OFFLINE  

slx

    Stargunner

  • 1,789 posts
  • Location:Vienna, Austria

Posted Mon Mar 11, 2019 11:10 PM

Memory used in upgrades often retain data for as much as 19 seconds, making a power cycle kind of a pain.


I noticed this with my Antonia-enhanced 600XL. Is there a way to patch the OS to ensure a RAM erase on power cycling?


Gesendet von iPhone mit Tapatalk

#20 Rybags OFFLINE  

Rybags

    Gridrunner

  • 16,087 posts
  • Location:Australia

Posted Tue Mar 12, 2019 3:12 AM

Ram erase by default only occurs in the contiguous non-expanded type region that the OS finds on coldstart - so if you have Basic enabled or insert a cart that area will be "protected".

 

If you choose to patch the OS then maybe just throw in a hotkey like Shift that gives a coldstart on demand.  The default OS has some spare bytes just under $CC00 which could hold patch code without need to lose other functionality.



#21 Nezgar OFFLINE  

Nezgar

    Stargunner

  • 1,824 posts
  • Location:Regina SK Canada

Posted Tue Mar 12, 2019 8:55 AM

If we use some kind of cartridge or ECI extender board, it should be easy to somehow simulate the "unplug" with some extra circuitry.


Maybe this is a simple thing (microswitch button?) to add to the right-angle cartridge/PBI/ECI adapters that Dropcheck has been designing? In this thread: http://atariage.com/...nder-90-degree/
 

I noticed this with my Antonia-enhanced 600XL. Is there a way to patch the OS to ensure a RAM erase on power cycling?

 
Hias' Highspeed SIO patch includes a bonus shift-reset coldstart feature: https://www.horus.co.../atari/#hipatch
 
There is a pre-made patched XL/XE rev 2 OS with this patch, as well as a fast FP math patch: http://atariage.com/...-2#entry3944284
 



#22 _The Doctor__ OFFLINE  

_The Doctor__

    Flux Capacitor Master Craftsman

  • 6,726 posts
  • Location:10-0-11-00:02

Posted Tue Mar 12, 2019 11:34 AM

Take a look at how Mr.Atari does his resets in myBios.... warm, cold, and power reset. It does work very nicely. I bet someone could fashion this to our needs.



#23 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 14,494 posts
  • Location:United Kingdom

Posted Tue Mar 12, 2019 11:42 AM

There's nothing difficult about forcing a cold OS reset in software. Once one has decided to install an operating system which can reboot via a reset key combo, the whole issue is pretty much resolved. I think a hardware solution was requested, however.







Also tagged with one or more of these keywords: Atari, 6502, hard reset

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users