From 9dd3c4bef84df2ea30f5ec2c5e97b043e8267b3f Mon Sep 17 00:00:00 2001 From: Elliot Nunn Date: Sun, 16 Feb 2020 08:18:24 +0800 Subject: [PATCH] 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 --- patchset/Cube-E/2-build-system.patch | 28 +- patchset/Cube-E/3-amphibian-dna.patch | 207 ------- patchset/Cube-E/6-source.patch | 799 +++++++++++++++++++++++++- 3 files changed, 824 insertions(+), 210 deletions(-) diff --git a/patchset/Cube-E/2-build-system.patch b/patchset/Cube-E/2-build-system.patch index d3b9254..a930e96 100644 --- a/patchset/Cube-E/2-build-system.patch +++ b/patchset/Cube-E/2-build-system.patch @@ -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 diff --git a/patchset/Cube-E/3-amphibian-dna.patch b/patchset/Cube-E/3-amphibian-dna.patch index 24faf91..bccd36d 100644 --- a/patchset/Cube-E/3-amphibian-dna.patch +++ b/patchset/Cube-E/3-amphibian-dna.patch @@ -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 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 diff --git a/patchset/Cube-E/6-source.patch b/patchset/Cube-E/6-source.patch index 9f13f39..b74f7fb 100644 --- a/patchset/Cube-E/6-source.patch +++ b/patchset/Cube-E/6-source.patch @@ -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 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): + ; +-; 11/19/93 chp When testing for hasEnhancedLTalk, always use ProductInfo flags. +-; Remove Cyclone/Tempest boxFlag checks. +-; 11/8/93 SAM Roll in from mc900ftjesus. +-; 11/8/93 SAM Updated TestForEmu to correctly adjust the logical RAM size when +-; an EDisk is present. +-; 10/28/93 SAM Roll in from mc900ftjesus. +-; 10/28/93 SAM Changed getNativeCPUType to put the PowerPC cpus in the $100 +-; range. +-; 10/10/93 SAM Roll in from mc900ftjesus. +-; 10/10/93 SAM Added a universal check for hasEnhancedLTalk in gestaltHardware. +-; 8/12/93 BG Converted references to gestaltCyclone40 to gestaltQuadra840AV. +-; 8/7/93 SAM Removed temporary fix to LRAM size made in . +-; 8/4/93 JDR Integrate Sound Manager 3.0 project. +-; 7/20/93 SAM Added a macro for setting the assembler machine directive to the +-; appropriate thing (based on the build time flag "CPU"). +-; 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. +-; 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. +-; 6/14/93 kc Roll in Ludwig. +-; 6/3/93 SAM Updated that stupid list of boxflags in hassoftpoweroff to +-; reflect the new PDM boxflags. +-; 5/21/93 CSS Set bits in gestaltFontAttr to indicate settings for double byte +-; support. +-; 4/23/93 SAM Added the temporary PDMEvt2 boxflag to the brain-dead list of +-; boxflag based cmp/bne for hassoftpoweroff. +-; 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. +-; 4/8/93 KW changed gestaltids for cyclone/tempest products when determining +-; if enhanced localtalk is present. +-; 4/8/93 CSS Use gestalt global for edisk size as the boot globals get hosed +-; by VM. +-; 4/5/93 jb Added TestFor AwacsExists in GetSoundHardware. +-; 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. +-; 2/20/93 SAM Updated all the EMMU stuff. MMU page size, emulator present, +-; sys architecture, all updated. Fixed up the Universal ROM +-; check. +-; 02/10/93 HY Remove change. We no longer need the gestaltNoAppleTalk bit. +-; 2/5/93 SAM Added support for Emulated page size. +-; 2/5/93 SAM Updated the System architecture selector to use universal info. +-; 01/11/93 HY Added code into getMisc for setting gestaltNoAtlkSupport bit. +-; If this bit is set then this machines DOESN'T support AppleTalk. +-; 1/10/93 RC Soft Power Off now works correctly for PDM +-; 12/13/92 SAM Added gestaltNativeCPUtype and gestaltSysArchitecture. Restored +-; universal code in the hdwr selector. Cleaned things up. +-; 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. +-; 11/13/92 mal Added MACE Ethernet to hardware attributes gestalt. +-; 11/11/92 RB The Mac LC II does not have Soft Power Off. +-; 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. +-; 11/9/92 fau Made gestaltSoundHardware return 'dsp ' for a Tempest. Rolled +-; back change in so the Text-to-speech guys fix it. +-; 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. +-; 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. +-; 10/27/92 fau Forgot to change a label to actually execute the +-; enhancedlocaltalk code. +-; 10/27/92 fau Added a gestaltHasEnhancedLtalk check to hardwareAttr to enable +-; the bit on Cyclone and Tempest. +-; 9/3/92 PN Nuke the check for IIci because this is SuperMario. +-; 8/20/92 CS Fix another problem with BootGlobs changing to StartGlobals per +-; roll-in from Reality. +-; 8/17/92 CCH Change getHardwareAttr to not use OrwellExists bit since it was +-; removed. +-; 7/24/92 RLM change GetEDiskSize, now uses BootGlobs, this removes the +-; requirement to have drivres installed before Gestalt +-; 7/20/92 CSS Names of the sound hardware attributes have changed because they were moved +-; from GestaltEqu.a to GestaltEquPriv.a by JDR. +-; 7/14/92 RB Added a function to return the gestaltSoundHardware attributes. +-; 7/1/92 RB Added the selectors for the gestalt script manager attributes. +-; The script Mgr function for gestalt is in ScripMgrExtensions.a + ; 5/19/92 CS Integrated changes from Reality: + ; <42> 4/9/92 JSM #1026795,: gestaltSerialAttr should be the same for a Mac +-; LC II as a Mac LC. +-; 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. +-; 4/28/92 PN Fix OutlineFont Gestalt so that getFontMgrAtr returns the +-; correct result +-; 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> + + +-************************************************************************ +-* 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? +- BEQ.S @MC68k ; -> Nope, ol' slow boy. +- +-@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 +- +- +-************************************************************************ +-* 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? +- BEQ.S @MC68k ; -> Nope, ol' slow boy. +- +- MOVEQ.L #0,D0 ; Clear out D0 +- MOVE.B nativeCPU(A1),D0 ; Get the PowerPC processor type +- ADD.W #$100,D0 ; Bump the PowerPC CPU type into the $100 range +- +- BRA stdResult ; -> Return +-@MC68k MOVE.B CPUFlag,D0 ; Return CPU flag +- 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 +- 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 +- 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 ; <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 + +-; +-; 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? +- bne.s @GetEmuPageSize ; -> Yes, get the saved page size +- + 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 +- bra.s @saveResult ; save result and exit +- + @normalSize Move.l #DefaultPageSize,D0 ; use default pagesize + @saveResult bra stdResult ; save result and exit <2.9> + +- SETMACHINE ; + 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 ; <22> + ************************************************************************ + * OS trap table base + ************************************************************************ +@@ -794,32 +645,6 @@ getFSAttr ; <26> + bra stdResult ; <26> + ; <26> + ************************************************************************ +-* Quickdraw feature flags ;<14> +-************************************************************************ +- +-getQuickdrawFeatures +- moveq #0, d0 ; <26> +- move.l # \ ; ;<14> +- (1< ;<14> +- (1< ;<14> +- (1< ;<14> +- (1< ;<14> +- , d0 ; +- bra stdResult ; <26> +- +-************************************************************************ +-* FontManager Attribute ;<14> +-************************************************************************ +- IF hasSplineFonts THEN +-getFontMgrAttr +- move.l #(1 << gestaltOutlineFonts) | \ +- (1 << gestaltPartialFonts) | \ +- (1 << gestaltDiskCachedFonts) \ +- , d0 ; CSS +- bra stdResult ; <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 +- dc.w $067C ; IIci ROM ++cleanROMs dc.w $067C ; IIci ROM + 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 rb CSS 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< + ************************************************************************ +@@ -1093,16 +884,14 @@ getSlotInfo + ************************************************************************* + + getHardwareAttr +- IF ForROM THEN ; + 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 + @HasSoftPowerOff + ; Check for HardPower/SoftPower supplies (please dont use boxflag) +- IF forROM THEN +- TestFor hasHardPowerOff ; See if this power supply is cheap, stupid and manual! +- bne.s @noSoftPowerOff ; -> Has a cheap power switch. +- ELSE ; +- +- movea.l ExpandMem,a0 ; get ptr to expandmem rec +- movea.l emGestalt(a0),a0 ; get gestalt global ptr +- +- cmpi.w #gestaltMacSE30,machType(a0) ; if this is an SE/30, we don’t have soft power-off +- beq.s @noSoftPowerOff +- cmpi.w #gestaltMacLC,machType(a0) ; if this is an LC, we don’t have soft power-off +- beq.s @noSoftPowerOff +- cmpi.w #gestaltMacLCII,machType(a0) ; if this is an LC II, we don’t have soft power-off rb +- beq.s @noSoftPowerOff +- cmpi.w #boxClassicII,machType(a0) ; if this is an Apollo, we don’t have soft power-off <5><22> +- beq.s @noSoftPowerOff ; +- cmpi.w #gestaltTempest25,machType(a0) ; if this is a Tempest, we don’t have soft power-off fau +- beq.s @noSoftPowerOff ; fau +- cmpi.w #gestaltTempest33,machType(a0) ; if this is a Tempest, we don’t have soft power-off fau +- beq.s @noSoftPowerOff ; fau +- ENDIF ; +- 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 +- beq.s @checkMemCtrlr ; -> Nope, skip it +- 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 +- 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 ; That’s 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 + + +-************************************************************************ +-* 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. +- bne.s @MachineType ; -> (hasEmu) Everything is setup. +- +- 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? +- 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? +- 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 ; RLM CSS +-GetEDiskSize move.l BootGlobPtr,a0 ; get ptr to boot globals at top of RAM RLM +- move.l sgRamDiskSize(a0), D0 ; size of ram disk, if any RLM +- rts ; RLM +- ENDWITH ; (BootGlobs) RLM +- +- +- +-;__________________________________________________________________________________________ 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 ; 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 ; +- 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 gestaltQuickdrawFeatures, getQuickdrawFeatures ; return ColorQuickdrawfeatures +- IF hasSplineFonts THEN +- Selector gestaltFontMgrAttr, getFontMgrAttr ; return true if outline fonts +- ENDIF +- Selector gestaltScriptMgrVersion, GESTALTSCRIPTMGR ; Script Manager version number rb +- Selector gestaltScriptCount, GESTALTSCRIPTMGR ; Script Manger count of scripts rb +- Selector gestaltSoundAttr, GetSoundAttributes ; get the sound attributes +- Selector gestaltSoundHardware, GetSoundHardware ; get the sound harwdware chip type rb +- Selector gestaltAtlkIntLevel, GetAtlkIntLevel ; get cpu's desired appletalk interrupt mask level +- ENDIF ; <22> +- Selector gestaltSysArchitecture, getSysArchitecture ; System Architecture +- Selector gestaltNativeCPUtype, getNativeCPUtype ; Native Processor Type ++ 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 +- clr.b (a1) ; write good parity mode +- + 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): + + 11/10/93 fau Removed ulong typedef since it's now in Types.h. +- 5/18/93 RC perfomance/bug fix changed a > to >> in FindLong + 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