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

Offline Knezzen

  • Administrator
  • Platinum Member
  • *****
  • Posts: 975
  • Pro Tools Addict!
    • Macintosh Garden
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #60 on: December 21, 2016, 09:17:37 PM »
Quote from: Front 424 link=topic=2837.msg23680#msg23680
I've seen you post over at Macintosh Garden.  Are you a mod over there?

Me? Im an admin over there. Me and fogWraith host the whole site with downloads and everything. I just havent been that active on the forums historically, more lurching in the background :)
Pro Tools addict and admin at Macintosh Garden, Mac OS 9 Lives! and System 7 Today

Offline WolfpackN64

  • Valued Member
  • **
  • Posts: 18
  • new to the forums
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #61 on: January 13, 2017, 02:16:32 AM »
I don't know in which capacity Mac OS 9 supports multiprocessor/multicore CPU's (but I thought some rudimentary support was in place.

What I'm really curious about is if Mac OS 9 would be able to support something like Gallium3D to vastly improve GPU support.

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #62 on: January 13, 2017, 04:16:24 AM »

you are in the wrong thread.

however, multiprocessor support under macos9 is limited to allow applications to support it.

cubase/nuendo, photoshop/after effects and cinema 4d do supprt it in different ways. there is a athread here somewhere where we tried to list all apps with mp support.

3d hardware supprt is handeled similar, the os has close to nothing to do with that question.
i am not so sure about maya, cinema4d and QVTR-quicktime, so i think that the only apps which support 3d hardware support are games.
insert arbitrary signature here

Offline WolfpackN64

  • Valued Member
  • **
  • Posts: 18
  • new to the forums
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #63 on: January 13, 2017, 05:18:21 AM »
Right, my apologies. I keep forgetting the Kernel itself doesn't handle the drivers. I've been misformed by monolithic designs.

I wonder how these drivers work then. Do the programs need to include them themselves?

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #64 on: January 13, 2017, 10:05:06 AM »
i dont think so.

if you remove the multiprocessor extension from your OS9 system folder, cubase stops allowing both of its 2 different MP support options.

it is just so that things like quicktime, networking or the finder always run on the first core only. up to OSX 10.5 in think!
insert arbitrary signature here

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #65 on: January 13, 2017, 10:15:44 AM »
actually an OS which lets all applications run on all cores would be a bit weird - different applications should probably always use a custom way of how they use processors/cores/pipes.

there is a huge difference between nehalem and earlier boards for example, which gives developers room to experiment and optimize.
insert arbitrary signature here

Offline Daniel

  • Gold Member
  • *****
  • Posts: 300
  • Programmer, Hacker, Thinker
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #66 on: May 17, 2017, 06:04:26 PM »
I have a mildly achievable OS level development request.

Get rid of the stupid " The document $foo could no be opened because the application program that opened it could no be found" message. Sometimes I get it even when I drag that document onto an application, clearly signaling my intent to open it with that application. Instead, it should open a dialog asking me to pick the application I want to open it with (like what OSX does). The dialog should also have big buttons to use ResEdit and/or BBEdit if you have them on your system(possibly with a control panel that lets you add other options).

Looking at some of the harder to do development requests (specifically, protected memory and multiprocessing), I think I have some ideas on how to do them. It would take a lot of reverse engineering and hard work in general, but it might be possible ( for protected memory, sure. Maybe for multiprocessing).

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #67 on: May 18, 2017, 06:13:44 AM »
I have a mildly achievable OS level development request.

Get rid of the stupid " The document $foo could no be opened because the application program that opened it could no be found" message. Sometimes I get it even when I drag that document onto an application, clearly signaling my intent to open it with that application. Instead, it should open a dialog asking me to pick the application I want to open it with (like what OSX does). The dialog should also have big buttons to use ResEdit and/or BBEdit if you have them on your system(possibly with a control panel that lets you add other options).

This isn't really an OS level thing. It is Finder functionality and although the OS and Finder are pretty good friends, the Finder is still not OS.  OS in this context is being defined as the core kernel and drivers.

Looking at some of the harder to do development requests (specifically, protected memory and multiprocessing), I think I have some ideas on how to do them. It would take a lot of reverse engineering and hard work in general, but it might be possible ( for protected memory, sure. Maybe for multiprocessing).

Both protected memory and multiprocessing are probably not going to happen actually probably shouldn't. There are great many applications that rely on the memory not being protected (they shouldn't but they do) so there would be applications that will no longer work.  Multiprocessing is in the same situation.  The OS uses it, but it is only available to programs that support it.  Love it or hate it, it would break existing apps that rely on timing, such as just about any DAW.  So as far as making the possible, it is a huge undertaking like you say and would have probably a negative payoff in the end.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline WolfpackN64

  • Valued Member
  • **
  • Posts: 18
  • new to the forums
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #68 on: May 18, 2017, 07:12:12 AM »
The multiprocessing issue isn't really that dire then. If apps can be written to make use of it via cooperative multiprocessing, then I'd say that's basically a non-issue.

Offline Daniel

  • Gold Member
  • *****
  • Posts: 300
  • Programmer, Hacker, Thinker
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #69 on: May 18, 2017, 12:21:24 PM »
Understood. You are probably right about multiprocessing and protected memory. Still, it would be so cool...

Offline Protools5LEGuy

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2749
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #70 on: May 19, 2017, 03:15:53 PM »
I propose a compromise in the naming schemes. How about we release 9.2.4 for compatablility with more devices and basic stability improvements and the like. We can save 9.3 for major modifications to the core system software(NanoKernal, System Folder, Finder, Etc.). It will probably take a while to get protected memory and multiprocessing working, so these should probably be saved for 9.3. G5 compatablilty and  removal of the 1.5 Gig limit could go in either. I am not sure exactly how much work those would take.

What about upgrading the Carbon Libraries to use some early-OSX apps? Or optimizing Carbon Lib?

Looking for MacOS 9.2.4

Offline torvan

  • Veteran Member
  • ****
  • Posts: 138
  • Old School
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #71 on: June 22, 2017, 12:45:00 AM »
I have to second, third or fourth agree (I lost track) on the idea (and near need) of using large drives without having to shell out the money (and the resulting "be damn careful as data loss can happen" warnings) for the Intech Disk SpeedTools driver.

Especially with the move to SSDs happening all over, not to mention replacement mechanical disk drives, all of which are going to get (if not already) impossible to use because all are larger than that which Drive Setup can see and use.  So you are stuck with not being able to use the whole drive.
15 Macs (13 of them ranging from an SE to a MDD), 2 iPads, 2 iPhones, 1 Hackintosh. Small house getting smaller with each Mac. . . . .  .Husband shakes his head but supports my habit.

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #72 on: May 03, 2020, 10:15:45 PM »
time to revive this thread.

nano, what is the reason why the unsupported OS cant use the fw 400 ports of the MMD but only the fw 800 port - which means that you only have a single port when you use this machine.

this would be on top of my personal request list, it is one of the three reasons why i dont want to use an MDD here.
insert arbitrary signature here

Offline nanopico

  • Moderator
  • Platinum Member
  • *****
  • Posts: 767
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #73 on: May 04, 2020, 08:10:52 PM »
time to revive this thread.

nano, what is the reason why the unsupported OS cant use the fw 400 ports of the MMD but only the fw 800 port - which means that you only have a single port when you use this machine.

this would be on top of my personal request list, it is one of the three reasons why i dont want to use an MDD here.

This is a reason I do not know. Maybe I should take a look at that.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline Daniel

  • Gold Member
  • *****
  • Posts: 300
  • Programmer, Hacker, Thinker
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #74 on: May 05, 2020, 11:10:56 AM »
time to revive this thread.

nano, what is the reason why the unsupported OS cant use the fw 400 ports of the MMD but only the fw 800 port - which means that you only have a single port when you use this machine.

this would be on top of my personal request list, it is one of the three reasons why i dont want to use an MDD here.

Not much is known about the MDDs Firewire 800 chipset.

There is a standard chipset implementation for Firewire, called OHCI (name shared with USB), but it only covered Firewire 400. There was a partial draft for a Firewire 800 OHCI, but it was abandoned and I can't find it anywhere.

The MDDs Firewire claims to be OHCI, except it can't really be OHCI. OHCI doesn't do Firewire 800. It's some kind of magic Apple chipset that is kinda sorta like OHCI and doesn't have any documentation.

Apple does have a bunch of documentation on writing Firewire Interface Modules (FWIMs). Combined with the available standards on Firewire, it looks barely possible to write a FWIM, if we understood the chipset well enough.

We will probably have to reverse engineer the Fcode for this stuff. Not fun.

Offline Roman323

  • Enthusiast Member
  • ***
  • Posts: 93
  • New Member
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #75 on: May 05, 2020, 12:49:46 PM »
In my opinion, a complete overhaul of the system and the addition of preemptive multitasking, better internet and adding of modern security. Oh, getting QuickTime to work. For some reason I am hooked up to Ethernet and every time I access in Sherlock 2 or QuickTime any relevant plugin (Amazon, eBay etc) it does not connect and tells me my internet is not on which is a lie because I am going through Ethernet according to tcp/ip. So something is causing it to not work.

I'd like to add in a couple of youtube videos about OS 9, just recently as of 2017 or 2016 some guy access Quicktime and saw the channels. I am questioning him on this. I will also attempt to reinstall OS 9 as my entire hard drive is messed up and my OS 9 got corrupted.
« Last Edit: May 05, 2020, 11:43:24 PM by Roman323 »

Offline IIO

  • Platinum Member
  • *****
  • Posts: 4439
  • just a number
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #76 on: May 05, 2020, 11:23:29 PM »
The MDDs Firewire claims to be OHCI, except it can't really be OHCI. OHCI doesn't do Firewire 800. It's some kind of magic Apple chipset that is kinda sorta like OHCI and doesn't have any documentation.

even without knowing this, that is exactly about what it looks to me. that the 800 port works is the biggest mystery. and why the heck did they change something to the fw 400 bus? as if the fw 400 bus wouldnt work in OSX in previous models. completely counterintuitive.

and of course not documented. and it works in classic mode. bah.
insert arbitrary signature here

Offline Daniel

  • Gold Member
  • *****
  • Posts: 300
  • Programmer, Hacker, Thinker
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #77 on: May 07, 2020, 07:41:07 AM »
I have both a FW400 and FW800 MDD, so I'm comparing them in OF to see if there are noticable differences between them.


FW400 properties:
Code: [Select]
vendor-id               0000106b
device-id               00000031
revision-id             00000001
class-code              000c0010
interrupts              00000001
min-grant               0000000c
max-latency             00000018
subsystem-vendor-id     0000106b
subsystem-id            00005811
devsel-speed            00000001
fast-back-to-back       
device_type             ieee1394
reg                     00007000 00000000 00000000  00000000 00000000
                        02007010 00000000 00000000  00000000 00001000
name                    firewire
compatible              pci106b,5811
                        pci106b,31
                        pciclass,0c0010
#address-cells          00000004
#size-cells             00000002
local-guid              000a95ff fe88e1ca
assigned-addresses      82007010 00000000 f5000000  00000000 00001000

FW800 properties:
Code: [Select]
vendor-id               0000106b
device-id               00000031
revision-id             00000001
class-code              000c0010
interrupts              00000001
min-grant               0000000c
max-latency             00000018
subsystem-vendor-id     0000106b
subsystem-id            00005811
devsel-speed            00000001
fast-back-to-back       
device_type             ieee1394
reg                     00007000 00000000 00000000  00000000 00000000
                        02007010 00000000 00000000  00000000 00001000
name                    firewire
compatible              pci106b,5811
                        pci106b,31
                        pciclass,0c0010
#address-cells          00000004
#size-cells             00000002
local-guid              000a95ff fe7ff178
assigned-addresses      82007010 00000000 f5000000  00000000 00001000

Their properties are identical in everything except the GUID, but that's supposed to be a unique machine id.

Now to check the OF words.

FW400 words:
Code: [Select]
q'd-sync        q'd-write-block q'd-read-block  .stats          probe
set-csr-mailbox set-config-rom  get-busnode     get-my-guid     set-dstnode
set-spd         set-address     guid>node       reset-bus       close
open            bus-reset?      clr-status      set-status      get-status
status-address  max-transfer    dma-free        dma-alloc       decode-unit
encode-unit     q'd-sync        q'd-write-block write-block     write-block?
write-block?-timeout            wb-counter      wb-start        wb-max
read-block      read-block-timeout              rb-counter      rb-start
rb-max          write-quadlet   wq-counter      wq-start        wq-max
read-csr-quadlet                read-quadlet    read-quad-timeout
rq-counter      rq-start        rq-max          wait            #nodes
reset-msecs     lucent?         elegant?        next-ohci

FW800 words:
Code: [Select]
q'd-sync        q'd-write-block q'd-read-block  .stats          probe
set-csr-mailbox set-config-rom  get-busnode     get-my-guid     set-dstnode
set-spd         set-address     enable-node     guid>node       reset-bus
close           open            bus-reset?      clr-status      set-status
get-status      status-address  max-transfer    dma-free        dma-alloc
decode-unit     encode-unit     q'd-sync        q'd-write-block write-block
write-block?    write-block?-timeout            wb-counter      wb-start
wb-max          read-block      read-block-timeout              rb-counter
rb-start        rb-max          write-quadlet   wq-counter      wq-start
wq-max          read-csr-quadlet                read-quadlet
read-quad-timeout               rq-counter      rq-start        rq-max
wait            add-range       phy7-fail-last  phy7-fail-cnt   #nodes
reset-msecs     lucent?         elegant?        next-ohci

These look very similar, but there are some differences. It seems that comparing the fcode between these could be very useful.

Offline Daniel

  • Gold Member
  • *****
  • Posts: 300
  • Programmer, Hacker, Thinker
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #78 on: May 07, 2020, 10:05:38 AM »
I dumped a bunch of the hardware registers for both MDDs. There seem to be very few differences between them. They both claim to follow OHCI 1.1, for instance. I'm beginning to wonder if the Firewire chipset itself is the same on FW400 and FW800 MDDs. Perhaps the only difference is in the components on the board. It's not clear how to test that, however.

These are in little-endian format, so if someone other than me actually uses them, you will have to byte-swap in your head.

FW400 registers:
Code: [Select]
f5000000: 10 00 01 00 24 00 00 00 00 00 00 00 00 00 00 00 |....$...........|
f5000010: 00 00 00 00 00 00 00 80 03 7c 04 04 34 39 33 31 |.........|..4931|
f5000020: 82 a0 00 00 ff 95 0a 00 ca e1 88 fe 00 00 00 00 |................|
f5000030: 00 00 00 00 00 80 fd 7f 00 00 00 00 00 00 00 00 |................|
f5000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000050: 00 00 8a 00 00 00 8a 00 00 00 00 00 00 00 00 00 |................|
f5000060: 00 00 00 00 00 90 fc 7f 0c 00 01 00 00 00 00 00 |................|
f5000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000080: 11 80 70 04 00 00 00 00 00 00 00 00 00 00 00 00 |..p.............|
f5000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50000b0: 33 13 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 |3...............|
f50000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50000e0: 00 06 10 00 00 06 10 00 c0 ff 00 c8 7f 01 3f 01 |..............?.|
f50000f0: 96 a3 b8 19 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000100: 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 |................|
f5000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000180: 11 00 00 00 11 00 00 00 00 00 00 00 00 9d fc 7f |................|
f5000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50001a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50001b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50001c0: 09 84 00 00 09 84 00 00 00 00 00 00 80 9a fc 7f |................|
f50001d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50001e0: 00 84 00 00 00 84 00 00 00 00 00 00 60 9a fc 7f |............`...|
f50001f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|

FW800 registers:
Code: [Select]
f5000000: 10 00 01 00 24 00 00 00 00 00 00 00 00 00 00 00 |....$...........|
f5000010: 00 00 00 00 00 00 00 80 9e e1 04 04 34 39 33 31 |............4931|
f5000020: 83 b0 00 00 ff 95 0a 00 78 f1 7f fe 00 00 00 00 |........x.......|
f5000030: 00 00 00 00 00 98 fc 7f 00 00 00 00 00 00 00 00 |................|
f5000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000050: 00 00 8a 00 00 00 8a 00 00 00 00 00 00 00 00 00 |................|
f5000060: 00 00 00 00 00 b8 fc 7f 0c 00 01 00 00 00 00 00 |................|
f5000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000080: 11 80 70 04 00 00 00 00 00 00 00 00 00 00 00 00 |..p.............|
f5000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50000b0: 33 13 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 |3...............|
f50000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50000e0: 00 02 10 00 00 02 10 00 c0 ff 00 c8 00 07 20 87 |.............. .|
f50000f0: e5 95 86 65 00 00 00 00 00 00 00 00 00 00 00 00 |a..e............|
f5000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f5000180: 11 00 00 00 11 00 00 00 00 00 00 00 40 85 fc 7f |............@...|
f5000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50001a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50001b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50001c0: 09 84 00 00 09 84 00 00 00 00 00 00 40 84 fc 7f |............@...|
f50001d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
f50001e0: 00 84 00 00 00 84 00 00 00 00 00 00 20 84 fc 7f |............ ...|
f50001f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
« Last Edit: May 07, 2020, 02:25:44 PM by Daniel »

Offline adespoton

  • Enthusiast Member
  • ***
  • Posts: 38
  • Crusty Member
Re: Mac OS 9 Development Requests (OS Level Items)
« Reply #79 on: July 13, 2020, 10:37:52 AM »
In my opinion, a complete overhaul of the system and the addition of preemptive multitasking, better internet and adding of modern security. Oh, getting QuickTime to work. For some reason I am hooked up to Ethernet and every time I access in Sherlock 2 or QuickTime any relevant plugin (Amazon, eBay etc) it does not connect and tells me my internet is not on which is a lie because I am going through Ethernet according to tcp/ip. So something is causing it to not work.

I'd like to add in a couple of youtube videos about OS 9, just recently as of 2017 or 2016 some guy access Quicktime and saw the channels. I am questioning him on this. I will also attempt to reinstall OS 9 as my entire hard drive is messed up and my OS 9 got corrupted.

The issue with the Quicktime and Sherlock plugins is that they use HTTP.  Most of the modern Internet uses HTTPS with TLS 1.2 or later encryption, and a modern set of root certificates.

In order to get this stuff working, we'd need to replace the support libraries used to handle these plugins to support modern HTTPS.  Probably a worthwhile goal, but this is a multi-step process.