added bdisp_allclr_vram syscall

This commit is contained in:
IniKiwi 2022-08-15 15:20:30 +02:00
parent aa10c69a0b
commit 652c50f332
4 changed files with 11 additions and 1 deletions

View File

@ -14,7 +14,8 @@ void display_set_data_register(display_t* display, uint8_t value, cpu_status_t*
if(display->register_selector == 8){
if(value==4){display->x=0;SDL_RenderPresent(display->renderer);return;}
display->line = value-128;
if(status->log) printf("\e[35mline to %d\e[39m\n", value-128+1);
//if(status->log)
printf("\e[35mline to %d\e[39m\n", value-128+1);
}
if(display->register_selector == 10){
for(int b=0;b<8;b++){

View File

@ -6,6 +6,7 @@ int syscall_handle(cpu_status_t* status, uint32_t origin){
printf("\e[32mpc: %8x syscall %8x\e[39m\n", origin, (uint32_t)status->r[0]);
if(id == 0x3fa) NULL;
else if(id == 0x144) syscall_bdisp_allclr_ddvram(status);
else if(id == 0x143) syscall_bdisp_allclr_vram(status);
else if(id == 0x807) syscall_locate(status);
else if(id == 0x808) syscall_print(status);
else if(id == 0x135) syscall_get_vram_address(status);

View File

@ -9,6 +9,7 @@ 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_bdisp_allclr_vram(cpu_status_t* status);
void syscall_locate(cpu_status_t* status);
void syscall_print(cpu_status_t* status);

View File

@ -4,6 +4,7 @@ void syscall_bdisp_allclr_ddvram(cpu_status_t* status){
for(int i=0; i< 1024;i++){
status->vram[i] = 0;
}
display_clear(status->display);
}
void syscall_bdisp_putdisp_dd(cpu_status_t* status){
@ -24,4 +25,10 @@ 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);
}
void syscall_bdisp_allclr_vram(cpu_status_t* status){
for(int i=0; i< 1024;i++){
status->vram[i] = 0;
}
}