From 3ffebff2aad2ca438cf76db51fb3459c5639cd67 Mon Sep 17 00:00:00 2001 From: lameguy64 Date: Thu, 23 May 2019 22:24:56 +0800 Subject: Added BIOS Controller, BIOS CD, 2 new examples and custom exit handler in the works --- libpsn00b/psxapi/fs/_InitCd.s | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 libpsn00b/psxapi/fs/_InitCd.s (limited to 'libpsn00b/psxapi/fs') diff --git a/libpsn00b/psxapi/fs/_InitCd.s b/libpsn00b/psxapi/fs/_InitCd.s new file mode 100644 index 0000000..decf2bd --- /dev/null +++ b/libpsn00b/psxapi/fs/_InitCd.s @@ -0,0 +1,37 @@ +.section .text +.set noreorder + +.include "hwregs_a.h" + +.global _InitCd +.type _InitCd, @function +_InitCd: + addiu $sp, -8 + sw $ra, 0($sp) + + lui $a0, IOBASE # Load IOBASE value + + lw $v0, DPCR($a0) # Get current DMA settings + nop + sw $v0, 4($sp) # Save to stack + + jal _96_init # Init CD subsystem + nop + + lui $a0, IOBASE # Load IOBASE again + + lw $v0, 4($sp) # Get old DMA control settings + lw $v1, DPCR($a0) # Get DMA settings by _96_init() + + lui $a1, 0xffff # Mask out settings for CD DMA + ori $a1, 0x0f00 + and $v0, $a1 + + or $v0, $v1 # Merge and set new DMA settings + sw $v0, DPCR($a0) + + lw $ra, 0($sp) + addiu $sp, 8 + jr $ra + nop + \ No newline at end of file -- cgit v1.2.3