Author Topic: Mac OS 9 Development Requests (OS Level Items)  (Read 60835 times)

Offline DieHard

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2368
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #20 on: November 21, 2015, 10:15:32 AM »
Quote
It is possible - for ages. Intec wrote the driver that uses built in IDE controllers that are limited to the 128GB (not MB like I wrote in my last posting), and can use them with virtually any size. So you can use about any disk size in IDE Macs with onboard controllers. See here: http://www.speedtools.com/HDInfo.html

After working with Macs and PCs since the inception, to be honest this approach absolutely sucks. I strongly recommend against any "low level" drivers or "dynamic drive overlays" as they used to call them in the PC world. The main issue is that they will, in the end, lead to data loss. if there are any issues, whatsoever, these "low level" overlays will cause major problems if you move the drive to another system for data recovery.  Remember, if the overlay does not load, then the drive will appear "foreign" to all over systems it is connected to.  I have personally seen, many instances of a client loosing everything.  some go to inexperienced PC/Mac repair places that tell them their drive is "empty" or worse yet, format it, since they "assumed" it was empty because they did not realized it had an overlay to see the drive partitions and stuck it in another Mac or PC without booting to it... which is common when you are having a boot problem and you bring your computer in for service.

As a big advocate Hard disk speed tools for many of their tools, I still do NOT recommend using this feature. 

Lastly, as a side note, I have also seen some volumes not mountable in macs that do not have HD Speed Tools installed when you add a hard drive as a secondary drive (that had HDTS installed) to a G4, even though the source MDD and destination MDD both supported large IDE drives.  The fix is to install HDTS on the boot volume of the destination MDD, and then everything is fine. Remember, HDTS, updates the original Mac OS 9 driver on the hard drive and assumes you will be booting from a volume that has HDTS installed on it.  Sometimes it is not an issue moving drives to units without HDTS, and sometimes it is... I personally hate random variables, so I suggest using HDTS for it's other cool features and NOT updating the drivers on your hard drives as this can add an unwanted side effect when you need to recover data... just an opinion... do whatever suites your needs :)

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4440
  • just a number
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #21 on: November 21, 2015, 02:56:01 PM »
2.  Booting. The driver has to load after the os loads. So you could potentially run into booting issues if any of the system extensions that get loaded prior to the driver get loaded above 128 GB.

you are right in theory but in practice it is a minor or rare problem. you have to partition anyway to something under 192 for the boot volume, and the original CD installer puts stuff at the front of the volume. also if you use a defragger once per year, the system stuff will end up at the beginning again even if it had been moved for some reason.

of course the alternative is to avoid IDE totally and go for something different via PCI, the size limit for SATA or firewire lies at 2000 mb. ;)
insert arbitrary signature here

Offline DieHard

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2368
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #22 on: November 21, 2015, 03:26:23 PM »
Quote
you are right in theory but in practice it is a minor or rare problem. you have to partition anyway to something under 192 for the boot volume, and the original CD installer puts stuff at the front of the volume. also if you use a defragger once per year, the system stuff will end up at the beginning again even if it had been moved for some reason.

Well as far as rare or minor... having disk problems or a crashed mac, or whatever and connecting the drive to another unit may seem rare to you (maybe you are very lucky), but many users will encounter the need to do so, and as far as having some non-skilled friend or technician whipping out the volume because they are "unaware" of the existence of such configurations (with drivers that load before the OS) is definitely not MINOR in my book.  :)

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #23 on: November 21, 2015, 07:15:44 PM »
I say we avoid trying to over-riding hardware limits if possible.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline devils_advisor

  • Platinum Member
  • *****
  • Posts: 752
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #24 on: November 21, 2015, 09:50:33 PM »
can you post any developer docus and stuff somewhere in one place ? i mean everything you wanna give out that can be stored on a hard drive to study ?

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #25 on: November 21, 2015, 10:04:06 PM »
I can post some yes. It will take me a little bit to get them up somewhere.  I've got about 700 mb worth of pdf's I've found from the good old searching on Google.
Plus there is that 4 GB file that archive.org is hosting from the apple developer site (though I know there are somethings missing in that too).
I also have several books on either specific programing language (c, c++, pascal) that are fairly general and one on operating system design.  The books would be a little harder to upload though.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline devils_advisor

  • Platinum Member
  • *****
  • Posts: 752
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #26 on: November 21, 2015, 10:08:49 PM »
i might have time to study it on and off soon. would be nice to have some lecture on the road and code warrior to test it

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #27 on: November 23, 2015, 07:11:03 AM »
Here we go.  Sorry they are zip files for the moment.  These are what I downloaded from I don't even remember where.  A lot of searching on Google occurred to find these.   I'm sure they aren't exactly unknown, but to find the specific version of Inside Macintosh that corresponded to OS 8 and 9 took a little time.  Most of the ones floating around don't have the addition for those, just up to 7.6.
These outline how the system works, so reading them all is a daunting task, but if you have even a vague understanding of basic OS design, these are absolutely amazing.  They really document a lot of internals and contain info on creating drivers, creating system extensions and non system extensions along with patching the OS.

http://www.mediafire.com/download/7d87shfbznrxsk4/InsideMacintosh.zip

Then there are a couple that deal with programming for Macintosh both in c and pascal. These are pretty good for how to use specific API's in user applications.

http://www.mediafire.com/download/263p26mdsdlg3o1/ProgrammingMacOS_8_9_en_C.zip
http://www.mediafire.com/download/95xytzue6lx6eb8/ProgrammingMacOS_8_9_en_Pascal.zip

And then some documents on ACI's 4D database suite.   The ACI stuff is useless as it just outlines/documents their product.
But in it there was some Apple documentation as well, that provides some more information than the above files.

http://www.mediafire.com/download/lyud9zlx8s6cvjz/MacOS_8_9_X_4D_Omnis.zip


Besides Codewarrior I would suggest getting MPW with the Pascal Compiler. 

Enjoy. And sorry for uploading zips.  I will try to correct this soon.
« Last Edit: November 23, 2015, 11:41:37 AM by nanopico »
If it ain't broke, don't fix it, or break it so you can fix it!

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #28 on: November 23, 2015, 10:41:33 AM »
Here's the BOOK E document on the Enhanced ISA for PPC used in Mac OS.
If it ain't broke, don't fix it, or break it so you can fix it!

Online Protools5LEGuy

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2753
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #29 on: November 23, 2015, 11:07:22 AM »
Here we go. 

2nd and 4th post are the same?

Book E is porno for engineers.
Looking for MacOS 9.2.4

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #30 on: November 23, 2015, 11:43:40 AM »
Here we go. 

2nd and 4th post are the same?

Book E is porno for engineers.

Thanks for pointing out the duplicated link. I updated it so it should be right now.

Yes the Book E is porno for engineers.


I also attached here the baseline ISA/dev specs for All PPC.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #31 on: November 23, 2015, 11:44:43 AM »
And here's a spec for the ELF executable format (only useful for the early boot loader code.)
If it ain't broke, don't fix it, or break it so you can fix it!

Offline Mat

  • Platinum Member
  • *****
  • Posts: 644
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #32 on: November 23, 2015, 04:11:55 PM »
Guys, do you know that the entire source code of OS 7.1 is out there?
It is not exactly Mac OS 9 ;) in fact it is completely 68k, but many things were still the same later, and it might help to understand some stuff.

If you cannot get it, and think it might be of interrest, drop me a PM.

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #33 on: November 23, 2015, 05:51:30 PM »
Guys, do you know that the entire source code of OS 7.1 is out there?
It is not exactly Mac OS 9 ;) in fact it is completely 68k, but many things were still the same later, and it might help to understand some stuff.

If you cannot get it, and think it might be of interrest, drop me a PM.

I've seen that, but never really dug through it.
Yes a lot of it would remain the same.
Too bad it was from the day with the rom as hardware rather than on the disk, so the boot code would be completely different. Still worth a look.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #34 on: November 23, 2015, 06:48:23 PM »
So I did dig through 7.1
It does have PPC Patches in it so that would maybe make this 7.1.2 actually. Although it could be earlier as I'm sure they worked on it and code was there prior to release.
I do however find the dev's who worked on this rather hilarious.

The toolbox routines for handling the system date time are in a file called sexydate and the actual function call that is used is called sexydate as well.
There is also a library called SuperMario Gibbly (that's just funny), a toolbox patch called ToolboxCastration
and a library for internationalization that has a comment on a compare function that specifically says this implementation is terrible for internationalization. 

Developers are pretty much crazy.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline GaryN

  • Platinum Member
  • *****
  • Posts: 1566
  • active member
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #35 on: November 23, 2015, 07:04:59 PM »
Hey! Nice avatar, nano!

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #36 on: November 23, 2015, 08:20:32 PM »
If it ain't broke, don't fix it, or break it so you can fix it!

Offline Front 424

  • Enthusiast Member
  • ***
  • Posts: 87
  • not exactly new to the forums
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #37 on: December 01, 2015, 02:06:02 AM »
Just a question on possible implementation of dual-processor improvement that was mentioned.

Someone mentioned having the launcher alternate each program between processors.  I also thought maybe a rudimentary exercise for testing would be to get the OS and a few other simple items (like basic utilities, text reader etc.) running off the first processor, and relegating
most other user launched apps to the second.  Just a suggestion as to a simple test that probably wouldn't be hard to put into play, and you could test individual items or processes in the second processor at least to see what if any marginal improvements in speed there are. 
Maybe this has already been done, just as a preliminary step to something more extravagant?
I am unsure of what the average overhead of the system is.

I also thought maybe a processor assignment extension/panel with a right-click context menu when launching an app or clicking a specific document where you could specify which processor will run the program might be a next step.  The user would be able to choose to confine low intensity apps to one processor, and maybe a single intensive app to the second.

Another question I had would be about some type of overflow scheme where if a processor was maxed out it could borrow from a second. 

As far as parallel or true multi-processor stuff, I'm not sure how doable just from the OS level it would be to divide tasks between the two processors, since that seems to be dependent on the actual application code, although there might possibly be some workarounds.

Just some thoughts and questions to throw out there for discussion!

 

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #38 on: December 01, 2015, 06:09:27 AM »
Just a question on possible implementation of dual-processor improvement that was mentioned.

Someone mentioned having the launcher alternate each program between processors.  I also thought maybe a rudimentary exercise for testing would be to get the OS and a few other simple items (like basic utilities, text reader etc.) running off the first processor, and relegating
most other user launched apps to the second.  Just a suggestion as to a simple test that probably wouldn't be hard to put into play, and you could test individual items or processes in the second processor at least to see what if any marginal improvements in speed there are. 
Maybe this has already been done, just as a preliminary step to something more extravagant?
I am unsure of what the average overhead of the system is.

I also thought maybe a processor assignment extension/panel with a right-click context menu when launching an app or clicking a specific document where you could specify which processor will run the program might be a next step.  The user would be able to choose to confine low intensity apps to one processor, and maybe a single intensive app to the second.

Another question I had would be about some type of overflow scheme where if a processor was maxed out it could borrow from a second. 

As far as parallel or true multi-processor stuff, I'm not sure how doable just from the OS level it would be to divide tasks between the two processors, since that seems to be dependent on the actual application code, although there might possibly be some workarounds.

Just some thoughts and questions to throw out there for discussion!

These would primarily be tasks for the process manager.  I have not dug deep enough yet to know exactly how the process manager works, but what I have learned is that parts of the memory manager seem to be implemented with in it, it handles loading of applications and cleaning up after they are done.
Any level of assigning an application to a processor  would require a pretty hefty patch to the process manager and some minor ones to the memory manager.

I'll keep it on a list of things that could be possible, but right now with what I know and what I don't know, I just don't feel comfortable even attempting that (right now at least).  I'd like to get a few other things done so that I know I understand the system well enough.  One thing I would like to get done (which would actually be a step to multiprocessor support) would be fixing the 1.5 GB ram limit.  This touches on both the memory manager and process manager and won't require as many changes to either.  After that I would have a better understanding of both and then could revisit this idea.

So it's not off the table yet.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #39 on: December 01, 2015, 06:43:32 AM »
Just an FYI for Multiprocessor support.

Enabling the second cpu at the OS level will probably break many other applications.
With the cooperative multitasking used, when an app launches, the os can do nothing until the app releases control back to the process manager.  Probably very little would actually be gained from it with in the context of the OS 9 architecture, but again I haven't gotten to far into that area to assess the possibility and gain from it yet.
If it ain't broke, don't fix it, or break it so you can fix it!