mirror of
https://github.com/elliotnunn/powermac-rom.git
synced 2024-06-09 22:29:30 +00:00
happy
This commit is contained in:
parent
d09e326082
commit
fbfcb55c89
|
@ -2,35 +2,7 @@
|
|||
# NKDir, NKIncDir, NKBin
|
||||
|
||||
NKFiles = ¶
|
||||
{NKDir}NKInit.s ¶
|
||||
{NKDir}NKReplacementInit.s ¶
|
||||
{NKDir}NKBuiltinInit.s ¶
|
||||
{NKDir}NKProcFlagsTbl.s ¶
|
||||
{NKDir}NKProcInfoTbl.s ¶
|
||||
{NKDir}NKExceptions.s ¶
|
||||
{NKDir}NKIntHandlers.s ¶
|
||||
{NKDir}NKFloatInts.s ¶
|
||||
{NKDir}NKIntMisc.s ¶
|
||||
{NKDir}NKPaging.s ¶
|
||||
{NKDir}NKTranslation.s ¶
|
||||
{NKDir}NKVMCalls.s ¶
|
||||
{NKDir}NKPowerCalls.s ¶
|
||||
{NKDir}NKRTASCalls.s ¶
|
||||
{NKDir}NKCache.s ¶
|
||||
{NKDir}NKMPCalls.s ¶
|
||||
{NKDir}NKSync.s ¶
|
||||
{NKDir}NKTasks.s ¶
|
||||
{NKDir}NKAddressSpaces.s ¶
|
||||
{NKDir}NKPoolAllocator.s ¶
|
||||
{NKDir}NKTimers.s ¶
|
||||
{NKDir}NKScheduler.s ¶
|
||||
{NKDir}NKIndex.s ¶
|
||||
{NKDir}NKPrimaryIntHandlers.s ¶
|
||||
{NKDir}NKConsoleLog.s ¶
|
||||
{NKDir}NKSleep.s ¶
|
||||
{NKDir}NKThud.s ¶
|
||||
{NKDir}NKScreenConsole.s ¶
|
||||
{NKDir}NKAdditions.s ¶
|
||||
{NKDir}NanoKernel.s ¶
|
||||
|
||||
NKIncludes = ¶
|
||||
{NKDir}NKMacros.s ¶
|
||||
|
|
|
@ -125,7 +125,7 @@ VMReturn ; OUTSIDE REFERER
|
|||
|
||||
VMInit ; OUTSIDE REFERER
|
||||
lwz r7, KDP.FlatPageListPtr(r1) ; check that zero seg isn't empty
|
||||
lwz r8, KDP.FlatPageListSegPtrs + 0(r1)
|
||||
lwz r8, KDP.PARPerSegmentPLEPtrs + 0(r1)
|
||||
cmpw r7, r8
|
||||
bne VMReturn1
|
||||
|
||||
|
@ -150,7 +150,7 @@ VMInit_BigLoop
|
|||
bne VMInit_0x110
|
||||
bnel cr1, VMPanic
|
||||
rlwinm r15, r8, 22, 0, 29
|
||||
addi r3, r1, KDP.FlatPageListSegPtrs
|
||||
addi r3, r1, KDP.PARPerSegmentPLEPtrs
|
||||
rlwimi r3, r5, 2, 28, 29
|
||||
stw r15, 0x0000(r3)
|
||||
slwi r3, r5, 16
|
||||
|
@ -319,7 +319,7 @@ VMInit_0x29c
|
|||
|
||||
VMInit_Fail
|
||||
lwz r7, KDP.TotalPhysicalPages(r1)
|
||||
lwz r8, KDP.FlatPageListSegPtrs + 0(r1)
|
||||
lwz r8, KDP.PARPerSegmentPLEPtrs + 0(r1)
|
||||
stw r7, KDP.VMLogicalPages(r1)
|
||||
stw r8, KDP.FlatPageListPtr(r1)
|
||||
|
||||
|
@ -798,7 +798,7 @@ VMShouldClean ; OUTSIDE REFERER
|
|||
|
||||
VMAllocateMemory ; OUTSIDE REFERER
|
||||
lwz r7, KDP.FlatPageListPtr(r1)
|
||||
lwz r8, KDP.FlatPageListSegPtrs + 0(r1)
|
||||
lwz r8, KDP.PARPerSegmentPLEPtrs + 0(r1)
|
||||
cmpwi cr6, r5, 0x00
|
||||
cmpw cr7, r7, r8
|
||||
or r7, r4, r6
|
||||
|
@ -1148,7 +1148,7 @@ VMLastExportedFunc_0xd7
|
|||
; major_0x09c9c
|
||||
|
||||
major_0x09c9c ; OUTSIDE REFERER
|
||||
addi r8, r1, KDP.FlatPageListSegPtrs
|
||||
addi r8, r1, KDP.PARPerSegmentPLEPtrs
|
||||
lwz r9, KDP.TotalPhysicalPages(r1)
|
||||
rlwimi r8, r7, 18, 28, 29
|
||||
cmplw r7, r9
|
||||
|
|
|
@ -302,3 +302,11 @@ _bclr_lbit set 31
|
|||
ENDIF
|
||||
|
||||
ENDM
|
||||
|
||||
|
||||
MACRO
|
||||
_kaddr &rd, &rs, &label
|
||||
|
||||
addi &rd, &rs, (&label-NKTop)
|
||||
|
||||
ENDM
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
; AUTO-GENERATED SYMBOL LIST
|
||||
|
||||
|
||||
|
||||
; These registers will be used throughout
|
||||
|
||||
rCI set rCI
|
||||
|
@ -121,7 +122,7 @@ InitKCalls
|
|||
|
||||
; Start with a default function
|
||||
|
||||
_kaddr r23, rNK, kcThud
|
||||
_kaddr r23, rNK, KCallSystemCrash
|
||||
|
||||
addi r8, r1, KDP.NanoKernelCallTable
|
||||
|
||||
|
@ -135,22 +136,22 @@ InitKCalls
|
|||
|
||||
; Then some overrides (names still pretty poor)
|
||||
|
||||
_kaddr r23, rNK, kcReturnFromException
|
||||
_kaddr r23, rNK, KCallReturnFromException
|
||||
stw r23, NanoKernelCallTable.ReturnFromException(r8)
|
||||
|
||||
_kaddr r23, rNK, kcRunAlternateContext
|
||||
_kaddr r23, rNK, KCallRunAlternateContext
|
||||
stw r23, NanoKernelCallTable.RunAlternateContext(r8)
|
||||
|
||||
_kaddr r23, rNK, kcResetSystem
|
||||
_kaddr r23, rNK, KCallResetSystem
|
||||
stw r23, NanoKernelCallTable.ResetSystem(r8)
|
||||
|
||||
_kaddr r23, rNK, kcVMDispatch
|
||||
_kaddr r23, rNK, KCallVMDispatch
|
||||
stw r23, NanoKernelCallTable.VMDispatch(r8)
|
||||
|
||||
_kaddr r23, rNK, kcPrioritizeInterrupts
|
||||
_kaddr r23, rNK, KCallPrioritizeInterrupts
|
||||
stw r23, NanoKernelCallTable.PrioritizeInterrupts(r8)
|
||||
|
||||
_kaddr r23, rNK, kcThud
|
||||
_kaddr r23, rNK, KCallThud
|
||||
stw r23, NanoKernelCallTable.Thud(r8)
|
||||
|
||||
|
||||
|
|
|
@ -163,10 +163,10 @@ KCallResetSystem ; PPC trap 1, or indirectly, 68k RESET
|
|||
|
||||
xoris r8, r3, 'Ga'
|
||||
cmplwi r8, 'ry'
|
||||
bne @actually_reset
|
||||
bne Reset
|
||||
xoris r8, r4, 0x0505
|
||||
cmplwi r8, 0x1956
|
||||
bne @actually_reset
|
||||
bne Reset
|
||||
|
||||
; Gary Davidian skeleton key: r5/D0 = MSR bits to unset, r7/D2 = MSR bits to set
|
||||
andc r11, r11, r5
|
||||
|
@ -174,11 +174,11 @@ KCallResetSystem ; PPC trap 1, or indirectly, 68k RESET
|
|||
or r11, r11, r8
|
||||
b IntReturn
|
||||
|
||||
@actually_reset
|
||||
Reset
|
||||
include 'NKReset.s'
|
||||
|
||||
lmw r14, EWA.r14(r1)
|
||||
b kcPrioritizeInterrupts
|
||||
b KCallPrioritizeInterrupts
|
||||
|
||||
########################################################################
|
||||
|
||||
|
@ -204,7 +204,7 @@ KCallPrioritizeInterrupts
|
|||
lwz r8, ContextBlock.r8(r6)
|
||||
lwz r9, ContextBlock.r9(r6)
|
||||
lwz r6, EWA.r6(r1)
|
||||
blrl ; (could this ever fall though to kcThud?)
|
||||
blrl ; (could this ever fall though to KCallallSystemCrash?)
|
||||
|
||||
########################################################################
|
||||
|
||||
|
@ -309,8 +309,8 @@ IntProgram ; (also called when the Alternate Context gets an External Int => Exc
|
|||
stw r10, KDP.NanoKernelInfo + NKNanoKernelInfo.NanoKernelCallCounts(r8)
|
||||
lwz r8, KDP.NanoKernelCallTable(r8)
|
||||
mtlr r8
|
||||
addi r10, r10, 4 ; continue executing the next instruction
|
||||
rlwimi r7, r7, 32-5, 26, 26 ; something about MSR[SE]
|
||||
addi r10, r10, 4 ; continue executing the next instruction
|
||||
rlwimi r7, r7, 32-5, 26, 26 ; something about MSR[SE]
|
||||
blr
|
||||
|
||||
; Cannot service with a KCall => throw Exception
|
||||
|
@ -336,7 +336,7 @@ IntProgram ; (also called when the Alternate Context gets an External Int => Exc
|
|||
li r8, ecFloatException
|
||||
bc BO_IF, 15, Exception ; SRR1[15] set => handler can retry
|
||||
addi r10, r10, 4
|
||||
rlwimi r7, r7, 32-5, 26, 26 ; something about MSR[SE]
|
||||
rlwimi r7, r7, 32-5, 26, 26 ; something about MSR[SE]
|
||||
b Exception ; SRR1[15] unset => can't retry
|
||||
|
||||
########################################################################
|
||||
|
|
Loading…
Reference in New Issue
Block a user