added savedisp and restoredisp syscalls
This commit is contained in:
parent
05d9596915
commit
aa10c69a0b
|
@ -12,5 +12,7 @@ int syscall_handle(cpu_status_t* status, uint32_t origin){
|
|||
else if(id == 0xacd) syscall_malloc(status);
|
||||
else if(id == 0x90f) syscall_getkey(status);
|
||||
else if(id == 0x028) syscall_bdisp_putdisp_dd(status);
|
||||
else if(id == 0x813) syscall_save_disp(status);
|
||||
else if(id == 0x814) syscall_restore_disp(status);
|
||||
status->pc = status->pr;
|
||||
}
|
|
@ -7,6 +7,8 @@ int syscall_handle(cpu_status_t* status, uint32_t origin);
|
|||
void syscall_bdisp_allclr_ddvram(cpu_status_t* status);
|
||||
void syscall_bdisp_putdisp_dd(cpu_status_t* status);
|
||||
void syscall_get_vram_address(cpu_status_t* status);
|
||||
void syscall_save_disp(cpu_status_t* status);
|
||||
void syscall_restore_disp(cpu_status_t* status);
|
||||
|
||||
void syscall_locate(cpu_status_t* status);
|
||||
void syscall_print(cpu_status_t* status);
|
||||
|
|
|
@ -12,4 +12,16 @@ void syscall_bdisp_putdisp_dd(cpu_status_t* status){
|
|||
|
||||
void syscall_get_vram_address(cpu_status_t* status){
|
||||
status->r[0]=0x01100000;
|
||||
}
|
||||
|
||||
void syscall_save_disp(cpu_status_t* status){
|
||||
if(status->r[4] == 1) memcpy(status->saved_disps[0],status->vram,1024);
|
||||
if(status->r[4] == 5) memcpy(status->saved_disps[1],status->vram,1024);
|
||||
if(status->r[4] == 6) memcpy(status->saved_disps[2],status->vram,1024);
|
||||
}
|
||||
|
||||
void syscall_restore_disp(cpu_status_t* status){
|
||||
if(status->r[4] == 1) memcpy(status->vram ,status->saved_disps[0],1024);
|
||||
if(status->r[4] == 5) memcpy(status->vram ,status->saved_disps[1],1024);
|
||||
if(status->r[4] == 6) memcpy(status->vram ,status->saved_disps[2],1024);
|
||||
}
|
Loading…
Reference in New Issue