Reimplement ryfs_read_whole_file
using ryfs_read
, bump ver to 0.3.2
This commit is contained in:
parent
d1009a1680
commit
594284cd0c
2
main.asm
2
main.asm
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
const FOX32ROM_VERSION_MAJOR: 0
|
const FOX32ROM_VERSION_MAJOR: 0
|
||||||
const FOX32ROM_VERSION_MINOR: 3
|
const FOX32ROM_VERSION_MINOR: 3
|
||||||
const FOX32ROM_VERSION_PATCH: 1
|
const FOX32ROM_VERSION_PATCH: 2
|
||||||
|
|
||||||
const SYSTEM_STACK: 0x01FFF800
|
const SYSTEM_STACK: 0x01FFF800
|
||||||
const BACKGROUND_COLOR: 0xFF674764
|
const BACKGROUND_COLOR: 0xFF674764
|
||||||
|
|
38
ryfs.asm
38
ryfs.asm
|
@ -225,7 +225,6 @@ ryfs_read_sector_loop:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; read a whole file into the specified buffer
|
; read a whole file into the specified buffer
|
||||||
; FIXME: this will always load a multiple of 506 bytes, even if the file is smaller
|
|
||||||
; inputs:
|
; inputs:
|
||||||
; r0: pointer to file struct
|
; r0: pointer to file struct
|
||||||
; r1: pointer to destination buffer
|
; r1: pointer to destination buffer
|
||||||
|
@ -235,41 +234,12 @@ ryfs_read_whole_file:
|
||||||
push r0
|
push r0
|
||||||
push r1
|
push r1
|
||||||
push r2
|
push r2
|
||||||
push r10
|
|
||||||
push r11
|
|
||||||
|
|
||||||
mov r10, r0
|
mov r2, r1
|
||||||
mov r11, r1
|
mov r1, r0
|
||||||
|
call ryfs_get_size
|
||||||
|
call ryfs_read
|
||||||
|
|
||||||
; read the first sector into the temp buffer
|
|
||||||
movz.8 r1, [r0] ; file_disk
|
|
||||||
inc r0
|
|
||||||
movz.16 r0, [r0] ; file_first_sector
|
|
||||||
ryfs_read_whole_file_sector_loop:
|
|
||||||
mov r2, TEMP_SECTOR_BUF
|
|
||||||
call read_sector
|
|
||||||
|
|
||||||
; copy the sector data to the destination buffer
|
|
||||||
mov r0, TEMP_SECTOR_BUF
|
|
||||||
add r0, 6
|
|
||||||
mov r1, r11
|
|
||||||
mov r2, 506
|
|
||||||
call copy_memory_bytes
|
|
||||||
|
|
||||||
; check to see if this is the last sector
|
|
||||||
; FIXME: if this is the last sector, it should respect the sector size field in the header
|
|
||||||
sub r0, 4
|
|
||||||
cmp.16 [r0], 0
|
|
||||||
ifz jmp ryfs_read_whole_file_last_sector
|
|
||||||
|
|
||||||
; there are more sectors left, load them
|
|
||||||
movz.16 r0, [r0] ; sector number
|
|
||||||
mov r1, [r10] ; file_disk
|
|
||||||
add r11, 506
|
|
||||||
jmp ryfs_read_whole_file_sector_loop
|
|
||||||
ryfs_read_whole_file_last_sector:
|
|
||||||
pop r11
|
|
||||||
pop r10
|
|
||||||
pop r2
|
pop r2
|
||||||
pop r1
|
pop r1
|
||||||
pop r0
|
pop r0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user