forked from dolphin-emu/dolphin
		
	enable newline normalization get revision number via `hg svn info` for svnrev.h ignore incremental/generated binary files (windows/VS at least) leave a comment if some files need native eol set in svnprops git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5637 8ced0084-cf51-0410-be5f-012b33b47a6e
		
			
				
	
	
		
			640 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			640 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
 | 
						|
DSCR:	equ 0xffc9	; DSP DMA Control Reg
 | 
						|
DSBL:	equ 0xffcb	; DSP DMA Block Length
 | 
						|
DSPA:	equ 0xffcd	; DSP DMA DMEM Address
 | 
						|
DSMAH:	equ	0xffce	; DSP DMA Mem Address H
 | 
						|
DSMAL:	equ 0xffcf	; DSP DMA Mem Address L
 | 
						|
 | 
						|
ACSAH:	equ 0xffd4
 | 
						|
ACSAL:	equ	0xffd5
 | 
						|
ACEAH:	equ	0xffd6
 | 
						|
ACEAL:	equ	0xffd7
 | 
						|
ACCAH:	equ	0xffd8
 | 
						|
ACCAL:	equ	0xffd9
 | 
						|
AMDM:	equ	0xffef	; ARAM DMA Request Mask
 | 
						|
 | 
						|
DIRQ:	equ	0xfffb	; DSP Irq Request
 | 
						|
DMBH:	equ	0xfffc	; DSP Mailbox H
 | 
						|
DMBL:	equ	0xfffd	; DSP Mailbox L
 | 
						|
CMBH:	equ	0xfffe	; CPU Mailbox H
 | 
						|
CMBL:	equ 0xffff	; CPU Mailbox L
 | 
						|
 | 
						|
R00:	equ	0x00
 | 
						|
R01:	equ	0x01
 | 
						|
R02:	equ	0x02
 | 
						|
R03:	equ	0x03
 | 
						|
R04:	equ	0x04
 | 
						|
R05:	equ	0x05
 | 
						|
R06:	equ	0x06
 | 
						|
R07:	equ	0x07
 | 
						|
R08:	equ	0x08
 | 
						|
R09:	equ	0x09
 | 
						|
R0A:	equ	0x0a
 | 
						|
R0B:	equ	0x0b
 | 
						|
R0C:	equ	0x0c
 | 
						|
R0D:	equ	0x0d
 | 
						|
R0E:	equ	0x0e
 | 
						|
R0F:	equ	0x0f
 | 
						|
R10:	equ	0x10
 | 
						|
R11:	equ	0x11
 | 
						|
R12:	equ	0x12
 | 
						|
R13:	equ	0x13
 | 
						|
R14:	equ	0x14
 | 
						|
R15:	equ	0x15
 | 
						|
R16:	equ	0x16
 | 
						|
R17:	equ	0x17
 | 
						|
R18:	equ	0x18
 | 
						|
R19:	equ	0x19
 | 
						|
R1A:	equ	0x1a
 | 
						|
R1B:	equ	0x1b
 | 
						|
R1C:	equ	0x1c
 | 
						|
R1D:	equ	0x1d
 | 
						|
R1E:	equ	0x1e
 | 
						|
R1F:	equ	0x1f
 | 
						|
 | 
						|
ACH0:	equ	0x10
 | 
						|
ACH1:	equ	0x11
 | 
						|
ACL0:	equ	0x1e
 | 
						|
ACL1:	equ	0x1f
 | 
						|
 | 
						|
DSP_CR_IMEM:	equ		2
 | 
						|
DSP_CR_TO_CPU:	equ		1
 | 
						|
 | 
						|
 | 
						|
REGS_BASE:	equ		0x0f80
 | 
						|
MEM_HI:			equ		0x0f7E
 | 
						|
MEM_LO:			equ		0x0f7F
 | 
						|
 | 
						|
 | 
						|
; Interrupt vectors 8 vectors, 2 opcodes each
 | 
						|
 | 
						|
	jmp		irq0
 | 
						|
	jmp		irq1
 | 
						|
	jmp		irq2
 | 
						|
	jmp		irq3
 | 
						|
	jmp		irq4
 | 
						|
	jmp		irq5
 | 
						|
	jmp		irq6
 | 
						|
	jmp		irq7
 | 
						|
	
 | 
						|
; Main code at 0x10
 | 
						|
	CW		0x1302
 | 
						|
	CW		0x1303
 | 
						|
	CW		0x1204
 | 
						|
	CW		0x1305
 | 
						|
	CW		0x1306
 | 
						|
 | 
						|
	s40
 | 
						|
	lri		$r12, #0x00ff
 | 
						|
	
 | 
						|
main:
 | 
						|
 | 
						|
	cw		0x8900
 | 
						|
	cw		0x8100	
 | 
						|
 | 
						|
; get address of memory dump and copy it
 | 
						|
 | 
						|
	call	wait_for_dsp_mbox
 | 
						|
	si		@DMBH, #0x8888
 | 
						|
	si		@DMBL, #0xdead
 | 
						|
	si		@DIRQ, #0x0001
 | 
						|
 | 
						|
	call	wait_for_cpu_mbox
 | 
						|
	lrs		$ACL0, @CMBL
 | 
						|
	andi	$acl1, #0x7fff
 | 
						|
 | 
						|
	sr		@MEM_HI, $ACL1
 | 
						|
	sr		@MEM_LO, $ACL0
 | 
						|
 | 
						|
	lri		$r18, #0
 | 
						|
	lri		$r19, #0		;(DSP_CR_IMEM | DSP_CR_TO_CPU)
 | 
						|
	lri		$r1a, #0x2000
 | 
						|
	lr		$r1c, @MEM_HI
 | 
						|
	lr		$r1e, @MEM_LO
 | 
						|
	call	do_dma
 | 
						|
 | 
						|
 | 
						|
; get address of registers and DMA them to memory
 | 
						|
 | 
						|
	call	wait_for_dsp_mbox
 | 
						|
	si		@DMBH, #0x8888
 | 
						|
	si		@DMBL, #0xbeef
 | 
						|
	si		@DIRQ, #0x0001
 | 
						|
 | 
						|
	call	wait_for_cpu_mbox
 | 
						|
	lrs		$ACL0, @CMBL
 | 
						|
	andi	$acl1, #0x7fff
 | 
						|
 | 
						|
	sr		@MEM_HI, $ACL1
 | 
						|
	sr		@MEM_LO, $ACL0
 | 
						|
 | 
						|
	lri		$r18, #REGS_BASE
 | 
						|
	lri		$r19, #0		;(DSP_CR_IMEM | DSP_CR_TO_CPU)
 | 
						|
	lri		$r1a, #0x80
 | 
						|
	lr		$r1c, @MEM_HI
 | 
						|
	lr		$r1e, @MEM_LO
 | 
						|
	call	do_dma
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	lri		$r00, #REGS_BASE+1
 | 
						|
	lrri	$r01, @$r00
 | 
						|
	lrri	$r02, @$r00
 | 
						|
	lrri	$r03, @$r00
 | 
						|
	lrri	$r04, @$r00
 | 
						|
	lrri	$r05, @$r00
 | 
						|
	lrri	$r06, @$r00
 | 
						|
	lrri	$r07, @$r00
 | 
						|
	lrri	$r08, @$r00
 | 
						|
	lrri	$r09, @$r00
 | 
						|
	lrri	$r0a, @$r00
 | 
						|
	lrri	$r0b, @$r00
 | 
						|
	lrri	$r0c, @$r00
 | 
						|
	lrri	$r0d, @$r00
 | 
						|
	lrri	$r0e, @$r00
 | 
						|
	lrri	$r0f, @$r00
 | 
						|
	lrri	$r10, @$r00
 | 
						|
	lrri	$r11, @$r00
 | 
						|
	lrri	$r12, @$r00
 | 
						|
	lrri	$r13, @$r00
 | 
						|
	lrri	$r14, @$r00
 | 
						|
	lrri	$r15, @$r00
 | 
						|
	lrri	$r16, @$r00
 | 
						|
	lrri	$r17, @$r00
 | 
						|
	lrri	$r18, @$r00
 | 
						|
	lrri	$r19, @$r00
 | 
						|
	lrri	$r1a, @$r00
 | 
						|
	lrri	$r1b, @$r00
 | 
						|
	lrri	$r1c, @$r00
 | 
						|
	lrri	$r1d, @$r00
 | 
						|
	lrri	$r1e, @$r00
 | 
						|
	lrri	$r1f, @$r00
 | 
						|
	lr		$r00, @REGS_BASE
 | 
						|
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
 | 
						|
 | 
						|
	
 | 
						|
	
 | 
						|
		cw 0x8600
 | 
						|
 | 
						|
		call	send_back
 | 
						|
 | 
						|
		JMP ende
 | 
						|
 | 
						|
 | 
						|
;	call dump_memory
 | 
						|
;	call	send_back
 | 
						|
	
 | 
						|
	
 | 
						|
; 0x041e
 | 
						|
;	
 | 
						|
 | 
						|
    cw 0x00de 
 | 
						|
    cw 0x03f1 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x0200 
 | 
						|
    cw 0x0a60 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x1c7e 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x8100 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x8900 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x009f    
 | 
						|
    cw 0x00a0 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x00de 
 | 
						|
    cw 0x03f1 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x5d00 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x0e50 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x0750 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x0270 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x5d00 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x00da    
 | 
						|
    cw 0x03f2 
 | 
						|
    call	send_back
 | 
						|
        
 | 
						|
    cw 0x8600 
 | 
						|
    call	send_back
 | 
						|
     
 | 
						|
    JNS g_0c4d
 | 
						|
;		cw 0x0290 
 | 
						|
;   cw 0x0c4d 
 | 
						|
;   call	send_back    JX0
 | 
						|
    
 | 
						|
    cw 0x00de 
 | 
						|
    cw 0x03f3 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x5c00 
 | 
						|
    call	send_back
 | 
						|
 
 | 
						|
 		JLE g_0c38  
 | 
						|
;   cw 0x0293 
 | 
						|
;   cw 0x0c38 				JX3
 | 
						|
;		call	send_back
 | 
						|
    
 | 
						|
    JMP g_0c52
 | 
						|
    
 | 
						|
;    cw 0x029f 
 | 
						|
;    cw 0x0c52 
 | 
						|
;		call	send_back    
 | 
						|
 | 
						|
g_0c38:
 | 
						|
    cw 0x00db 
 | 
						|
    cw 0x03f7 
 | 
						|
    call	send_back
 | 
						|
        
 | 
						|
    cw 0x009e 
 | 
						|
    cw 0x8000 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x4600 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    JMP g_0c44
 | 
						|
;    cw 0x029f 
 | 
						|
;		 cw 0x0c44 
 | 
						|
;    call	send_back
 | 
						|
    
 | 
						|
g_0c3f:    
 | 
						|
    cw 0x00db 
 | 
						|
    cw 0x03f7 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x009e 
 | 
						|
    cw 0x8000 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x5600 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
g_0c44:    
 | 
						|
    cw 0x00fe    
 | 
						|
    cw 0x03f5 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x1fda 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x7c00 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x1f5e 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x00fe 
 | 
						|
    cw 0x03f2 
 | 
						|
    call	send_back
 | 
						|
 
 | 
						|
 	JMP g_0c52   
 | 
						|
;    cw 0x029f 
 | 
						|
;    cw 0x0c52 
 | 
						|
;    call	send_back
 | 
						|
 | 
						|
g_0c4d:
 | 
						|
    
 | 
						|
    cw 0x00de 
 | 
						|
    cw 0x03f4 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x5d00 
 | 
						|
    call	send_back
 | 
						|
 
 | 
						|
 	JLE g_0c3f   
 | 
						|
;    cw 0x0293 
 | 
						|
;    cw 0x0c3f 
 | 
						|
;    call	send_back
 | 
						|
    
 | 
						|
g_0c52:    
 | 
						|
    cw 0x8900 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x00dd     
 | 
						|
    cw 0x03f5 
 | 
						|
    call	send_back
 | 
						|
        
 | 
						|
    cw 0x1501 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x8100 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x00dc 
 | 
						|
    cw 0x03f6 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x008b 
 | 
						|
    cw 0x009f 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x0080 
 | 
						|
    cw 0x0a00 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x0900 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    BLOOPI #0x50, g_0c65
 | 
						|
;    cw 0x1150 
 | 
						|
;    cw 0x0c65 
 | 
						|
;		call	send_back
 | 
						|
 | 
						|
 | 
						|
    cw 0x1878 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x4c00 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x1cfe 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x001f 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x1fd9 
 | 
						|
    call	send_back
 | 
						|
g_0c65:
 | 
						|
    cw 0x1b18 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x009f     
 | 
						|
    cw 0x0a60 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x1fc3 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x5c00 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x00fe 
 | 
						|
    cw 0x03f1 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x00fc 
 | 
						|
    cw 0x03f6 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
    cw 0x008b 
 | 
						|
    cw 0xffff 
 | 
						|
    call	send_back
 | 
						|
    
 | 
						|
	
 | 
						|
 | 
						|
ende:
 | 
						|
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	
 | 
						|
	
 | 
						|
	
 | 
						|
dead_loop:
 | 
						|
	jmp		dead_loop
 | 
						|
 | 
						|
do_dma:
 | 
						|
	sr		@DSMAH, $r1c
 | 
						|
	sr		@DSMAL, $r1e
 | 
						|
	sr		@DSPA, $r18
 | 
						|
	sr		@DSCR, $r19
 | 
						|
	sr		@DSBL, $r1a
 | 
						|
wait_dma:
 | 
						|
	LRS		$ACL1, @DSCR
 | 
						|
	andcf	$acl1, #0x0004
 | 
						|
	JLZ		wait_dma
 | 
						|
	RET
 | 
						|
 | 
						|
 | 
						|
wait_for_dsp_mbox:
 | 
						|
	lrs		$ACL1, @DMBH
 | 
						|
	andcf	$acl1, #0x8000
 | 
						|
	jlz		wait_for_dsp_mbox
 | 
						|
	ret
 | 
						|
 | 
						|
wait_for_cpu_mbox:
 | 
						|
	lrs		$ACL1, @cmbh
 | 
						|
	andcf	$acl1, #0x8000
 | 
						|
	jlnz	wait_for_cpu_mbox
 | 
						|
	ret
 | 
						|
	
 | 
						|
irq0:
 | 
						|
	lri		$acl0, #0x0000
 | 
						|
	jmp		irq
 | 
						|
irq1:
 | 
						|
	lri		$acl0, #0x0001
 | 
						|
	jmp		irq
 | 
						|
irq2:
 | 
						|
	lri		$acl0, #0x0002
 | 
						|
	jmp		irq
 | 
						|
	
 | 
						|
irq3:
 | 
						|
	lri		$acl0, #0x0003
 | 
						|
	jmp		irq
 | 
						|
irq4:
 | 
						|
	lri		$acl0, #0x0004
 | 
						|
	jmp		irq
 | 
						|
irq5:
 | 
						|
;	jmp finale
 | 
						|
	s40
 | 
						|
	mrr		$r0d, $r1c
 | 
						|
	mrr		$r0d, $r1e
 | 
						|
	clr		$acc0
 | 
						|
	mrr		$r1e, $r0d
 | 
						|
	mrr		$r1c, $r0d
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	nop
 | 
						|
	rti
 | 
						|
	
 | 
						|
	lri		$acl0, #0x0005
 | 
						|
	jmp		irq
 | 
						|
irq6:
 | 
						|
	lri		$acl0, #0x0006
 | 
						|
	jmp		irq
 | 
						|
irq7:
 | 
						|
	lri		$acl0, #0x0007
 | 
						|
	jmp		irq
 | 
						|
		
 | 
						|
irq:
 | 
						|
	lrs		$ACL1, @DMBH
 | 
						|
	andcf	$acl1, #0x8000
 | 
						|
	jlz		irq
 | 
						|
	si		@DMBH, #0x8BAD
 | 
						|
	sr		@DMBL, $r0b
 | 
						|
;sr		@DMBL, $acl0	
 | 
						|
	si		@DIRQ, #0x0001
 | 
						|
	halt
 | 
						|
	
 | 
						|
	
 | 
						|
	
 | 
						|
	
 | 
						|
send_back:
 | 
						|
 | 
						|
	; store registers to reg table
 | 
						|
	sr		@REGS_BASE,  $r00
 | 
						|
	lri		$r00, #(REGS_BASE + 1)
 | 
						|
	srri	@$r00, $r01
 | 
						|
	srri	@$r00, $r02
 | 
						|
	srri	@$r00, $r03
 | 
						|
	srri	@$r00, $r04
 | 
						|
	srri	@$r00, $r05
 | 
						|
	srri	@$r00, $r06
 | 
						|
	srri	@$r00, $r07
 | 
						|
	srri	@$r00, $r08
 | 
						|
	srri	@$r00, $r09
 | 
						|
	srri	@$r00, $r0a
 | 
						|
	srri	@$r00, $r0b
 | 
						|
	srri	@$r00, $r0c
 | 
						|
	srri	@$r00, $r0d
 | 
						|
	srri	@$r00, $r0e
 | 
						|
	srri	@$r00, $r0f
 | 
						|
	srri	@$r00, $r10
 | 
						|
	srri	@$r00, $r11
 | 
						|
	srri	@$r00, $r12
 | 
						|
	srri	@$r00, $r13
 | 
						|
	srri	@$r00, $r14
 | 
						|
	srri	@$r00, $r15
 | 
						|
	srri	@$r00, $r16
 | 
						|
	srri	@$r00, $r17
 | 
						|
	srri	@$r00, $r18
 | 
						|
	srri	@$r00, $r19
 | 
						|
	srri	@$r00, $r1a
 | 
						|
	srri	@$r00, $r1b
 | 
						|
	srri	@$r00, $r1c
 | 
						|
	srri	@$r00, $r1d
 | 
						|
	srri	@$r00, $r1e
 | 
						|
	srri	@$r00, $r1f
 | 
						|
	
 | 
						|
 | 
						|
	lri		$r18, #0x0000
 | 
						|
	lri		$r19, #1		;(DSP_CR_IMEM | DSP_CR_TO_CPU)
 | 
						|
	lri		$r1a, #0x200
 | 
						|
	lr		$r1c, @MEM_HI
 | 
						|
	lr		$r1e, @MEM_LO
 | 
						|
 | 
						|
	lri		$r01, #8+8
 | 
						|
	
 | 
						|
	bloop	$r01, dma_copy
 | 
						|
	call	do_dma
 | 
						|
	addi	$r1e, #0x200
 | 
						|
	mrr		$r1f, $r18
 | 
						|
	addi	$r1f, #0x100
 | 
						|
	mrr		$r18, $r1f
 | 
						|
	nop
 | 
						|
dma_copy:
 | 
						|
	nop
 | 
						|
	
 | 
						|
	call	wait_for_dsp_mbox
 | 
						|
	si		@DMBH, #0x8888
 | 
						|
	si		@DMBL, #0xfeeb
 | 
						|
	si		@DIRQ, #0x0001
 | 
						|
	
 | 
						|
; wait for answer before we execute the next op	
 | 
						|
	call	wait_for_cpu_mbox
 | 
						|
	lrs		$ACL0, @CMBL
 | 
						|
	andi	$acl1, #0x7fff
 | 
						|
 | 
						|
	
 | 
						|
	
 | 
						|
	lri		$r00, #REGS_BASE+1
 | 
						|
	lrri	$r01, @$r00
 | 
						|
	lrri	$r02, @$r00
 | 
						|
	lrri	$r03, @$r00
 | 
						|
	lrri	$r04, @$r00
 | 
						|
	lrri	$r05, @$r00
 | 
						|
	lrri	$r06, @$r00
 | 
						|
	lrri	$r07, @$r00
 | 
						|
	lrri	$r08, @$r00
 | 
						|
	lrri	$r09, @$r00
 | 
						|
	lrri	$r0a, @$r00
 | 
						|
	lrri	$r0b, @$r00
 | 
						|
	lrri	$r0c, @$r00
 | 
						|
	lrri	$r0d, @$r00
 | 
						|
	lrri	$r0e, @$r00
 | 
						|
	lrri	$r0f, @$r00
 | 
						|
	lrri	$r10, @$r00
 | 
						|
	lrri	$r11, @$r00
 | 
						|
	lrri	$r12, @$r00
 | 
						|
	lrri	$r13, @$r00
 | 
						|
	lrri	$r14, @$r00
 | 
						|
	lrri	$r15, @$r00
 | 
						|
	lrri	$r16, @$r00
 | 
						|
	lrri	$r17, @$r00
 | 
						|
	lrri	$r18, @$r00
 | 
						|
	lrri	$r19, @$r00
 | 
						|
	lrri	$r1a, @$r00
 | 
						|
	lrri	$r1b, @$r00
 | 
						|
	lrri	$r1c, @$r00
 | 
						|
	lrri	$r1d, @$r00
 | 
						|
	lrri	$r1e, @$r00
 | 
						|
	lrri	$r1f, @$r00
 | 
						|
	lr		$r00, @REGS_BASE
 | 
						|
	
 | 
						|
	ret	
 | 
						|
	
 | 
						|
send_back_16:
 | 
						|
			
 | 
						|
	cw		0x8e00
 | 
						|
	call	send_back	
 | 
						|
	cw		0x8f00
 | 
						|
	
 | 
						|
	ret
 | 
						|
	
 | 
						|
	
 | 
						|
dump_memory:
 | 
						|
 | 
						|
	lri		$r02, #0x0000
 | 
						|
	lri		$acl0, #0x1000
 | 
						|
	
 | 
						|
	lri		$r01, #0x1000		
 | 
						|
	bloop	$r01, _fill_loop2			
 | 
						|
	
 | 
						|
	mrr $r03, $acl0
 | 
						|
	cw 0x80f0
 | 
						|
	
 | 
						|
	mrr $r1f, $r00
 | 
						|
	mrr $r00, $r02
 | 
						|
	srri	@$r00, $r1b
 | 
						|
	mrr $r02, $r00
 | 
						|
	mrr $r00, $r1f
 | 
						|
	
 | 
						|
	addis	$acc0, #0x1
 | 
						|
	
 | 
						|
_fill_loop2:
 | 
						|
	nop
 | 
						|
	
 | 
						|
 | 
						|
ret 
 |