Path: utzoo!attcan!uunet!cbmvax!daveh From: daveh@cbmvax.commodore.com (Dave Haynie) Newsgroups: adsp.sw,comp.sys.amiga.tech Subject: Re: ColdReboot() - The Never Ending Story? Message-ID: <13895@cbmvax.commodore.com> Date: 20 Aug 90 15:17:36 GMT References: <03021.AA03021@babylon.UUCP> <13839@cbmvax.commodore.com> <13847@cbmvax.commodore.com> <03065.AA03065@babylon.UUCP> Reply-To: daveh@cbmvax (Dave Haynie) Organization: Commodore, West Chester, PA Lines: 50 In article <03065.AA03065@babylon.UUCP> rbabel@babylon.UUCP (Ralph Babel) writes: >In article <13839@cbmvax.commodore.com> >daveh@cbmvax.commodore.com (Dave Haynie) writes: >> If the MMU is on, make sure you're done running any OS >> code before you turn it off. >And if I'm currently executing out of a memory region that >has been remapped? Well, don't. Currently, you have very little chance of that being the case. If you're experimenting with virtual memory, you will have to make sure that your reset code runs from unmapped memory. If you're mapping memory that's not ROM code and not virtual memory, try to figure out why you've mapped it; there's probably not a good reason for this. And keep in mind that it's only the reset code itself that needs to be in unmapped physical memory. That code is only entered, and the result of its execution is that every other task in the system is destroyed. >About trying to make ColdReboot() (and other programs using >the RESET instruction) more compatible with existing >hardware (e.g. the A1000). First of all, when you have ColdReboot() (eg, OS 2.0 and later), any program using RESET other than ColdReboot() is probably in error. A tool like SetCPU, which isn't really OS supported, is about the only thing than should be doing a direct RESET, and even it attempts to coexist with the ColdReboot() mechanism. >I merely pointed out that after a CPU-RESET something might >appear at location 0 (and also at $00e8xxxx - thanks Dave!) >that Exec and Expansion might choke on. But as I mentioned, it IS incorrect for that to be a problem. A ColdReboot() cannot legally give you back something at location 0 or $00e8xxxx that is not understood by Exec and Expansion. You see, ColdReboot() is an AmigaOS function designed to give you back AmigaOS. Anything that tries to go beyond this and provide some kind of super-shell for choosing between OSs at boot time, like the A26x0 ROMs, must be designed such that it doesn't interfere with the normal operation of any OS, once that OS is running. Since ColdReboot() is a perfectly valid thing to do under AmigaOS, any hardware that prevents that action from doing what's expected is wrong. >Ralph -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy Get that coffee outta my face, put a Margarita in its place!