Jump to content
IGNORED

Hard reset on Atari 8-bit


Waynetho

Recommended Posts

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
Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

  • Like 2
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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
  • Like 2
Link to comment
Share on other sites

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

  • Like 3
Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

 

 

  • Like 1
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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/forums/topic/288652-65xe130xe-cartridge-port-extender-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.com/~hias/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/forums/topic/206880-130xe-reverse-option-key-for-basic/page-2?do=findComment&comment=3944284

 

  • Like 2
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...