02.27 <- 02.28
The master branch builds 02.28. This branch builds 02.27, 02.26 and so on. It will be frequently rebased on master.
This commit is contained in:
parent
b1bb36c551
commit
85c87e641a
|
@ -466,15 +466,6 @@ BAT2U ds.l 1 ; 90
|
|||
BAT2L ds.l 1 ; 94
|
||||
BAT3U ds.l 1 ; 98
|
||||
BAT3L ds.l 1 ; 9c
|
||||
ExtraBATs ; the flag that enables these is never set?
|
||||
ExtraBAT0U ds.l 1 ; a0
|
||||
ExtraBAT0L ds.l 1 ; a4
|
||||
ExtraBAT1U ds.l 1 ; a8
|
||||
ExtraBAT1L ds.l 1 ; ac
|
||||
ExtraBAT2U ds.l 1 ; b0
|
||||
ExtraBAT2L ds.l 1 ; b4
|
||||
ExtraBAT3U ds.l 1 ; b8
|
||||
ExtraBAT3L ds.l 1 ; bc
|
||||
|
||||
Size equ *
|
||||
endr
|
||||
|
|
|
@ -211,17 +211,6 @@ _370 ds.l 1 ; -370
|
|||
_36c ds.l 1 ; -36c
|
||||
_368 ds.l 1 ; -368
|
||||
_364 ds.l 1 ; -364
|
||||
_360 ds.w 1 ; -360
|
||||
_35e ds.w 1 ; -35e
|
||||
_35c ds.w 1 ; -35c
|
||||
_35a ds.w 1 ; -35a
|
||||
_358 ds.w 1 ; -358
|
||||
_356 ds.w 1 ; -356
|
||||
_354 ds.l 1 ; -354
|
||||
_350 ds.l 1 ; -350
|
||||
_34c ds.l 1 ; -34c
|
||||
_348 ds.l 1 ; -348
|
||||
_344 ds.l 1 ; -344
|
||||
|
||||
EWAFiller ds.b 0x340
|
||||
EndOfPSA
|
||||
|
|
|
@ -4665,22 +4665,6 @@ SpaceL2PUsingBATs ; LogicalPage *r8, MPAddressSpace *r9 // PhysicalPage *r17
|
|||
_v2pguts
|
||||
beq @bat_yes
|
||||
|
||||
lwzu r16, 8(r18)
|
||||
_v2pguts
|
||||
beq @bat_yes
|
||||
|
||||
lwzu r16, 8(r18)
|
||||
_v2pguts
|
||||
beq @bat_yes
|
||||
|
||||
lwzu r16, 8(r18)
|
||||
_v2pguts
|
||||
beq @bat_yes
|
||||
|
||||
lwzu r16, 8(r18)
|
||||
_v2pguts
|
||||
beq @bat_yes
|
||||
|
||||
lwzu r16, 8(r18)
|
||||
_v2pguts
|
||||
bne @bat_no
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;_______________________________________________________________________
|
||||
|
||||
|
||||
kNanoKernelVersion equ $0228
|
||||
kNanoKernelVersion equ $0227
|
||||
|
||||
|
||||
; PowerPC Machine Status Register (MSR) bits
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
if &TYPE('NKDebugShim') != 'UNDEFINED'
|
||||
MaxMPCallCount equ 300
|
||||
else
|
||||
MaxMPCallCount equ 134
|
||||
MaxMPCallCount equ 133
|
||||
endif
|
||||
|
||||
|
||||
|
@ -1418,8 +1418,7 @@ KCStopScheduling ; OUTSIDE REFERER
|
|||
li r17, 0x00
|
||||
stb r17, 0x0019(r31)
|
||||
mr r8, r31
|
||||
bl SchRdyTaskLater
|
||||
bl CalculateTimeslice
|
||||
bl SchRdyTaskNow
|
||||
mr r8, r31
|
||||
bl FlagSchEval
|
||||
lwz r8, 0x064c(r1)
|
||||
|
@ -1429,6 +1428,7 @@ KCStopScheduling ; OUTSIDE REFERER
|
|||
|
||||
KCStopScheduling_0x94
|
||||
_AssertAndRelease PSA.SchLock + Lock.Count, scratch=r16
|
||||
subi r10, r10, 4
|
||||
b MPCall_6_0x78
|
||||
|
||||
|
||||
|
@ -2049,73 +2049,5 @@ KCRegisterExternalHandler
|
|||
|
||||
|
||||
|
||||
DeclareMPCall 133, MPCall_133
|
||||
|
||||
MPCall_133 ; OUTSIDE REFERER
|
||||
|
||||
_Lock PSA.SchLock, scratch1=r16, scratch2=r17
|
||||
|
||||
cmpw r3, r0
|
||||
lwz r16, 0x0edc(r1)
|
||||
li r17, 0x0b
|
||||
blt MPCall_133_0x34
|
||||
and r3, r3, r17
|
||||
or r16, r16, r3
|
||||
b MPCall_133_0x3c
|
||||
|
||||
MPCall_133_0x34
|
||||
orc r3, r3, r17
|
||||
and r16, r16, r3
|
||||
|
||||
MPCall_133_0x3c
|
||||
stw r16, 0x0edc(r1)
|
||||
srawi r16, r4, 16
|
||||
extsh r17, r4
|
||||
cmpwi r16, -0x01
|
||||
cmpwi cr1, r17, -0x01
|
||||
beq MPCall_133_0x60
|
||||
bgt MPCall_133_0x5c
|
||||
li r16, 0x00
|
||||
|
||||
MPCall_133_0x5c
|
||||
sth r16, PSA._360(r1)
|
||||
|
||||
MPCall_133_0x60
|
||||
beq cr1, MPCall_133_0x70
|
||||
bgt cr1, MPCall_133_0x6c
|
||||
li r17, 0x00
|
||||
|
||||
MPCall_133_0x6c
|
||||
sth r17, PSA._35e(r1)
|
||||
|
||||
MPCall_133_0x70
|
||||
srawi r16, r5, 16
|
||||
extsh r17, r5
|
||||
cmpwi r16, -0x01
|
||||
cmpwi cr1, r17, -0x01
|
||||
beq MPCall_133_0x90
|
||||
bgt MPCall_133_0x8c
|
||||
li r16, 0x00
|
||||
|
||||
MPCall_133_0x8c
|
||||
sth r16, PSA._35c(r1)
|
||||
|
||||
MPCall_133_0x90
|
||||
beq cr1, MPCall_133_0xa0
|
||||
bgt cr1, MPCall_133_0x9c
|
||||
li r17, 0x00
|
||||
|
||||
MPCall_133_0x9c
|
||||
sth r17, PSA._35a(r1)
|
||||
|
||||
MPCall_133_0xa0
|
||||
; r1 = kdp
|
||||
bl ScreenConsole_redraw
|
||||
|
||||
; r1 = kdp
|
||||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
||||
|
||||
|
||||
MPCall_Panic
|
||||
b panic
|
||||
|
|
|
@ -966,7 +966,7 @@ SchSwitchSpace
|
|||
cmplw r16, r17
|
||||
lwz r17, AddressSpace.BAT3L(r8)
|
||||
beq cr1, @definitely_set_BAT3
|
||||
beq @skip_setting_BAT3
|
||||
beqlr
|
||||
@definitely_set_BAT3
|
||||
|
||||
mtspr dbat3u, r0
|
||||
|
@ -979,80 +979,6 @@ SchSwitchSpace
|
|||
@skip_setting_BAT3
|
||||
|
||||
|
||||
; This is weird. If the hasExtraBATs flag (my name) is set in ProcessorInfo,
|
||||
; populate a second (undocumented?) set of BATs from the same struct.
|
||||
|
||||
lwz r17, KDP.ProcessorInfo + NKProcessorInfo.ProcessorFlags(r1)
|
||||
lwz r16, AddressSpace.ExtraBAT0U(r8)
|
||||
rlwinm. r17, r17, 0, 31-NKProcessorInfo.hasExtraBATs, 31-NKProcessorInfo.hasExtraBATs
|
||||
lwz r17, AddressSpace.ExtraBAT0U(r9)
|
||||
beq @return
|
||||
cmplw r16, r17
|
||||
lwz r17, AddressSpace.ExtraBAT0L(r8)
|
||||
beq cr1, @definitely_set_ExtraBAT0
|
||||
beq @skip_setting_ExtraBAT0
|
||||
|
||||
@definitely_set_ExtraBAT0
|
||||
mtspr 0x238, r0
|
||||
mtspr 0x239, r17
|
||||
mtspr 0x238, r16
|
||||
mtspr 0x230, r0
|
||||
mtspr 0x231, r17
|
||||
mtspr 0x230, r16
|
||||
@skip_setting_ExtraBAT0
|
||||
|
||||
|
||||
lwz r16, AddressSpace.ExtraBAT1U(r8)
|
||||
lwz r17, AddressSpace.ExtraBAT1U(r9)
|
||||
cmplw r16, r17
|
||||
lwz r17, AddressSpace.ExtraBAT1L(r8)
|
||||
beq cr1, @definitely_set_ExtraBAT1
|
||||
beq @skip_setting_ExtraBAT1
|
||||
|
||||
@definitely_set_ExtraBAT1
|
||||
mtspr 0x23a, r0
|
||||
mtspr 0x23b, r17
|
||||
mtspr 0x23a, r16
|
||||
mtspr 0x232, r0
|
||||
mtspr 0x233, r17
|
||||
mtspr 0x232, r16
|
||||
@skip_setting_ExtraBAT1
|
||||
|
||||
|
||||
lwz r16, AddressSpace.ExtraBAT2U(r8)
|
||||
lwz r17, AddressSpace.ExtraBAT2U(r9)
|
||||
cmplw r16, r17
|
||||
lwz r17, AddressSpace.ExtraBAT2L(r8)
|
||||
beq cr1, @definitely_set_ExtraBAT2
|
||||
beq @skip_setting_ExtraBAT2
|
||||
|
||||
@definitely_set_ExtraBAT2
|
||||
mtspr 0x23c, r0
|
||||
mtspr 0x23d, r17
|
||||
mtspr 0x23c, r16
|
||||
mtspr 0x234, r0
|
||||
mtspr 0x235, r17
|
||||
mtspr 0x234, r16
|
||||
@skip_setting_ExtraBAT2
|
||||
|
||||
|
||||
lwz r16, AddressSpace.ExtraBAT3U(r8)
|
||||
lwz r17, AddressSpace.ExtraBAT3U(r9)
|
||||
cmplw r16, r17
|
||||
lwz r17, AddressSpace.ExtraBAT3L(r8)
|
||||
beq cr1, @definitely_set_ExtraBAT3
|
||||
beq @skip_setting_ExtraBAT3
|
||||
|
||||
@definitely_set_ExtraBAT3
|
||||
mtspr 0x23e, r0
|
||||
mtspr 0x23f, r17
|
||||
mtspr 0x23e, r16
|
||||
mtspr 0x236, r0
|
||||
mtspr 0x237, r17
|
||||
mtspr 0x236, r16
|
||||
@skip_setting_ExtraBAT3
|
||||
|
||||
|
||||
@return
|
||||
blr
|
||||
|
||||
|
|
|
@ -18,60 +18,6 @@ ScreenConsoleFG equ 0x44444444
|
|||
align 8 ; odd!
|
||||
; > r1 = kdp
|
||||
|
||||
InitScreenConsole ; OUTSIDE REFERER
|
||||
stmw r29, -0x0110(r1)
|
||||
lis r30, -0x01
|
||||
ori r30, r30, 0x7000
|
||||
add r30, r30, r1
|
||||
addi r31, r30, 0x2000
|
||||
addi r30, r30, 0x04
|
||||
|
||||
InitScreenConsole_0x18
|
||||
cmplw r30, r31
|
||||
addi r29, r31, 0x04
|
||||
bge InitScreenConsole_0x2c
|
||||
stwu r29, -0x1000(r31)
|
||||
b InitScreenConsole_0x18
|
||||
|
||||
InitScreenConsole_0x2c
|
||||
addi r31, r30, 0x1000
|
||||
stw r30, -0x0004(r31)
|
||||
stw r30, PSA._404(r1)
|
||||
stw r30, PSA._400(r1)
|
||||
li r29, ScreenConsoleY
|
||||
sth r29, PSA._360(r1)
|
||||
li r29, ScreenConsoleX
|
||||
sth r29, PSA._35e(r1)
|
||||
li r29, ScreenConsoleHeight
|
||||
sth r29, PSA._35c(r1)
|
||||
li r29, ScreenConsoleWidth
|
||||
sth r29, PSA._35a(r1)
|
||||
li r29, 0x5e
|
||||
sth r29, PSA._358(r1)
|
||||
li r29, 0x30
|
||||
sth r29, PSA._356(r1)
|
||||
lmw r29, -0x0110(r1)
|
||||
blr
|
||||
|
||||
|
||||
|
||||
; > r1 = kdp
|
||||
|
||||
ScreenConsole_putchar ; OUTSIDE REFERER
|
||||
lwz r30, PSA._404(r1)
|
||||
stb r29, 0x0000(r30)
|
||||
addi r30, r30, 0x01
|
||||
andi. r29, r30, 0xfff
|
||||
stw r30, PSA._404(r1)
|
||||
bnelr
|
||||
lwz r30, -0x1000(r30)
|
||||
stw r30, PSA._404(r1)
|
||||
blr
|
||||
|
||||
|
||||
|
||||
; > r1 = kdp
|
||||
|
||||
ScreenConsole_redraw ; OUTSIDE REFERER
|
||||
stmw r2, PSA._3e8(r1)
|
||||
mflr r14
|
||||
|
@ -124,8 +70,7 @@ ScreenConsole_redraw_0x90
|
|||
beq ScreenConsole_redraw_0x74
|
||||
beq cr1, ScreenConsole_redraw_0xe4
|
||||
bl major_0x18e54
|
||||
lhz r17, PSA._358(r1)
|
||||
cmpw r9, r17
|
||||
cmpwi r9, 0x5e
|
||||
blt ScreenConsole_redraw_0x74
|
||||
|
||||
ScreenConsole_redraw_0xc0
|
||||
|
@ -135,16 +80,13 @@ ScreenConsole_redraw_0xc0
|
|||
|
||||
ScreenConsole_redraw_0xcc
|
||||
bl funny_thing
|
||||
lhz r17, PSA._356(r1)
|
||||
cmpw r10, r17
|
||||
cmpwi r10, 0x30
|
||||
blt ScreenConsole_redraw_0x74
|
||||
stw r16, PSA._400(r1)
|
||||
b ScreenConsole_redraw_0x40
|
||||
|
||||
ScreenConsole_redraw_0xe4
|
||||
lhz r17, PSA._356(r1)
|
||||
addi r17, r17, -0x01
|
||||
cmpw r10, r17
|
||||
cmpwi r10, 0x30-1
|
||||
blt ScreenConsole_redraw_0x74
|
||||
lwz r17, PSA.DecClockRateHzCopy(r1)
|
||||
slwi r25, r17, 2
|
||||
|
@ -342,18 +284,6 @@ major_0x18d5c_0x70
|
|||
major_0x18d5c_0x88
|
||||
isync
|
||||
mfmsr r22
|
||||
lhz r29, PSA._360(r1)
|
||||
lhz r30, PSA._35c(r1)
|
||||
subf r29, r29, r30
|
||||
li r30, 0x0a
|
||||
divw r29, r29, r30
|
||||
sth r29, PSA._356(r1)
|
||||
lhz r29, PSA._35e(r1)
|
||||
lhz r30, PSA._35a(r1)
|
||||
subf r29, r29, r30
|
||||
li r30, 0x06
|
||||
divw r29, r29, r30
|
||||
sth r29, PSA._358(r1)
|
||||
mtlr r13
|
||||
blr
|
||||
|
||||
|
@ -363,13 +293,10 @@ major_0x18e24 ; OUTSIDE REFERER
|
|||
mflr r12
|
||||
|
||||
major_0x18e24_0x4
|
||||
lhz r25, PSA._358(r1)
|
||||
cmpw cr1, r9, r25
|
||||
lbz r25, 0x0000(r21)
|
||||
cmplwi r25, 0x00
|
||||
addi r21, r21, 0x01
|
||||
beq major_0x18e24_0x28
|
||||
bge cr1, major_0x18e24_0x4
|
||||
bl major_0x18e54
|
||||
b major_0x18e24_0x4
|
||||
|
||||
|
@ -391,12 +318,6 @@ major_0x18e54 ; OUTSIDE REFERER
|
|||
mullw r7, r7, r6
|
||||
add r7, r7, r27
|
||||
add r7, r7, r3
|
||||
lhz r27, PSA._360(r1)
|
||||
lhz r28, PSA._35e(r1)
|
||||
mullw r27, r5, r27
|
||||
mullw r28, r6, r28
|
||||
add r7, r7, r27
|
||||
add r7, r7, r28
|
||||
subf. r27, r3, r7
|
||||
blt major_0x18e54_0x174
|
||||
li r8, 0x00
|
||||
|
@ -500,8 +421,7 @@ funny_thing_0xc
|
|||
mflr r12
|
||||
|
||||
funny_thing_0x10
|
||||
lhz r25, PSA._358(r1)
|
||||
cmpw r9, r25
|
||||
cmpwi r9, 0x5e
|
||||
bge funny_thing_0x28
|
||||
li r25, 0x20
|
||||
bl major_0x18e54
|
||||
|
|
|
@ -704,7 +704,7 @@ major_0x18040_0x9c
|
|||
cmpwi cr1, r17, -0x100
|
||||
bgt major_0x18040_0x100
|
||||
blt cr1, major_0x18040_0x100
|
||||
_log 'Looks like interrupt stack overflow by os or application^n'
|
||||
_log 'Looks like interrupt stack underflow by os or application^n'
|
||||
|
||||
major_0x18040_0x100
|
||||
mtlr r16
|
||||
|
@ -1232,4 +1232,48 @@ prereturn ; OUTSIDE REFERER
|
|||
|
||||
blr
|
||||
|
||||
|
||||
|
||||
; > r1 = kdp
|
||||
|
||||
InitScreenConsole ; OUTSIDE REFERER
|
||||
stmw r29, -0x0110(r1)
|
||||
lis r30, -0x01
|
||||
ori r30, r30, 0x7000
|
||||
add r30, r30, r1
|
||||
addi r31, r30, 0x2000
|
||||
addi r30, r30, 0x04
|
||||
|
||||
InitScreenConsole_0x18
|
||||
cmplw r30, r31
|
||||
addi r29, r31, 0x04
|
||||
bge InitScreenConsole_0x2c
|
||||
stwu r29, -0x1000(r31)
|
||||
b InitScreenConsole_0x18
|
||||
|
||||
InitScreenConsole_0x2c
|
||||
addi r31, r30, 0x1000
|
||||
stw r30, -0x0004(r31)
|
||||
stw r30, PSA._404(r1)
|
||||
stw r30, PSA._400(r1)
|
||||
lmw r29, -0x0110(r1)
|
||||
blr
|
||||
|
||||
|
||||
|
||||
; > r1 = kdp
|
||||
|
||||
ScreenConsole_putchar ; OUTSIDE REFERER
|
||||
lwz r30, PSA._404(r1)
|
||||
stb r29, 0x0000(r30)
|
||||
addi r30, r30, 0x01
|
||||
andi. r29, r30, 0xfff
|
||||
stw r30, PSA._404(r1)
|
||||
bnelr
|
||||
lwz r30, -0x1000(r30)
|
||||
stw r30, PSA._404(r1)
|
||||
blr
|
||||
|
||||
|
||||
|
||||
align 5
|
||||
|
|
|
@ -2065,19 +2065,19 @@ FDP_1024
|
|||
FDP_104c
|
||||
oris r11, r11, 0x0200
|
||||
lbz r21, 0x0000(r23)
|
||||
b FDP_00E4
|
||||
b FDP_00E8
|
||||
|
||||
|
||||
FDP_1058
|
||||
oris r11, r11, 0x0200
|
||||
lhz r21, 0x0000(r23)
|
||||
b FDP_00E4
|
||||
b FDP_00E8
|
||||
|
||||
|
||||
FDP_1064
|
||||
oris r11, r11, 0x0200
|
||||
lwz r21, 0x0000(r23)
|
||||
b FDP_00E4
|
||||
b FDP_00E8
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -216,6 +216,11 @@ VMFinalInit ; OUTSIDE REFERER
|
|||
ble @loop
|
||||
|
||||
@skip
|
||||
foo set KDP.NanoKernelInfo + NKNanoKernelInfo.ConfigFlags
|
||||
lwz r8, foo(r1)
|
||||
_bclr r8, r8, 28
|
||||
stw r8, foo(r1)
|
||||
|
||||
mfsprg r8, 0
|
||||
lmw r29, EWA.r29(r8)
|
||||
b VMReturn1
|
||||
|
|
Loading…
Reference in New Issue