Reverse a Big Bad function
This commit is contained in:
parent
b5ebad1958
commit
b39f3ffead
File diff suppressed because it is too large
Load Diff
|
@ -3093,6 +3093,19 @@ diff --git a/Internal/C/ExpandMemPriv.h b/Internal/C/ExpandMemPriv.h
|
|||
#define emCurVersion 0x0133 // version <SM21/LW3><62><SM27><SM30>
|
||||
#define emItlCacheSize 16 // bytes in cache. WARNING, you cann’t change this
|
||||
// without distroying all fixed offsets from
|
||||
@@ -424,6 +420,12 @@ struct ExpandMemRec
|
||||
Ptr emExpansionBusGlobals; // ds.l 1 ; Ptr to Expansion Manager globals
|
||||
|
||||
ProcPtr jSWModemSoundVector; // ds.l 1 ; Vector to control routine for software modem sound
|
||||
+
|
||||
+ // 23C
|
||||
+
|
||||
+ char jank[0x2E6-0x23C];
|
||||
+
|
||||
+ Ptr emUSBGlobals;
|
||||
};
|
||||
|
||||
typedef struct ExpandMemRec ExpandMemRec;
|
||||
diff --git a/Internal/C/GestaltPrivateEqu.h b/Internal/C/GestaltPrivateEqu.h
|
||||
--- a/Internal/C/GestaltPrivateEqu.h
|
||||
+++ b/Internal/C/GestaltPrivateEqu.h
|
||||
|
@ -3950,7 +3963,7 @@ diff --git a/Make/VectorTable.a b/Make/VectorTable.a
|
|||
+MISCELLANEOUS_VEC0110 vIndirect $2010, $0110, A7
|
||||
+MISCELLANEOUS_VEC0114 vIndirect $2010, $0114, A7
|
||||
+MISCELLANEOUS_VEC0118 vIndirect $2010, $0118, A7
|
||||
+MISCELLANEOUS_VEC011C vIndirect $2010, $011c, A7
|
||||
+SetDriverClosureMemory vIndirect $2010, $011c, A7
|
||||
+
|
||||
;============================== End Misc. Vectors
|
||||
|
||||
|
@ -5397,33 +5410,33 @@ diff --git a/Make/VectorTable.a b/Make/VectorTable.a
|
|||
+EXPANSIONBUSMGR_VEC0130 vIndirect $208c, $0130, A7 ; _ExpansionBusDispatch selector 48
|
||||
+EXPANSIONBUSMGR_VEC0134 vIndirect $208c, $0134, A7 ; _ExpansionBusDispatch selector 49
|
||||
+EXPANSIONBUSMGR_VEC0138 vIndirect $208c, $0138, A7 ; _ExpansionBusDispatch selector 20
|
||||
+EXPANSIONBUSMGR_VEC014C vIndirect $208c, $014c, A7
|
||||
+EXPANSIONBUSMGR_VEC0150 vIndirect $208c, $0150, A7
|
||||
+EXPANSIONBUSMGR_VEC0154 vIndirect $208c, $0154, A7
|
||||
+EXPANSIONBUSMGR_VEC0158 vIndirect $208c, $0158, A7
|
||||
+EXPANSIONBUSMGR_VEC015C vIndirect $208c, $015c, A7
|
||||
+EXPANSIONBUSMGR_VEC0160 vIndirect $208c, $0160, A7
|
||||
+EXPANSIONBUSMGR_VEC0164 vIndirect $208c, $0164, A7
|
||||
+EXPANSIONBUSMGR_VEC0168 vIndirect $208c, $0168, A7
|
||||
+EXPANSIONBUSMGR_VEC016C vIndirect $208c, $016c, A7
|
||||
+EXPANSIONBUSMGR_VEC0170 vIndirect $208c, $0170, A7
|
||||
+EXPANSIONBUSMGR_VEC0174 vIndirect $208c, $0174, A7
|
||||
+EXPANSIONBUSMGR_VEC0178 vIndirect $208c, $0178, A7
|
||||
+EXPANSIONBUSMGR_VEC017C vIndirect $208c, $017c, A7
|
||||
+EXPANSIONBUSMGR_VEC0180 vIndirect $208c, $0180, A7
|
||||
+EXPANSIONBUSMGR_VEC0184 vIndirect $208c, $0184, A7
|
||||
+EXPANSIONBUSMGR_VEC0188 vIndirect $208c, $0188, A7
|
||||
+EXPANSIONBUSMGR_VEC018C vIndirect $208c, $018c, A7
|
||||
+EXPANSIONBUSMGR_VEC0190 vIndirect $208c, $0190, A7
|
||||
+EXPANSIONBUSMGR_VEC0194 vIndirect $208c, $0194, A7
|
||||
+EXPANSIONBUSMGR_VEC0198 vIndirect $208c, $0198, A7
|
||||
+EXPANSIONBUSMGR_VEC019C vIndirect $208c, $019c, A7
|
||||
+EXPANSIONBUSMGR_VEC01A0 vIndirect $208c, $01a0, A7
|
||||
+EXPANSIONBUSMGR_VEC01A4 vIndirect $208c, $01a4, A7
|
||||
+EXPANSIONBUSMGR_VEC01A8 vIndirect $208c, $01a8, A7
|
||||
+EXPANSIONBUSMGR_VEC01AC vIndirect $208c, $01ac, A7
|
||||
+EXPANSIONBUSMGR_VEC01B0 vIndirect $208c, $01b0, A7
|
||||
+EXPANSIONBUSMGR_VEC01B4 vIndirect $208c, $01b4, A7
|
||||
+ScanDriverCandidates vIndirect $208c, $014c, A7
|
||||
+HigherDriverVersion vIndirect $208c, $0150, A7
|
||||
+FindDriversForDevice vIndirect $208c, $0154, A7
|
||||
+GetDriverForDevice vIndirect $208c, $0158, A7
|
||||
+Load_And_Install_CodeFragment_Driver vIndirect $208c, $015c, A7
|
||||
+OpenInstalledDriver vIndirect $208c, $0160, A7
|
||||
+CloseInstalledDriver vIndirect $208c, $0164, A7
|
||||
+SwitchDriverPowerMode vIndirect $208c, $0168, A7
|
||||
+FindDriverCandidates vIndirect $208c, $016c, A7
|
||||
+GetDriverDescription vIndirect $208c, $0170, A7
|
||||
+VerifyFragmentAsDriver vIndirect $208c, $0174, A7
|
||||
+GetDriverMemoryFragment vIndirect $208c, $0178, A7
|
||||
+GetDriverDiskFragment vIndirect $208c, $017c, A7
|
||||
+HighestUnitNumber vIndirect $208c, $0180, A7
|
||||
+LookupDrivers vIndirect $208c, $0184, A7
|
||||
+InstallDriverFromFragment vIndirect $208c, $0188, A7
|
||||
+ReplaceDriverWithFragment vIndirect $208c, $018c, A7
|
||||
+InstallDriverFromFile vIndirect $208c, $0190, A7
|
||||
+InstallDriverFromDisk vIndirect $208c, $0194, A7
|
||||
+InstallDriverFromMemory vIndirect $208c, $0198, A7
|
||||
+InstallDriverForDevice vIndirect $208c, $019c, A7
|
||||
+GetDriverInformation vIndirect $208c, $01a0, A7
|
||||
+RenameDriver vIndirect $208c, $01a4, A7
|
||||
+RemoveDriver vIndirect $208c, $01a8, A7
|
||||
+DriverGestaltIsOn vIndirect $208c, $01ac, A7
|
||||
+DriverGestaltOff vIndirect $208c, $01b0, A7
|
||||
+DriverGestaltOn vIndirect $208c, $01b4, A7
|
||||
|
||||
-HEAPDISPATCH vIndirect $2088, $0004, A7 ; Figment
|
||||
-FIG_HSETFLAGS vIndirect $2088, $0008, A7 ; Figment
|
||||
|
@ -22817,13 +22830,15 @@ diff --git a/OS/StartMgr/OpenFirmware.c b/OS/StartMgr/OpenFirmware.c
|
|||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/OS/StartMgr/OpenFirmware.c
|
||||
@@ -0,0 +1,304 @@
|
||||
@@ -0,0 +1,419 @@
|
||||
+#include <CodeFragments.h>
|
||||
+#include <NameRegistry.h>
|
||||
+#include <NameRegistryPriv.h>
|
||||
+#include <ExpandMemPriv.h>
|
||||
+#include <Resources.h>
|
||||
+#include <Memory.h>
|
||||
+#include <Devices.h>
|
||||
+#include <TextUtils.h>
|
||||
+
|
||||
+
|
||||
+struct mystruct {
|
||||
|
@ -22840,6 +22855,7 @@ new file mode 100644
|
|||
+};
|
||||
+
|
||||
+pascal short CFM_4(struct mystruct *, long, char *, char) = {0x3F3C, 0xFFFC, 0xAA5A};
|
||||
+// cfm_fff4=FragGetClosureInfo cfm_fff3=FragGetConnectionInfo cfm_fff2=FragGetSectionInfo
|
||||
+
|
||||
+void
|
||||
+INTERC_11E0_C2PSTRCPY(char *dest, char *src)
|
||||
|
@ -23121,6 +23137,118 @@ new file mode 100644
|
|||
+ SetZone(old_zone);
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+SEARCHDRIVERS(void)
|
||||
+{
|
||||
+ RegEntryID entry;
|
||||
+ RegEntryIter cookie;
|
||||
+ RegEntryIterationOp iterOp;
|
||||
+ Boolean iterDone;
|
||||
+ short old_res_file;
|
||||
+ Handle ndrv;
|
||||
+ CFragConnectionID conn;
|
||||
+ DriverEntryPointPtr code;
|
||||
+ DriverRefNum refnum;
|
||||
+ RuntimeOptions opts;
|
||||
+ long i;
|
||||
+ OSErr err;
|
||||
+
|
||||
+ RegistryEntryIDInit(&entry);
|
||||
+ iterOp = 1;
|
||||
+
|
||||
+ err = RegistryEntryIterateCreate(&cookie);
|
||||
+ if (err != noErr) return;
|
||||
+
|
||||
+ iterDone = 0;
|
||||
+ do {
|
||||
+ DriverDescriptionPtr desc;
|
||||
+ unsigned long name_size;
|
||||
+ unsigned long frag_size;
|
||||
+ StringPtr compat_p;
|
||||
+ StringPtr compat_prop;
|
||||
+ unsigned long compat_cnt;
|
||||
+ Str63 name_str;
|
||||
+ Str63 name_str_p;
|
||||
+
|
||||
+ err = RegistryEntryIterate(&cookie, iterOp, &entry, &iterDone);
|
||||
+
|
||||
+ if (iterDone == 0 && err == noErr) {
|
||||
+ name_size = sizeof name_str - 1;
|
||||
+ for (i=0; i<name_size; i++) name_str[i] = 0;
|
||||
+
|
||||
+ err = RegistryPropertyGet(&entry, "name", name_str, &name_size);
|
||||
+ if (err != noErr) continue;
|
||||
+
|
||||
+ /* Skip if an ndrv is already in the device tree */
|
||||
+ frag_size = 0;
|
||||
+ err = RegistryPropertyGetSize(&entry, "driver,AAPL,MacOS,PowerPC", &frag_size);
|
||||
+ if (err == noErr) continue;
|
||||
+
|
||||
+ INTERC_11E0_C2PSTRCPY(name_str_p, name_str);
|
||||
+
|
||||
+ old_res_file = CurResFile(); /* Use 'goto fail' instead of 'continue' */
|
||||
+ UseResFile(0);
|
||||
+
|
||||
+ TempInsertROMMap(1); ndrv = Get1NamedResource('ndrv', name_str_p);
|
||||
+
|
||||
+ if (!ndrv) {
|
||||
+ compat_prop = NULL; compat_cnt = 0;
|
||||
+ GetCompatibleProperty(&entry, &compat_prop, &compat_cnt);
|
||||
+
|
||||
+ if (compat_prop) {
|
||||
+ compat_p = compat_prop;
|
||||
+
|
||||
+ while (!ndrv && compat_cnt--) { /* loop over packed p-strings */
|
||||
+ TempInsertROMMap(1); ndrv = Get1NamedResource('ndrv', compat_p);
|
||||
+ compat_p += *compat_p + 1;
|
||||
+ }
|
||||
+
|
||||
+ DisposPtr(compat_prop);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!ndrv) goto skip;
|
||||
+
|
||||
+ err = GetDriverDescription(*ndrv, &desc);
|
||||
+ if (err != noErr) goto skip;
|
||||
+
|
||||
+ err = RegistryPropertyCreate(&entry, "driver-descriptor", desc, GetPtrSize((Ptr)desc));
|
||||
+ DisposPtr((Ptr)desc);
|
||||
+ if (err != noErr) goto skip;
|
||||
+
|
||||
+ frag_size = GetHandleSize(ndrv);
|
||||
+ err = RegistryPropertyCreate(&entry, "driver,AAPL,MacOS,PowerPC", *ndrv, frag_size);
|
||||
+ if (err != noErr) goto skip;
|
||||
+
|
||||
+ err = RegistryPropertyCreate(&entry, "driver-ptr", ndrv, 4);
|
||||
+ if (err != noErr) goto skip;
|
||||
+
|
||||
+ err = GetDriverDescription(*ndrv, &desc);
|
||||
+ if (err != noErr) goto skip;
|
||||
+
|
||||
+ opts = desc->driverOSRuntimeInfo.driverRuntime;
|
||||
+ DisposPtr((Ptr)desc);
|
||||
+ if ((opts & kDriverIsLoadedUponDiscovery) == 0) goto skip;
|
||||
+
|
||||
+ err = GetDriverMemoryFragment(*ndrv, frag_size, name_str_p, &conn, &code, &desc);
|
||||
+ if (err != noErr) goto skip;
|
||||
+
|
||||
+ err = InstallDriverFromFragment(conn, &entry, /*begin,endUnit*/ 48,1023, &refnum);
|
||||
+ if (err != noErr) goto skip;
|
||||
+
|
||||
+ err = RegistryPropertyCreate(&entry, "driver-ref", &refnum, sizeof refnum);
|
||||
+ if (err != noErr) goto skip;
|
||||
+
|
||||
+ skip:
|
||||
+ UseResFile(old_res_file);
|
||||
+ } else {
|
||||
+ iterDone = 1;
|
||||
+ }
|
||||
+ } while (!iterDone);
|
||||
+
|
||||
+ RegistryEntryIterateDispose(&cookie);
|
||||
+}
|
||||
+
|
||||
+/* This file is complete... the remaining kilobytes to 0x2BC0 are filled by Amphibian DNA */
|
||||
diff --git a/OS/StartMgr/OpenFirmware.c.idump b/OS/StartMgr/OpenFirmware.c.idump
|
||||
new file mode 100644
|
||||
|
@ -26321,7 +26449,7 @@ diff --git a/OS/StartMgr/StartFail.a b/OS/StartMgr/StartFail.a
|
|||
diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
||||
--- a/OS/StartMgr/StartInit.a
|
||||
+++ b/OS/StartMgr/StartInit.a
|
||||
@@ -1135,6 +1135,42 @@ ioNuBusTTxlat EQU $500FC040 ; I/O space and nuBus $6-$7 with serialized wri
|
||||
@@ -1135,6 +1135,41 @@ ioNuBusTTxlat EQU $500FC040 ; I/O space and nuBus $6-$7 with serialized wri
|
||||
IMPORT INITSCSIBOOT
|
||||
ENDIF
|
||||
|
||||
|
@ -26352,7 +26480,6 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
+ IMPORT InitStorage
|
||||
+ IMPORT InitSystemExperts
|
||||
+ IMPORT InitUSB
|
||||
+ IMPORT LoadNDRV
|
||||
+ IMPORT LoadPCCardLib
|
||||
+ IMPORT MoveUnivInfoToSysHeap
|
||||
+ IMPORT MoveUnivInfoToSysHeap
|
||||
|
@ -26364,7 +26491,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
MyROM MAIN Export
|
||||
|
||||
@@ -1145,16 +1181,11 @@ MyROM MAIN Export
|
||||
@@ -1145,16 +1180,11 @@ MyROM MAIN Export
|
||||
EXPORT InitDefGamma
|
||||
EXPORT InitSCC
|
||||
EXPORT OpensDrvr
|
||||
|
@ -26381,7 +26508,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
*************************************************************************************************
|
||||
* *
|
||||
* S T A R T O F R O M *
|
||||
@@ -1216,6 +1247,9 @@ GOOFYDoEject
|
||||
@@ -1216,6 +1246,9 @@ GOOFYDoEject
|
||||
BRA.L DoEject ; branch island to eject code
|
||||
|
||||
|
||||
|
@ -26391,7 +26518,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
*************************************************************************************************
|
||||
* *
|
||||
@@ -1223,56 +1257,12 @@ GOOFYDoEject
|
||||
@@ -1223,56 +1256,12 @@ GOOFYDoEject
|
||||
* *
|
||||
*************************************************************************************************
|
||||
|
||||
|
@ -26449,7 +26576,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
; <60>, check what WakeUp does, does it return here again after changing clock ?
|
||||
|
||||
@@ -1287,11 +1277,12 @@ StartBoot MOVE #$2700,SR ; Disable processor interrupts.
|
||||
@@ -1287,11 +1276,12 @@ StartBoot MOVE #$2700,SR ; Disable processor interrupts.
|
||||
|
||||
BSR6 JumpIntoROM ; init the hardware
|
||||
|
||||
|
@ -26467,7 +26594,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
;-----
|
||||
; here, after running the diagnostics, we have:
|
||||
@@ -1367,12 +1358,7 @@ getHInfo move.l a6,-(sp) ; save regs <SM44>
|
||||
@@ -1367,12 +1357,7 @@ getHInfo move.l a6,-(sp) ; save regs <SM44>
|
||||
BSR WhichCPU ; get CPU type in low word of d7
|
||||
bsr WhichBoard ; get logic board type in hi word of d7
|
||||
|
||||
|
@ -26481,7 +26608,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
@hasMMU bsr.l InitMMU ; generate MMU tables, enable MMU <SM15>
|
||||
; returns a4 -> BootGlobs
|
||||
|
||||
@@ -1421,7 +1407,7 @@ getHInfo move.l a6,-(sp) ; save regs <SM44>
|
||||
@@ -1421,7 +1406,7 @@ getHInfo move.l a6,-(sp) ; save regs <SM44>
|
||||
LEA HeapStart,A1 ; A1 <- pointer to end of system globals.
|
||||
BSR FillWithOnes ; Fill system globals with ones.
|
||||
|
||||
|
@ -26490,7 +26617,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
MOVEM.L (SP)+,D0-D6/A0-A1 ; restore Universal info <SM82>
|
||||
|
||||
@@ -1440,7 +1426,7 @@ getHInfo move.l a6,-(sp) ; save regs <SM44>
|
||||
@@ -1440,7 +1425,7 @@ getHInfo move.l a6,-(sp) ; save regs <SM44>
|
||||
MOVE.B D7,CpuFlag ; save type of CPU we have
|
||||
swap d7 ;
|
||||
|
||||
|
@ -26499,7 +26626,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
@StoreBox move.b d7,BoxFlag ; ... and save it in lomem
|
||||
|
||||
@@ -1448,119 +1434,15 @@ getHInfo move.l a6,-(sp) ; save regs <SM44>
|
||||
@@ -1448,119 +1433,15 @@ getHInfo move.l a6,-(sp) ; save regs <SM44>
|
||||
MOVE.L A5,BufPtr ; save the top of useable memory
|
||||
MOVE.L A6,MemTop ; and the top of available memory
|
||||
|
||||
|
@ -26622,7 +26749,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
bsr.l InitMMUGlobals ; set up MMU globals
|
||||
|
||||
@@ -1584,13 +1466,7 @@ NoROMinRAM ; <SM104> rb, end
|
||||
@@ -1584,13 +1465,7 @@ NoROMinRAM ; <SM104> rb, end
|
||||
IF forRomulator THEN
|
||||
Moveq.l #$0,D0 ; Set up to disable the caches if we’re debugging.
|
||||
ELSE
|
||||
|
@ -26637,7 +26764,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
MOVE.L #(1<<CACR_EI_020_030|\ ; WA=1, DBE=1, CD=1, ED=1, IBE=1, CI=1, EI=1
|
||||
1<<CACR_CI_020_030|\ ;
|
||||
1<<CACR_IBE_030|\ ;
|
||||
@@ -1643,7 +1519,6 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
@@ -1643,7 +1518,6 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
MOVE.L A0,SP ; Set the stack pointer there
|
||||
SUBA.W #BootStackSize,A0 ; Give ourselves some stack space
|
||||
|
||||
|
@ -26645,7 +26772,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
_SetApplLimit ; Don't let the System Heap crash our stack
|
||||
|
||||
BSR.L InitMemoryDispatch ; go set up the MemoryDispatch globals
|
||||
@@ -1658,15 +1533,16 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
@@ -1658,15 +1532,16 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
Move.l #emRecSize,(a0) ; size <SM40>
|
||||
ENDWITH ; <SM40>
|
||||
|
||||
|
@ -26666,7 +26793,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
@EInitDone
|
||||
|
||||
|
||||
@@ -1680,17 +1556,45 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
@@ -1680,17 +1555,45 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
*************************************************************************************************
|
||||
|
||||
|
||||
|
@ -26716,7 +26843,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
BSR InitSlots ; inits slot cards, grays the screen(s)
|
||||
|
||||
BSR.L InitDTQueue ; initialize the Deferred Task Manager Queue
|
||||
@@ -1708,7 +1612,10 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
@@ -1708,7 +1611,10 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
; Gestalt must now be initialized before IO drivers <SM39> <SM39> RLM
|
||||
;------------------------------------------------------------------------ <SM39>
|
||||
|
||||
|
@ -26728,7 +26855,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
moveq #10,D0
|
||||
_NewHandle ,Sys,Clear ; Get space for a Heap utilities list
|
||||
@@ -1717,52 +1624,56 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
@@ -1717,52 +1623,56 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
move.l D0,$1E0C ; Stuff it in the magic location
|
||||
@noHU
|
||||
|
||||
|
@ -26811,7 +26938,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
BSR InitCrsrMgr ; Initialize cursor variables
|
||||
|
||||
@@ -1770,13 +1681,9 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
@@ -1770,13 +1680,9 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
; Initialize Reliability Manager
|
||||
;----------------------------------------------------------------
|
||||
|
||||
|
@ -26827,7 +26954,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
BSR.L TEGlobalInit ; initialize TextEdit vectors
|
||||
|
||||
@@ -1814,11 +1721,7 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
@@ -1814,11 +1720,7 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
BSR DrawBeepScreen ; Horst Beepmanh’s patented gray screen
|
||||
|
||||
; On machines with Civic, check to see if we want to boot off the composite out <SM63>
|
||||
|
@ -26840,7 +26967,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
MOVE.L #WmStConst,WarmStart ; write warm start constant to indicate warm start
|
||||
|
||||
@@ -1830,40 +1733,40 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
@@ -1830,40 +1732,40 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
; Initialize the Sound Manager
|
||||
;----------------------------------------------------------------
|
||||
|
||||
|
@ -26898,7 +27025,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
|
||||
*************************************************************************************************
|
||||
@@ -1953,58 +1856,8 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
@@ -1953,58 +1855,8 @@ BootRetry MOVE #$2700,SR ; disable interrupts
|
||||
;________________________________________________________________________________________
|
||||
|
||||
WhichCPU
|
||||
|
@ -26959,7 +27086,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
|
||||
;________________________________________________________________________________________
|
||||
@@ -2048,61 +1901,56 @@ WhichBoard swap d7 ; get CPU type in hi word
|
||||
@@ -2048,61 +1900,56 @@ WhichBoard swap d7 ; get CPU type in hi word
|
||||
;________________________________________________________________________________________
|
||||
|
||||
SetUpTimeK
|
||||
|
@ -27065,7 +27192,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
eieioSTP
|
||||
|
||||
; Load timer with number of VIA ticks per millisecond - 3. There are 3 clocks of overhead
|
||||
@@ -2131,15 +1979,26 @@ SetUpTimeK
|
||||
@@ -2131,15 +1978,26 @@ SetUpTimeK
|
||||
andi.w #$F8FF,sr ; enable interrupts
|
||||
jmp (a0) ; call the routine to time
|
||||
@timedOut not.w d0 ; convert to number of loop executions.
|
||||
|
@ -27095,7 +27222,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
rts
|
||||
|
||||
TimerInt nop
|
||||
@@ -2156,11 +2015,8 @@ TimingTable dc.w DbraTime-*,TimeDBRA ; simple DBRA loop timing
|
||||
@@ -2156,11 +2014,8 @@ TimingTable dc.w DbraTime-*,TimeDBRA ; simple DBRA loop timing
|
||||
|
||||
|
||||
DbraTime
|
||||
|
@ -27107,7 +27234,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
@loop
|
||||
dbra d0,@loop ; time an empty DBRA loop
|
||||
jmp (a2) ; return if loop expires
|
||||
@@ -2168,23 +2024,35 @@ DbraTime
|
||||
@@ -2168,23 +2023,35 @@ DbraTime
|
||||
|
||||
SCCTime
|
||||
movea.l SCCRd,a0 ; point to SCC base read address
|
||||
|
@ -27150,7 +27277,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
TestFor SCSI96_1Exists ; use macro to check if we have
|
||||
beq.s @loop80 ; SCSI96. Bra. if not
|
||||
@loop96
|
||||
@@ -2239,11 +2107,8 @@ SCSITime
|
||||
@@ -2239,11 +2106,8 @@ SCSITime
|
||||
|
||||
VIATime
|
||||
lea vIER(a1),a0 ; <40x008BC> point to a VIA register <H11>
|
||||
|
@ -27162,7 +27289,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
@loop
|
||||
btst.b #0,(A0) ; <40x008CA> typical VIA access loop <H11>
|
||||
dbra d0,@loop ; <40x008CE> time the VIA DBRA loop <H11>
|
||||
@@ -2312,13 +2177,20 @@ FillWithOnes
|
||||
@@ -2312,13 +2176,20 @@ FillWithOnes
|
||||
;________________________________________________________________________________________
|
||||
|
||||
CompBootStack
|
||||
|
@ -27186,7 +27313,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
rts
|
||||
|
||||
|
||||
@@ -2406,17 +2278,6 @@ ConfigureRAM
|
||||
@@ -2406,17 +2277,6 @@ ConfigureRAM
|
||||
SetUpSysAppZone
|
||||
lea SysHeap,a0 ; point at normal system heap template
|
||||
|
||||
|
@ -27204,7 +27331,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
_InitZone ; set up initial system heap
|
||||
Move.L theZone,SysZone ; save pointer to the new zone
|
||||
Move.L SysZone,RamBase ; setup RamBase to system heap
|
||||
@@ -2435,189 +2296,27 @@ SetUpSysAppZone
|
||||
@@ -2435,189 +2295,27 @@ SetUpSysAppZone
|
||||
MOVE.L SP,A0 ; Use the current sp when it’s lower
|
||||
@3 SUBA.W #BootStackSize,A0 ; Give ourselves some stack space
|
||||
_SetApplLimit ; Don't let the System Heap crash our stack
|
||||
|
@ -27409,7 +27536,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
;________________________________________________________________________________________
|
||||
;
|
||||
@@ -2665,54 +2364,6 @@ GetPRAM _InitUtil ; seed low memory PRAM buffer
|
||||
@@ -2665,54 +2363,6 @@ GetPRAM _InitUtil ; seed low memory PRAM buffer
|
||||
RTS
|
||||
|
||||
|
||||
|
@ -27464,7 +27591,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
*************************************************************************************************
|
||||
* *
|
||||
@@ -2804,18 +2455,7 @@ InitGlobalVars
|
||||
@@ -2804,18 +2454,7 @@ InitGlobalVars
|
||||
; jump table.
|
||||
;
|
||||
Move.l ROMBase,A0 ; Get ROMBase
|
||||
|
@ -27483,7 +27610,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
;--------------------------------------
|
||||
|
||||
LEA VBLQueue,A1
|
||||
@@ -2938,6 +2578,11 @@ InitCrsrMgr MOVE.L #$000F000F,D0
|
||||
@@ -2938,6 +2577,11 @@ InitCrsrMgr MOVE.L #$000F000F,D0
|
||||
move.l (a1)+,(a0)+ ; move the bytes in
|
||||
move.l (a1),(a0)
|
||||
|
||||
|
@ -27495,7 +27622,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
LEA GrafEnd,A1 ; end of cursor globals
|
||||
BigLea CrsrDevHandleVBL,A0 ; install cursor VBL task <H9>
|
||||
MOVE.L A0,-(A1) ; JCrsrTask
|
||||
@@ -2962,113 +2607,6 @@ InitCrsrMgr MOVE.L #$000F000F,D0
|
||||
@@ -2962,113 +2606,6 @@ InitCrsrMgr MOVE.L #$000F000F,D0
|
||||
MOVE.W D0,CrsrNew ; flag cursor as changed, turn on tracking
|
||||
MOVE.L D0,MouseMask ; No jerkiness with $FFFFFFFF mask
|
||||
|
||||
|
@ -27609,7 +27736,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
RTS
|
||||
|
||||
|
||||
@@ -3181,6 +2719,11 @@ SetupMiscSCSI
|
||||
@@ -3181,6 +2718,11 @@ SetupMiscSCSI
|
||||
bra.s @SCSIHskDone
|
||||
@80based
|
||||
ENDIF
|
||||
|
@ -27621,7 +27748,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
btst.l #SCSIDackExists,d0 ; see if we have SCSI Dack
|
||||
bne.s @SCSIDackDone ; if we do, it's setup ok
|
||||
move.l SCSIHsk,SCSIDMA ; if not, use hsk instead
|
||||
@@ -3222,37 +2765,6 @@ InitSlots BSR.L InitSDTbl ; init slot int dispatch table
|
||||
@@ -3222,37 +2764,6 @@ InitSlots BSR.L InitSDTbl ; init slot int dispatch table
|
||||
BRA Critical ; Critical error
|
||||
|
||||
|
||||
|
@ -27659,7 +27786,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
;________________________________________________________________________________________
|
||||
;
|
||||
; Routine: InitDeviceMgr
|
||||
@@ -3269,7 +2781,7 @@ InitDeviceMgr ; Compute the size of the unit table and allocate it.
|
||||
@@ -3269,7 +2780,7 @@ InitDeviceMgr ; Compute the size of the unit table and allocate it.
|
||||
MOVEQ #UnitEntries,D0 ; get number of entries in unit table
|
||||
MOVE.W D0,UnitNtryCnt ; save for IOCore checking
|
||||
|
||||
|
@ -27668,7 +27795,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
_NewPtr ,SYS,CLEAR ; allocate it and zero out the memory
|
||||
MOVE.L A0,UTableBase ; and save its address
|
||||
|
||||
@@ -3295,55 +2807,6 @@ LoadDrivers
|
||||
@@ -3295,55 +2806,6 @@ LoadDrivers
|
||||
MOVE.L SP,A0
|
||||
CLR.B IOPermssn(A0) ; r/w permissions
|
||||
|
||||
|
@ -27724,7 +27851,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
;
|
||||
;————————— RAM Disk Driver —————————
|
||||
;
|
||||
@@ -3351,42 +2814,73 @@ LoadDrivers
|
||||
@@ -3351,42 +2813,76 @@ LoadDrivers
|
||||
; to enable the EDisk, make sure that it is included in the rom resources
|
||||
|
||||
IF hasEDisk THEN
|
||||
|
@ -27758,7 +27885,10 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
+ CLR.L -(SP)
|
||||
+ PEA.L BCScreenName
|
||||
+ MOVE.L #-16515, -(SP)
|
||||
+ BSR.L LoadNDRV ; (CDG5)
|
||||
+ CASE ON
|
||||
+ IMPORT InstallDriverFromResource
|
||||
+ BSR.L InstallDriverFromResource ; (CDG5)
|
||||
+ CASE OFF
|
||||
+ DC.W $DEFC, $001A
|
||||
+ ;ADDA #$1A, A7
|
||||
+
|
||||
|
@ -27823,7 +27953,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
;
|
||||
;————————— Serial Drivers —————————
|
||||
@@ -3398,21 +2892,30 @@ LoadDrivers
|
||||
@@ -3398,21 +2894,30 @@ LoadDrivers
|
||||
; table, remaining closed and inactive until opened by a client.
|
||||
|
||||
subq #4,sp ; allocate space for return value
|
||||
|
@ -27866,7 +27996,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
@exitDrivers
|
||||
rts
|
||||
@@ -3420,8 +2923,6 @@ LoadDrivers
|
||||
@@ -3420,8 +2925,6 @@ LoadDrivers
|
||||
|
||||
STRING PASCAL
|
||||
|
||||
|
@ -27875,7 +28005,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
SndName DC.W '.Sound' ; <SM83>
|
||||
|
||||
IF hasEDisk THEN
|
||||
@@ -3439,6 +2940,12 @@ BacklightName
|
||||
@@ -3439,6 +2942,12 @@ BacklightName
|
||||
DC.W '.Backlight'
|
||||
ENDIF
|
||||
|
||||
|
@ -27888,7 +28018,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
STRING ASIS
|
||||
|
||||
|
||||
@@ -3480,11 +2987,34 @@ DrawBeepScreen
|
||||
@@ -3480,11 +2989,34 @@ DrawBeepScreen
|
||||
; of the menu bar (because the screen background is white on LCD screens vs black on CRTs)
|
||||
|
||||
BSR.L LCDScreenChk ; is this an LCD screen ? <SM16><SM68>
|
||||
|
@ -27925,7 +28055,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
RTS
|
||||
@DoNormalBeepScreen
|
||||
ENDIF ; <SM81>
|
||||
@@ -3510,11 +3040,27 @@ DrawBeepScreen
|
||||
@@ -3510,11 +3042,27 @@ DrawBeepScreen
|
||||
|
||||
_PenNormal ; restore the pen
|
||||
|
||||
|
@ -27953,7 +28083,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
;________________________________________________________________________________________
|
||||
;
|
||||
@@ -3536,8 +3082,33 @@ FROVideo MOVE.L A0,A1 ; save the param block pointer for _Open
|
||||
@@ -3536,8 +3084,33 @@ FROVideo MOVE.L A0,A1 ; save the param block pointer for _Open
|
||||
LINK A6,#-spBlockSize ; allocate space for a slot parameter block
|
||||
MOVE.L SP,A0 ; and point to it
|
||||
|
||||
|
@ -27989,7 +28119,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
; the default video device is bad, so go search for a video sRsrc...
|
||||
|
||||
@@ -3553,23 +3124,26 @@ FROVideo MOVE.L A0,A1 ; save the param block pointer for _Open
|
||||
@@ -3553,23 +3126,26 @@ FROVideo MOVE.L A0,A1 ; save the param block pointer for _Open
|
||||
|
||||
@NextVidsRsrc
|
||||
_sNextTypesRsrc ; search for a video sRsrc
|
||||
|
@ -28023,7 +28153,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
;________________________________________________________________________________________
|
||||
;
|
||||
@@ -3604,12 +3178,14 @@ OpnVidDeflt MOVE.L A0,A2 ; save A0
|
||||
@@ -3604,12 +3180,14 @@ OpnVidDeflt MOVE.L A0,A2 ; save A0
|
||||
CMP.W #DrSwApple,spDrvrSW(A0) ; does it have an Apple driver interface (software only)?
|
||||
BNE.S @Error ; -> no, keep on searching
|
||||
|
||||
|
@ -28041,7 +28171,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
BSR InitVidDeflt ; initialize the default video device
|
||||
@Error RTS
|
||||
|
||||
@@ -3629,7 +3205,8 @@ OpnVidDeflt MOVE.L A0,A2 ; save A0
|
||||
@@ -3629,7 +3207,8 @@ OpnVidDeflt MOVE.L A0,A2 ; save A0
|
||||
; then saved in low memory as needed.
|
||||
;________________________________________________________________________________________
|
||||
|
||||
|
@ -28051,7 +28181,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
MOVE.B spId(A0),D3 ; save the ID
|
||||
|
||||
CLR.B spExtDev(A0) ; no external devices
|
||||
@@ -3651,6 +3228,7 @@ RdVidParam MOVEM.L A1-A2/D3,-(SP)
|
||||
@@ -3651,6 +3230,7 @@ RdVidParam MOVEM.L A1-A2/D3,-(SP)
|
||||
@gotBase MOVE.L spResult(A0),ScreenBytes ; save it
|
||||
|
||||
MOVE.B D3,spId(A0) ; restore the sRsrc ID
|
||||
|
@ -28059,7 +28189,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
BSR GetDefVidMode ; get the default video mode
|
||||
MOVE.B D0,spId(A0) ; and save it
|
||||
|
||||
@@ -3686,9 +3264,9 @@ RdVidParam MOVEM.L A1-A2/D3,-(SP)
|
||||
@@ -3686,9 +3266,9 @@ RdVidParam MOVEM.L A1-A2/D3,-(SP)
|
||||
MOVEQ #0,D0 ; no errors
|
||||
|
||||
@End MOVE.B D3,spId(A0) ; restore ID for caller
|
||||
|
@ -28072,7 +28202,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
@Error MOVEQ #1,D0 ; bad video card (woof)
|
||||
BRA.S @End
|
||||
@@ -3755,34 +3333,76 @@ OpensDrvr MOVE.L A2,-(SP)
|
||||
@@ -3755,34 +3335,76 @@ OpensDrvr MOVE.L A2,-(SP)
|
||||
;________________________________________________________________________________________
|
||||
|
||||
InitVidDeflt
|
||||
|
@ -28170,7 +28300,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
;________________________________________________________________________________________
|
||||
;
|
||||
; Routine: GetDefVidMode
|
||||
@@ -3797,14 +3417,15 @@ InitVidDeflt
|
||||
@@ -3797,14 +3419,15 @@ InitVidDeflt
|
||||
;________________________________________________________________________________________
|
||||
|
||||
GetDefVidMode
|
||||
|
@ -28190,7 +28320,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
_SReadPRAMRec ; get parameter RAM record
|
||||
BNE.S @OneBit ; -> it's invalid, so default to one bit mode
|
||||
|
||||
@@ -3819,11 +3440,11 @@ GetDefVidMode
|
||||
@@ -3819,11 +3442,11 @@ GetDefVidMode
|
||||
MOVEQ #0,D0
|
||||
MOVE.B 2(A1),D0 ; get the default mode
|
||||
|
||||
|
@ -28205,7 +28335,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
@OneBit MOVE.B #OneBitMode,2(A1) ; Set default to OneBitMode
|
||||
MOVE.L A1,spsPointer(A0) ; Pass pointer to buffer
|
||||
@@ -3952,6 +3573,14 @@ InitDefGamma
|
||||
@@ -3952,6 +3575,14 @@ InitDefGamma
|
||||
BRA.S @SetIt ; set it
|
||||
|
||||
|
||||
|
@ -28220,7 +28350,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
;________________________________________________________________________________________
|
||||
;
|
||||
; Routine: InitDummyScreen
|
||||
@@ -4081,6 +3710,7 @@ AddVidDevice
|
||||
@@ -4081,6 +3712,7 @@ AddVidDevice
|
||||
MOVE ioRefNum(A1),-(SP) ; push the device's refNum
|
||||
|
||||
BSR.S GetDefVidMode ; D0 <- the default video mode
|
||||
|
@ -28228,7 +28358,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
MOVE.L D0,-(SP) ; Push it
|
||||
|
||||
_NewGDevice ; allocate a new GrafDevice (in system heap)
|
||||
@@ -4130,6 +3760,10 @@ InitSCC
|
||||
@@ -4130,6 +3762,10 @@ InitSCC
|
||||
bsr.l SCCIOPHwInit ; initialize the IOP hardware registers
|
||||
@NoIOP ; fall thru -- IOP boots in bypass mode
|
||||
ENDIF
|
||||
|
@ -28239,7 +28369,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
movea.l SCCWr,a0 ; point to SCC base write address (chan B)
|
||||
movea.l SCCRd,a1 ; point to SCC base read address (chan B)
|
||||
tst.b (a1) ; synchronize SCC accesses
|
||||
@@ -4139,89 +3773,6 @@ InitSCC
|
||||
@@ -4139,89 +3775,6 @@ InitSCC
|
||||
rts
|
||||
|
||||
|
||||
|
@ -28329,7 +28459,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
;________________________________________________________________________________________
|
||||
;
|
||||
; Routine: InstallDriver
|
||||
@@ -4250,7 +3801,7 @@ InstallDriver
|
||||
@@ -4250,7 +3803,7 @@ InstallDriver
|
||||
move.l UTableBase,a0 ; point to utable array
|
||||
move.l (a0,d1),a0 ; get handle to dce in a3
|
||||
move.l (a0),a0 ; get pointer to dce
|
||||
|
@ -28338,7 +28468,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
move.l (a1),a1 ; get pointer to driver
|
||||
move.w drvrFlags(a1),dCtlFlags(a0) ; copy data to dce
|
||||
@@ -4258,7 +3809,9 @@ InstallDriver
|
||||
@@ -4258,7 +3811,9 @@ InstallDriver
|
||||
move.w drvrEMask(a1),dCtlEMask(a0)
|
||||
move.w drvrMenu(a1),dCtlMenu(a0)
|
||||
|
||||
|
@ -28349,7 +28479,7 @@ diff --git a/OS/StartMgr/StartInit.a b/OS/StartMgr/StartInit.a
|
|||
|
||||
@openDrvr move.l a2,a1 ; load pointer to driver name
|
||||
bra.s OpenDRVR ; open the driver (a1/)
|
||||
@@ -4391,124 +3944,105 @@ CheckForEgretOrCuda ; <T2>
|
||||
@@ -4391,124 +3946,105 @@ CheckForEgretOrCuda ; <T2>
|
||||
ENDIF
|
||||
|
||||
|
||||
|
@ -48881,7 +49011,7 @@ diff --git a/Toolbox/ShutDownMgr/ShutDownMgr.a b/Toolbox/ShutDownMgr/ShutDownMgr
|
|||
BSR CloseLCDVideo ; Otherwise, close ’em.
|
||||
@SkipClose
|
||||
|
||||
@@ -1182,51 +1346,57 @@ CheckForSoftPowerOff
|
||||
@@ -1182,51 +1346,59 @@ CheckForSoftPowerOff
|
||||
; if the video is of type LCD. If so, then close the video driver.
|
||||
;————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
|
@ -48936,8 +49066,10 @@ diff --git a/Toolbox/ShutDownMgr/ShutDownMgr.a b/Toolbox/ShutDownMgr/ShutDownMgr
|
|||
+ Move (A2), D0
|
||||
+ Ext.L D0
|
||||
+ Move.L D0, -(A7)
|
||||
+ IMPORT EXPANSIONBUSMGR_VEC01A8
|
||||
+ Bsr.L EXPANSIONBUSMGR_VEC01A8
|
||||
+ CASE ON
|
||||
+ IMPORT RemoveDriver
|
||||
+ Bsr.L RemoveDriver
|
||||
+ CASE OFF
|
||||
+ AddQ #$8, A7
|
||||
+ Bra.B @L4
|
||||
+@L3 Lea.L -$40(A6), A0
|
||||
|
@ -48980,7 +49112,7 @@ diff --git a/Toolbox/ShutDownMgr/ShutDownMgr.a b/Toolbox/ShutDownMgr/ShutDownMgr
|
|||
|
||||
|
||||
|
||||
@@ -1312,7 +1482,6 @@ KillEDisk
|
||||
@@ -1312,7 +1484,6 @@ KillEDisk
|
||||
BNE.S @noEMMU ; IF we have an EMMU THEN
|
||||
MOVE.L A2,A0 ; get ptr to start of data area
|
||||
MOVE.L #BytesToKill,A1 ; get number of bytes to erase
|
||||
|
@ -48988,7 +49120,7 @@ diff --git a/Toolbox/ShutDownMgr/ShutDownMgr.a b/Toolbox/ShutDownMgr/ShutDownMgr
|
|||
BRA.S @unProtect ; ELSE
|
||||
@noEMMU MOVE.L CheckSumPtr(A0),A0 ; Get Ptr to the start of the checksum area, if it exists
|
||||
TST.L A0 ; Check if RAM Disk is using checksums
|
||||
@@ -1320,8 +1489,8 @@ KillEDisk
|
||||
@@ -1320,8 +1491,8 @@ KillEDisk
|
||||
MOVE.L A2,A0 ; base address of RAM disk is same as DataStartPtr
|
||||
@cksumOn ; ENDIF
|
||||
SUB.L A1,A1 ; Protect flag. Zero = Unprotect
|
||||
|
@ -48998,7 +49130,7 @@ diff --git a/Toolbox/ShutDownMgr/ShutDownMgr.a b/Toolbox/ShutDownMgr/ShutDownMgr
|
|||
_HwPriv ; Write Enable the EDisk RAM
|
||||
CMPI.W #paramErr,D0 ; Does not clear D0 on success, Check for failure
|
||||
BEQ.S @Done ; -> enable failed. Bail out now or Bus Error!
|
||||
@@ -1445,7 +1614,13 @@ ShutDownCancelButton EQU 2 ; dialog item of Cancel button
|
||||
@@ -1445,7 +1616,13 @@ ShutDownCancelButton EQU 2 ; dialog item of Cancel button
|
||||
_ParamText ; set dialog parameters
|
||||
|
||||
subq #4,sp ; room for DialogPtr
|
||||
|
@ -49012,7 +49144,7 @@ diff --git a/Toolbox/ShutDownMgr/ShutDownMgr.a b/Toolbox/ShutDownMgr/ShutDownMgr
|
|||
clr.l -(sp) ; use heap storage
|
||||
move.l #-1,-(sp) ; put it in front
|
||||
_GetNewDialog
|
||||
@@ -1488,82 +1663,30 @@ exitFalse move.w #false,d0 ; allow shutdown to continue
|
||||
@@ -1488,82 +1665,30 @@ exitFalse move.w #false,d0 ; allow shutdown to continue
|
||||
justExit move.l (sp)+,a2 ; restore a2
|
||||
rts
|
||||
|
||||
|
|
Loading…
Reference in New Issue