diff --git a/patchset/Custer/8-source.patch b/patchset/Custer/8-source.patch index 9640880..b0af5fc 100644 --- a/patchset/Custer/8-source.patch +++ b/patchset/Custer/8-source.patch @@ -22877,7 +22877,7 @@ diff --git a/OS/StartMgr/OpenFirmware.c b/OS/StartMgr/OpenFirmware.c new file mode 100644 --- /dev/null +++ b/OS/StartMgr/OpenFirmware.c -@@ -0,0 +1,556 @@ +@@ -0,0 +1,611 @@ +#include +#include +#include @@ -23361,7 +23361,7 @@ new file mode 100644 +} + +struct mysterystruct { -+ short a; ++ unsigned short a; + short b; + long c; + long d; @@ -23369,10 +23369,10 @@ new file mode 100644 +}; + +struct mysterystruct2 { -+ long a; -+ short b; // either short-char-char or char-char-short -+ char c; -+ char d; ++ unsigned long a; ++ unsigned short b; // either short-char-char or char-char-short ++ Boolean c; ++ Boolean d; + long e; + long f; + long g; @@ -23388,7 +23388,7 @@ new file mode 100644 + x->e = 0; +} + -+void ++OSErr +INTERC_1DE0(GDHandle gh, struct mysterystruct *x) +{ + CntrlParam paramblk; @@ -23402,6 +23402,8 @@ new file mode 100644 + *(struct mysterystruct **)(¶mblk.csParam) = x; + + err = PBStatusSync((ParmBlkPtr)(¶mblk)); ++ ++ return err; +} + +OSErr @@ -23433,6 +23435,59 @@ new file mode 100644 + exit: return err; +} + ++char ++INTERC_1E90(GDHandle gh, short *c, short *d, Boolean *jjj) ++{ ++ Boolean done = 0; ++ struct mysterystruct2 x; ++ unsigned long d6; ++ ++ x.a = -1; ++ ++ if (!INTERC_1E20(gh, &x)) { ++ d6 = x.a; ++ while (d6 > 0 && !done) { ++ x.a = d6--; ++ if (INTERC_1E20(gh, &x)) continue; ++ if (x.b == 2 || x.b == 14 || x.b == 20) { ++ done = 1; ++ *c = x.c; ++ *d = x.d; ++ if (!(x.e & 0x200)) { ++ *jjj = 1; ++ } ++ } ++ } ++ } ++ ++ return done; ++} ++ ++// void ++// WANGBACKLIGHT() ++// { ++// short refnum; /*-8*/ ++// long mach; /*-1c*/ ++// short ptd1 /*-6*/ = 0; ++// short ptd2 /*-4*/ = 0; ++// struct mysterystruct mst; ++// GDHandle gh_a3 = NULL; ++// GDHandle gh_a4; ++ ++// if (OpenDriver("\p.Backlight", &refnum) != noErr) return; ++ ++// Gestalt('mach', &mach); ++// gh_a4 = GetDeviceList(); ++// while (gh_a4 && !gh_a3) { ++// if (INTERC_1DE0(gh_a4, &mst) != noErr) { ++// if (mst.b == 2 || mst.b == 14 || mat.b == 20) { ++ ++// } ++// } ++// } ++ ++// } ++ +/* This file is complete... the remaining kilobytes to 0x2BC0 are filled by Amphibian DNA */ diff --git a/OS/StartMgr/OpenFirmware.c.idump b/OS/StartMgr/OpenFirmware.c.idump new file mode 100644