• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Software Development

adh1197

Member
Hi,

I have a need for some software to be written for an older Macintosh operating system. Specifically, I am looking for someone to write a simple Extension (INIT) or Control Panel (CDEV) for System 7. If anyone feels that they can do this or knows someone who would be interested please let me know. Thanks.

-Andy

 

theos911

Well-known member
Not that I have the skills to do this, but...

You may wish to explain a bit more what you need. (For example, writing a serial driver is a lot different than a battery manager.)

 

adh1197

Member
Thanks theos911. My original thoughts on the post were to see if anyone was interested and then share the specifics. I do however see your point, so here is what I am looking for. I need a INIT or CDEV (whatever the programmer feels is most appropriate) that when loaded will change the gestalt sysv value to a user specified value. I would like an icon in the INIT parade to indicate whether the INIT or CDEV loads (this should not be a problem as ShowInitIcon is still available for download.) I do not know if a user interface is necessary. If the programmer can pull the user specified value from a string resource within the INIT or CDEV, this could be used to specify the sysv value.

 

Trash80toHP_Mini

NIGHT STALKER
Cool idea! I've never heard of this one.

It probably won't work, but maybe I can get my IIsi to think it's a more capable Mac in terms of its Memory Address Space allocations for PseudoSlot IDs.

Then, when it re-boots to launch the Rocket, I can get one or more PDS Cards and an extra NuBus Slot wedged into the Memory Map! }:)

 

Trash80toHP_Mini

NIGHT STALKER
I just want to find a way for my IIsi to be tricked into thinking it's a less I/O MemMapLamedMidrangeMac under 7.0.1 to get more cards shoe-horned in there! :approve:

 

theos911

Well-known member
@mcdermd

Yes, you could. That is how people run 8 on Diimo 50MHz '030 accelerators. I think the hack is somewhere over on Gamba's.

 

adh1197

Member
When looking at available solutions to my problem I did examine the "Wish I Were" init/control panel. The "Wish I Were" init/control panel changes the “mach” gestalt selector value. The “mach” value is used for hardware identification. My needs focus on system software identification, which is why I need the “sysv” gestalt selector modified. Due to this requirement, the "Wish I Were" init/control panel will not work for my problem.

I have looked at various inits/cdevs but have not found one that will modify the “sysv” value. If anyone knows of an existing init/cdev that will modify the “sysv” gestalt selector, this would be the best way for me to solve my problem. I did spend a fair amount of time trying to find a developed solution to this problem, without success. Moving forward with this would be the development of a custom init/cdev. Based on the parameters, if anyone feels that they can do this please let me know. Thanks.

 

bbraun

Well-known member
Consider this a proof of concept.

It is an INIT that replaces the 'sysv' gestalt and always returns 0x0761. It loads its icon at boot (resource id -4064, feel free to edit in resedit). The return value is not customizable through a resource, but if you care and this works I might add it at some point. Let me know if this does what you wanted it to do, at least in concept if not specifics.

If you have access to CodeWarrior, you can edit the gestaltselector.c file and rebuild just the gestaltselector project, which will populate the selector's code resource in the SYSVInit file. Returning a value less than the system you're currently running caused me all kinds of issues, JFYI.

This contains the full source to the INIT:

sysvinit.proj: CW project file for the INIT resource. This just merges the generated INIT resource into the SYSVInit file.

sysvinit.c: the INIT code

ShowInitIcon.{c,h}: ye olde sample code for loading the init icon. I haven't modified it.

gestaltselector.proj: project file for the gestalt selector. This creates a 'GSLT' code resource and merges it into the SYSVInit file.

gestaltselector.c: The selector code. This is what gets called on Gestalt('sysv', ...). The selector is loaded into the system heap by the INIT code.

sysv check: a simple ANSI program that calls Gestalt('sysv',...) and printf's the result to verify the gestalt is actually being replaced and the intended value is being returned.

 
Top