fox32rom: Add enable_menu_bar and disable_menu_bar
This commit is contained in:
parent
0d990b375c
commit
de64ea53b8
3
boot.asm
3
boot.asm
|
@ -51,7 +51,6 @@ boot_cleanup:
|
||||||
call fill_background
|
call fill_background
|
||||||
|
|
||||||
; disable the menu bar
|
; disable the menu bar
|
||||||
mov r0, 0x8000031E
|
call disable_menu_bar
|
||||||
out r0, 0
|
|
||||||
|
|
||||||
ret
|
ret
|
12
fox32rom.def
12
fox32rom.def
|
@ -36,11 +36,13 @@ check_if_overlay_covers_position: jmp [0xF004301C]
|
||||||
check_if_enabled_overlay_covers_position: jmp [0xF0043020]
|
check_if_enabled_overlay_covers_position: jmp [0xF0043020]
|
||||||
|
|
||||||
; menu bar jump table entries
|
; menu bar jump table entries
|
||||||
menu_bar_click_event: jmp [0xF0044000]
|
enable_menu_bar: jmp [0xF0044000]
|
||||||
clear_menu_bar: jmp [0xF0044004]
|
disable_menu_bar: jmp [0xF0044004]
|
||||||
draw_menu_bar_root_items: jmp [0xF0044008]
|
menu_bar_click_event: jmp [0xF0044008]
|
||||||
draw_menu_items: jmp [0xF004400C]
|
clear_menu_bar: jmp [0xF004400C]
|
||||||
close_menu: jmp [0xF0044010]
|
draw_menu_bar_root_items: jmp [0xF0044010]
|
||||||
|
draw_menu_items: jmp [0xF0044014]
|
||||||
|
close_menu: jmp [0xF0044018]
|
||||||
|
|
||||||
; event types
|
; event types
|
||||||
const MOUSE_CLICK_EVENT_TYPE: 0x00000000
|
const MOUSE_CLICK_EVENT_TYPE: 0x00000000
|
||||||
|
|
23
main.asm
23
main.asm
|
@ -52,26 +52,7 @@ cursor_enable:
|
||||||
mov r0, BACKGROUND_COLOR
|
mov r0, BACKGROUND_COLOR
|
||||||
call fill_background
|
call fill_background
|
||||||
|
|
||||||
menu_bar_enable:
|
call enable_menu_bar
|
||||||
; set properties of overlay 30
|
|
||||||
mov r0, 0x8000001E ; overlay 30: position
|
|
||||||
mov.16 r1, [overlay_30_position_y]
|
|
||||||
sla r1, 16
|
|
||||||
mov.16 r1, [overlay_30_position_x]
|
|
||||||
out r0, r1
|
|
||||||
mov r0, 0x8000011E ; overlay 30: size
|
|
||||||
mov.16 r1, [overlay_30_height]
|
|
||||||
sla r1, 16
|
|
||||||
mov.16 r1, [overlay_30_width]
|
|
||||||
out r0, r1
|
|
||||||
mov r0, 0x8000021E ; overlay 30: framebuffer pointer
|
|
||||||
mov r1, [overlay_30_framebuffer_ptr]
|
|
||||||
out r0, r1
|
|
||||||
|
|
||||||
; enable overlay 30 (menu bar)
|
|
||||||
mov r0, 0x8000031E
|
|
||||||
out r0, 1
|
|
||||||
|
|
||||||
call clear_menu_bar
|
call clear_menu_bar
|
||||||
mov r0, menu_items_root
|
mov r0, menu_items_root
|
||||||
mov r1, 0xFFFFFFFF
|
mov r1, 0xFFFFFFFF
|
||||||
|
@ -204,6 +185,8 @@ get_rom_version:
|
||||||
|
|
||||||
; menu bar jump table
|
; menu bar jump table
|
||||||
org.pad 0xF0044000
|
org.pad 0xF0044000
|
||||||
|
data.32 enable_menu_bar
|
||||||
|
data.32 disable_menu_bar
|
||||||
data.32 menu_bar_click_event
|
data.32 menu_bar_click_event
|
||||||
data.32 clear_menu_bar
|
data.32 clear_menu_bar
|
||||||
data.32 draw_menu_bar_root_items
|
data.32 draw_menu_bar_root_items
|
||||||
|
|
47
menu_bar.asm
47
menu_bar.asm
|
@ -4,6 +4,53 @@ const MENU_BAR_BACKGROUND_COLOR: 0xFF3F3F3F
|
||||||
const MENU_BAR_SELECTED_COLOR: 0xFFFFFFFF
|
const MENU_BAR_SELECTED_COLOR: 0xFFFFFFFF
|
||||||
const MENU_BAR_UNSELECTED_COLOR: 0xFF3F3F3F
|
const MENU_BAR_UNSELECTED_COLOR: 0xFF3F3F3F
|
||||||
|
|
||||||
|
; enable menu bar
|
||||||
|
; inputs:
|
||||||
|
; none
|
||||||
|
; outputs:
|
||||||
|
; none
|
||||||
|
enable_menu_bar:
|
||||||
|
push r0
|
||||||
|
push r1
|
||||||
|
|
||||||
|
; set properties of overlay 30
|
||||||
|
mov r0, 0x8000001E ; overlay 30: position
|
||||||
|
mov.16 r1, [overlay_30_position_y]
|
||||||
|
sla r1, 16
|
||||||
|
mov.16 r1, [overlay_30_position_x]
|
||||||
|
out r0, r1
|
||||||
|
mov r0, 0x8000011E ; overlay 30: size
|
||||||
|
mov.16 r1, [overlay_30_height]
|
||||||
|
sla r1, 16
|
||||||
|
mov.16 r1, [overlay_30_width]
|
||||||
|
out r0, r1
|
||||||
|
mov r0, 0x8000021E ; overlay 30: framebuffer pointer
|
||||||
|
mov r1, [overlay_30_framebuffer_ptr]
|
||||||
|
out r0, r1
|
||||||
|
|
||||||
|
; enable overlay 30 (menu bar)
|
||||||
|
mov r0, 0x8000031E
|
||||||
|
out r0, 1
|
||||||
|
|
||||||
|
pop r1
|
||||||
|
pop r0
|
||||||
|
ret
|
||||||
|
|
||||||
|
; disable menu bar
|
||||||
|
; inputs:
|
||||||
|
; none
|
||||||
|
; outputs:
|
||||||
|
; none
|
||||||
|
disable_menu_bar:
|
||||||
|
push r0
|
||||||
|
|
||||||
|
; disable overlay 30 (menu bar)
|
||||||
|
mov r0, 0x8000031E
|
||||||
|
out r0, 0
|
||||||
|
|
||||||
|
pop r0
|
||||||
|
ret
|
||||||
|
|
||||||
; clear menu bar
|
; clear menu bar
|
||||||
; inputs:
|
; inputs:
|
||||||
; none
|
; none
|
||||||
|
|
Loading…
Reference in New Issue
Block a user