ThinkC MacDock dev progress -- Like today's macOS Dock but for System 7

Relating to ThinkC Development

lilliputian

Tinkerer
Mar 6, 2022
225
91
28
Los Angeles, California, USA
I don't think so, but I can send a list of extensions if you like. It's also possible the file is getting corrupted somehow in transferring to the Plus.

I encoded the application using the binhex command in macOS Terminal so that I could transfer it to Mini vMac, which I then use to transfer the application to the Plus over AppleTalk. The file shows up, has its icon even, but then I get the crash.

I will also try again in safe mode, perhaps there is a conflict of some kind.
 

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
I don't think so, but I can send a list of extensions if you like. It's also possible the file is getting corrupted somehow in transferring to the Plus.

I encoded the application using the binhex command in macOS Terminal so that I could transfer it to Mini vMac, which I then use to transfer the application to the Plus over AppleTalk. The file shows up, has its icon even, but then I get the crash.

I will also try again in safe mode, perhaps there is a conflict of some kind.
Thanks -- yes a list of extensions would be good so I could try to recreate (safe mode aka extensions off I assume would be good too) -- but before that

I assume you've used that method in the past to transfer files? I didn't think anything [with a resource fork, i.e. most apps] was safe going through macOS because of the resource fork getting lost in macOS unless you kept it in an archive that preserved it internally (i.e. a .sit file with the app is ok, but not the app exposed uncompressed] I'd suggest trying to transfer the .sit file with everything [incl. the application in it] to transfer so you can be more sure...?
 

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
Resource forks are perfectly safe in macOS last I checked, unless something changed in Ventura. I can also try to transfer the SIT file directly, but I had trouble unstuffing it using StuffIt 4.0.1.
Gah - you're right about the .sit file incompatibility!!. Sorry - I must have accidentally used some newer stuffit to compress it. Normally I use the old 1.x stuffit but this time I think I got lazy and used some newer drop stuff.

Ok I updated the release and the main branch to have a .sit file that is compatible with back to StuffIt 1.x!

And I'm 99% sure macOS futzes with the resource fork (forgets about it) -- But either way please try the new .sit file (the new one ends with an underscore so it is "...v1.32_.sit"
 

lilliputian

Tinkerer
Mar 6, 2022
225
91
28
Los Angeles, California, USA
Whelp, unfortunately, even with the new SIT file and all extensions disabled, I still get the unimplemented trap error. I suppose I could install MacsBug and see what it's getting hung up on. Do you think it's possible that my Plus not having the v3 ROM might affect things? I wouldn't see how, since the Plus's ROM fixes only addressed SCSI to the best of my knowledge, but sort of grasping at straws haha.
 

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
Whelp, unfortunately, even with the new SIT file and all extensions disabled, I still get the unimplemented trap error. I suppose I could install MacsBug and see what it's getting hung up on. Do you think it's possible that my Plus not having the v3 ROM might affect things? I wouldn't see how, since the Plus's ROM fixes only addressed SCSI to the best of my knowledge, but sort of grasping at straws haha.
Very wild. I should try it on my SE and I should try to put System 7.0.1 on it to get as close to a Plus as I have on hand.

I don't know anything about the v3 ROM differences so I can't speak to that. Now you got me thinking so I'm going to go try 7.0.1 on my SE and see how it does...!! Apologies for any inconvenience esp. if it's from my side but either way.
 

lilliputian

Tinkerer
Mar 6, 2022
225
91
28
Los Angeles, California, USA
No problem at all, I was just excited to try it out!

As for the ROM versions, there were a few different versions for the Plus that addressed issues with SCSI. I've attached the Macintosh Tech Notes about it for you. Presumably the SE has its own ROM that is newer than even the Plus ROM v3.
 

Attachments

  • Macintosh Technical Notes #139 March 1988-f (Mac Plus ROM Versions).pdf
    3.5 KB · Views: 76

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
No problem at all, I was just excited to try it out!

As for the ROM versions, there were a few different versions for the Plus that addressed issues with SCSI. I've attached the Macintosh Tech Notes about it for you. Presumably the SE has its own ROM that is newer than even the Plus ROM v3.
AH! confirmed - my SE with 7.0.1 gets Unimplemented trap crash as well!!

Trying with 7.5 to see if the break happens along those lines or if it's something odder (like related to Plus and SEs but not SE/30.?)
 

lilliputian

Tinkerer
Mar 6, 2022
225
91
28
Los Angeles, California, USA
Well the SE/30 has a 68030 processor, while the SE and the Plus sport the older 68000, so that could be the issue. You might also try 7.1/7.1.1/7.1.2 to further narrow it down with regards to system compatibility, but if you were able to run it in 7.0 using InfiniteMac, it appears to be emulating a Macintosh IIfx, which uses a 68020 processor, which is much closer to the '030 than the original 68000.

I'm an idiot, the IIfx also has a 68030, derp.
 

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
Well the SE/30 has a 68030 processor, while the SE and the Plus sport the older 68000, so that could be the issue. You might also try 7.1/7.1.1/7.1.2 to further narrow it down with regards to system compatibility, but if you were able to run it in 7.0 using InfiniteMac, it appears to be emulating a Macintosh IIfx, which uses a 68020 processor, which is much closer to the '030 than the original 68000.
Right.

Well - confirmed doesn't work in 7.5 on my SE either.

Well shoot - I had no idea that I could break compatibility between the 68030 and 68000 processors if they were running the same system software and both had sufficient memory available etc..

You know what.. hold on.. at least once in my past, THINK C preferences magically switched a setting that create 68020 optimized code even though I ever flipped that checkbox... let me see if that might have happened somehow,..
 

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
Right.

Well - confirmed doesn't work in 7.5 on my SE either.

Well shoot - I had no idea that I could break compatibility between the 68030 and 68000 processors if they were running the same system software and both had sufficient memory available etc..

You know what.. hold on.. at least once in my past, THINK C preferences magically switched a setting that create 68020 optimized code even though I ever flipped that checkbox... let me see if that might have happened somehow,..
Nah
This didn’t do it.

ok so if that’s not it my next guess is that I’m doing something that is either using 68020 instructions or newer-than-68000 rom calls via a toolbox call… the only thing that comes to mind is a few extra toolbox functions I had to type in myself as per the apple developer docs of the day. But there is no mention that these are incompatible with early systems.
will dig some more soon. Thanks again for the time @lilliputian
 
  • Like
Reactions: lilliputian

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
Ok figured it out

my cavalier inattention to checking stuff with GestaltID and such has finally caught up to me.
i was calling a function named GetMainDevice that returns a handle to the screen that i can check dimensions etc. . I didnt know this but calling that on a 68000 causes a crash.
it is not critical but I will fix tomorrow.
whew…
 
  • Like
Reactions: eric

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
Hooray! Glad it wasn't too complicated. I take it then that there is a 68000-equivalent you can use in-lieu of GetMainDevice?
Probably - in my case I use it to find the size of the screen (or resolution as we’d call it now) so I can center the Dock on the bottom of the screen. So no doubt I could just check some Gestalt ID stuff and see if it is an older mac (SE or below, if you will) and if so I’ll know the size is the 512x384.

i wonder how add on cards on the se worked.. did they patch the rom somehow? Aanyway this is great!
 

Crutch

Tinkerer
Jul 10, 2022
292
226
43
Chicago
i was calling a function named GetMainDevice that returns a handle to the screen that i can check dimensions etc. . I didnt know this but calling that on a 68000 causes a crash.
It’s not the 68000 that’s tripping you up, it’s the ROM. The Plus ROM doesn’t have the Graphics Devices calls in it, so you can’t call GetMainDevice.

Pre-Device Manager, you can check the QuickDraw global variable screenBits.bounds to get the bounding rectangle of the display. (You meant 512x342 above, not 512x384, but anyway that would be wrong on a Portable.)
 
Last edited:

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
It’s not the 68000 that’s tripping you up, it’s the ROM. The Plus ROM doesn’t have the Graphics Devices calls in it, so you can’t call GetMainDevice.

Pre-Device Manager, you can check the QuickDraw global variable screenBits.bounds to get the bounding rectangle of the display. (You meant 512x342 above, not 512x384, but anyway that would be wrong on a Portable.)
@Crutch to the rescue again!! Thanks.
i was just messing with it as I couldn’t resist. Why wouldn’t inside macintosh mention this (maybe it does just not above every function). But alright thanks!!!
 

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
Well shoot -- I got past the usage of GetMainDevice (as @Crutch suggested - screenBits.bounds provides the monitor size). But Now I'm fighting icon plotting issues (they won't plot with the existing code on these older machines). So I'll have to dig some more to see what it isn't happy about. I'm guessing something with plot icon function calls but I'll see.
 

MacOfAllTrades

Tinkerer
Oct 5, 2022
159
166
43
Hooray! Glad it wasn't too complicated. I take it then that there is a 68000-equivalent you can use in-lieu of GetMainDevice?
@lilliputian , try this branch! It should fix the issue with the older Macintoshes:
I have it up as a pre-release on the releases page too

On the plus side (no pun intended) this also includes the dynamic sizing stuff I've been talking about - all wrapped into the beta release.

Give it a whirl - thanks for all the great feedback. Yeeesh can't believe I broke compatibility without knowing it with the color stuff.