2022-01-27 07:21:21 +01:00
|
|
|
; entry point
|
|
|
|
; fox32 starts here on reset
|
|
|
|
org 0xF0000000
|
|
|
|
|
2022-02-12 06:12:18 +01:00
|
|
|
const FOX32ROM_VERSION_MAJOR: 0
|
2023-01-21 03:50:40 +01:00
|
|
|
const FOX32ROM_VERSION_MINOR: 7
|
2022-12-28 08:22:21 +01:00
|
|
|
const FOX32ROM_VERSION_PATCH: 0
|
2022-02-12 06:12:18 +01:00
|
|
|
|
2023-03-07 02:28:10 +01:00
|
|
|
const FOX32ROM_API_VERSION: 1
|
|
|
|
|
2022-02-12 05:44:11 +01:00
|
|
|
const SYSTEM_STACK: 0x01FFF800
|
2022-02-23 00:01:58 +01:00
|
|
|
const BACKGROUND_COLOR: 0xFF674764
|
|
|
|
const TEXT_COLOR: 0xFFFFFFFF
|
2022-01-27 07:21:21 +01:00
|
|
|
|
|
|
|
; initialization code
|
|
|
|
entry:
|
2022-08-16 02:32:50 +02:00
|
|
|
; disable the MMU
|
|
|
|
mcl
|
|
|
|
|
|
|
|
; set the stack pointer
|
2022-02-12 05:44:11 +01:00
|
|
|
mov rsp, SYSTEM_STACK
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2022-05-27 02:22:19 +02:00
|
|
|
; disable audio playback
|
|
|
|
mov r0, 0x80000600
|
|
|
|
out r0, 0
|
|
|
|
|
2022-07-27 07:53:18 +02:00
|
|
|
; seed the random number generator
|
|
|
|
entry_seed:
|
|
|
|
mov [0x000003FC], entry_seed_done
|
|
|
|
ise
|
|
|
|
mov r0, 2166136261
|
|
|
|
entry_seed_loop:
|
|
|
|
mul r0, 16777619
|
|
|
|
rjmp entry_seed_loop
|
|
|
|
entry_seed_done:
|
|
|
|
mov [RANDOM_STATE], r0
|
|
|
|
|
2023-01-20 13:49:25 +01:00
|
|
|
; set the stack pointer again to pop the return address and flags off the stack
|
2022-07-27 23:00:53 +02:00
|
|
|
mov rsp, SYSTEM_STACK
|
|
|
|
|
|
|
|
; set the interrupt vector for interrupt 0xFF - vsync
|
2022-07-27 07:53:18 +02:00
|
|
|
mov [0x000003FC], system_vsync_handler
|
2022-08-16 02:32:50 +02:00
|
|
|
|
2022-10-27 06:50:29 +02:00
|
|
|
; set the exception vector for exception 0x00 - divide by zero
|
|
|
|
mov [0x00000400], system_div_zero_handler
|
|
|
|
|
|
|
|
; set the exception vector for exception 0x01 - invalid opcode
|
|
|
|
mov [0x00000404], system_invalid_op_handler
|
|
|
|
|
2022-09-16 02:43:53 +02:00
|
|
|
; set the exception vector for exception 0x02 - page fault read
|
2022-08-16 02:32:50 +02:00
|
|
|
mov [0x00000408], system_page_fault_handler
|
|
|
|
|
2022-09-16 02:43:53 +02:00
|
|
|
; set the exception vector for exception 0x03 - page fault write
|
|
|
|
mov [0x0000040C], system_page_fault_handler
|
|
|
|
|
2022-10-27 06:50:29 +02:00
|
|
|
; set the exception vector for exception 0x04 - breakpoint
|
2022-10-28 04:07:22 +02:00
|
|
|
mov [0x00000410], system_breakpoint_handler
|
2022-10-27 06:50:29 +02:00
|
|
|
|
2022-11-23 02:31:34 +01:00
|
|
|
; ensure the event queue gets initialized properly
|
|
|
|
mov [EVENT_QUEUE_POINTER], 0
|
|
|
|
|
2022-08-16 02:32:50 +02:00
|
|
|
; enable interrupts
|
2022-07-27 07:53:18 +02:00
|
|
|
ise
|
|
|
|
|
2022-01-27 07:21:21 +01:00
|
|
|
; disable all overlays
|
|
|
|
mov r31, 0x1F
|
2022-01-28 03:11:54 +01:00
|
|
|
mov r0, 0x80000300
|
2022-01-27 07:21:21 +01:00
|
|
|
disable_all_overlays_loop:
|
|
|
|
out r0, 0
|
|
|
|
inc r0
|
|
|
|
loop disable_all_overlays_loop
|
|
|
|
|
2022-04-26 06:43:19 +02:00
|
|
|
call enable_cursor
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2022-02-12 05:44:11 +01:00
|
|
|
mov r0, BACKGROUND_COLOR
|
2022-01-27 07:21:21 +01:00
|
|
|
call fill_background
|
|
|
|
|
2022-12-29 21:00:49 +01:00
|
|
|
; draw the bottom bar
|
|
|
|
mov r0, bottom_bar_str_0
|
|
|
|
mov r1, 8
|
|
|
|
mov r2, 448
|
2022-02-23 00:01:58 +01:00
|
|
|
mov r3, TEXT_COLOR
|
2022-01-27 07:21:21 +01:00
|
|
|
mov r4, 0x00000000
|
2022-12-29 21:00:49 +01:00
|
|
|
call draw_str_to_background
|
|
|
|
mov r0, bottom_bar_patterns
|
|
|
|
mov r1, 1
|
|
|
|
mov r2, 16
|
|
|
|
call set_tilemap
|
|
|
|
mov r1, 0
|
|
|
|
mov r2, 464
|
|
|
|
mov r31, 640
|
|
|
|
draw_bottom_bar_loop:
|
|
|
|
mov r4, r31
|
|
|
|
rem r4, 2
|
|
|
|
cmp r4, 0
|
|
|
|
ifz mov r0, 0
|
|
|
|
ifnz mov r0, 1
|
|
|
|
call draw_tile_to_background
|
|
|
|
inc r1
|
|
|
|
loop draw_bottom_bar_loop
|
|
|
|
mov r0, 10
|
|
|
|
mov r1, 464
|
|
|
|
mov r2, 20
|
|
|
|
mov r3, 16
|
|
|
|
mov r4, 0xFFFFFFFF
|
|
|
|
call draw_filled_rectangle_to_background
|
|
|
|
mov r0, bottom_bar_str_1
|
|
|
|
mov r1, 12
|
|
|
|
mov r2, 464
|
|
|
|
mov r3, 0xFF000000
|
|
|
|
mov r4, 0xFFFFFFFF
|
|
|
|
call draw_str_to_background
|
|
|
|
mov r0, bottom_bar_str_2
|
|
|
|
mov r1, 480
|
|
|
|
mov r2, 464
|
|
|
|
mov r3, 0xFF000000
|
|
|
|
mov r4, 0xFFFFFFFF
|
2022-02-22 22:47:20 +01:00
|
|
|
mov r10, FOX32ROM_VERSION_MAJOR
|
|
|
|
mov r11, FOX32ROM_VERSION_MINOR
|
|
|
|
mov r12, FOX32ROM_VERSION_PATCH
|
|
|
|
call draw_format_str_to_background
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2023-03-08 02:57:20 +01:00
|
|
|
mov r0, disk_icon_q
|
|
|
|
call change_icon
|
|
|
|
call setup_icon
|
|
|
|
|
2023-01-19 02:53:00 +01:00
|
|
|
event_loop:
|
|
|
|
call get_next_event
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2023-01-19 02:53:00 +01:00
|
|
|
; no event handling here
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2022-02-22 23:05:39 +01:00
|
|
|
; check if a disk is inserted as disk 0
|
|
|
|
; if port 0x8000100n returns a non-zero value, then a disk is inserted as disk n
|
2022-01-30 09:57:54 +01:00
|
|
|
in r0, 0x80001000
|
|
|
|
cmp r0, 0
|
2022-01-31 12:37:49 +01:00
|
|
|
ifnz call start_boot_process
|
2022-01-30 09:57:54 +01:00
|
|
|
|
2023-03-05 06:23:14 +01:00
|
|
|
call is_romdisk_available
|
|
|
|
ifz call start_boot_process_from_romdisk
|
|
|
|
|
2022-01-27 07:21:21 +01:00
|
|
|
jmp event_loop
|
|
|
|
|
2022-02-12 06:12:18 +01:00
|
|
|
get_rom_version:
|
|
|
|
mov r0, FOX32ROM_VERSION_MAJOR
|
|
|
|
mov r1, FOX32ROM_VERSION_MINOR
|
|
|
|
mov r2, FOX32ROM_VERSION_PATCH
|
|
|
|
ret
|
|
|
|
|
2023-03-07 02:28:10 +01:00
|
|
|
get_rom_api_version:
|
|
|
|
mov r0, FOX32ROM_API_VERSION
|
|
|
|
ret
|
|
|
|
|
2023-01-30 00:57:13 +01:00
|
|
|
poweroff:
|
|
|
|
mov r0, 0x80010000
|
|
|
|
mov r1, 0
|
|
|
|
out r0, r1
|
|
|
|
poweroff_wait:
|
|
|
|
jmp poweroff_wait
|
|
|
|
|
2022-01-27 07:21:21 +01:00
|
|
|
; code
|
2022-06-21 02:11:49 +02:00
|
|
|
#include "audio.asm"
|
2022-01-27 07:21:21 +01:00
|
|
|
#include "background.asm"
|
2022-02-12 06:31:41 +01:00
|
|
|
#include "boot.asm"
|
2022-04-26 06:43:19 +02:00
|
|
|
#include "cursor.asm"
|
2022-02-12 04:41:58 +01:00
|
|
|
#include "debug.asm"
|
2022-03-26 01:24:53 +01:00
|
|
|
#include "disk.asm"
|
2022-04-17 01:13:16 +02:00
|
|
|
#include "draw_pixel.asm"
|
2022-02-22 06:15:16 +01:00
|
|
|
#include "draw_rectangle.asm"
|
2022-02-13 05:42:37 +01:00
|
|
|
#include "draw_text.asm"
|
2022-06-22 03:08:16 +02:00
|
|
|
#include "draw_tile.asm"
|
2022-02-12 06:31:41 +01:00
|
|
|
#include "event.asm"
|
2022-08-16 02:32:50 +02:00
|
|
|
#include "exception.asm"
|
2023-03-08 02:57:20 +01:00
|
|
|
#include "icon.asm"
|
2022-05-02 03:01:10 +02:00
|
|
|
#include "integer.asm"
|
2022-04-18 01:21:56 +02:00
|
|
|
#include "keyboard.asm"
|
2022-02-12 04:39:33 +01:00
|
|
|
#include "memory.asm"
|
2022-01-27 07:21:21 +01:00
|
|
|
#include "menu.asm"
|
2022-02-22 06:26:30 +01:00
|
|
|
#include "menu_bar.asm"
|
2022-04-18 23:48:04 +02:00
|
|
|
#include "monitor/monitor.asm"
|
2022-01-27 07:21:21 +01:00
|
|
|
#include "mouse.asm"
|
2022-02-12 06:31:41 +01:00
|
|
|
#include "overlay.asm"
|
2022-03-19 05:59:51 +01:00
|
|
|
#include "panic.asm"
|
2022-07-27 07:53:18 +02:00
|
|
|
#include "random.asm"
|
2022-04-17 23:38:38 +02:00
|
|
|
#include "ryfs.asm"
|
2022-04-24 01:47:17 +02:00
|
|
|
#include "string.asm"
|
2022-01-27 07:21:21 +01:00
|
|
|
#include "vsync.asm"
|
|
|
|
|
|
|
|
|
2023-03-08 03:36:12 +01:00
|
|
|
; TODO: convert these icons to 1 bit bitmaps and move
|
|
|
|
; them down to the data section at 0xF004F000,
|
|
|
|
; once 1 bit drawing routines are implemented
|
|
|
|
disk_icon:
|
|
|
|
#include_bin "font/disk1.raw"
|
|
|
|
disk_icon_q:
|
|
|
|
#include_bin "font/disk2.raw"
|
2022-01-27 07:21:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
; data
|
|
|
|
|
|
|
|
; system jump table
|
2022-02-12 05:57:37 +01:00
|
|
|
org.pad 0xF0040000
|
2022-02-12 06:12:18 +01:00
|
|
|
data.32 get_rom_version
|
2022-01-28 01:33:50 +01:00
|
|
|
data.32 system_vsync_handler
|
|
|
|
data.32 get_mouse_position
|
2022-02-12 05:27:23 +01:00
|
|
|
data.32 new_event
|
2022-01-28 01:33:50 +01:00
|
|
|
data.32 wait_for_event
|
2022-02-12 05:27:23 +01:00
|
|
|
data.32 get_next_event
|
2022-03-19 05:59:51 +01:00
|
|
|
data.32 panic
|
2022-10-06 01:54:52 +02:00
|
|
|
data.32 get_mouse_button
|
2022-10-11 03:53:18 +02:00
|
|
|
data.32 scancode_to_ascii
|
|
|
|
data.32 shift_pressed
|
|
|
|
data.32 shift_released
|
|
|
|
data.32 caps_pressed
|
2023-01-30 00:57:13 +01:00
|
|
|
data.32 poweroff
|
2023-03-07 02:28:10 +01:00
|
|
|
data.32 get_rom_api_version
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2022-02-22 06:15:16 +01:00
|
|
|
; generic drawing jump table
|
2022-02-12 05:57:37 +01:00
|
|
|
org.pad 0xF0041000
|
2022-02-13 05:42:37 +01:00
|
|
|
data.32 draw_str_generic
|
2022-02-22 22:45:54 +01:00
|
|
|
data.32 draw_format_str_generic
|
2022-02-22 07:07:02 +01:00
|
|
|
data.32 draw_decimal_generic
|
2022-06-25 03:39:14 +02:00
|
|
|
data.32 draw_hex_generic
|
2022-02-13 05:42:37 +01:00
|
|
|
data.32 draw_font_tile_generic
|
2022-06-22 03:08:16 +02:00
|
|
|
data.32 draw_tile_generic
|
2022-06-25 03:27:06 +02:00
|
|
|
data.32 set_tilemap
|
2022-04-17 01:13:16 +02:00
|
|
|
data.32 draw_pixel_generic
|
2022-02-22 06:15:16 +01:00
|
|
|
data.32 draw_filled_rectangle_generic
|
2022-09-02 23:23:46 +02:00
|
|
|
data.32 get_tilemap
|
2022-02-13 05:42:37 +01:00
|
|
|
|
|
|
|
; background jump table
|
|
|
|
org.pad 0xF0042000
|
|
|
|
data.32 fill_background
|
2022-01-28 01:33:50 +01:00
|
|
|
data.32 draw_str_to_background
|
2022-02-22 22:45:54 +01:00
|
|
|
data.32 draw_format_str_to_background
|
2022-02-22 07:07:02 +01:00
|
|
|
data.32 draw_decimal_to_background
|
2022-04-17 01:37:55 +02:00
|
|
|
data.32 draw_hex_to_background
|
2022-01-28 01:33:50 +01:00
|
|
|
data.32 draw_font_tile_to_background
|
2022-06-22 03:08:16 +02:00
|
|
|
data.32 draw_tile_to_background
|
2022-04-17 01:13:16 +02:00
|
|
|
data.32 draw_pixel_to_background
|
2022-02-22 06:15:16 +01:00
|
|
|
data.32 draw_filled_rectangle_to_background
|
2022-01-27 07:21:21 +01:00
|
|
|
|
|
|
|
; overlay jump table
|
2022-02-13 05:42:37 +01:00
|
|
|
org.pad 0xF0043000
|
|
|
|
data.32 fill_overlay
|
2022-01-28 01:33:50 +01:00
|
|
|
data.32 draw_str_to_overlay
|
2022-02-22 22:45:54 +01:00
|
|
|
data.32 draw_format_str_to_overlay
|
2022-02-22 07:07:02 +01:00
|
|
|
data.32 draw_decimal_to_overlay
|
2022-04-17 01:37:55 +02:00
|
|
|
data.32 draw_hex_to_overlay
|
2022-01-28 01:33:50 +01:00
|
|
|
data.32 draw_font_tile_to_overlay
|
2022-06-22 03:08:16 +02:00
|
|
|
data.32 draw_tile_to_overlay
|
2022-04-17 01:13:16 +02:00
|
|
|
data.32 draw_pixel_to_overlay
|
2022-02-22 06:15:16 +01:00
|
|
|
data.32 draw_filled_rectangle_to_overlay
|
2022-01-28 01:33:50 +01:00
|
|
|
data.32 check_if_overlay_covers_position
|
|
|
|
data.32 check_if_enabled_overlay_covers_position
|
2022-07-27 01:58:20 +02:00
|
|
|
data.32 enable_overlay
|
|
|
|
data.32 disable_overlay
|
|
|
|
data.32 move_overlay
|
|
|
|
data.32 resize_overlay
|
|
|
|
data.32 set_overlay_framebuffer_pointer
|
2022-09-02 23:23:46 +02:00
|
|
|
data.32 get_unused_overlay
|
2022-10-06 01:54:52 +02:00
|
|
|
data.32 make_coordinates_relative_to_overlay
|
2022-01-27 07:21:21 +01:00
|
|
|
|
|
|
|
; menu bar jump table
|
2022-02-13 05:42:37 +01:00
|
|
|
org.pad 0xF0044000
|
2022-03-23 19:24:01 +01:00
|
|
|
data.32 enable_menu_bar
|
|
|
|
data.32 disable_menu_bar
|
2022-01-28 01:33:50 +01:00
|
|
|
data.32 menu_bar_click_event
|
|
|
|
data.32 clear_menu_bar
|
|
|
|
data.32 draw_menu_bar_root_items
|
2022-02-22 06:26:30 +01:00
|
|
|
data.32 draw_menu_items
|
|
|
|
data.32 close_menu
|
2022-03-23 19:30:17 +01:00
|
|
|
data.32 menu_update_event
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2022-03-26 01:24:53 +01:00
|
|
|
; disk jump table
|
|
|
|
org.pad 0xF0045000
|
|
|
|
data.32 read_sector
|
|
|
|
data.32 write_sector
|
2022-05-17 01:31:16 +02:00
|
|
|
data.32 ryfs_open
|
|
|
|
data.32 ryfs_seek
|
|
|
|
data.32 ryfs_read
|
|
|
|
data.32 ryfs_read_whole_file
|
2022-06-23 23:15:52 +02:00
|
|
|
data.32 ryfs_get_size
|
2022-08-10 08:22:51 +02:00
|
|
|
data.32 ryfs_get_file_list
|
2022-08-31 01:27:22 +02:00
|
|
|
data.32 ryfs_tell
|
2023-01-21 03:50:40 +01:00
|
|
|
data.32 ryfs_write
|
2023-03-05 08:18:07 +01:00
|
|
|
data.32 is_romdisk_available
|
2022-03-26 01:24:53 +01:00
|
|
|
|
2022-03-26 02:04:07 +01:00
|
|
|
; memory copy/compare jump table
|
|
|
|
org.pad 0xF0046000
|
|
|
|
data.32 copy_memory_bytes
|
|
|
|
data.32 copy_memory_words
|
2022-04-24 01:47:17 +02:00
|
|
|
data.32 copy_string
|
2022-03-26 02:04:07 +01:00
|
|
|
data.32 compare_memory_bytes
|
|
|
|
data.32 compare_memory_words
|
2022-04-24 07:31:44 +02:00
|
|
|
data.32 compare_string
|
2022-05-02 03:01:10 +02:00
|
|
|
data.32 string_length
|
|
|
|
|
|
|
|
; integer jump table
|
|
|
|
org.pad 0xF0047000
|
|
|
|
data.32 string_to_int
|
2022-03-26 02:04:07 +01:00
|
|
|
|
2022-06-21 02:11:49 +02:00
|
|
|
; audio jump table
|
|
|
|
org.pad 0xF0048000
|
|
|
|
data.32 play_audio
|
|
|
|
data.32 stop_audio
|
|
|
|
|
2022-07-27 07:53:18 +02:00
|
|
|
; random number jump table
|
|
|
|
org.pad 0xF0049000
|
|
|
|
data.32 random
|
|
|
|
data.32 random_range
|
|
|
|
|
2022-02-12 05:57:37 +01:00
|
|
|
org.pad 0xF004F000
|
2022-02-13 05:42:37 +01:00
|
|
|
standard_font_width:
|
|
|
|
data.16 8
|
|
|
|
standard_font_height:
|
|
|
|
data.16 16
|
|
|
|
standard_font_data:
|
2022-01-28 01:35:25 +01:00
|
|
|
#include_bin "font/unifont-thin.raw"
|
2022-01-27 07:21:21 +01:00
|
|
|
|
|
|
|
mouse_cursor:
|
2022-01-28 01:35:25 +01:00
|
|
|
#include_bin "font/cursor2.raw"
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2023-03-08 02:57:20 +01:00
|
|
|
; icon overlay struct:
|
|
|
|
const ICON_WIDTH: 32
|
|
|
|
const ICON_HEIGHT: 32
|
|
|
|
const ICON_POSITION_X: 304
|
|
|
|
const ICON_POSITION_Y: 224
|
|
|
|
const ICON_FRAMEBUFFER_PTR: 0x0212C000
|
|
|
|
|
2022-01-27 07:21:21 +01:00
|
|
|
; cursor overlay struct:
|
2022-04-18 00:43:13 +02:00
|
|
|
const CURSOR_WIDTH: 8
|
|
|
|
const CURSOR_HEIGHT: 12
|
2022-05-26 01:18:18 +02:00
|
|
|
const CURSOR_FRAMEBUFFER_PTR: 0x0214C000
|
2022-01-27 07:21:21 +01:00
|
|
|
|
|
|
|
; menu bar overlay struct:
|
2022-04-18 00:43:13 +02:00
|
|
|
const MENU_BAR_WIDTH: 640
|
|
|
|
const MENU_BAR_HEIGHT: 16
|
|
|
|
const MENU_BAR_POSITION_X: 0
|
|
|
|
const MENU_BAR_POSITION_Y: 0
|
2022-05-26 01:18:18 +02:00
|
|
|
const MENU_BAR_FRAMEBUFFER_PTR: 0x0214C180
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2022-02-22 06:26:30 +01:00
|
|
|
; menu overlay struct:
|
2022-03-12 02:13:18 +01:00
|
|
|
; this struct must be writable, so these are hard-coded addresses in ram
|
2022-07-27 03:33:51 +02:00
|
|
|
const MENU_WIDTH: 0x02156180 ; 2 bytes
|
|
|
|
const MENU_HEIGHT: 0x02156182 ; 2 bytes
|
|
|
|
const MENU_POSITION_X: 0x02156184 ; 2 bytes
|
|
|
|
const MENU_POSITION_Y: 0x02156186 ; 2 bytes
|
|
|
|
const MENU_FRAMEBUFFER_PTR: 0x0215618A ; 4 bytes
|
|
|
|
const MENU_FRAMEBUFFER: 0x0215618E ; max 640x480x4 = end address at 0x0228218E
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2023-01-31 18:45:16 +01:00
|
|
|
bottom_bar_str_0: data.strz "FOX"
|
|
|
|
bottom_bar_str_1: data.strz "32"
|
|
|
|
bottom_bar_str_2: data.strz " ROM version %u.%u.%u "
|
2022-12-29 21:00:49 +01:00
|
|
|
bottom_bar_patterns:
|
|
|
|
; 1x16 tile
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
|
|
|
|
; 1x16 tile
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
|
|
|
data.32 0xFFFFFFFF
|
|
|
|
data.32 0xFF674764
|
2022-01-27 07:21:21 +01:00
|
|
|
|
2023-03-05 06:23:14 +01:00
|
|
|
romdisk_image:
|
|
|
|
#include_bin_optional "romdisk.img"
|
|
|
|
romdisk_image_end:
|
|
|
|
|
2022-02-12 05:57:37 +01:00
|
|
|
; pad out to 512 KiB
|
|
|
|
org.pad 0xF0080000
|