Reverse more of the OF interface

This commit is contained in:
Elliot Nunn 2019-08-19 12:32:19 +08:00
parent 9527f92ec9
commit 5122302da6
1 changed files with 74 additions and 1 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,483 @@
@@ -0,0 +1,556 @@
+#include <CodeFragments.h>
+#include <NameRegistry.h>
+#include <NameRegistryPriv.h>
@ -23360,6 +23360,79 @@ new file mode 100644
+ *(ProductInfo **)UnivInfoPtr = newPtr;
+}
+
+struct mysterystruct {
+ short a;
+ short b;
+ long c;
+ long d;
+ long e;
+};
+
+struct mysterystruct2 {
+ long a;
+ short b; // either short-char-char or char-char-short
+ char c;
+ char d;
+ long e;
+ long f;
+ long g;
+};
+
+void
+INTERC_1DB0(struct mysterystruct *x)
+{
+ x->a = 1;
+ x->b = 0;
+ x->c = 0;
+ x->d = 0;
+ x->e = 0;
+}
+
+void
+INTERC_1DE0(GDHandle gh, struct mysterystruct *x)
+{
+ CntrlParam paramblk;
+ OSErr err;
+
+ INTERC_1DB0(x);
+
+ paramblk.ioNamePtr = NULL;
+ paramblk.ioCRefNum = (**gh).gdRefNum;
+ paramblk.csCode = 12;
+ *(struct mysterystruct **)(&paramblk.csParam) = x;
+
+ err = PBStatusSync((ParmBlkPtr)(&paramblk));
+}
+
+OSErr
+INTERC_1E20(GDHandle gh, struct mysterystruct2 *x)
+{
+ CntrlParam paramblk;
+ OSErr err = paramErr;
+
+ if (gh == NULL) goto exit;
+ if (x == NULL) goto exit;
+
+ x->b = 0;
+ x->c = 0;
+ x->d = 0;
+ x->e = 0;
+ x->f = 0;
+ x->g = 0;
+
+ paramblk.ioNamePtr = NULL;
+ paramblk.ioCRefNum = (**gh).gdRefNum;
+ paramblk.csCode = 28;
+ *(struct mysterystruct2 **)(&paramblk.csParam) = x;
+
+ err = PBStatusSync((ParmBlkPtr)(&paramblk));
+ if (err != noErr) goto exit;
+
+ if (x->a == -1) err = statusErr;
+
+ exit: return err;
+}
+
+/* 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