Split off Cube-E/NewWorld hackery
This commit is contained in:
parent
80bb3c8f35
commit
70f17034d2
|
@ -0,0 +1,192 @@
|
|||
From: Horst Beepmanh <>
|
||||
Subject: Include-file shims
|
||||
|
||||
Generally in line with my tolerance of theoretical impurity. Some
|
||||
"header" files had their name changed, and this allows them to be
|
||||
accessed using the old name.
|
||||
---
|
||||
diff --git a/Interfaces/AIncludes/ATalkEqu.a b/Interfaces/AIncludes/ATalkEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/ATalkEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'AppleTalk.a'
|
||||
diff --git a/Interfaces/AIncludes/ATalkEqu.a.idump b/Interfaces/AIncludes/ATalkEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/ATalkEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/PackMacs.a b/Interfaces/AIncludes/PackMacs.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/PackMacs.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'Packages.a'
|
||||
diff --git a/Interfaces/AIncludes/PackMacs.a.idump b/Interfaces/AIncludes/PackMacs.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/PackMacs.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/PaletteEqu.a b/Interfaces/AIncludes/PaletteEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/PaletteEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'Palettes.a'
|
||||
diff --git a/Interfaces/AIncludes/PaletteEqu.a.idump b/Interfaces/AIncludes/PaletteEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/PaletteEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/PrEqu.a b/Interfaces/AIncludes/PrEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/PrEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'Printing.a'
|
||||
diff --git a/Interfaces/AIncludes/PrEqu.a.idump b/Interfaces/AIncludes/PrEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/PrEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/PrintCallsEqu.a b/Interfaces/AIncludes/PrintCallsEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/PrintCallsEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'PrintTrapsEqu.a'
|
||||
diff --git a/Interfaces/AIncludes/PrintCallsEqu.a.idump b/Interfaces/AIncludes/PrintCallsEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/PrintCallsEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/QDOffscreenEqu.a b/Interfaces/AIncludes/QDOffscreenEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/QDOffscreenEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'QDOffscreen.a'
|
||||
diff --git a/Interfaces/AIncludes/QDOffscreenEqu.a.idump b/Interfaces/AIncludes/QDOffscreenEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/QDOffscreenEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/QuickEqu.a b/Interfaces/AIncludes/QuickEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/QuickEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'QuickDraw.a'
|
||||
diff --git a/Interfaces/AIncludes/QuickEqu.a.idump b/Interfaces/AIncludes/QuickEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/QuickEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/SCSIEqu.a b/Interfaces/AIncludes/SCSIEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/SCSIEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'SCSI.a'
|
||||
diff --git a/Interfaces/AIncludes/SCSIEqu.a.idump b/Interfaces/AIncludes/SCSIEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/SCSIEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/ScriptEqu.a b/Interfaces/AIncludes/ScriptEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/ScriptEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'Script.a'
|
||||
diff --git a/Interfaces/AIncludes/ScriptEqu.a.idump b/Interfaces/AIncludes/ScriptEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/ScriptEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/ShutDownEqu.a b/Interfaces/AIncludes/ShutDownEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/ShutDownEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'ShutDown.a'
|
||||
diff --git a/Interfaces/AIncludes/ShutDownEqu.a.idump b/Interfaces/AIncludes/ShutDownEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/ShutDownEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/SlotEqu.a b/Interfaces/AIncludes/SlotEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/SlotEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'Slots.a'
|
||||
diff --git a/Interfaces/AIncludes/SlotEqu.a.idump b/Interfaces/AIncludes/SlotEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/SlotEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/ToolEqu.a b/Interfaces/AIncludes/ToolEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/ToolEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'ToolUtils.a'
|
||||
diff --git a/Interfaces/AIncludes/ToolEqu.a.idump b/Interfaces/AIncludes/ToolEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/ToolEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Interfaces/AIncludes/VideoEqu.a b/Interfaces/AIncludes/VideoEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/VideoEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'Video.a'
|
||||
diff --git a/Interfaces/AIncludes/VideoEqu.a.idump b/Interfaces/AIncludes/VideoEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Interfaces/AIncludes/VideoEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
diff --git a/Internal/Asm/DecompressorPatchEqu.a b/Internal/Asm/DecompressorPatchEqu.a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Internal/Asm/DecompressorPatchEqu.a
|
||||
@@ -0,0 +1 @@
|
||||
+ INCLUDE 'Decompression.a'
|
||||
diff --git a/Internal/Asm/DecompressorPatchEqu.a.idump b/Internal/Asm/DecompressorPatchEqu.a.idump
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Internal/Asm/DecompressorPatchEqu.a.idump
|
||||
@@ -0,0 +1 @@
|
||||
+TEXTMPS
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.18.0
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,880 @@
|
|||
From: Horst Beepmanh <>
|
||||
Subject: Filthy hacks for NewWorld ROM
|
||||
|
||||
---
|
||||
diff --git a/Make/System.make b/Make/System.make
|
||||
--- a/Make/System.make
|
||||
+++ b/Make/System.make
|
||||
@@ -165,26 +165,10 @@ ResourceFiles = ∂
|
||||
"{MiscDir}APTK57.rsrc" ∂
|
||||
|
||||
LinkedPatchObjs = ∂
|
||||
- "{ObjDir}PatchProtector.a.o" ∂
|
||||
- "{ObjDir}ProcessManagerSegmentTweaks.a.o" ∂
|
||||
- "{ObjDir}SCSILinkPatch.a.o" ∂
|
||||
- "{ObjDir}FileMgrPatches.a.o" ∂
|
||||
- "{ObjDir}LaterFileMgrPatches.a.o" ∂
|
||||
- "{ObjDir}AllB&WQDPatch.a.o" ∂
|
||||
- "{ObjDir}Mouse.a.o" ∂
|
||||
- "{ObjDir}ResourceMgrPatches.a.o" ∂
|
||||
- "{ObjDir}SonyPatches.a.o" ∂
|
||||
- "{ObjDir}BrightnessPatches.a.o" ∂
|
||||
- "{ObjDir}MMUPatches.a.o" ∂
|
||||
- "{ObjDir}MenuMgrPatch.a.o" ∂
|
||||
- "{ObjDir}MenuMgrPatchII.a.o" ∂
|
||||
- "{ObjDir}SlotMgrPatch.a.o" ∂
|
||||
- "{ObjDir}SlotMgrInit.a.o" ∂
|
||||
- "{ObjDir}SlotMgr.a.o" ∂
|
||||
- "{ObjDir}DialogMgrPatches.a.o" ∂
|
||||
- "{ObjDir}QuickDrawPatches.a.o" ∂
|
||||
- "{ObjDir}WindowMgrPatches.a.o" ∂
|
||||
+ "{LibDir}HelpMgr.lib" ∂
|
||||
+ "{LibDir}IconUtils.lib" ∂
|
||||
"{IfObjDir}interface.o" ∂
|
||||
+ "{Libraries}Runtime.o" ∂
|
||||
"{ObjDir}TrashTalk.a.o"
|
||||
|
||||
|
||||
diff --git a/OS/StartMgr/Boot3.a b/OS/StartMgr/Boot3.a
|
||||
--- a/OS/StartMgr/Boot3.a
|
||||
+++ b/OS/StartMgr/Boot3.a
|
||||
@@ -459,6 +459,21 @@ kDALCreator equ 'dald' ; <12>
|
||||
|
||||
BootCode MAIN
|
||||
|
||||
+ MOVEQ #19,D0 ; Clear low bit of ECR19 to turn off DR
|
||||
+ DC.W $FE04 ; _MoveFromECR
|
||||
+ MOVE.L A0,D1
|
||||
+ BCLR #1,D1
|
||||
+ MOVE.L D1,A0
|
||||
+ DC.W $FE05 ; _MoveToECR
|
||||
+
|
||||
+
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Hello from the System 7 boot3 resource^n'
|
||||
+@afterwards
|
||||
|
||||
; Registers passed in from boot blocks:
|
||||
; A3 = handle to this resource
|
||||
@@ -512,7 +527,16 @@ CheckForPreGibblySystem
|
||||
btst #systemEnabledBit,ExtensionsEnabledByte
|
||||
beq.s @gibblyPresent
|
||||
moveq #dsOldSystem,d0
|
||||
- _SysError
|
||||
+
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'CheckForPreGibblySystem failed^n'
|
||||
+@afterwards
|
||||
+
|
||||
+; _SysError
|
||||
@gibblyPresent
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
@@ -588,6 +612,18 @@ ShowStartupScreen
|
||||
; Now, do the welcome screen.
|
||||
|
||||
bsr EraseMyIcon
|
||||
+
|
||||
+
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got past EraseMyIcon^n'
|
||||
+@afterwards
|
||||
+
|
||||
+
|
||||
+
|
||||
moveq #dsGreeting,d0 ; put up the greeting
|
||||
_SysError
|
||||
|
||||
@@ -653,6 +689,14 @@ FixMMUTypeAndKillMemoryDispatch
|
||||
; according to a calculated Clock rate (25 or 33Mhz currently). <SAM>
|
||||
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to CheckFor040CacheInhibit^n'
|
||||
+@afterwards
|
||||
+
|
||||
CheckFor040CacheInhibit ; <5> SAM
|
||||
|
||||
CMPI.B #cpu68040,cpuFlag ; Are we on an 040?
|
||||
@@ -705,12 +749,28 @@ CheckFor040CacheInhibit ; <5> SAM
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to InstallDispatch^n'
|
||||
+@afterwards
|
||||
+
|
||||
; Install the new dispatcher for systems that need it.
|
||||
|
||||
import InstallDispatch
|
||||
jsr InstallDispatch
|
||||
|
||||
;——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
+XXXXXXX
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to CheckForExtensionsDisabled^n'
|
||||
+@afterwards
|
||||
|
||||
CheckForExtensionsDisabled
|
||||
|
||||
@@ -853,6 +913,14 @@ RememberPhysicalMemTop
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to DoWeHaveEnoughRAMToBoot^n'
|
||||
+@afterwards
|
||||
+
|
||||
DoWeHaveEnoughRAMToBoot
|
||||
|
||||
; We’ve got to have at least minRAMNeeded to get 7.0 on its feet. minRAMNeeded was chosen
|
||||
@@ -890,6 +958,14 @@ LoadTemporaryStripAddress
|
||||
@done
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to LoadVMAndDebugger^n'
|
||||
+@afterwards
|
||||
+
|
||||
LoadVMAndDebugger
|
||||
|
||||
; Load VM and MacsBug, but do it in a different order if Joe’s debugging signature is found.
|
||||
@@ -976,6 +1052,14 @@ CleanUpBootPort
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to RelocateBootWorld^n'
|
||||
+@afterwards
|
||||
+
|
||||
RelocateBootWorld
|
||||
|
||||
; If VM has added memory to the machine, relocate all the boot stuff to the new MemTop/2 <10>
|
||||
@@ -1129,6 +1213,14 @@ LoadFileSystemCache
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to LoadPTCHZero^n'
|
||||
+@afterwards
|
||||
+
|
||||
LoadPTCHZero
|
||||
|
||||
MOVEQ #0,D0 ; load patches for all ROMs
|
||||
@@ -1149,9 +1241,9 @@ LoadPTCHROMSpecific
|
||||
|
||||
; *** obsolete, get rid of this eventually
|
||||
|
||||
- MOVEA.L ROMBase,a0 ; ID = ROM version number
|
||||
- MOVE.W 8(A0),D0 ; load ROM-specific patch
|
||||
- BSR LoadPTCH
|
||||
+; MOVEA.L ROMBase,a0 ; ID = ROM version number
|
||||
+; MOVE.W 8(A0),D0 ; load ROM-specific patch
|
||||
+; BSR LoadPTCH
|
||||
|
||||
LoadLinkedPatches
|
||||
lea LinkedPatchName,a0
|
||||
@@ -1198,6 +1290,14 @@ LoadLinkedPatches
|
||||
_SysError
|
||||
|
||||
@done
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to LoadPTCHROMSpecific ... actually i killed that^n'
|
||||
+@afterwards
|
||||
+
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
@@ -1219,6 +1319,14 @@ TestForNeedToReset
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to SetupProcessMgrLaunch^n'
|
||||
+@afterwards
|
||||
+
|
||||
SetupProcessMgrLaunch
|
||||
|
||||
; So that old code that patches Launch will still work, we point the Launch trap to the code used
|
||||
@@ -1314,6 +1422,14 @@ LoadINITResourcesInSystemFile
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to LoadAROSE^n'
|
||||
+@afterwards
|
||||
+
|
||||
LoadAROSE
|
||||
|
||||
; Load A/ROSE.
|
||||
@@ -1335,21 +1451,37 @@ LoadAROSE
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to LoadAppleTalk^n'
|
||||
+@afterwards
|
||||
+
|
||||
LoadAppleTalk
|
||||
|
||||
; Load AppleTalk from System.
|
||||
|
||||
- btst.b #hwCbAUX,HWCfgFlags ; are we under A/UX?
|
||||
- bnz.s @noALAP
|
||||
-
|
||||
- move.l #'lmgr',d5 ; call common routine to load and execute resource <29>
|
||||
- clr.w d6
|
||||
- clr.w d3 ; clear the DontCloseOnError flag
|
||||
- bsr ExecuteFromSystem ; <34>
|
||||
-@noALAP
|
||||
+; btst.b #hwCbAUX,HWCfgFlags ; are we under A/UX?
|
||||
+; bnz.s @noALAP
|
||||
+;
|
||||
+; move.l #'lmgr',d5 ; call common routine to load and execute resource <29>
|
||||
+; clr.w d6
|
||||
+; clr.w d3 ; clear the DontCloseOnError flag
|
||||
+; bsr ExecuteFromSystem ; <34>
|
||||
+;@noALAP
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to LoadNetBoot^n'
|
||||
+@afterwards
|
||||
+
|
||||
LoadNetBoot ; <33>
|
||||
|
||||
; Load NetBoot.
|
||||
@@ -1385,6 +1517,14 @@ LoadNetBoot ; <33>
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to LoadSystemComponents^n'
|
||||
+@afterwards
|
||||
+
|
||||
LoadSystemComponents ; <9>
|
||||
|
||||
; Register any components lurking in the system file <9>
|
||||
@@ -1402,9 +1542,30 @@ LoadSystemComponents ; <9>
|
||||
@skipThings
|
||||
|
||||
|
||||
+
|
||||
+ForceBalloons
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to LoadSystemComponents^n'
|
||||
+@afterwards
|
||||
+
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+GapHerePlease
|
||||
+
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to LoadINITFiles^n'
|
||||
+@afterwards
|
||||
+
|
||||
LoadINITFiles
|
||||
+ bra @skipINITs
|
||||
|
||||
; This section searches the default volume for files of type cdev, RDEV
|
||||
; and INIT. When it finds one, it opens it and attempts to Get1IndResource
|
||||
@@ -1472,6 +1633,15 @@ LoadINITFiles
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+FontsOverNet
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to _AddScriptFonts^n'
|
||||
+@afterwards
|
||||
+
|
||||
; Now that networks are usable, give script systems a chance to install fonts over the network. <14>
|
||||
|
||||
subq #2,sp ; make room for OSErr result
|
||||
@@ -1481,11 +1651,29 @@ LoadINITFiles
|
||||
|
||||
;------------------------------------------------------------------------------------------------
|
||||
|
||||
+TellTSMStuff
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to TSM^n'
|
||||
+@afterwards
|
||||
+
|
||||
; Go tell text services manager what the system script is and what its default language is
|
||||
- bsr TellTSMScriptAndLanguage
|
||||
+; bsr TellTSMScriptAndLanguage
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+SetNewPtrStartup
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to set SetNewPtrStartup^n'
|
||||
+@afterwards
|
||||
+
|
||||
; Switch from the boot-time NewPtrStartup to one that returns an error. <30>
|
||||
|
||||
move.l BootGlobals.postBootNewPtrStartup(a5),a0
|
||||
@@ -1494,6 +1682,15 @@ LoadINITFiles
|
||||
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
+NoMoreTwoHeaps
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to _RsrcZoneInit^n'
|
||||
+@afterwards
|
||||
+
|
||||
; We still have two heaps. We are going to get minSysHeapFreeAfterBoot bytes, even if it
|
||||
; means growing the system heap again. This time, though, we’ll stop reserving anything,
|
||||
; and take as much as we need.
|
||||
@@ -1512,6 +1709,15 @@ LoadINITFiles
|
||||
; is used to start the Process Mgr. Any patches to Launch will be executed, followed by the Process
|
||||
; Mgr. itself.
|
||||
|
||||
+DoTheMF
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Got to MultiFinder^n'
|
||||
+@afterwards
|
||||
+
|
||||
clr.w -(sp) ; for the wierdos who look
|
||||
clr.l -(sp) ; we pass the parameters like the old launch
|
||||
pea #'MultiFinder' ; (rest in peace)
|
||||
@@ -1567,6 +1773,15 @@ StartProcessMgr
|
||||
SUB.W #processMgrStackSize,A0 ; make space for stack
|
||||
_SetApplLimit ; set the new limit
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'Start the Process Mgr^n'
|
||||
+@afterwards
|
||||
+
|
||||
+
|
||||
; Start the Process Mgr.
|
||||
|
||||
rts
|
||||
@@ -2943,6 +3158,16 @@ EndCachesOffMFMPatch EQU *
|
||||
EndOfBootCode
|
||||
|
||||
|
||||
+BLAT proc export
|
||||
+ move.l 4(sp),a0
|
||||
+ add.l #1,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ move.l (sp),a0
|
||||
+ addq #8,sp
|
||||
+ jmp (a0)
|
||||
+
|
||||
+
|
||||
; ——————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
end
|
||||
diff --git a/Patches/BeforePatches.a b/Patches/BeforePatches.a
|
||||
--- a/Patches/BeforePatches.a
|
||||
+++ b/Patches/BeforePatches.a
|
||||
@@ -513,6 +513,16 @@ RAMSysInit PROC EXPORT
|
||||
|
||||
Move.L D1,-(SP) ;save our handle
|
||||
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b 'started ptch 0^n'
|
||||
+@afterwards
|
||||
+BarrierHere
|
||||
+
|
||||
+
|
||||
;#####################################################################################
|
||||
; P001 P027 24Jan87 JTC Allocate extended memory for international folks.
|
||||
; This is not a patch, but it belongs in line.
|
||||
@@ -558,7 +568,17 @@ RAMSysInit PROC EXPORT
|
||||
_DisposPtr ; still in a0 after move <29June89smb>
|
||||
beq.s @noSpandex ; exit if everything is ok <7>
|
||||
|
||||
-@ErrorXit _SysError ; <24Aug89smb>
|
||||
+@ErrorXit
|
||||
+
|
||||
+ lea @thestring,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards
|
||||
+ string c
|
||||
+@thestring dc.b '@ErrorXit^n'
|
||||
+@afterwards
|
||||
+
|
||||
+ _SysError ; <24Aug89smb>
|
||||
|
||||
@MakeExpandMem
|
||||
clr.l ExpandMem ; aka ‘BasicGlob’
|
||||
@@ -573,6 +593,16 @@ RAMSysInit PROC EXPORT
|
||||
|
||||
@noSpandex ; skip around when no room
|
||||
|
||||
+ lea @thestring3,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards3
|
||||
+ string c
|
||||
+@thestring3 dc.b 'done with expandmem^n'
|
||||
+@afterwards3
|
||||
+
|
||||
+
|
||||
+
|
||||
;____________________________________________________________________________________
|
||||
; Jam system version number. <PP149>
|
||||
move.w #SysVers,SysVersion ; jam sys version number <v1.1>
|
||||
@@ -595,6 +625,16 @@ RAMSysInit PROC EXPORT
|
||||
|
||||
@appleTalkIsActive
|
||||
|
||||
+Bazza
|
||||
+
|
||||
+ lea @thestring3,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards3
|
||||
+ string c
|
||||
+@thestring3 dc.b 'atlk done^n'
|
||||
+@afterwards3
|
||||
+
|
||||
;____________________________________________________________________________________
|
||||
|
||||
; Install the keyboard translation code.
|
||||
@@ -662,6 +702,15 @@ RAMSysInit PROC EXPORT
|
||||
|
||||
@badError
|
||||
; A serious error occurred somewhere. Do that crazy system bomb thing.
|
||||
+
|
||||
+ lea @thestring2,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards2
|
||||
+ string c
|
||||
+@thestring2 dc.b '@ErrorXit^n'
|
||||
+@afterwards2
|
||||
+
|
||||
move.l #dsSysErr,d0 ; pick system bomb number.
|
||||
_SysError ; pow, biff, boffo.
|
||||
@doneInit
|
||||
@@ -687,43 +736,6 @@ RAMSysInit PROC EXPORT
|
||||
@1
|
||||
|
||||
;######################### DeCompressor INSTALLATION ********#####################
|
||||
-
|
||||
- IMPORT OldCheckLoadJump,MyCheckLoad
|
||||
- Lea OldCheckLoadJump+2,A0 ; < Denman 1/17/90 >
|
||||
- Move.L jCheckLoad,(A0) ; store the old address in our code
|
||||
-
|
||||
-; Set new trap address to this ptr
|
||||
-
|
||||
- Lea MyCheckLoad,A0 ; compute the address of the patch code.
|
||||
- Move.L A0,jCheckLoad ; stuff in my checkLoad hook.
|
||||
-
|
||||
-; Fix the BIND's to ROM addresses for the Decompressor (SizeRsrc patch).
|
||||
-
|
||||
- FixROMAddresses ; bind the addresses
|
||||
-
|
||||
-; install our patch to _SizeRsrc.
|
||||
-
|
||||
- PatchOSJump Read,$A002 ;Remember the old address of _Read.
|
||||
- InstOSTp ReadDecompression,$A002 ;set the read trap to ReadDecompression
|
||||
-
|
||||
-; loop through all the open resource files, and clear the alternate attributes byte
|
||||
-; then, set it for the system file
|
||||
-
|
||||
-SetupResourceFileAttributes
|
||||
- move.l TopMapHndl,a0 ;start with the first map
|
||||
-@next
|
||||
- move.l a0,d0 ;are we done?
|
||||
- bz.s @done
|
||||
- move.l (a0),a0 ;get the map pointer
|
||||
- bclr #decompressionPasswordBit,mInMemoryAttr(a0) ; <25> clear the flags for this map
|
||||
- move.l mNext(a0),a0 ;go on to the next map
|
||||
- bra.s @next
|
||||
-@done
|
||||
- move.l SysMapHndl,a0 ;get the system map
|
||||
- move.l (a0),a0
|
||||
- bset #decompressionPasswordBit,mInMemoryAttr(a0) ; allow dcmps here
|
||||
- bset #dontCountOrIndexDuplicatesBit,mInMemoryAttr(a0) ; <23> Don’t count duplicate resources in the System file
|
||||
- bset #twoDeepBit,mInMemoryAttr(a0) ; <24> One deep calls on the System file will search two (or more) maps.
|
||||
|
||||
;#####################################################################################
|
||||
;######################### A/UX CONDITIONAL INSTALLATION ********#####################
|
||||
@@ -731,10 +743,30 @@ SetupResourceFileAttributes
|
||||
|
||||
; Patches in this group are bypassed when running on A/UX.
|
||||
|
||||
+FixRomEtc
|
||||
+ lea @thestring3,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards3
|
||||
+ string c
|
||||
+@thestring3 dc.b 'adb?^n'
|
||||
+@afterwards3
|
||||
+
|
||||
+
|
||||
MOVE.W HwCfgFlags,D0 ; check ‘em the compulsive way <PPyyy>
|
||||
BTST #hwCbAUX,D0 ; is it A/UX time? <PPyyy>
|
||||
BNE skipOSInstalls ; if so skip this OS stuff <PPyyy>
|
||||
|
||||
+FixRomEtc2
|
||||
+ lea @thestring3,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards3
|
||||
+ string c
|
||||
+@thestring3 dc.b 'adb stuff^n'
|
||||
+@afterwards3
|
||||
+
|
||||
+
|
||||
;############################################################################# <6>
|
||||
; Install ADBReInitPatch - Save old jADBProc and put ADBReInitPatch addr in
|
||||
; jADBProc. Only do this on ADB machines!
|
||||
@@ -755,6 +787,14 @@ SetupResourceFileAttributes
|
||||
;#####################################################################################
|
||||
skipOSInstalls ; end of the line for OS/hardware <PPyyy>
|
||||
|
||||
+ lea @thestring3,a0
|
||||
+ move.l #96,d0
|
||||
+ dc.w $fe1f
|
||||
+ bra.s @afterwards3
|
||||
+ string c
|
||||
+@thestring3 dc.b 'DONE^n'
|
||||
+@afterwards3
|
||||
+
|
||||
;#####################################################################################
|
||||
;############################### END INSTALL CODE ####################################
|
||||
;#####################################################################################
|
||||
diff --git a/ProcessMgr/MenuMgrPatches.c b/ProcessMgr/MenuMgrPatches.c
|
||||
--- a/ProcessMgr/MenuMgrPatches.c
|
||||
+++ b/ProcessMgr/MenuMgrPatches.c
|
||||
@@ -69,6 +69,9 @@
|
||||
#include "Script.h"
|
||||
#include "Language.h"
|
||||
|
||||
+#pragma parameter blat(__A0)
|
||||
+void blat(char *str) = {0x7060, 0xFE1F};
|
||||
+
|
||||
/* -----------------------------------------------------------------------------
|
||||
*
|
||||
* Data and prototypes.
|
||||
@@ -1101,18 +1104,25 @@ InitSystemMenus(void)
|
||||
register MenuHandle menuHdl;
|
||||
Str255 itemText;
|
||||
|
||||
+ Debugger();
|
||||
+ blat("InitMenus^n");
|
||||
/* Reach an understanding with the Menu Mgr */
|
||||
InitMenus();
|
||||
|
||||
+ blat("InitAppleMenuList^n");
|
||||
/* Set up the Apple menus list */
|
||||
InitAppleMenuList();
|
||||
+ DebugStr("\pdid InitAppleMenuList");
|
||||
|
||||
+ blat("-HMInitHelpMenu^n");
|
||||
/* Let the Help Mgr install the Help menu */
|
||||
- HMInitHelpMenu();
|
||||
+ //HMInitHelpMenu();
|
||||
|
||||
+ blat("-InitKeybdMenu^n");
|
||||
/* Let international install the Keyboard menu */
|
||||
- (void) InitKeybdMenu();
|
||||
+// (void) InitKeybdMenu();
|
||||
|
||||
+ blat("Get process list menu^n");
|
||||
/* Get process list menu */
|
||||
if ((ApplicationMenuHdl = menuHdl = GetResource('MENU', kApplicationMenuID)) == nil)
|
||||
{
|
||||
@@ -1127,8 +1137,9 @@ InitSystemMenus(void)
|
||||
GetItem(menuHdl, HIDE_APP_ITEM, &itemText);
|
||||
hHideCurrent = NewString(itemText);
|
||||
|
||||
+ blat("InsertMenu^n");
|
||||
/* Place it in the bar as the far right-hand (system) menu */
|
||||
- InsertMenu(menuHdl, 0);
|
||||
+ //InsertMenu(menuHdl, 0);
|
||||
|
||||
/* Set up the suites for the generic icons (we only ever need small icons) */
|
||||
SetResLoad(false);
|
||||
diff --git a/ProcessMgr/Startup.c b/ProcessMgr/Startup.c
|
||||
--- a/ProcessMgr/Startup.c
|
||||
+++ b/ProcessMgr/Startup.c
|
||||
@@ -98,6 +98,9 @@ void FloatKernelUp(void);
|
||||
void FloatEppcUp(void);
|
||||
void FloatAUXUp(void);
|
||||
|
||||
+#pragma parameter blat(__A0)
|
||||
+void blat(char *str) = {0x7060, 0xFE1F};
|
||||
+
|
||||
main(void)
|
||||
{
|
||||
LaunchResults finderLaunchResults;
|
||||
@@ -105,11 +108,18 @@ main(void)
|
||||
HighLevelEventRecord theEvent;
|
||||
FSSpec finderSpec;
|
||||
|
||||
+ blat("I am the Process Manager!^n");
|
||||
+ blat("...and this is a second line^n");
|
||||
+
|
||||
_DataInit(); /* Initialize our global data */
|
||||
InitializeEnvironment(); /* Adjust machine environment to our liking */
|
||||
+ blat("InitializeEnvironment done^n");
|
||||
InstallPatches(); /* Install our patches */
|
||||
+ blat("InstallPatches done^n");
|
||||
InitializeScheduler(); /* Initialize our global structures */
|
||||
|
||||
+ blat("PM made it past basic init^n");
|
||||
+
|
||||
/* Locate Process Mgr's scrap handle BEFORE launches */
|
||||
ourScrapHdl = SCRAPHANDLE;
|
||||
|
||||
@@ -120,6 +130,8 @@ main(void)
|
||||
if ((EXTENSIONSENABLEBYTE & (1 << ExtensionsEnabledBit)) != 0)
|
||||
LaunchFacelessTasks();
|
||||
|
||||
+ blat("launched faceless tasks!^n");
|
||||
+
|
||||
THEZONE = ProcessMgrZone;
|
||||
if ((finderLaunchResults.LaunchError = FSMakeFSSpec(BOOTVOL, 0, FINDERNAME, &finderSpec)) == noErr)
|
||||
StandardLaunch(&finderSpec, launchUseMinimum, 0, nil, &finderLaunchResults, nil);
|
||||
@@ -127,6 +139,8 @@ main(void)
|
||||
/* Quick Restore: Have to set zone to sys to do _UnloadSeg correctly */
|
||||
THEZONE = SYSZONE; CURMAP = SYSMAP; TOPMAPHANDLE = GetOverrideMap(SYSMAPHANDLE);
|
||||
|
||||
+ blat("about to know if finder launch failed...^n");
|
||||
+
|
||||
/* Bomb box if the Finder launch failed */
|
||||
if (finderLaunchResults.LaunchError != noErr)
|
||||
SysError(dsFinderErr);
|
||||
@@ -236,13 +250,17 @@ InitializeEnvironment(void)
|
||||
/* Save initial location zero before we call any traps that might change it! */
|
||||
initLocationZero = LOCATIONZERO;
|
||||
|
||||
+ blat("Pre InitConfig^n");
|
||||
/* Get configuration information */
|
||||
InitConfig();
|
||||
+ blat("Post InitConfig^n");
|
||||
|
||||
/* Get table of switchable low memory locations (in System Heap) */
|
||||
+ blat("Pre GetSwitchTab^n");
|
||||
GetSwitchTab();
|
||||
|
||||
/* Expand the zone up to the APPLLIMIT */
|
||||
+ blat("Pre MaxApplZone^n");
|
||||
MaxApplZone();
|
||||
|
||||
/* initialize the scrap, if necessary */
|
||||
@@ -252,11 +270,13 @@ InitializeEnvironment(void)
|
||||
THEZONE = APPLZONE;
|
||||
|
||||
/* Unload data init seg and release its CODE resource (to get it out of map). */
|
||||
+ blat("Pre UnloadSeg/ReleaseResource^n");
|
||||
pCodeEntry = _DataInit;
|
||||
UnloadSeg(pCodeEntry);
|
||||
ReleaseResource(GET_SCOD_HDL_FROM_FNC_PTR(pCodeEntry));
|
||||
|
||||
/* Set up dynamic heaps */
|
||||
+ blat("Pre InitHeaps^n");
|
||||
InitHeaps();
|
||||
|
||||
THEZONE = SYSZONE;
|
||||
@@ -293,8 +313,11 @@ InitializeEnvironment(void)
|
||||
/* Initialize window manager in system heap ('cause it's shared in our patch)
|
||||
* NOTE: Calls InitFonts for InitWindow's sake on older machines.
|
||||
*/
|
||||
+ blat("Pre InitFonts^n");
|
||||
InitFonts();
|
||||
+ blat("Pre InitWindows^n");
|
||||
InitWindows();
|
||||
+ blat("Pre GetCurLayer^n");
|
||||
MFLayer = GetCurLayer();
|
||||
IMLayer = nil;
|
||||
THEZONE = APPLZONE;
|
||||
@@ -306,9 +329,11 @@ InitializeEnvironment(void)
|
||||
#endif HAS_AUX_PROCESSMGR
|
||||
|
||||
/* We want to run from the boot volume. */
|
||||
+ blat("Pre SetVol^n");
|
||||
SetVol(nil, BOOTVOL);
|
||||
|
||||
/* Set up volume notification mechanism */
|
||||
+ blat("Pre VNInit^n");
|
||||
VNInit();
|
||||
}
|
||||
|
||||
@@ -401,6 +426,8 @@ InitializeScheduler(void)
|
||||
*/
|
||||
THEZONE = SYSZONE;
|
||||
|
||||
+ blat("strings...^n");
|
||||
+
|
||||
/* Get menu strings for scrap coercion */
|
||||
hdl = Get1Resource('STR#',-16414);
|
||||
pStrListCopyNamePrefix = (hdl == nil) ? nil : *((StrListHdl)hdl);
|
||||
@@ -433,6 +460,8 @@ InitializeScheduler(void)
|
||||
THEZONE = APPLZONE;
|
||||
RsrcZoneInit();
|
||||
|
||||
+ blat("menu time^n");
|
||||
+
|
||||
/* Switch to SYSZONE because any of the _GetResource calls below could move
|
||||
* memory within the call, which is a problem for the rsrc mgr routine
|
||||
* CheckLoad(). It saves and restores THEZONE, but our heap can move so restoring
|
||||
@@ -467,8 +496,10 @@ InitializeScheduler(void)
|
||||
standardMenuDefProcRsrc = (Handle) StripAddress(realMDefHdl);
|
||||
}
|
||||
|
||||
+ blat("InitSystemMenus^n");
|
||||
/* Insert the system menus now that we have the MDEF */
|
||||
- InitSystemMenus();
|
||||
+ //InitSystemMenus();
|
||||
+ blat("...good^n");
|
||||
|
||||
/* Get rid of useless font width tables, etc. Must be done after InitSystemMenus,
|
||||
* because menu installers need font info set up.
|
||||
diff --git a/Toolbox/HelpMgr/BalloonExtensions.a b/Toolbox/HelpMgr/BalloonExtensions.a
|
||||
--- a/Toolbox/HelpMgr/BalloonExtensions.a
|
||||
+++ b/Toolbox/HelpMgr/BalloonExtensions.a
|
||||
@@ -60,7 +60,7 @@ HelpMgrTesting EQU 0
|
||||
;
|
||||
;___________________________________________________________________________________
|
||||
|
||||
-HelpMgrInstall InstallProc
|
||||
+HelpMgrInstall InstallProc (SuperMario)
|
||||
IMPORT ptchHMBootInitHelpManager
|
||||
IMPORT ptchHMGestaltIsThereHelp
|
||||
|
||||
@@ -113,7 +113,7 @@ HMProblemMessage
|
||||
;
|
||||
;___________________________________________________________________________________
|
||||
|
||||
-Pack14Entry PatchProc _Pack14
|
||||
+Pack14Entry PatchProc _Pack14, (SuperMario)
|
||||
|
||||
IMPORT ptchHMPascalGetBalloons
|
||||
|
||||
diff --git a/Toolbox/IconUtils/IconUtils.a b/Toolbox/IconUtils/IconUtils.a
|
||||
--- a/Toolbox/IconUtils/IconUtils.a
|
||||
+++ b/Toolbox/IconUtils/IconUtils.a
|
||||
@@ -590,7 +590,7 @@ EXIT MOVEA.L (SP), A1
|
||||
; IconDispatch - dispatcher for all Icon utilities.
|
||||
;----------------------------------------------------------------------------------
|
||||
|
||||
-IconDispatch BeginDispatcher $ABC9,(Plus,SE,II,Portable,IIci)
|
||||
+IconDispatch BeginDispatcher $ABC9,(Plus,SE,II,Portable,IIci,SuperMario)
|
||||
|
||||
DispatchSelectors __PlotIconID=selectPlotIconID
|
||||
DispatchSelectors __GetIconSuite=selectGetIconSuite
|
||||
diff --git a/Toolbox/MenuMgr/MenuMgrExtensions.a b/Toolbox/MenuMgr/MenuMgrExtensions.a
|
||||
--- a/Toolbox/MenuMgr/MenuMgrExtensions.a
|
||||
+++ b/Toolbox/MenuMgr/MenuMgrExtensions.a
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
; Set the low memory bit
|
||||
|
||||
-InvalMenuBar PatchProc _InvalMenuBar,(Plus,SE,II,Portable,IIci)
|
||||
+InvalMenuBar PatchProc _InvalMenuBar,(Plus,SE,II,Portable,IIci,SuperMario)
|
||||
|
||||
bset #MenuBarInvalidBit,MenuBarInvalidByte ; set the invalid bit
|
||||
rts
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
I tried to get System 7.1 (Cube-E) running on top of a NewWorld ROM in
|
||||
QEMU. It was really fun. Some observations follow...
|
||||
|
||||
The NewWorld ROM is recognised as a SuperMario ROM ($077D).
|
||||
|
||||
The Linked Patches are easier to work with than they look. Just add an
|
||||
object file to LinkedPatchObjs that takes advantage of the
|
||||
LinkedPatchMacros (InstallProc, PatchProc, leaResident...) and the
|
||||
loader will make sure it becomes part of the System. Let there be no
|
||||
doubt, the Linked Patches are an integral part of System 7. They should
|
||||
be RE'd.
|
||||
|
||||
Relatively little of the on-disk System deals with hardware directly.
|
||||
The ROM kinda-sorta acts as a hardware abstraction layer. Only it has
|
||||
heaps of bugs and missing features that need to be worked around. For
|
||||
example, I expected hardware interrupts to ruin everything but this
|
||||
didn't happen.
|
||||
|
||||
MacsBug works! It's a bit nicer than spamming the NanoKernel log.
|
||||
MacsBug did eventually start giving me nonsense explanations for
|
||||
software exceptions. I thought this could be worked around by disabling
|
||||
the DR emulator, but this seemingly had no effect.
|
||||
|
||||
Developing the System *and* the ROM at the same time must have been a
|
||||
huge relief for the NewWorld devs. Being unable to edit the ROM directly
|
||||
(because my build system wasn't set up) was very frustrating.
|
||||
|
||||
Things that I couldn't figure out: Balloon Help wouldn't install despite
|
||||
much massaging, and this tripped up the Process Mgr. The global MenuList
|
||||
was, at a later stage, getting corrupted and I couldn't figure that out.
|
||||
Skipping over it, eventually the Memory Manager and Trap Dispatcher
|
||||
would die.
|
||||
|
||||
It was great fun! Definitely worth revisiting later.
|
Loading…
Reference in New Issue