bible_documentations/software/notes/g35E_OS02.05.2201_random_no...

128 lines
3.8 KiB
Plaintext

Graph35+E - OS:02.05.2201 - Internal Casio's RAM structure documentations
WARNING: this part is probably out-of-date and not sure !
##---
## File Slot Cache
##---
88008350_struct size: 8 bytes.
{
uint32_t addr; 0
uint8_t status; 4
uint8_t info?[3] 5
}
@note:
there are only 4 struct like this stored into the P1 area.
It is used by Casio to store information about all currently oppened files.
##---
## File Fragment Data Table
##---
8800842c_struct size: 40 * 4 = 160 bytes.
{
// File 0
uint16_t internal_status; // Internal Casio's value to determine if file used.
uint16_t frag_id; // Fragment ID.
uint16_t type; // always 0x0120
uint16_t file_id; // File ID.
uint16_t unknown; // 0x0002 (?)
uint16_t frag_total; // total number of fragments for this file.
uint16_t frag_current_number; // Current fragment number.
uint16_t data_block_id; // ID of blocks containing data for this fragment
uint16_t data_offset; // offset of fragment data in the given block
uint16_t data_size; // size of this fragment data -1
uint8_t fill[12]; // 0x00, 0x00, 0x00, 0x00, 0x00 ...
// File 1
uint16_t internal_status; // Internal Casio's value to determine if file used.
uint16_t frag_id; // Fragment ID.
uint16_t type; // always 0x0120
uint16_t file_id; // File ID.
uint16_t unknown; // 0x0002 (?)
uint16_t frag_total; // total number of fragments for this file.
uint16_t frag_current_number; // Current fragment number.
uint16_t data_block_id; // ID of blocks containing data for this fragment
uint16_t data_offset; // offset of fragment data in the given block
uint16_t data_size; // size of this fragment data -1
uint8_t fill[12]; // 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, ...
// File 2
uint16_t internal_status; // Internal Casio's value to determine if file used.
uint16_t frag_id; // Fragment ID.
uint16_t type; // always 0x0120
uint16_t file_id; // File ID.
uint16_t unknown; // 0x0002 (?)
uint16_t frag_total; // total number of fragments for this file.
uint16_t frag_current_number; // Current fragment number.
uint16_t data_block_id; // ID of blocks containing data for this fragment
uint16_t data_offset; // offset of fragment data in the given block
uint16_t data_size; // size of this fragment data -1
uint8_t fill[12]; // 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, ...
// File 3
uint16_t internal_status; // Internal Casio's value to determine if file used.
uint16_t frag_id; // Fragment ID.
uint16_t type; // always 0x0120
uint16_t file_id; // File ID.
uint16_t unknown; // 0x0002 (?)
uint16_t frag_total; // total number of fragments for this file.
uint16_t frag_current_number; // Current fragment number.
uint16_t data_block_id; // ID of blocks containing data for this fragment
uint16_t data_offset; // offset of fragment data in the given block
uint16_t data_size; // size of this fragment data -1
uint8_t fill[12]; // 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, ...
}
##---
## File information about ???
##---
88008584_struct size : ?? bytes.
{
uint32_t FS_id; 0
void *addr0; 4
void *addr1; 8
void *addr2; 12
uint8_t buffer0[32]; 16
uint8_t buffer1[32]; 48
uint16_t
}
##---
## File information about ???
##---
88008354_struct size : 32 bytes
{
// File cache 0
void *addr0;
void *addr1;
}
##---
## Internal structure data for syscall 0x1e8
##---
struct_1e8 offset
{
void *addr0; 0
FONTCHARACTER *file_name; 4
uint16_t word; 8
void *addr1; 12
void *addr2; 16
FONTCHARACTER FS_current_filename[12]; 20
FONTCHARACTER second_buffer[20] 48
FONTCHARACTER *path; 72
uint32_t slot_info 76
};
##---
## Internal structure data for syscall 0x1d1
##---
struct_1d1 Offset
{
FONTCHARACTER first_buffer[14]; 0
FONTCHARACTER second_buffer[10]; 28
void *addr0; 48
void *addr1; 52
FONTCHARACTER **first_arg; 56
FONTCHARACTER **second_arg; 60
};