More OF reversal

This commit is contained in:
Elliot Nunn 2019-09-29 20:32:10 +08:00
parent 501d3c1d37
commit d8f8def6d1
1 changed files with 62 additions and 7 deletions

View File

@ -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 <CodeFragments.h>
+#include <NameRegistry.h>
+#include <NameRegistryPriv.h>
@ -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 **)(&paramblk.csParam) = x;
+
+ err = PBStatusSync((ParmBlkPtr)(&paramblk));
+
+ 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