Get Gestalt (ptch 5) building

Now the System 7.1 build relies on these binary blobs:
- AppleTalk *
- Virtual Memory *
- Sound Manager

* never part of the build system
This commit is contained in:
Elliot Nunn 2020-02-16 08:18:24 +08:00
parent 4b6e398c8a
commit 9dd3c4bef8
3 changed files with 824 additions and 210 deletions

View File

@ -780,7 +780,7 @@ diff --git a/Make/System.make b/Make/System.make
new file mode 100644
--- /dev/null
+++ b/Make/System.make
@@ -0,0 +1,564 @@
@@ -0,0 +1,566 @@
+########################################################################
+# Whole cloth substitute for the missing System 7.1 makefile
+########################################################################
@ -1031,12 +1031,14 @@ new file mode 100644
+ hasJaws=FALSE ∂
+ hasLayerlessApps=FALSE ∂
+ hasManEject=FALSE ∂
+ hasMMU=FALSE ∂
+ hasMSC=FALSE ∂
+ hasNiagra=FALSE ∂
+ hasNonADBKeyLayouts=TRUE ∂
+ hasPortableKeyLayouts=FALSE ∂
+ hasPowerMgr=FALSE ∂
+ hasPwrControls=TRUE ∂
+ hasPwrMgrClock=TRUE ∂
+ hasRISCV0ResMgrPatches=FALSE ∂
+ hasSlotMgr=TRUE ∂
+ hasSplineFonts=TRUE ∂
@ -1369,7 +1371,18 @@ diff --git a/OS/ADBMgr/ADBMgr.make b/OS/ADBMgr/ADBMgr.make
diff --git a/OS/Gestalt/Gestalt.make b/OS/Gestalt/Gestalt.make
--- a/OS/Gestalt/Gestalt.make
+++ b/OS/Gestalt/Gestalt.make
@@ -22,6 +22,10 @@ GestaltObjs = "{ObjDir}GestaltFunction.a.o" ∂
@@ -14,14 +14,20 @@
-GestaltObjs = "{ObjDir}GestaltFunction.a.o" ∂
+GestaltObjs = "{ObjDir}GestaltPatchHead.a.o" ∂
"{ObjDir}GestaltLookup.c.o" ∂
+ "{IfObjDir}Interface.o" ∂
+ "{ObjDir}GestaltFunction.a.o" ∂
"{ObjDir}GestaltExtensions.a.o"
"{LibDir}Gestalt.lib" ƒ {GestaltObjs}
Lib {StdLibOpts} -o "{Targ}" {GestaltObjs}
@ -1380,6 +1393,17 @@ diff --git a/OS/Gestalt/Gestalt.make b/OS/Gestalt/Gestalt.make
"{ObjDir}GestaltFunction.a.o" ƒ "{ObjDir}StandardEqu.d" ∂
"{IntAIncludes}HardwarePrivateEqu.a" ∂
"{IntAIncludes}UniversalEqu.a" ∂
@@ -36,6 +42,10 @@ GestaltObjs = "{ObjDir}GestaltFunction.a.o" ∂
Asm {StdAOpts} -o "{Targ}" "{GestaltDir}GestaltFunction.a"
+"{ObjDir}GestaltPatchHead.a.o" ƒ "{GestaltDir}GestaltPatchHead.a"
+ Asm {StdAOpts} -o "{Targ}" "{GestaltDir}GestaltPatchHead.a"
+
+
"{ObjDir}GestaltExtensions.a.o" ƒ "{ObjDir}StandardEqu.d" ∂
"{IntAIncludes}HardwarePrivateEqu.a" ∂
"{AIncludes}GestaltEqu.a" ∂
diff --git a/OS/HFS/Extensions/BTreeMgr/BTreeMgr.make b/OS/HFS/Extensions/BTreeMgr/BTreeMgr.make
--- a/OS/HFS/Extensions/BTreeMgr/BTreeMgr.make
+++ b/OS/HFS/Extensions/BTreeMgr/BTreeMgr.make

View File

@ -4,213 +4,6 @@ Subject: Amphibian DNA
The BuildCubeE mechanism for short-circuiting the makefile system to
point to prebuilt binary code. This might rate a change!
---
diff --git a/AmphibianDNA/Gestalt.rsrc b/AmphibianDNA/Gestalt.rsrc
new file mode 100644
diff --git a/AmphibianDNA/Gestalt.rsrc.rdump b/AmphibianDNA/Gestalt.rsrc.rdump
new file mode 100644
--- /dev/null
+++ b/AmphibianDNA/Gestalt.rsrc.rdump
@@ -0,0 +1,200 @@
+data 'RSRC' (0) {
+ $"6000 0818 7074 6368 0005 0001 4E56 FFF4" /* `...ptch....NV.. */
+ $"48E7 0F18 282E 0008 2A2E 0010 6706 7001" /* H...(...*...g.p. */
+ $"C085 6706 70CE 6000 015E 2005 A055 2C00" /* ..g.p.`..^ ..U,. */
+ $"2078 02A6 BC90 6312 2038 02AE A055 B086" /* x....c. 8...U.. */
+ $"6308 303C EA4F 6000 013E 598F 2078 02B6" /* c.0<.O`..>Y. x.. */
+ $"2068 005C 2F10 4EBA 01AE 2C1F 2006 A722" /* h.\/.N...,. .." */
+ $"2D48 FFF4 4A78 0220 6706 7094 6000 0118" /* -H..Jx. g.p.`... */
+ $"206E FFF4 2850 2078 02B6 2068 005C 2050" /* n..(P x.. h.\ P */
+ $"2650 7E00 6004 28DB 5887 BC87 62F8 4246" /* &P~.`.(.X...b.BF */
+ $"7001 2D40 FFFC 486E FFF8 2F2E 000C 4EBA" /* p.-@..Hn../...N. */
+ $"00F0 4A40 504F 6632 4A84 6706 3C3C EA51" /* ..J@POf2J.g.<<.Q */
+ $"6030 206E FFF4 2278 02B6 2269 005C 2029" /* `0 n.."x.."i.\ ) */
+ $"0004 5280 E780 A024 4A78 0220 6704 7C94" /* ..R....$Jx. g.|. */
+ $"6010 7000 2D40 FFFC 6008 4A84 6604 3C3C" /* `.p.-@..`.J.f.<< */
+ $"EA50 4A46 670C 206E FFF4 A023 3006 6000" /* .PJFg. n...#0.`. */
+ $"0096 206E FFF4 2850 4AAE FFFC 6650 2078" /* .. n..(PJ...fP x */
+ $"02B6 2068 005C 2E28 0004 6024 2007 5380" /* .. h.\.(..`$ .S. */
+ $"E780 2207 E781 29B4 0800 1800 2007 5380" /* .."...)..... .S. */
+ $"E780 2207 E781 29B4 0804 1804 2007 5387" /* .."...)..... .S. */
+ $"BEAE FFF8 6ED6 2078 02B6 2068 005C 52A8" /* ....n. x.. h.\R. */
+ $"0004 202E FFF8 E780 29AE 000C 0800 4A84" /* .. .....).....J. */
+ $"670E 202E FFF8 E780 206E 0014 20B4 0804" /* g. ..... n.. ... */
+ $"202E FFF8 E780 2985 0804 2078 02B6 2068" /* .....)... x.. h */
+ $"005C 2850 2078 02B6 2068 005C 20AE FFF4" /* .\(P x.. h.\ ... */
+ $"204C A023 7000 4CEE 18F0 FFDC 4E5E 4E75" /* L.#p.L.....N^Nu */
+ $"4E56 0000 48E7 0F18 266E 000C 282E 0008" /* NV..H...&n..(... */
+ $"2078 02B6 2068 005C 2050 2850 7C00 2078" /* x.. h.\ P(P|. x */
+ $"02B6 2068 005C 2A28 0004 5385 2005 9086" /* .. h.\*(..S. ... */
+ $"7201 B280 5DC0 4400 4880 48C0 2E00 DE86" /* r...].D.H.H..... */
+ $"2007 E780 B8B4 0800 6404 2A07 6016 2007" /* .......d.*.`. . */
+ $"E780 B8B4 0800 6306 2C07 5286 6006 2687" /* ......c.,.R.`.&. */
+ $"7001 6008 BC85 66C4 2686 7000 4CEE 18F0" /* p.`...f.&.p.L... */
+ $"FFE8 4E5E 4E75 225F 205F A025 2E80 6A02" /* ..N^Nu"_ _.%..j. */
+ $"4297 4ED1 0C41 A1AD 6730 2F08 2F0F 2F08" /* B.N..A..g0/././. */
+ $"2F00 4AAF 000C 6730 0C41 A3AD 670E 0C41" /* /.J...g0.A..g..A */
+ $"A5AD 6624 2F3C 0000 0001 6002 42A7 4EBA" /* ..f$/<....`.B.N. */
+ $"FDCC DEFC 0010 205F 6014 48E7 1F38 4EBA" /* ...... _`.H..8N. */
+ $"0010 4CDF 1CF8 6006 DEFC 0010 70CE 4E75" /* ..L...`.....p.Nu */
+ $"2600 598F 2F0F 2F00 4EBA FF26 508F 241F" /* &.Y././.N..&P.$. */
+ $"4A40 6724 2078 02B6 2268 005C 2051 2250" /* J@g$ x.."h.\ Q"P */
+ $"E78A 2271 2804 42A7 4267 2F03 486F 0006" /* .."q(.B.Bg/.Ho.. */
+ $"4E91 301F 205F 6006 203C FFFF EA51 4E75" /* N.0. _`. <...QNu */
+ $"206F 0004 7000 3038 015A 6000 0554 206F" /* o..p.08.Z`..T o */
+ $"0004 2278 02AE 7000 3029 0008 6000 0542" /* .."x..p.0)..`..B */
+ $"0838 0001 0B22 6700 0530 7000 303C 0110" /* .8..."g..0p.0<.. */
+ $"6000 052E 2278 02B6 2269 005C 7000 3029" /* `..."x.."i.\p.0) */
+ $"0010 6000 051C 7000 1038 012F 5240 6000" /* ..`...p..8./R@`. */
+ $"0510 1038 021E 41FA 0016 2248 1218 6700" /* ...8..A..."H..g. */
+ $"04F8 B200 66F6 91C9 2008 6000 04F4 0313" /* ....f... .`..... */
+ $"0B02 0106 0704 0508 090C 0D00 2278 02B6" /* ............"x.. */
+ $"2269 005C 7000 1029 0012 6000 04D4 2278" /* "i.\p..)..`..."x */
+ $"02B6 2269 005C 7000 1029 0013 6000 04C2" /* .."i.\p..)..`... */
+ $"2278 02B6 2269 005C 2029 0014 6000 04B2" /* "x.."i.\ )..`... */
+ $"7600 2078 02AE 3228 0008 41FA 003C B258" /* v. x..2(..A..<.X */
+ $"6706 4A50 66F8 6004 08C3 0001 303C A89F" /* g.JPf.`.....0<.. */
+ $"A746 2408 203C 0000 A84C A746 B488 6704" /* .F$. <...L.F..g. */
+ $"08C3 0000 1038 0B3E 0200 000F 6604 08C3" /* .....8.>....f... */
+ $"0002 2003 6000 046A 067C 0000 7000 0C38" /* .. .`..j.|..p..8 */
+ $"0004 012F 6616 4E7A 1003 0801 000E 6606" /* .../f.Nz......f. */
+ $"08C0 000C 6036 08C0 000D 6030 0C38 0002" /* ....`6....`0.8.. */
+ $"012F 6D00 002C 0C38 0003 0CB1 6D18 2078" /* ./m..,.8....m. x */
+ $"02B6 2068 005C 41E8 0018 F010 4200 E9D0" /* .. h.\A.....B... */
+ $"1204 03C0 6006 203C 0000 8000 6000 0412" /* ....`. <....`... */
+ $"6000 0406 2038 02A6 6000 0406 2278 02B6" /* `... 8..`..."x.. */
+ $"2269 005C 0CAF 6C72 616D 0008 6606 2029" /* "i.\..lram..f. ) */
+ $"000C 6004 2029 0008 6000 03E6 2078 02AE" /* ..`. )..`... x.. */
+ $"0C28 0003 0008 6422 2078 02B6 2068 005C" /* .(....d" x.. h.\ */
+ $"3228 0010 0C41 0005 6508 203C 0004 0000" /* 2(...A..e. <.... */
+ $"600C 203C 0002 0000 6004 2028 0040 6000" /* `. <....`. (.@`. */
+ $"03B0 203C 0000 0400 6000 03A6 2078 02AE" /* .. <....`... x.. */
+ $"0C68 0075 0008 660A 203C 0000 0C00 6000" /* .h.u..f. <....`. */
+ $"0390 203C 0000 0E00 6000 0386 2078 02AE" /* .. <....`... x.. */
+ $"0C68 0075 0008 670A 0C68 0276 0008 6600" /* .h.u..g..h.v..f. */
+ $"0368 2038 0664 6000 0368 7000 303C 0003" /* .h 8.d`..hp.0<.. */
+ $"6000 035E 0C78 3FFF 028E 6E1C 303C A89F" /* `..^.x?...n.0<.. */
+ $"A746 2408 203C 0000 AB03 A746 203C 0000" /* .F$. <.....F <.. */
+ $"0100 B488 6606 6010 7000 600C 594F 7014" /* ....f.`.p.`.YOp. */
+ $"AB1D 201F 0640 0100 6000 0326 7000 4A38" /* .. ..@..`..&p.J8 */
+ $"0291 6B16 1238 01FB 0201 000F 0C01 0001" /* ..k..8.......... */
+ $"6608 2078 02DC 1028 0007 6000 0304 2078" /* f. x...(..`... x */
+ $"02B6 2068 005C 0C68 000A 0010 6D18 303C" /* .. h.\.h....m.0< */
+ $"A89F A746 2408 203C 0000 A085 A346 B488" /* ...F$. <.....F.. */
+ $"6704 700F 6002 7000 6000 02D6 7000 0838" /* g.p.`.p.`...p..8 */
+ $"0001 0B22 662A 2078 02AE 3228 0008 41FA" /* ..."f* x..2(..A. */
+ $"0034 B258 671A 4A50 66F8 0C41 0178 6600" /* .4.Xg.JPf..A.xf. */
+ $"02B0 0CB8 0000 2000 02A6 6704 6000 02A2" /* ...... ...g.`... */
+ $"1038 0B73 4600 0280 0000 0003 08C0 0002" /* .8.sF........... */
+ $"6000 028E 067C 0000 9EFC 000E 204F 42A8" /* `....|...... OB. */
+ $"000A 317C FFFF 0004 A058 7201 1028 0004" /* ..1|.....Xr..(.. */
+ $"6B08 5281 D000 6B02 5281 A059 4FEF 000E" /* k.R...k.R..YO... */
+ $"2001 6000 025C 7000 6000 0256 7000 08C0" /* .`..\p.`..Vp... */
+ $"0000 6000 024C 2078 02B6 2068 005C 7000" /* ..`..L x.. h.\p. */
+ $"0C68 0004 0010 671A 0C68 0011 0010 6712" /* .h....g..h....g. */
+ $"0C68 0013 0010 670A 0C68 0025 0010 6702" /* .h....g..h.%..g. */
+ $"7007 6000 021C 2078 02B6 2068 005C 0C68" /* p.`... x.. h.\.h */
+ $"000B 0010 6D00 00E8 0C68 0011 0010 6700" /* ....m....h....g. */
+ $"00DE 0C68 0018 0010 6700 00D4 2078 0DD8" /* ...h....g... x.. */
+ $"D1E8 000C 7000 7200 0830 0002 0000 6702" /* ....p.r..0....g. */
+ $"01C1 5240 0C80 0000 0010 66EC 2001 6000" /* ..R@......f. .`. */
+ $"01D0 2078 02B6 2068 005C 0C68 000B 0010" /* .. x.. h.\.h.... */
+ $"6D00 009C 0C68 0011 0010 6700 0092 0C68" /* m....h....g....h */
+ $"0018 0010 6700 0088 7000 41FA 0054 2238" /* ....g...p.A..T"8 */
+ $"0DD0 1418 6B00 000C 1618 0701 67F4 05C0" /* ....k.......g... */
+ $"60F0 2238 0DD4 0801 0000 6704 08C0 000F" /* `."8......g..... */
+ $"0801 0007 6704 08C0 0012 7209 0300 670C" /* ....g.....r...g. */
+ $"0838 0000 0BFE 6704 7204 03C0 2078 02AE" /* .8....g.r... x.. */
+ $"0C68 067C 0008 6604 7218 03C0 6000 0152" /* .h.|..f.r...`..R */
+ $"0002 0403 0B05 0C06 0D07 0708 010B 030C" /* ................ */
+ $"020D 0E0E 060F 0810 0911 0512 0A13 1014" /* ................ */
+ $"1115 1916 1417 1518 1619 171A FFFF 41FA" /* ..............A. */
+ $"0066 7200 2030 1800 B0AF 0008 670A 4A80" /* .fr. 0......g.J. */
+ $"6700 0106 5881 60EC 2078 02B6 2068 005C" /* g...X.`. x.. h.\ */
+ $"3028 0010 B07A 004C 631A 0C40 0011 6606" /* 0(...z.Lc..@..f. */
+ $"41FA 0092 601C 0C40 0018 6600 00DC 41FA" /* A...`..@..f...A. */
+ $"008C 600E 5380 E548 C0FA 001A 41FA 0026" /* ..`.S..H....A..& */
+ $"D0C0 2030 1800 0C80 FFFF FFFF 6700 00BA" /* .. 0........g... */
+ $"6000 00BE 0002 6864 7772 736C 7463 0000" /* `.....hdwrsltc.. */
+ $"0000 000A 0400 3011 0000 0000 0400 0011" /* ......0......... */
+ $"0000 0000 0400 0011 0000 0000 0400 3891" /* ..............8. */
+ $"0000 0000 0400 3891 0000 0000 0000 089B" /* ......8......... */
+ $"0000 7E00 0000 089B 0000 7E00 0000 089B" /* ..~.......~..... */
+ $"0000 0E00 0000 089B 0000 0000 0000 0899" /* ................ */
+ $"0000 0000 0400 3891 0000 0000 0000 0899" /* ......8......... */
+ $"0000 0000 202F 0008 0C80 7665 7273 6728" /* .... /....versg( */
+ $"0C80 7461 626C 6724 0C80 0000 000D 6710" /* ..tablg$......g. */
+ $"0C80 0000 0007 6620 203C 6361 726C 6020" /* ......f <carl` */
+ $"203C 6262 6D63 6018 7001 6014 2078 02B6" /* <bbmc`.p.`. x.. */
+ $"2268 005C 2011 6008 3F7C EA52 000C 600A" /* "h.\ .`.?|.R..`. */
+ $"206F 0004 2080 426F 000C 205F 508F 4ED0" /* o.. .Bo.. _P.N. */
+ $"0000 0214 A1AD 0000 0000 6100 0008 41FA" /* ..........a...A. */
+ $"FFF0 4E75 701C A71E 2008 6700 0274 2278" /* ..Nup... .g..t"x */
+ $"02B6 2348 005C 2448 7008 A522 2488 6700" /* ..#H.\$Hp.."$.g. */
+ $"0260 2250 22BC 7FFF FFFF 237C 1234 5678" /* .`"P".....#|.4Vx */
+ $"0004 257C 0000 0001 0004 47FA 0130 7600" /* ..%|......G..0v. */
+ $"4AB3 3000 671A 2033 3004 D08B 2F00 2F33" /* J.0.g. 30..././3 */
+ $"3000 42A7 4EBA F796 4FEF 000C 5083 60E0" /* 0.B.N...O...P.`. */
+ $"2438 0108 617A D480 2542 000C 2078 02AE" /* $8..az..%B.. x.. */
+ $"0C68 067C 0008 6612 2438 1EF4 D480 2542" /* .h.|..f.$8....%B */
+ $"000C 2578 1EF8 0008 6006 2578 0108 0008" /* ..%x....`.%x.... */
+ $"2038 0B78 6726 6B24 2240 2078 02AE 0C68" /* 8.xg&k$"@ x...h */
+ $"067C 0008 6708 70FB A05C 2540 0008 70FA" /* .|..g.p..\%@..p. */
+ $"A05C 2400 612A D082 2540 000C 4EBA 01C8" /* .\$.a*..%@..N... */
+ $"3540 0010 4EBA 01E0 1540 0012 4EBA 0220" /* 5@..N....@..N.. */
+ $"1540 0013 4EBA 0242 2540 0014 6000 019E" /* .@..N..B%@..`... */
+ $"48E7 2060 2078 02AE 0C68 037A 0008 676C" /* H. ` x...h.z..gl */
+ $"41F8 030A 2010 6764 2040 3228 0006 3028" /* A... .gd @2(..0( */
+ $"0008 3400 5240 4440 E540 2278 011C 2271" /* ..4.R@D@.@"x.."q */
+ $"0000 2251 0829 0006 0005 6702 2251 2251" /* .."Q.)....g."Q"Q */
+ $"43E9 0012 45FA 003E 7000 1012 B30A 66C4" /* C...E..>p.....f. */
+ $"51C8 FFFA 4FEF FFCE 204F 42A8 000C 4268" /* Q...O... OB...Bh */
+ $"0016 3142 0018 3141 0016 317C 4544 001A" /* ..1B..1A..1|ED.. */
+ $"A205 2028 001C 4FEF 0032 6002 7000 4CDF" /* .. (..O..2`.p.L. */
+ $"0604 4E75 062E 4544 6973 6B00 6D61 6368" /* ..Nu..EDisk.mach */
+ $"FFFF F948 7379 7376 FFFF F914 7072 6F63" /* ...Hsysv....proc */
+ $"FFFF F95A 6B62 6420 FFFF F966 6174 6C6B" /* ...Zkbd ...fatlk */
+ $"FFFF FB50 6670 7520 FFFF F990 6D6D 7520" /* ...Pfpu ....mmu */
+ $"FFFF F9A2 7261 6D20 FFFF FA70 6C72 616D" /* ....ram ...plram */
+ $"FFFF FA70 7164 2020 FFFF FB18 726F 6D20" /* ...pqd ....rom */
+ $"FFFF FA90 766D 2020 FFFF FC1A 706F 7772" /* ....vm ....powr */
+ $"FFFF FB72 726F 6D76 FFFF F922 7665 7273" /* ...rromv..."vers */
+ $"FFFF FE28 7461 626C FFFF FE28 6864 7772" /* ...(tabl...(hdwr */
+ $"FFFF FCA6 736C 7463 FFFF FC5A 746D 6772" /* ....sltc...Ztmgr */
+ $"FFFF FBEC 6164 6472 FFFF FBA0 612F 7578" /* ....addr....a/ux */
+ $"FFFF F934 7067 737A FFFF FA10 6C6D 656D" /* ...4pgsz....lmem */
+ $"FFFF FA68 7072 7479 FFFF F9B4 6D69 7363" /* ...hprty....misc */
+ $"FFFF F9C4 6E6D 6772 FFFF FC20 7365 7220" /* ....nmgr... ser */
+ $"FFFF FC2A 6F73 7474 FFFF FAC6 7462 7474" /* ...*ostt....tbtt */
+ $"FFFF FAD0 7874 7474 FFFF FAF0 6673 2020" /* ....xttt....fs */
+ $"FFFF FB0E 0000 000D FFFF FE28 0000 0007" /* ...........(.... */
+ $"FFFF FE28 0000 0000 FFFF F888 4240 4E75" /* ...(........B@Nu */
+ $"303C FF94 60F8 2078 02AE 1028 0008 6E0C" /* 0<..`. x...(..n. */
+ $"7003 4A78 0B22 6A0C 7004 6008 7000 1038" /* p.Jx."j.p.`.p..8 */
+ $"0CB3 5C00 4E75 0838 0004 0B22 673C 0C38" /* ..\.Nu.8..."g<.8 */
+ $"0004 012F 6604 7003 6032 204F F280 0000" /* .../f.p.`2 O.... */
+ $"F327 3017 2E48 0C40 1F18 6716 0C40 3F18" /* .'0..H.@..g..@?. */
+ $"6710 0C40 3F38 670E 0C40 1F38 6708 7000" /* g..@?8g..@.8g.p. */
+ $"600A 7001 6006 7002 6002 7000 4E75 2078" /* `.p.`.p.`.p.Nu x */
+ $"02B6 2068 005C 0C68 0005 0010 6D16 7000" /* .. h.\.h....m.p. */
+ $"1038 0CB1 0C00 0001 670C 0C00 0003 6D04" /* .8......g.....m. */
+ $"5340 6002 7000 4E75 7000 2078 02B6 2068" /* S@`.p.Nup. x.. h */
+ $"005C 0C68 000B 0010 6D00 00FC 0C68 0011" /* .\.h....m....h.. */
+ $"0010 6700 00F2 0C68 0018 0010 6700 00E8" /* ..g....h....g... */
+ $"2238 0DD4 0801 0000 660E 2238 0DD0 0801" /* "8......f."8.... */
+ $"0014 6614 6000 00D0 2078 01D4 0810 0006" /* ..f.`... x...... */
+ $"6700 00BC 6000 00BC 4E7A 3002 2F03 263C" /* g...`...Nz0./.&< */
+ $"0000 1111 4E7B 3002 2078 02AE 263C 0000" /* ....N{0. x..&<.. */
+ $"2000 4A98 51CB FFFC 263C 0000 0808 4E7B" /* .J.Q...&<....N{ */
+ $"3002 2078 0DD8 D1D0 2268 0050 260F 2838" /* 0. x...."h.P&.(8 */
+ $"007C 49FA 003E 41FA 006A 46FC 2700 21C8" /* .|I..>A..jF.'.!. */
+ $"007C 97CB 7403 2213 4293 50E9 0010 50D1" /* .|..t.".B.P...P. */
+ $"4233 2000 4A93 4E71 4E71 50E9 0010 4211" /* B3 .J.NqNqP...B. */
+ $"2681 46FC 2000 21C4 007C 261F 4E7B 3002" /* &.F. .!..|&.N{0. */
+ $"6040 50E9 0010 4211 51CA FFCE 2681 220B" /* `@P...B.Q...&.". */
+ $"6610 2078 02B6 2068 005C 2668 0008 594B" /* f. x.. h.\&h..YK */
+ $"60B2 46FC 2000 21C4 007C 261F 4E7B 3002" /* `.F. .!..|&.N{0. */
+ $"600C 50E9 0010 4211 50D1 2E43 4ED4 08C0" /* `.P...B.P..CN... */
+ $"0001 08C0 0000 4E75" /* ......Nu */
+};
+
diff --git a/AmphibianDNA/MACE3.c.rsrc b/AmphibianDNA/MACE3.c.rsrc
new file mode 100644
diff --git a/AmphibianDNA/MACE3.c.rsrc.rdump b/AmphibianDNA/MACE3.c.rsrc.rdump

View File

@ -3450,16 +3450,37 @@ diff --git a/Internal/Asm/DialogsPriv.a b/Internal/Asm/DialogsPriv.a
diff --git a/Internal/Asm/GestaltPrivateEqu.a b/Internal/Asm/GestaltPrivateEqu.a
--- a/Internal/Asm/GestaltPrivateEqu.a
+++ b/Internal/Asm/GestaltPrivateEqu.a
@@ -165,8 +165,8 @@ size equ *
@@ -146,7 +146,7 @@
__INCLUDINGGESTALTPRIVATEEQU__ SET 1
-gestaltVers EQU 4 ; gestalt version (is this an oxymoron, or what? )
+gestaltVers EQU 1 ; gestalt version (is this an oxymoron, or what? )
;kInitialEntryCount EQU 80 ; initial number of slots at boot time
gestaltFlagIsValueMask EQU 1 ; bit in flags that means value is not ProcPtr
@@ -165,8 +165,9 @@ size equ *
ENDR
GestaltGlobals RECORD 0
+longH
tableH ds.l 1 ; handle to table of longs
-slotsUsed ds.l 1 ; number of entries in table
+slotsUsed
maxSlots ds.l 1 ; number of entries in table
memSize ds.l 1 ; amount of memory in this machine
realTop ds.l 1 ; adjusted memory size
@@ -175,10 +176,6 @@ fpu ds.b 1 ; fpu type
mmu ds.b 1 ; mmu type
parityStatus ds.l 1 ; parity status
myScratch ds.l 1 ; scratch area
-emu68k ds.b 1 ; 68k emulator installed flag
-nativeCPU ds.b 1 ; native cpu type
-nativePageSize ds.l 1 ; native page size
-ediskSize ds.l 1 ; edisk size <SM18> CSS
GestaltRecSize equ *
ENDR
diff --git a/Internal/Asm/HardwarePrivateEqu.a b/Internal/Asm/HardwarePrivateEqu.a
--- a/Internal/Asm/HardwarePrivateEqu.a
+++ b/Internal/Asm/HardwarePrivateEqu.a
@ -9978,6 +9999,782 @@ diff --git a/OS/Gestalt/GestaltExtensions.a b/OS/Gestalt/GestaltExtensions.a
************************************************************************
* Common Gestalt Function Return Code
************************************************************************
diff --git a/OS/Gestalt/GestaltFunction.a b/OS/Gestalt/GestaltFunction.a
--- a/OS/Gestalt/GestaltFunction.a
+++ b/OS/Gestalt/GestaltFunction.a
@@ -9,109 +9,8 @@
;
; Change History (most recent first):
;
-; <SM49> 11/19/93 chp When testing for hasEnhancedLTalk, always use ProductInfo flags.
-; Remove Cyclone/Tempest boxFlag checks.
-; <SM48> 11/8/93 SAM Roll in <MC4> from mc900ftjesus.
-; <MC4> 11/8/93 SAM Updated TestForEmu to correctly adjust the logical RAM size when
-; an EDisk is present.
-; <SM47> 10/28/93 SAM Roll in <MC3> from mc900ftjesus.
-; <MC3> 10/28/93 SAM Changed getNativeCPUType to put the PowerPC cpus in the $100
-; range.
-; <SM46> 10/10/93 SAM Roll in <MC2> from mc900ftjesus.
-; <MC2> 10/10/93 SAM Added a universal check for hasEnhancedLTalk in gestaltHardware.
-; <SM45> 8/12/93 BG Converted references to gestaltCyclone40 to gestaltQuadra840AV.
-; <SM44> 8/7/93 SAM Removed temporary fix to LRAM size made in <SM41>.
-; <SM43> 8/4/93 JDR Integrate Sound Manager 3.0 project.
-; <SM42> 7/20/93 SAM Added a macro for setting the assembler machine directive to the
-; appropriate thing (based on the build time flag "CPU").
-; <SM41> 6/29/93 SAM Removed all references to gEDiskSize cuz its not needed. The
-; lram value is updated to include the Edisk at initalization (as
-; it was in 7.0.1). This still doesnt cover the case of VM
-; loading after gestalt (a gibbly fix for PDM is a temporary
-; solution). Cyclone this is broken in your ROM.
-; <SM40> 6/14/93 SAM Added a test for the hasHardPower bit in Universal info so we no
-; longer have to use boxflags for the shutdown dialog crap.
-; <SM39> 6/14/93 kc Roll in Ludwig.
-; <SM38> 6/3/93 SAM Updated that stupid list of boxflags in hassoftpoweroff to
-; reflect the new PDM boxflags.
-; <SM37> 5/21/93 CSS Set bits in gestaltFontAttr to indicate settings for double byte
-; support.
-; <SM36> 4/23/93 SAM Added the temporary PDMEvt2 boxflag to the brain-dead list of
-; boxflag based cmp/bne for hassoftpoweroff.
-; <SM35> 4/11/93 chp Added a selector to return the HAL type for the runtime CPU.
-; This just returns an encoded resource ID from ProductInfo. Also
-; added the AppleTalk interrupt level selector from Cyclone.
-; <SM34> 4/8/93 KW changed gestaltids for cyclone/tempest products when determining
-; if enhanced localtalk is present.
-; <SM33> 4/8/93 CSS Use gestalt global for edisk size as the boot globals get hosed
-; by VM.
-; <SM32> 4/5/93 jb Added TestFor AwacsExists in GetSoundHardware.
-; <SM31> 3/30/93 CSS Add EDisk size to logical RAM size in gestaltLogicalRAMSize.
-; Before SuperMario, VM was inited before Gestalt. Now this has
-; changed. The Gestalt expandmem var realTop(An) used to be fixed
-; by Gestalt by taking VM version of RealMemTop and adding the
-; Edisk size. Because of how thing are in SuperMario, VM doesn't
-; get to affect realTop(An), therefore rather than returning that
-; variable, we return RealMemTop (which is the one that VM
-; changed). However, for About this Macintosh… to work correctly
-; (and show the RAM disk as part of the System Software), we need
-; to add the RAM disk size whenever we return RealMemTop.
-; <SM30> 2/20/93 SAM Updated all the EMMU stuff. MMU page size, emulator present,
-; sys architecture, all updated. Fixed up the Universal ROM
-; check.
-; <SM29> 02/10/93 HY Remove <SM26> change. We no longer need the gestaltNoAppleTalk bit.
-; <SM28> 2/5/93 SAM Added support for Emulated page size.
-; <SM27> 2/5/93 SAM Updated the System architecture selector to use universal info.
-; <SM26> 01/11/93 HY Added code into getMisc for setting gestaltNoAtlkSupport bit.
-; If this bit is set then this machines DOESN'T support AppleTalk.
-; <SM25> 1/10/93 RC Soft Power Off now works correctly for PDM
-; <SM24> 12/13/92 SAM Added gestaltNativeCPUtype and gestaltSysArchitecture. Restored
-; universal code in the hdwr selector. Cleaned things up.
-; <SM23> 12/4/92 fau Added gestaltTempest33 to soft-power off. Added all
-; Cyclone-type machines to say they have enhanced localtalk --
-; this should not be box-flag based. I'll get to it soon.
-; <SM22> 11/13/92 mal Added MACE Ethernet to hardware attributes gestalt.
-; <SM21> 11/11/92 RB The Mac LC II does not have Soft Power Off.
-; <SM20> 11/11/92 fau Changed soundhardware to check for the 'DSPExists' feature flag.
-; This means that a DSP is installed and used for sound. Made
-; tempest not have a soft power off flag.
-; <SM19> 11/9/92 fau Made gestaltSoundHardware return 'dsp ' for a Tempest. Rolled
-; back change in <SM18> so the Text-to-speech guys fix it.
-; <SM18> 11/6/92 FU Made Cyclone/Tempest return ASC for hardware attributes -- will
-; back this as soon as a name-revision is done. This will work
-; around a Text-to-speech bug.
-; <SM17> 11/3/92 RB (Murali) Under SM, return RealMemTop instead of the cached
-; realTop in the gestalt globals. Gestalt was loaded before VM
-; did, and so realMemTop may have changed by VM, so always use the
-; real thing.
-; <SM16> 10/27/92 fau Forgot to change a label to actually execute the
-; enhancedlocaltalk code.
-; <SM15> 10/27/92 fau Added a gestaltHasEnhancedLtalk check to hardwareAttr to enable
-; the bit on Cyclone and Tempest.
-; <SM14> 9/3/92 PN Nuke the check for IIci because this is SuperMario.
-; <SM13> 8/20/92 CS Fix another problem with BootGlobs changing to StartGlobals per
-; roll-in from Reality.
-; <SM12> 8/17/92 CCH Change getHardwareAttr to not use OrwellExists bit since it was
-; removed.
-; <SM11> 7/24/92 RLM change GetEDiskSize, now uses BootGlobs, this removes the
-; requirement to have drivres installed before Gestalt
-; <SM10> 7/20/92 CSS Names of the sound hardware attributes have changed because they were moved
-; from GestaltEqu.a to GestaltEquPriv.a by JDR.
-; <SM9> 7/14/92 RB Added a function to return the gestaltSoundHardware attributes.
-; <SM8> 7/1/92 RB Added the selectors for the gestalt script manager attributes.
-; The script Mgr function for gestalt is in ScripMgrExtensions.a
; <SM5> 5/19/92 CS Integrated changes from Reality:
; <42> 4/9/92 JSM #1026795,<DTY>: gestaltSerialAttr should be the same for a Mac
-; LC II as a Mac LC.
-; <SM4> 4/30/92 SES Rolled in a fix of the parity check routine from PatchIIciROM.a.
-; Removed check for bootglobs - all ROMs now have bootglobs, so no
-; need to check.
-; <SM3> 4/28/92 PN Fix OutlineFont Gestalt so that getFontMgrAtr returns the
-; correct result
-; <SM2> 4/22/92 PN Roll in hasSoftPowerOff to hardware attribute. Add GetOSTable,
-; GetToolboxTable, GetExtToolboxTable, GetFSAttr into ROM build.
-; Roll in GetQDFeatures and GestaltFontMgrAttr from
-; GestaltPatches.a and BassPatches.a.
; <41> 12/4/91 csd #1016451: Added support for Scruffy. If Scruffy is running, we
; need to set 32-bit capable flag for the
; gestaltAddressingModeAttr selector.
@@ -291,24 +190,10 @@
include 'InternalOnlyEqu.a'
INCLUDE 'EDiskEqu.a'
INCLUDE 'BootEqu.a'
+ INCLUDE 'Devices.a'
PRINT ON
- MACRO
- SETMACHINE
- IF CPU = 020 THEN
- MACHINE MC68020
- ELSEIF CPU = 030 THEN
- MACHINE MC68030
- ELSEIF CPU = 040 THEN
- MACHINE MC68040
- ELSE
- AERROR 'Unknown CPU type'
- ENDIF
- ENDM
-
- SETMACHINE
-
;;; Gestalt private equates
GestaltTrapID EQU $A1AD ; Gestalt trap number
NewGestaltTrapID EQU $A3AD ; newGestalt trap number
@@ -453,7 +338,8 @@ error DS.W 1
* System Version
************************************************************************
-getSysVersion clr.l d0 ; clear result register <2.9>
+getSysVersion move.l 4(sp),a0
+ clr.l d0 ; clear result register <2.9>
Move.w SysVersion,d0 ; save system version in lsw of result
bra stdResult ; save result and exit <2.9>
@@ -462,7 +348,8 @@ getSysVersion clr.l d0 ; clear result register <2.9>
* ROM Version
************************************************************************
-getRomVersion Move.l RomBase,A1 ; get base of ROM
+getRomVersion move.l 4(sp),a0
+ Move.l RomBase,A1 ; get base of ROM
clr.l d0 ; clear result register <2.9>
move.w RomVersionOffset(a1),d0 ; put version in lsw of result
bra stdResult ; save result and exit <2.9>
@@ -501,45 +388,6 @@ getProcessor moveq.l #0,d0 ; clear d0
bra stdResult ; save result and exit <2.9>
-************************************************************************ <SM24><SM30>
-* System Architecture
-************************************************************************
-
-getSysArchitecture ; If we're running (68k code) and Emu is installed
- ; for now, assume Architecture is PPC.
- MOVE.L ExpandMem,A1 ; find out where expandMem is
- MOVE.L emGestalt(A1),A1 ; get global ptr
- TST.B Emu68k(A1) ; Do the globals say we have an emulator? <SM29>
- BEQ.S @MC68k ; -> Nope, ol' slow boy. <SM29>
-
-@PowerPC MOVEQ #gestaltPowerPC,D0 ; Emulator is running. Signal PowerPC architecture
- BRA stdResult ; -> Return
-@MC68k MOVEQ #gestalt68k,D0 ; Emu is off. Assume 68k
- BRA stdResult ; -> Return
-
-IsEmuInstalled TestFor has68kEmulator
- RTS ; On Exit z set = PowerPC, clear = 68k
-
-
-************************************************************************ <SM24>
-* Native Processor Type
-************************************************************************
-
-getNativeCPUtype
- MOVE.L ExpandMem,A1 ; find out where expandMem is
- MOVE.L emGestalt(A1),A1 ; get global ptr
- TST.B Emu68k(A1) ; Do the globals say we have an emulator? <SM30>
- BEQ.S @MC68k ; -> Nope, ol' slow boy. <SM30>
-
- MOVEQ.L #0,D0 ; Clear out D0
- MOVE.B nativeCPU(A1),D0 ; Get the PowerPC processor type <SM30>
- ADD.W #$100,D0 ; Bump the PowerPC CPU type into the $100 range <MC3>
-
- BRA stdResult ; -> Return
-@MC68k MOVE.B CPUFlag,D0 ; Return CPU flag <MC3>
- BRA stdResult
-
-
************************************************************************
* Keyboard Type
* Note: To add new keyboards, simply add types to table before EOT.
@@ -612,17 +460,26 @@ getParityStatus Move.l ExpandMem,A1 ; find out where expandMem is
************************************************************************
getMisc clr.l d3 ; clear result
- IF not forROM THEN
- move.l ROMBase,A0 ; Get ROMBase <SM23>
- lea universalROMs,A1 ; Point to the table of Clean/Univeral ROM Sigs
- move.w (A1)+,D1 ; Get a ROM id (list is null terminated)
- beq.s @checkMemCtrlr ; -> End of table means not universal (huh)
- cmp.w D1,ROMHeader.MachineNumber(A0) ; Check a table entry
- beq.s @userDelay ; -> Yep, set the hasBootGLobs ROM bit <SM23>
- ENDIF
- bset #gestaltBootGlobals,d3 ; we have boot globals
+ move.l ROMBase,A0 ; Get ROMBase
+ move.w ROMHeader.MachineNumber(A0),D1
+ lea bootGlobROMs,A0 ; Point to the table of bootGlobbed ROM Sigs
+@cleanROMloop cmp.w (a0)+,d1
+ beq.s @hasBootGlobs
+ tst.w (a0)
+ bne.s @cleanROMloop
+ bra.s @noBootGlobs
+@hasBootGlobs bset #gestaltBootGlobals,d3 ; we have boot globals
+@noBootGlobs
-@userDelay bset #gestaltScrollingThrottle,d3 ; <SM3> <17>
+ move.w #UnimplementedTrap,d0
+ _GetTrapAddress ,newTool
+ move.l a0,d2
+ move.l #UserDelayTrap,d0
+ _GetTrapAddress ,newTool
+ cmp.l a0,d2
+ beq.s @noUserDelay
+@userDelay bset #gestaltScrollingThrottle,d3
+@noUserDelay
@squareMenus move.b NTSC,d0 ; get a copy of the NTSC byte <17>
andi.b #$0F,d0 ; only look at bottom nibble <17>
@@ -632,8 +489,10 @@ getMisc clr.l d3 ; clear result
@next move.l d3,d0 ; put result into d0 <17>
bra stdResult ; save result and exit
-; <SM4><SES>
-; Removed ROM version compare - all ROMs now have bootglobs
+; ROMs that have bootglobs
+bootGlobROMs
+ dc.w $067C ; IIci ROM
+ dc.w 0 ; eot
************************************************************************
@@ -665,28 +524,21 @@ getPageSize
@1
cmpi.b #2,CPUFlag ; are we on at least an 020?
- blo @noPages ; oh well, no page size <2.9>
+ blt @noPages ; oh well, no page size <2.9>
cmpi.b #PMMU851,MMUType ; do we have some kind of real mmu?
- blo.s @normalSize ; nope, use default page size
+ blt.s @normalSize ; nope, use default page size
Move.l ExpandMem,A0 ; find out where expandMem is
Move.l emGestalt(A0),A0 ; get global ptr
- tst.b emu68k(A0) ; Do the globals say we have a 68k Emulator? <SM30>
- bne.s @GetEmuPageSize ; -> Yes, get the saved page size <SM30>
-
lea myScratch(A0),a0 ; get address of scratch area
pmove tc,(a0) ; get a copy of the TC
bfextu (a0){8,4},d1 ; get # addr bits for pageSize <2.8>
bset d1,d0 ; get our pagesize <2.8>
bra.s @saveResult ; done!
-@GetEmuPageSize Move.l nativePageSize(A0),D0 ; Grab the NanoKernel's page size <SM30>
- bra.s @saveResult ; save result and exit <SM28>
-
@normalSize Move.l #DefaultPageSize,D0 ; use default pagesize
@saveResult bra stdResult ; save result and exit <2.9>
- SETMACHINE ; <SM42>
ENDIF ; <2.9>
@noPages
@@ -744,7 +596,6 @@ smallROM move.l #$20000,d0 ; for Mac Plus and 512ke (puny) <3.3>
romKnows move.l ROMHeader.RomSize(a0),d0 ; get size of the ROM <3.3>
machExit bra stdResult ; save result and exit <2.9>
- IF ForRom THEN ;<SM2> <PN> <22>
************************************************************************
* OS trap table base
************************************************************************
@@ -794,32 +645,6 @@ getFSAttr ; <26>
bra stdResult ; <26>
; <26>
************************************************************************
-* Quickdraw feature flags ;<14>
-************************************************************************
-
-getQuickdrawFeatures
- moveq #0, d0 ; <SM2> <PN> <26>
- move.l # \ ; <SM2> <PN> ;<14>
- (1<<gestaltHasColor) | \ ; <SM2> <PN> ;<14>
- (1<<gestaltHasDeepGWorlds) | \ ; <SM2> <PN> ;<14>
- (1<<gestaltHasDirectPixMaps) | \ ; <SM2> <PN> ;<14>
- (1<<gestaltHasGrayishTextOr) \ ; <SM2> <PN> ;<14>
- , d0 ; <SM2> <PN>
- bra stdResult ;<SM2> <PN> <26>
-
-************************************************************************
-* FontManager Attribute ;<14>
-************************************************************************
- IF hasSplineFonts THEN
-getFontMgrAttr
- move.l #(1 << gestaltOutlineFonts) | \
- (1 << gestaltPartialFonts) | \
- (1 << gestaltDiskCachedFonts) \
- , d0 ;<SM37> CSS
- bra stdResult ;<SM2> <PN> <26>
- ENDIF
- ENDIF ; IF ForRom <22>
-************************************************************************
* QD Version
************************************************************************
@@ -951,8 +776,7 @@ cleanROM move.b SystemInfo,d0 ; get status byte into d1 <2.9>
bra stdResult ; save result and exit <2.9>
universalROMs
-cleanROMs dc.w $077D ; SuperMario ROM <PN>
- dc.w $067C ; IIci ROM <PN>
+cleanROMs dc.w $067C ; IIci ROM <PN>
dc.w 0 ; eot <3.1>
@@ -987,24 +811,6 @@ VMInfo clr.l d0 ; VM installs itself, otherwise off <3.3>
bra stdResult ; save result and exit <2.9>
-************************************************************************
-* Sound Hardware
-************************************************************************
-
-GetSoundHardware
- move.l #gestaltASCSnd,d0 ; default is Apple Sound Chip <SM9> rb <SM10> CSS <SM19> <SM20> fau
-
- TestFor AwacsExists ; Do we have an Awacs audio codec?
- beq @check4dsp ; nope, try DSP
- move.l #gestaltAwacsSnd, d0 ; yep, so return the appropriate thing
- bra stdResult
-
-@check4dsp TestFor DSPExists ; Are we using the DSP for sound
- beq stdResult ; Nope
- move.l #gestaltDSPSnd,d0 ; set the DSP type
- bra stdResult ; and exit
-
-
************************************************************************
* Notification Manager <9>
************************************************************************
@@ -1036,21 +842,6 @@ getSerialAttr
(1<<gestaltHasGPIbToDCDb),d0 ; GPIb connected to DCDb
@toStdResult bra stdResult
-************************************************************************
-* Serial HAL Type (universal ROM only)
-************************************************************************
-
-getSerialHALType
- moveq #0,d0 ; clear result
-
- TestFor SerialDMA
- beq stdUnknown ; hardware does not use SerialDMA so HAL type is not valid
-
- move.l #ProductInfo.SHALMask,d0
- and.l UnivROMFlags1,d0 ; get HAL type from universal info
- lsr.l #2,d0 ; right justify
- bra stdResult
-
************************************************************************
* get slot info <2.9>
************************************************************************
@@ -1093,16 +884,14 @@ getSlotInfo
*************************************************************************
getHardwareAttr
- IF ForROM THEN ;<SM2> <PN>
movea.l ExpandMem,a0 ; get ptr to expandmem rec
movea.l emGestalt(a0),a0 ; get gestalt global ptr
cmpi.w #gestaltMacIIci,machType(a0) ; must use tables for pre Mac IIci machines
- blo getMachSpecific ; if so, don't use this routine
+ blt getMachSpecific ; if so, don't use this routine
cmpi.w #gestaltMacClassic,machType(a0) ; no universal tables on XO either <3.3>
beq getMachSpecific ; <3.3>
cmpi.w #gestaltPowerBook100,machType(a0); no universal tables on Asahi either <6><40>
beq getMachSpecific ; <6>
- ENDIF ;
clr.l d0 ; clear result
lea AttrTable,a0 ; get gestalt->universal mapping table
@@ -1135,55 +924,12 @@ getHardwareAttr
;Roll in NewGestaltSelectors from GestaltPatches.a <SM2> <PN>
@HasSoftPowerOff
; Check for HardPower/SoftPower supplies (please dont use boxflag) <SM39>
- IF forROM THEN
- TestFor hasHardPowerOff ; See if this power supply is cheap, stupid and manual! <SM39>
- bne.s @noSoftPowerOff ; -> Has a cheap power switch. <SM39>
- ELSE ; <SM39>
-
- movea.l ExpandMem,a0 ; get ptr to expandmem rec <SM2> <PN>
- movea.l emGestalt(a0),a0 ; get gestalt global ptr <SM2> <PN>
-
- cmpi.w #gestaltMacSE30,machType(a0) ; if this is an SE/30, we dont have soft power-off <SM2> <PN>
- beq.s @noSoftPowerOff
- cmpi.w #gestaltMacLC,machType(a0) ; if this is an LC, we dont have soft power-off <SM2> <PN>
- beq.s @noSoftPowerOff
- cmpi.w #gestaltMacLCII,machType(a0) ; if this is an LC II, we dont have soft power-off <SM26> rb
- beq.s @noSoftPowerOff
- cmpi.w #boxClassicII,machType(a0) ; if this is an Apollo, we dont have soft power-off <5><22> <SM2> <PN>
- beq.s @noSoftPowerOff ; <SM2> <PN>
- cmpi.w #gestaltTempest25,machType(a0) ; if this is a Tempest, we dont have soft power-off <SM20> fau
- beq.s @noSoftPowerOff ; <SM20> fau
- cmpi.w #gestaltTempest33,machType(a0) ; if this is a Tempest, we dont have soft power-off <SM23> fau
- beq.s @noSoftPowerOff ; <SM23> fau
- ENDIF ; <SM39>
- move.l #gestaltHasSoftPowerOff,d1 ; Get the Gestalt bit for SoftpowerOff
+ move.l RomBase,a0
+ cmp.w #$67C,ROMHeader.MachineNumber(a0)
+ bne.s @noSoftPowerOff
+ move.l #gestaltHasUniversalROM,d1 ; Get the Gestalt bit for SoftpowerOff
bset d1,d0 ; Say we gots SoftPowerOff
@noSoftPowerOff
-
-@IsUniversal
- IF not forROM THEN
- bsr.s IsROMUniversal ; See if this ROM is universal <SM29>
- beq.s @checkMemCtrlr ; -> Nope, skip it <SM29>
- ENDIF
-@HasUniv move.l #gestaltHasUniversalROM,d1 ; Get the Gestalt bit for Univ <6>
- bset d1,d0 ; Say we gots a Universal ROM! <6>
-
-@checkMemCtrlr move.l UnivInfoPtr,a0 ; Get pointer to ProductInfo record <SM11>
- cmp.b #DecoderKinds.OrwellDecoder,DecoderKind(a0) ; Do we have an orwell?
- bne.s @EnhLtalk ; IF we have an Orwell THEN
- bset #gestaltHasOrwell,d0 ; set the corresponding Gestalt bit
-
-@EnhLtalk TestFor hasEnhancedLTalk ; Do we have CURIO LocalTalk enhancements?
- beq.b @checkMACE ; no, check next feature
- bset #gestaltHasEnhancedLtalk,d0 ; Thats a big 10-4.
-
-@checkMACE TestFor MACEExists ; do we have MACE Ethernet Controller?
- beq.s @hardwareExit ; no, exit
- bset #gestaltHasMace,d0
-
-* bra.s @hardwareExit
-
-@hardwareExit
bra stdResult ; return the result in d0
@@ -1204,6 +950,7 @@ AttrTable dc.b gestaltHasVIA1,VIA1Exists
dc.b gestaltHasOSS,OSSExists
dc.b gestaltHasFMC,FMCExists
dc.b gestaltHasRPU,RPUExists
+ dc.b gestaltHasOrwell,OrwellExists
dc.b gestaltHasJaws,JAWSExists ;<2>
dc.b gestaltHasSonic,SonicExists ;<2>
dc.b gestaltHasSCSI961,SCSI96_1Exists ;<2>
@@ -1213,51 +960,11 @@ AttrTable dc.b gestaltHasVIA1,VIA1Exists
ENDWITH
-************************************************************************ <SM30>
-* Universal ROM check
-************************************************************************
-IsROMUniversal
- IF NOT forROM THEN
- move.l A1,-(SP) ; Save A1
- move.l ROMBase,A0 ; Get ROMBase
- lea universalROMs,A1 ; Point to the table of Clean/Univeral ROM Sigs
-@UnivLupe move.w (A1)+,D1 ; Get a ROM id (list is null terminated)
- beq.s @done ; -> End of table means not universal (huh)
- cmp.w D1,ROMHeader.MachineNumber(A0) ; Check a table entry
- bne.s @UnivLupe ; -> Nope, keep looping
- ELSE
- moveq #1,D1 ; Yes, set D0
-@Done movem.l (SP)+,A1 ; Restore A1
- rts
-
- ENDIF
-
-
-************************************************************************
-
-************************************************************************
-* AppleTalk Interrupt Disable Level
-* - for new machines to supply AppleTalk with the appropriate
-* interrupt mask, so AppleTalk doesn't default to disabling Level 4
-* and below interrupts ($2400).
-* - initially needed for Cyclone/Tempest
-*
-************************************************************************
-
-GetAtlkIntLevel
- TestFor MACEExists ; Do we have a MACE Ethernet Controller?
- Beq stdUnknown ; no, give an error
- TestFor PSCExists ; Do we have a PSC DMA/Interrupt Controller?
- Beq stdUnknown ; no, give an error
- Move.l #$2,d0 ; return interrupt mask level 2
- Bra stdResult ; and exit
-
-
************************************************************************
* machine-specific selectors
************************************************************************
- IF ( ForRom) THEN ; <2.9>
+ IF (1 OR ForRom) THEN ; <2.9>
getMachSpecific lea Selectors,a0 ; get address of selector table
clr.l d1 ; use d1 as second index
@@ -1572,18 +1279,14 @@ addLoop tst.l (a3,d3) ; end of table?
; Initialize gestalt global values
;------
-initGlobals bsr.s TestForEmu ; Test for a 68k emulator. Update globals if so. <SM30>
- bne.s @MachineType ; -> (hasEmu) Everything is setup. <SM30>
-
- move.l MemTop,D2 ; Get the current Logical RAM size <5>
+initGlobals move.l MemTop,D2 ; Get the current Logical RAM size <5>
bsr.s GetEDiskSize ; Get the EDisk size in bytes in D0 <5>
add.l D0,D2 ; add it to the LRAM size. <5>
@SaveLRAM move.l D2,realTop(a2) ; Save Logical RAM size <2.9>
- IF NOT forROM THEN
- bsr.s IsROMUniversal ; Is this a 32 bit clean ROM? <SM29>
- beq.s @not32bitClean ; -> Nope. Use Memtop for Log & Phys <1>
- ENDIF
+ move.l RomBase,A0 ; Check the ROM
+ cmp.w #$67C,8(A0) ; Is this a 32 bit clean (i.e. IIci) ROM?
+ bne.s @not32bitClean ; -> Nope. Use Memtop for Log & Phys
move.l RealMemTop,D2 ; On IIci ROM get Logical from RealMem <11>
add.l D0,D2 ; Add in size of RAM disk to logical <11>
move.l D2,realTop(a2) ; Save the adjusted Logical size <11>
@@ -1592,13 +1295,15 @@ initGlobals bsr.s TestForEmu ; Test for a 68k emulator. Update globals if
@not32bitClean move.l MemTop,memSize(a2) ; save Physical memory size
@CheckForVM move.l VMGlobals,D0 ; Get the Ptr to VM's globals <6>
+ beq.s @MachineType ; -> No VM <6>
bmi.s @MachineType ; -> No VM <6>
move.l D0,A1 ; Get VM globals Ptr <6>
IF NOT forROM THEN
- bsr.s IsROMUniversal ; Is this a 32 bit clean ROM? <SM29>
- bne.s @GetLogical ; -> Yes The Phys size is already correct <6>
+ move.l RomBase,A0 ; Check the ROM
+ cmp.w #$67C,8(A0) ; Is this a 32 bit clean (i.e. IIci) ROM?
+ beq.s @GetLogical ; -> Yes The Phys size is already correct <6>
moveq #-5,D0 ; GetPhysicalBytes
_MemoryDispatch ; Ask VM how much Physical RAM is in the machine
@@ -1629,77 +1334,60 @@ initGlobals bsr.s TestForEmu ; Test for a 68k emulator. Update globals if
;---------------------------------------------------
; GetEDiskSize
-; uses the value stored in BootGlobs record
-; at bgRamDiskSize
;
; Exit:
; D0 - Size in bytes
;---------------------------------------------------
- WITH StartGlobals ; <SM11> RLM <SM13> CSS
-GetEDiskSize move.l BootGlobPtr,a0 ; get ptr to boot globals at top of RAM <SM11> RLM
- move.l sgRamDiskSize(a0), D0 ; size of ram disk, if any <SM11> RLM
- rts ; <SM11> RLM
- ENDWITH ; (BootGlobs) <SM11> RLM
-
-
-
-;__________________________________________________________________________________________ <SM30> SAM
-; TestForEmu
-;
-; Tests for the existence of a 68k emulator. Implies a PowerPC architecture. Get the
-; CPU id from the 60x processor and save it in Gestalt's globals. Update Gestalt's
-; logical and physical RAM size globals if Emu is running.
-;
-; Entry:
-; A2 - Ptr to Gestalt's Globals
-; Exit:
-; D0 - Clear if no Emulator. Nothing else touched.
-; Set if emulator installed, GestaltGlobals.realTop/memSize/pageSize updated
-;———————————————————————————————————————————————————————————————————————————————————————————
- With NKSystemInfo, ProcessorInfo
-TestForEmu MOVE.L Line1111,-(SP) ; Save the F-Line vector
- PEA @Continue ; Push the addr of our routine
- MOVE.L (SP)+,Line1111 ; Update the vector
- MOVE.L SP,D1 ; Save the Stack Ptr case we take an F-Line
- MOVEQ #0,D0 ; Clear the "has and emulator" flag
- NOP ; Sync the pipeline
-
- _RiscCoprocessorNop ; Either do nothing, or skip the next instructon
- MOVEQ #1,D0 ; Set the "has a 68k emulator" flag
-
-@Continue MOVE.L D1,SP ; Restore the SP (trash the exception frame if we made one)
- MOVE.L (SP)+,Line1111 ; Restore the Vector
- NOP ; See above
-
- MOVE.B D0,emu68k(A2) ; Save the Result in Gestalt's globals
- BEQ.S @Done ; -> No, emu. No data page.
-
- MOVE.L ProcessorInfoPtr,A3 ; Point to the NanoKernel's Processor Info record
-
- MOVE.L PageSize(A3),nativePageSize(A2) ; Save the native page size in Gestalt's globals
- MOVE.W ProcessorVersionReg(A3),D1 ; Get the PowerPC CPU version
- MOVE.B D1,nativeCPU(A2) ; Save the native CPU type
-
- MOVE.L NKSystemInfoPtr,A3 ; Point to the NanoKernel's System Info record
-
- MOVE.L PhysicalMemorySize(A3),D3 ; Get the Physical Memory Size
- MOVE.L D3,memSize(A2) ; Save it in Gestalt's globals
- TST.L VMGlobals ; Is VM on?
- BMI.S @noVM ; -> Nope
-
- MOVEQ #-6,D0 ; GetLogicalSize
- _MemoryDispatch ; Ask VM how much logical RAM we have
-
- SUB.L UsableMemorySize(A3),D3 ; Calc ram allocated by the NanoKernel
- ADD.L D0,D3 ; Add that to VM's logical size.
-
-@noVM MOVE.L D3,realTop(A2) ; Save the Logical RAM size
-@Done RTS
-
- EndWith
-
- IMPORT GESTALTSCRIPTMGR ; <SM8> rb
- IMPORT GetSoundAttributes ; found in SndLowLevel.a
+GetEDiskSize
+ movem.l a1/a2/d2,-(sp)
+ move.l RomBase,a0
+ cmp.w #$37A,ROMHeader.MachineNumber(a0) ; Portable
+ beq.s @returnZero
+
+ lea DrvQHdr+QHead-QLink,a0
+@dqloop move.l (a0),d0
+ beq.s @returnZero
+ move.l d0,a0
+
+ move.w dQDrive(a0),d1
+ move.w dQRefNum(a0),d0
+ move.w d0,d2
+ add.w #1,d0
+ neg.w d0
+ asl.w #2,d0
+ move.l UTableBase,a1
+ move.l (a1,d0),a1
+ move.l (a1),a1
+ btst #dRAMBased,dCtlFlags+1(a1)
+ beq.s @romBased
+ move.l (a1),a1
+@romBased move.l (a1),a1
+ lea drvrName(a1),a1
+ lea @dotEDisk,a2
+ clr.l d0
+ move.b (a2),d0
+@cmploop cmp.b (a2)+,(a1)+
+ bne.s @dqloop
+ dbra d0,@cmploop
+
+ lea -CntrlParam.size(sp),sp
+ move.l sp,a0
+ clr.l CntrlParam.ioCompletion(a0)
+ clr.w CntrlParam.ioVRefNum(a0)
+ move.w d2,CntrlParam.ioCRefNum(a0)
+ move.w d1,CntrlParam.ioVRefNum(a0)
+ move.w #drvSizeCode,CntrlParam.csCode(a0)
+ _Status ,immed
+ move.l CntrlParam.csParam(a0),d0
+ lea CntrlParam.size(sp),sp
+ bra.s @return
+
+@returnZero clr.l d0
+@return movem.l (sp)+,a1/a2/d2
+ rts
+
+ STRING AsIs
+@dotEDisk dc.b 6, '.EDisk', 0
;-----
; Table of built-in Gestalt selectors
@@ -1734,24 +1422,10 @@ SelectorTable Selector gestaltMachineType, getMachineType ; machine type
Selector gestaltMiscAttr, getMisc ; misc attributes
Selector gestaltNotificationMgrAttr, notification ; nmgr attributes
Selector gestaltSerialAttr, getSerialAttr ; serial attributes
- Selector gestaltSerialHALType, getSerialHALType ; serial HAL resource ID
- IF ForRom THEN ; <PN> <SM2>
- Selector gestaltOSTable, getOSTable ; base of the OS trap table <PN> <SM2>
- Selector gestaltToolboxTable, getToolboxTable ; base of the toolbox trap table <PN> <SM2>
- Selector gestaltExtToolboxTable, getExtToolboxTable ; base of the ext. toolbox trap table <PN> <SM2>
- Selector gestaltFSAttr, getFSAttr ; return file system attributes <PN> <SM2>
- Selector gestaltQuickdrawFeatures, getQuickdrawFeatures ; return ColorQuickdrawfeatures <PN> <SM2>
- IF hasSplineFonts THEN
- Selector gestaltFontMgrAttr, getFontMgrAttr ; return true if outline fonts <PN> <SM2>
- ENDIF
- Selector gestaltScriptMgrVersion, GESTALTSCRIPTMGR ; Script Manager version number <SM8> rb
- Selector gestaltScriptCount, GESTALTSCRIPTMGR ; Script Manger count of scripts <SM8> rb
- Selector gestaltSoundAttr, GetSoundAttributes ; get the sound attributes
- Selector gestaltSoundHardware, GetSoundHardware ; get the sound harwdware chip type <SM9> rb
- Selector gestaltAtlkIntLevel, GetAtlkIntLevel ; get cpu's desired appletalk interrupt mask level
- ENDIF ; <22>
- Selector gestaltSysArchitecture, getSysArchitecture ; System Architecture <SM24>
- Selector gestaltNativeCPUtype, getNativeCPUtype ; Native Processor Type <SM24>
+ Selector gestaltOSTable, getOSTable ; base of the OS trap table
+ Selector gestaltToolboxTable, getToolboxTable ; base of the toolbox trap table
+ Selector gestaltExtToolboxTable, getExtToolboxTable ; base of the ext. toolbox trap table
+ Selector gestaltFSAttr, getFSAttr ; return file system attributes
Selector 13, Internal ; special
Selector 7, Internal ; special
Selector 0, 0 ; EOT
@@ -1860,7 +1534,7 @@ findMMUType
Move.l ExpandMem,A0 ; find out where expandMem is
Move.l emGestalt(A0),A0 ; get global ptr
Cmp.w #gestaltMacSE,machType(A0) ; should we bother to find out?
- Blo.s @noMMU ; nothing before SE can have one (yes)
+ Blt.s @noMMU ; nothing before SE can have one (yes)
ENDIF
IF hasMMU or (not ForRom) THEN ;
@@ -1869,7 +1543,7 @@ findMMUType
cmp.b #HMMU,d0 ; is it an AMU?
beq.s @MMUDone ; then we're done
cmp.b #PMMU851,d0 ; then make sure there is one at all
- Blo.s @noMMU ; no mmu
+ Blt.s @noMMU ; no mmu
Subq #1,D0 ; convert to right format
Bra.s @MMUDone ; go return result
ENDIF ;
@@ -1954,13 +1628,13 @@ findParityStatus
st.b (a1) ; write wrong parity mode
clr.b (a3,d2.w) ; write one SIMM with bad parity
- st.b rpuReset(a1) ; sync up RPU serial line <SM4><SES>
- clr.b (a1) ; write good parity mode <SM4><SES>
-
tst.l (a3) ; parity error if it's a parity SIMM
nop ; wait for an interrupt
nop
+ st.b rpuReset(a1) ; sync up RPU serial line
+ clr.b (a1) ; write good parity mode
+
move.l d1,(a3) ; restore contents of longword
move #$2000,sr ; turn interrupts back on
move.l d4,AutoInt7 ; restore NMI vector
diff --git a/OS/Gestalt/GestaltLookup.c b/OS/Gestalt/GestaltLookup.c
--- a/OS/Gestalt/GestaltLookup.c
+++ b/OS/Gestalt/GestaltLookup.c
@@ -10,7 +10,6 @@
Change History (most recent first):
<SM5> 11/10/93 fau Removed ulong typedef since it's now in Types.h.
- <SM4> 5/18/93 RC perfomance/bug fix changed a > to >> in FindLong
<SM3> 4/8/93 CSS Use GestaltPrivateEqu.h, and remove definitions in this file.
<11> 10/28/92 DTY Use Get/Set macros to access ExpandMem.
<10> 12/13/90 SAM Making Gestalt check for a nil proc ptr on _NewGestalt calls.
@@ -247,7 +246,7 @@ findLong(ulong selector, int* index)
min = 0;
max = GestaltPtr->slotsUsed-1;
do {
- i = min + ((max - min) >> 1); /* get middle of range */
+ i = min + ((max - min) > 1); /* get middle of range */
if (tablePtr[i][0] > selector) /* are we too high? (is that possible?) */
max = i;
else if (tablePtr[i][0] < selector) /* are we too low? */
diff --git a/OS/HFS/Cache/DiskCache.a b/OS/HFS/Cache/DiskCache.a
--- a/OS/HFS/Cache/DiskCache.a
+++ b/OS/HFS/Cache/DiskCache.a