亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? boot.s

?? ucos 在GAMEBOY上的移植
?? S
字號(hào):
	IMPORT |Image$$RO$$Base|			; Address of the start of the RO output section.
	IMPORT |Image$$RO$$Limit|			; Address of the first byte beyond the end of the RO output section.
	IMPORT |Image$$RW$$Base|			; Address of the start of the RW output section.
	IMPORT |Image$$RW$$Limit|			; Address of the byte beyond the end of the ZI output section. (The choice of the end of the ZI region rather than the end of the RW region is to maintain compatibility with legacy code.)
	IMPORT |Image$$ZI$$Base|			; Address of the start of the ZI output section.
	IMPORT |Image$$ZI$$Limit|			; Address of the byte beyond the end of the ZI output section.
    IMPORT main    						; THE MAIN ENTRY OF MON PROGRAM


EWRAM_START	EQU	0x02000000				;CPU External Working RAM
EWRAM_END	EQU	0x02040000-1   			;(256 Kbytes)
EWRAM_LEN	EQU	EWRAM_END - EWRAM_START+1

IWRAM_START	EQU	0x03000000				;CPU Internal Working RAM
IWRAM_END	EQU	0x03008000-1			;(32 Kbytes)
IWRAM_LEN	EQU	IWRAM_END - IWRAM_START + 1

EWROM_START	EQU	0x08000000

ARM_USR_SP	EQU	0x03007F00				; GBA USR stack adress
ARM_IRQ_SP	EQU	0x03007FA0				; GBA IRQ stack adress
ARM_SVC_SP	EQU	0x03007FE0				; GBA SVC stack adress

INTR_VECTOR_ADDR	EQU	0x3008000 - 4;


ARM_USE_MODE	EQU	0X10				;	Cpu_Mode_USR	EQU 	0x10
ARM_FIQ_MODE	EQU	0X11
ARM_IRQ_MODE	EQU	0X12    			;	Cpu_Mode_IRQ 	EQU 	0x12
ARM_SVC_MODE	EQU	0X13    			;	Cpu_Mode_SVC 	EQU 	0x13
ARM_ABORT_MODE	EQU	0X17
ARM_UNDEF_MODE	EQU	0X1B
ARM_MODEMASK	EQU	0X1F
ARM_NOINT		EQU	0XC0

	AREA INIT, CODE, READONLY

	ENTRY
_start				; Start Vector
		b	   rom_header_end

Nintendo_Logo
		SPACE 156		; Nintendo Logo Character Data (8000004h)

	; Game Title (80000A0h)
		DCB   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
		DCB   0x00,0x00,0x00,0x00

	;MultiBoot Game Code (80000ACh) 
	;ELSE is all zero
		DCB  "MB  "

	; Maker Code (80000B0h)
		DCB   0x30,0x31
	; Fixed Value (80000B2h)
		DCB   0x96
	; Main Unit Code (80000B3h)
		DCB   0x00
	; Device Type (80000B4h)
		DCB   0x00

	; Unused Data (7Byte) (80000B5h)

		DCB   0x00,0x00,0x00,0x00,0x00,0x00,0x00

	; Software Version No (80000BCh)
		DCB   0x00

	; Complement Check (80000BDh)
		DCB   0xf0

	; Checksum (80000BEh)
		DCB   0x00,0x00

rom_header_end
		b	   start_vector			; This branch must be here for proper
									; positioning of the following header.
									; DO NOT REMOVE IT.

;=====================================================================+
;
; The following reserved bytes are used if the code is compiled for
; multiboot mode. It does not hurt anything to leave this header in
; even if the code is not compiled for multiboot. The GBA BIOS will
; auto-patch the first two bytes with 0x03 and 0x01, respectively,
; before running any code if it is executed as multiboot.
;

; The following two bytes are included even for non-multiboot supporting
; builds to guarantee that any generic library code that depends on them
; will still be functional.

	EXPORT	BOOT_METHOD , SLAVE_NUMBER

BOOT_METHOD
		DCB   0	   ; boot method (0=ROM boot, 3=Multiplay boot)
SLAVE_NUMBER
		DCB   0	   ; slave # (1=slave#1, 2=slave#2, 3=slave#3)

		DCB   0	   ; reserved
		DCB   0	   ; reserved
		DCD   0	   ; reserved
		DCD   0	   ; reserved
		DCD   0	   ; reserved
		DCD   0	   ; reserved
		DCD   0	   ; reserved
		DCD   0	   ; reserved
;
;========================================================================+

;==================
;		Reset	  ;
;==================

	EXPORT 	 start_vector
	ALIGN
start_vector
		mov 	r0, #ARM_IRQ_MODE:OR:0x80:OR:0x40 	; Disable interrupts
		msr 	CPSR_c, r0							; Enable IRQ mode
		ldr 	r13, =ARM_IRQ_SP					; Setup IRQ stack pointer

		mov 	r0, #ARM_SVC_MODE:OR:0x80:OR:0x40 	; Disable interrupts
		msr 	CPSR_c, r0							; Enable SVC mode
		ldr 	r13, =ARM_SVC_SP					; Setup SVC stack pointer

; Make sure we are in ExWRAM
		mov     r0,pc								; NOW , we are runing in which space ?
		cmp		r0,#EWROM_START						; is it less then 0x08000000
		bls		SkipEWRAMClear  					; if less , we are runing in a EWRAM
													; if higher, we are runing in a pak ,so no need to do a copy.
; OK, my code is compiler for EWRAM but I run it in a GAMEPAK
; So we need to copy to ExWRAM.
		ldr		r3,=EWRAM_LEN
		ldr		r2,=EWRAM_START
		mov		r6,r2
		ldr		r1,=EWROM_START
		bl		CopyMem			; call CopyMem

; Jump to the ERAM to execute
		bx		r6

SkipEWRAMClear
		ldr 	r0, =|Image$$RO$$Limit| 			; Get pointer to ROM data
		ldr 	r1, =|Image$$RW$$Base| 				; and RAM copy
		ldr 	r3, =|Image$$ZI$$Base| 				; Zero init base => top of initialized data
		cmp 	r0, r1 								; Check that they are different
		beq 	%F1
0 		cmp		r1, r3 								; Copy init data
		ldrcc	r2, [r0], #4
		strcc	r2, [r1], #4
		bcc		%B0
1		ldr 	r1, =|Image$$ZI$$Limit| 			; Top of zero init segment
		mov 	r2, #0
2 		cmp 	r3, r1 								; Zero init
		strcc 	r2, [r3], #4
		bcc		%B2
		
		IMPORT	OSISR
        ldr     r1, =INTR_VECTOR_ADDR				; Set Interrupt Address
        ldr     r0, =OSISR
        str     r0, [r1]

		mov 	r0, #ARM_SVC_MODE:OR:0x40			; Only IRQ enabled
		msr 	CPSR_c, r0

		mov 	r0, #ARM_USE_MODE:OR:0x40
		msr 	CPSR_c, r0							; Switch to USR mode
		ldr 	sp, =ARM_USR_SP					; Setup USR stack pointer


		bl		main		; Now branch to start of C code


		b .
		b	start_vector

;--------ClearMem----------------------+
; Clear memory to 0x00 if length != 0  |
; r0 = Start Address 				   |
; r1 = Length 						   |
;--------------------------------------+
ClearMem
		mov		r2,#3   		; These commands are used in cases where
		add		r1,r1,r2   		; the length is not a multiple of 4,
		bic		r1,r1,r2			; even though it should be.

		mov     r2,#0
		cmp		r1,r2
		beq		ClearMX				; Length is zero so exit

ClrLoop
		stmia   r0!,{r2}
		sub     r1,r1,#4
		cmp		r1,#0
		bne     ClrLoop
ClearMX
		bx      lr				; ret
;---------end of ClearMem------------



;---------- Copy memory --------------+
; r1 = Source Address 				  |
; r2 = Dest Address 				  |
; r3 = Length 						  |
;-------------------------------------+
CopyMem
		mov     r0,#3 		   ; These commands are used in cases where
		add     r3,r3,r0 		; the length is not a multiple of 4,
		bic     r3,r3,r0 		; even though it should be.
		beq     CIDExit 		 ; Length is zero so exit

CIDLoop
		ldmia   r1!,{r0}
		stmia   r2!,{r0}
		sub     r3,r3,#4
	    cmp		r3,#0
		bne     CIDLoop

CIDExit
		bx      lr			; ret
;--------- end of CopyMem ------------------


       ALIGN
       CODE32

;===================================================
;                  Interrupt Processing
;===================================================
    IMPORT     IntrTable

    EXPORT     irq_entry
    ALIGN
    CODE32

irq_entry								; Single interrupts support
        mov     r3, #0x4000000           ; REG_BASE
        ldr     r2, [r3,#0x200]!         ; Read REG_IE
        and     r1, r2, r2, lsr #16      ; r1 = IE & IF
        ldr     r2, =IntrTable

        ands    r0, r1, #1               ; V-Blank Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #2               ; H-Blank Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #4               ; V Counter Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #8               ; Timer 0 Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #0x10            ; Timer 1 Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #0x20            ; Timer 2 Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #0x40            ; Timer 3 Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #0x80            ; Serial Communication Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #0x100           ; DMA0 Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #0x200           ; DMA1 Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #0x400           ; DMA2 Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #0x800           ; DMA3 Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #0x1000          ; Key Interrupt
        bne     jump_intr
        add     r2, r2, #4
        ands    r0, r1, #0x2000          ; Cart Interrupt

jump_intr
        strh    r0, [r3, #2]             ; IF Clear
        ldr     r0, [r2]                 ; Jump to user IRQ process
		bx		r0


	END

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩中文字幕一区二区三区| 久久久不卡网国产精品一区| 国产制服丝袜一区| 午夜一区二区三区视频| 亚洲国产精品一区二区久久| 性久久久久久久| 日韩中文字幕一区二区三区| 免费观看在线综合色| 免费的国产精品| 狠狠色丁香婷婷综合| 国产馆精品极品| 色综合久久精品| 欧美日韩国产首页在线观看| 欧美日韩国产在线观看| 欧美一区二区三区在线视频| 日韩午夜在线观看视频| 2022国产精品视频| 久久精品人人做人人爽97| 国产精品久久久久久久第一福利| 亚洲婷婷在线视频| 亚洲va欧美va人人爽午夜| 美女视频一区二区三区| 国产精品影视在线观看| www.成人在线| 欧美三日本三级三级在线播放| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲一区在线观看网站| 亚洲一区二区欧美| 狠狠久久亚洲欧美| 成人av网在线| 欧美一区二区在线视频| 亚洲国产精品成人综合色在线婷婷| 中文字幕一区二区三区在线播放 | 蜜臀av一区二区在线观看| 久久99精品久久久久久| 9l国产精品久久久久麻豆| 欧美高清视频在线高清观看mv色露露十八 | 久久久久久黄色| 亚洲婷婷综合久久一本伊一区| 亚洲免费观看高清完整| 久久国产精品一区二区| 91一区一区三区| 欧美一区二区国产| 亚洲欧美怡红院| 国产精品一区二区视频| 精品久久久久久久久久久久久久久久久 | 天堂午夜影视日韩欧美一区二区| 国产精品一品二品| 91在线免费视频观看| 精品日韩在线一区| 午夜视频在线观看一区二区 | 91国产成人在线| 国产午夜精品一区二区三区四区| 日韩激情一二三区| 91久久国产最好的精华液| 国产午夜精品久久| 久久精品国产一区二区| 欧美日韩视频在线观看一区二区三区| 国产精品毛片大码女人| 国产一区二区0| 欧美tickle裸体挠脚心vk| 婷婷六月综合亚洲| 91福利在线播放| 亚洲猫色日本管| bt7086福利一区国产| 欧美国产激情一区二区三区蜜月| 免费观看一级欧美片| 欧美老肥妇做.爰bbww视频| 亚洲精品美腿丝袜| 99这里只有久久精品视频| 中文在线一区二区| 国产suv精品一区二区6| 国产日韩欧美一区二区三区乱码 | 国产宾馆实践打屁股91| 久久综合久久综合亚洲| 久久精品国产99| 久久久久国产精品麻豆ai换脸 | 夜夜嗨av一区二区三区| 99久久国产免费看| 亚洲三级小视频| 色狠狠综合天天综合综合| 亚洲综合免费观看高清在线观看| 欧洲一区二区三区在线| 亚洲国产日产av| 欧美丰满嫩嫩电影| 美国一区二区三区在线播放| 日韩欧美你懂的| 国产毛片精品视频| 国产精品丝袜黑色高跟| 99re这里只有精品6| 亚洲综合色噜噜狠狠| 欧美福利视频一区| 国产一本一道久久香蕉| 日本一区二区三区四区| 91香蕉视频mp4| 一区二区欧美视频| 7777精品伊人久久久大香线蕉最新版| 日韩国产在线观看一区| 久久男人中文字幕资源站| 成人免费视频视频在线观看免费| 日韩码欧中文字| 91 com成人网| 成人午夜碰碰视频| 一区二区三区**美女毛片| 91精品国产综合久久香蕉的特点| 精品中文字幕一区二区小辣椒 | 亚洲激情av在线| 91精品国产综合久久小美女| 国产成人免费视频| 一区二区不卡在线播放 | 欧美视频一区二区三区四区| 免费一级片91| 自拍偷拍亚洲激情| 欧美一区二区啪啪| 97精品电影院| 激情国产一区二区| 亚洲乱码国产乱码精品精98午夜| 欧美一级片在线| 91丨porny丨蝌蚪视频| 蜜臀av一区二区在线观看| 亚洲欧美影音先锋| 精品国产第一区二区三区观看体验| 91美女在线视频| 国产精品夜夜嗨| 日韩 欧美一区二区三区| 亚洲视频一区在线| 国产婷婷精品av在线| 88在线观看91蜜桃国自产| 91污在线观看| 成人免费视频视频在线观看免费| 美腿丝袜亚洲综合| 亚洲免费观看高清完整| 欧美激情一区在线| 精品国产青草久久久久福利| 欧美日韩一区二区三区免费看| 丁香啪啪综合成人亚洲小说 | 91美女精品福利| 国产精品1区2区3区在线观看| 天堂精品中文字幕在线| 亚洲图片另类小说| 国产精品久久三| 久久久国产午夜精品| 欧美成人性战久久| 91精品国产91久久久久久一区二区 | 亚洲色图欧美在线| 亚洲国产精品二十页| 国产日韩亚洲欧美综合| 久久亚洲二区三区| 国产亚洲一二三区| 久久久久久久久久久久电影| 26uuu欧美日本| 久久综合九色综合97婷婷女人| 欧美一区二区三区影视| 91精品国产色综合久久不卡蜜臀 | 亚洲视频综合在线| 亚洲欧洲日韩在线| 国产精品福利一区| 综合亚洲深深色噜噜狠狠网站| 国产精品色哟哟网站| 国产精品福利影院| 亚洲男女一区二区三区| 亚洲色图欧美偷拍| 亚洲图片欧美色图| 日韩在线一区二区| 九一九一国产精品| 国产精选一区二区三区| 成人午夜激情片| 色婷婷久久综合| 欧美高清dvd| 久久在线观看免费| 亚洲欧美自拍偷拍色图| 亚洲午夜久久久久中文字幕久| 午夜精品久久久久久不卡8050| 秋霞电影网一区二区| 久久91精品国产91久久小草| 国产精品1区2区3区| 色哟哟一区二区三区| 91精品视频网| 国产亚洲女人久久久久毛片| 亚洲欧美日韩久久| 视频一区视频二区中文| 激情五月激情综合网| 97久久人人超碰| 欧美一区二区女人| 国产精品毛片久久久久久| 亚洲国产精品麻豆| 国产麻豆精品在线观看| 色婷婷久久一区二区三区麻豆| 91精品国产91久久久久久最新毛片 | 亚洲一区免费在线观看| 精品一区二区三区久久久| 菠萝蜜视频在线观看一区| 欧美精品一二三四| 中文久久乱码一区二区| 五月天一区二区三区| 懂色av一区二区在线播放| 欧美日本国产一区| 中文字幕一区日韩精品欧美| 蜜桃在线一区二区三区| 91捆绑美女网站|