Jump to content
IGNORED

Power on off wait times


cx2k

Recommended Posts

So, I just upgraded an 800xl to 256K. I noticed that after the upgrade, i have to wait ~8-10 seconds after power off before powering on again.

 

If I don't, it's like the memory is not clearing/draining and it just comes back with a blue screen (doesn't boot). I thought this might be an issue with the newer type ram that came with the upgrade so I ordered some old school ram and the problem is just as bad.

 

I remember seeing this issue back in the day, but honestly don't remember what the fix is.

 

Any ideas or help would be appreciated.

 

Thanks,

John

 

Link to comment
Share on other sites

This is normal. You have to wait for the RAM to lose its memory. I would imagine the newer RAM upgrades, like the U1M are shorter. Someone would need to chime in on that, but the old school DRAM upgrades require you wait several seconds.

 

With a U1MB, the delay is mainly just whatever's necessary for the main electrolytic caps to discharge - a second or two at most is normally fine. However, with a U1MB installed, you can generally force a cold reset from the BIOS menu screen with no need to physically power-cycle the machine often at all.

  • Like 1
Link to comment
Share on other sites

I always remembered reading about using a delay before powering on an Atari after just powering it down.

 

There are 3 different places where it's stated in the 130XE manual. I imagine this is duplicated in the manuals for other models too.

 

"Whenever you turn your computer off, wait a moment before turning it on again."
----------
"If you have already been using another software program, turn off the computer, remove the first cartridge, insert the new cartridge, wait several seconds, and turn on the computer again."
----------
"If you have just been using another cartridge, wait a moment between the time you insert the new cartridge and the time you turn the computer back on."
Edited by MrFish
Link to comment
Share on other sites

My own experience is that there is basically no powercycle wait time required at all on my stock 800XL or U1MB upgraded 800XL. However, my ANTONIA board upgraded 600XL does require the 8-10 seconds that you describe in order to reset itself.

Link to comment
Share on other sites

HiassofT's highspeed SIO patch includes a feature for SHIFT+RESET does a coldstart, which is handy in this scenario:

http://www.horus.com/~hias/atari/#hipatch

 

I never experienced this issue with the 320K upgrade in my 130XE, since it maintains the original 64K base RAM chips, and only replaces the extended RAM I guess.

 

You can download a pre-made version of XL/XE OS Rev.2 with the Highspeed SIO patch V1.30 here: http://atariage.com/forums/topic/206880-130xe-reverse-option-key-for-basic/page-2?do=findComment&comment=3944284

- Reverse BASIC

- shift-reset coldstart

- fast math pack

- corrected checksums for self test ROM check

  • Like 1
Link to comment
Share on other sites

There's also a nice cold reset button on Side2, ultimate, and UNO carts. Tap it, then reset does a coldstart even with stock OS.

The cart reset buttons instigate an OS reboot by reactivating the boot bank of the cartridge (commonly the loader), which causes the OS to sense a cartridge change and reboot.

Link to comment
Share on other sites

So there has to be a way to force a software cold start after a hardware cold start automatically.

Yes, it's easy: just clear RAM, or at least the OS magic bytes, or jump through the OS coldstart vector. The wait between 'off' and 'on' is necessary because you're waiting for the contents of RAM to drain away without being manually cleared by the CPU.

Link to comment
Share on other sites

Essentially, although on some machines the DRAM clears (or at least changes) almost immediately anyway as soon as power is shut off. But if the important RAM locations don't change quickly enough, the OS believes reset was pressed and attempts a warm-start (a cold power-up is really just a system reset with completely undefined RAM contents). Of course the warm-start usually fails because other parts of RAM did change when the power was cut and any executable code in RAM is likely heavily corrupted.

  • Like 1
Link to comment
Share on other sites

Yeah, I have an old Rambo upgraded 800XL that didn't require more than the normal 2-3 seconds. I almost thought about replacing some caps (maybe they're keeping charge on the ram?).

 

I use a couple of cold-start tricks since back in the day.

 

From Basic - Poke 580,1 then press Reset (+option to boot without basic)

From Dos - option M (run at address) enter E477 then return. This will cold boot as soon as you hit return (so hold option first for no basic)

 

John

  • Like 1
Link to comment
Share on other sites

Some XL/XEs will resume after a quick power cycle.

 

The modern day upgrades - 2 reasons why they'll usually act normally during a quick cycle:

1. It's only the main memory that's important - the flags concerned live in page 2-3 in low memory.

 

2. Most modern upgrades use static memory which has to be constantly powered and loses contents very quickly when the power drains.

Dynamic Rams improved in retention as time went on. Look at the C= Plus/4 as an example. It uses the Ram technology common to the XE and has the exact same clock rate.

The Plus/4 only provides 5 refresh cycles per normal scanline where Atari does 9.

The datasheets for memory chips are usually pessimistic in their refresh specifications - the reality is they'll often be good with a fraction of the required cycles.

But also note of course that normal memory accesses usually refresh the entire row, some old computers actually used that fact to generate auto-refresh.

Link to comment
Share on other sites

If for some unforseen reason, base-memory is not being cleared up fast enough between power-cycling (which is NOT the case on Incognito, as it also substitutes base memory), you can control this LIVE, by simply resorting to OS (XL/XE) built-in handlers of PWS / PCS (Perform Warm Start, Perform Cold Start routines) as well as corresponding status registers:

 

1. Ram Location $0244: reads $FF for COLD starts, and reads $00 for Warm Starts.

2. Ram Location $03F8: reads $01 when Basic absent, or $00 for Basic present.

 

On ANY Atari XL/XE OS machine, you can simply store a $FF on $0244 and then run / jump into $C2A1, which is OS LEGAL entry-point for PWS/PCS. If you jump there, OS will check for COLD or WARM start status byte on $0244 (as well as $03F8) and run the CORRESPONDING code, including dual-stage memory sizing + clearing + testing (yes, there is a dedicated MEMORY TEST independent and prior-to SELF-TEST menu). If, in addition to all this, you also set $03F8 to zero, you will instruct OS to bring back Basic-ROM into $A000-$BFFF space, and also boot it with OS's built-in cart Manager.

 

In addition to the above, you can ALSO combine use of $0244 and $03F8 status-bytes, with OS built-in cart-boot manager, which you can invoke by jumping to $C3C4, if fast cart-restart only is required.

 

This all can be done with EYE2.COM loaded, Assembler Editor, Monkey Wrench II (if you are using XL-XE OS with Right-Cart extensions) or even from Basic (preferably Altirra Basic, as you can poke directly HEX addresses and values).

Edited by Faicuai
Link to comment
Share on other sites

There's no "legal" entry points in the OS at $Cxxx. Just because most or all OSes might have that code there doesn't make it so.

The only legal direct jumps are around $E4xx.

 

Yes, there is:

 

 

 

** PWS - Perform Warmstart

*

* ENTRY JMP PWS

*

* EXIT

* Exits to PCS or PRS

*

* MODS

* Original Author Unknown

* 1. Bring closer to Coding Standard (object unchanged).

* R. K. Nordin 11/01/83

PWS = * ;entry

; Initialize.
SEI
; Check for cartridge change.
LDA TRIG3 ;cartridge interlock

CMP GINTLK ;previous cartridge interlock status

BNE PCS ;if cartridge changed, perform coldstart

Link to comment
Share on other sites

Such documentation in the source code doesn't make it legal either.

 

All that's needed is a single change before it and the address changes.

 

The proper warmstart entry point is and always has and will be $E474.

That's not true, either. $C2A1 is an EFFECTIVE and DOCUMENTED entry-point to PCS/PWS since 1983. That is not used, not known, ignored, neglected, or not published as such is another story.

 

It does NOT invalidate it neither technically, nor functionally in absolutely any form or shape... to such an extent that I can say it yields in more consistent and predictable results than repeated / iterative System Reset (with carts like Monkey Wrench II, for instance).

Edited by Faicuai
Link to comment
Share on other sites

/headdesk.

 

Just the mere fact it's in the $Cxxx area means it's outside the realm of the original OS.

"Documented" doesn't mean squat. It's still not a recognised legal entry point, and the only usage case would be if you're developing a custom OS and using it from within it.

 

Anyway - feel free to continue your false beliefs, it's not as if you'll be releasing software that's going to affect people due to them.

Edited by Rybags
  • Like 1
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...