src/mess/drivers/pc88va.c
| r9460 | r9461 | |
| 179 | 179 | #define EMUL 0x8c |
| 180 | 180 | #define EXIT 0x88 |
| 181 | 181 | #define SPRON 0x82 |
| 182 | #define SPROFF 0x83 |
| 183 | #define SPRSW 0x85 |
| 184 | #define SPROV 0x81 |
| 182 | 185 | |
| 183 | 186 | static WRITE8_HANDLER( idp_command_w ) |
| 184 | 187 | { |
| r9460 | r9461 | |
| 205 | 208 | /* 0x15 - CURS: set CURSor position */ |
| 206 | 209 | case CURS: cmd = CURS; buf_size = 4; buf_index = 0; break; |
| 207 | 210 | |
| 211 | /* 0x8c - EMUL: set 3301 EMULation */ |
| 208 | 212 | case EMUL: cmd = EMUL; buf_size = 4; buf_index = 0; break; |
| 209 | 213 | |
| 210 | 214 | /* 0x88 - EXIT: ??? */ |
| 211 | 215 | case EXIT: break; |
| 212 | 216 | |
| 213 | 217 | /* 0x82 - SPRON: set SPRite ON */ |
| 214 | | case 0x82: cmd = SPRON; buf_size = 3; buf_index = 0; break; |
| 218 | case SPRON: cmd = SPRON; buf_size = 3; buf_index = 0; break; |
| 215 | 219 | |
| 216 | | case 0x83: printf("Unemulated IDP SPROFF cmd set\n"); break; |
| 217 | | case 0x85: printf("Unemulated IDP SPRSW cmd set\n"); break; |
| 218 | | case 0x81: printf("Unemulated IDP SPROV cmd set\n"); break; |
| 220 | /* 0x83 - SPROFF: set SPRite OFF */ |
| 221 | case SPROFF: tsp.spr_on = 0; break; |
| 219 | 222 | |
| 223 | /* 0x85 - SPRSW: ??? */ |
| 224 | case SPRSW: cmd = SPRSW; buf_size = 1; buf_index = 0; break; |
| 225 | |
| 226 | /* 0x81 - SPROV: set SPRite OVerflow information */ |
| 227 | case 0x81: /* ... */ break; |
| 228 | |
| 220 | 229 | /* TODO: 0x89 shouldn't trigger, should be one of the above commands */ |
| 221 | 230 | default: cmd = 0x00; printf("PC=%05x: Unknown IDP %02x cmd set\n",cpu_get_pc(space->cpu),data); break; |
| 222 | 231 | } |
| r9460 | r9461 | |
| 347 | 356 | */ |
| 348 | 357 | tsp.spr_offset = buf_ram[0] << 8; |
| 349 | 358 | tsp.spr_on = 1; |
| 359 | printf("SPR TABLE %02x %02x %02x\n",buf_ram[0],buf_ram[1],buf_ram[2]); |
| 350 | 360 | } |
| 351 | 361 | |
| 362 | static void execute_sprsw_cmd(running_machine *machine) |
| 363 | { |
| 364 | /* TODO: no idea about this command, some kind of manual sprite switch? */ |
| 365 | } |
| 366 | |
| 352 | 367 | static WRITE8_HANDLER( idp_param_w ) |
| 353 | 368 | { |
| 354 | | if(cmd == DSPOFF || cmd == EXIT) // no param commands |
| 369 | if(cmd == DSPOFF || cmd == EXIT || cmd == SPROFF || cmd == SPROV) // no param commands |
| 355 | 370 | return; |
| 356 | 371 | |
| 357 | 372 | buf_ram[buf_index] = data; |
| r9460 | r9461 | |
| 369 | 384 | case ACTSCR: execute_actscr_cmd(space->machine); break; |
| 370 | 385 | case CURS: execute_curs_cmd(space->machine); break; |
| 371 | 386 | case EMUL: execute_emul_cmd(space->machine); break; |
| 372 | | case SPRON: execute_spron_cmd(space->machine); break; |
| 387 | case SPRON: execute_spron_cmd(space->machine); break; |
| 388 | case SPRSW: execute_sprsw_cmd(space->machine); break; |
| 373 | 389 | |
| 374 | 390 | default: |
| 375 | | printf("%02x\n",data); |
| 391 | //printf("%02x\n",data); |
| 376 | 392 | break; |
| 377 | 393 | } |
| 378 | 394 | } |