Jump to content

Force32: keep 32-bit addressing on in the absence of a PRAM battery. Testing wanted!


Recommended Posts

  • 68kMLA Supporter
19 hours ago, olePigeon said:

Oh, OK.  I wasn't sure how hard it'd be.  Was just an idea. :)

 

Oh, it's a good idea, I didn't mean to sound dismissive!  It's just not an idea I'm in any way qualified to attempt, unfortunately :-(.

Link to post
Share on other sites
  • 68kMLA Supporter
On 4/5/2021 at 8:11 AM, superjer2000 said:

Just installed the version in the first message- works awesome!  Any concerns about forcing a restart when it does (from a file system or other corruption perspective)?  (i.e. it's not a clean shutdown/restart but a restart in the middle of booting?)

 

Sorry, I completely lost this message behind the page change!

 

My understanding here is that until you're booted, a "clean" shutdown isn't really a thing. If you have extensions that write to disc, perhaps it's a good idea to have this before them, but it's really a good idea to have this as early in the boot sequence as you can anyway, to avoid wasting time.  I had worried about this, but the fact that this was the strategy that Apple also followed in 7.6 (IIRC) made me feel rather better about it.  Remember at this point in the boot sequence we don't have any multitasking going on at all; the only way that the restart could occur in the middle of a disc write would be if a previous extension had either set up a timer or an interrupt handler and that interrupt occurred (or patched the undocumented traps the extension uses to deal with the xPRAM).

 

So, personally, I'm not particularly worried about it causing filesystem corruption; I'm sure someone *could* write an extension that would fight with this if it were loaded before it, but that extension would have to be doing something reasonably naughty, I think.

Link to post
Share on other sites
On 4/5/2021 at 7:15 PM, cheesestraws said:

 

Sorry, I completely lost this message behind the page change!

 

My understanding here is that until you're booted, a "clean" shutdown isn't really a thing. If you have extensions that write to disc, perhaps it's a good idea to have this before them, but it's really a good idea to have this as early in the boot sequence as you can anyway, to avoid wasting time.  I had worried about this, but the fact that this was the strategy that Apple also followed in 7.6 (IIRC) made me feel rather better about it.  Remember at this point in the boot sequence we don't have any multitasking going on at all; the only way that the restart could occur in the middle of a disc write would be if a previous extension had either set up a timer or an interrupt handler and that interrupt occurred (or patched the undocumented traps the extension uses to deal with the xPRAM).

 

So, personally, I'm not particularly worried about it causing filesystem corruption; I'm sure someone *could* write an extension that would fight with this if it were loaded before it, but that extension would have to be doing something reasonably naughty, I think.


I think you’re right, but at some point during the boot sequence, likely after this INIT loads and restarts (just like Apple did with 7.6), corruption is definitely an eventuality, depending on extensions that are installed. I know. I’ve had to format and reinstall the system software on several Iomega Jaz cartridges I use for troubleshoot booting of recapped and leaking cap Macs (prior to recap). I’ve had many Macs just turn off  or freeze during the boot process, before finder loads, and upon inserting those disks into a working Mac the flashing question mark is displayed. Looking at the disk on boot from another drive it is visually fine (blessed system folder, it mounts, etc) but Norton finds all kinds of errors with MDB and other file system corruption issues and repairs they, which then allows the same disk to boot. 
 

It’s not just a Jaz issue. I’m simply indicating what I’ve seen it widespread on. I’ve also had it happen with internal hard drives but those aren’t ever reliable so I rule that out as possible drive failure. My NOS Jaz drive and NOS disks are not (yet) failing, and after fixing these corruption issues I’ve used the same cartridges for over a year (so far). 
 

For my troubleshooting systems I’m starting to use magneto optical disks in place of Jaz due to their increased reliability. 
 

I don’t know which System Software version would introduce corruption when powering off during the boot cycle but I’ve experienced it on 7.5.5 and 7.6.1 myself. 
 

I guess I could do an experiment where I power off a machine at various steps of the boot process to try and narrow it down exactly. I don’t understand how file system corruption could be introduced prior to the Finder loading with the default set of extensions (no extra third party). 
 

Having said all that, I would agree that this INIT likely won’t be any issue because it initiates a forced reboot similar to how Apple did it in the boot sequence. 

Edited by MrFahrenheit
Clarity
Link to post
Share on other sites
  • 68kMLA Supporter
19 hours ago, MrFahrenheit said:

I think you’re right, but at some point during the boot sequence, likely after this INIT loads and restarts (just like Apple did with 7.6), corruption is definitely an eventuality, depending on extensions that are installed

 

Yes, you're absolutely right; that's one of the reasons I'm advising putting this as early in the boot sequence as possible.  Extensions can, after all, do anything they want to, and if you interrupt an extension doing disc access it's going to be just as bad as if you were interrupting an application doing it.  So if you load an extension before this that tries to write to an early part of the disc during boot, then this forces a restart while that write is taking place, bad things are likely to happen.  Apple, again, have the luxury of forcing this to happen very early (and this is why I was asking about very-early-loading in the other thread :-)), when it is known to be safe; here, you just have to make this one of the very first extensions that loads manually.

Link to post
Share on other sites
On 4/5/2021 at 8:27 AM, cheesestraws said:

I'm afraid to say that I have no idea how to even begin building a 32-bit enabler.  It's a much bigger/harder job, unfortunately.

 

Getting the system to recognize a minimal Enabler is fairly straightforward. The Enabler needs to have

  1. a file type of 'gbly'
  2. a 'gbly' -16385 resource with the creation date and a list of BoxFlags for the supported machines
  3. a 'boot' 3 resource that contains the code to run

 

That's what the 'boot' 2 resource in the System File looks for when it searches for Enablers.

 

Making a functional Enabler is way harder, and I have no idea how to do it.

Link to post
Share on other sites
  • 68kMLA Supporter
20 hours ago, DBJ314 said:

Getting the system to recognize a minimal Enabler is fairly straightforward. The Enabler needs to have

 

The 32-bit enablers I was thinking about were INITs, rather than System Enablers in the strict sense.

 

But now you've got me wondering whether the Force32 code could be wedged into a fake System Enabler, as that would run it very early in the boot sequence.  It's very simple code and does not require any global state to speak of.  I'm going to have to think about that...

Link to post
Share on other sites
  • 68kMLA Supporter

But you could just check yourself if the Shift key is down and do nothing, right?  Wouldn’t work with Extensions Manager probably, but so what.

 

.... you could also just name your INIT file with space-space-space at the beginning to make it run first. :)  

Link to post
Share on other sites
  • 68kMLA Supporter

Well so far I haven't had any corruption problems and having 32 bit addressing automatically turn on is GREAT!  Thank you for this!

 

@MrFahrenheit  I recall when I was actively using Macs back in the early 1990s weird corruptions of the system software was pretty common.  I recall needing to do a fresh install of my system software (esp. 6.07, 7.0 and 7.0.1) on a fairly frequent basis and running Norton was pretty common as well.  I don't recall needing to do it very often at all with MacOS 8 and I don't recall ever running Norton on my LC575 (which ran MacOS 8 / 8.1).

Link to post
Share on other sites
  • 2 weeks later...
  • 68kMLA Supporter

Today I was slightly grumpy when I realized my substitute coin-type PRAM battery had died, then I remembered this thread and grabbed myself a copy of Force32 (and changed my PRAM battery, but still).  Works a charm on my SE/30, I added a space before the name so it loads early in the INIT sequence just to not waste time.  Great idea @cheesestraws!

 

Incidentally I also realized today that when in 24-bit mode, my 128 MB SE/30 takes forever to show the icon of my second HD partition (I have a SCSI2SD with two partitions, a smallish one, maybe 200 MB, and a big 2GB one with a lot of files, including some giant ones such as a MacFlim).  Maybe a minute?  Whereas with 32-bit addressing turned on the second drive appears in a few seconds.  I wonder what it’s thrashing around in memory there ....

Link to post
Share on other sites
  • 68kMLA Supporter
On 4/24/2021 at 5:36 AM, Crutch said:

Works a charm on my SE/30, I added a space before the name so it loads early in the INIT sequence just to not waste time

 

Woo, I'm glad it's being useful.  Credit where credit's due, though, it was @Bolle's idea, I just built the thing :-).

 

On 4/24/2021 at 5:36 AM, Crutch said:

 I wonder what it’s thrashing around in memory there ....

 

I'd be interested to hear the answer to this if you find out.

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...
×
×
  • Create New...