Previous 15994 Revisions Next

r9461 Wednesday 27th October, 2010 at 22:35:16 UTC by Angelo Salese
[PC-88VA]: Completed IDP / TSP command documenting
[src/mess/drivers]pc88va.c

src/mess/drivers/pc88va.c
r9460r9461
179179#define EMUL   0x8c
180180#define EXIT   0x88
181181#define SPRON  0x82
182#define SPROFF 0x83
183#define SPRSW  0x85
184#define SPROV  0x81
182185
183186static WRITE8_HANDLER( idp_command_w )
184187{
r9460r9461
205208      /* 0x15 - CURS: set CURSor position */
206209      case CURS:   cmd = CURS;   buf_size = 4; buf_index = 0; break;
207210
211      /* 0x8c - EMUL: set 3301 EMULation */
208212      case EMUL:   cmd = EMUL;   buf_size = 4; buf_index = 0; break;
209213
210214      /* 0x88 - EXIT: ??? */
211215      case EXIT: break;
212216
213217      /* 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;
215219
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;
219222
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
220229      /* TODO: 0x89 shouldn't trigger, should be one of the above commands */
221230      default:   cmd = 0x00; printf("PC=%05x: Unknown IDP %02x cmd set\n",cpu_get_pc(space->cpu),data); break;
222231   }
r9460r9461
347356   */
348357   tsp.spr_offset = buf_ram[0] << 8;
349358   tsp.spr_on = 1;
359   printf("SPR TABLE %02x %02x %02x\n",buf_ram[0],buf_ram[1],buf_ram[2]);
350360}
351361
362static void execute_sprsw_cmd(running_machine *machine)
363{
364   /* TODO: no idea about this command, some kind of manual sprite switch? */
365}
366
352367static WRITE8_HANDLER( idp_param_w )
353368{
354   if(cmd == DSPOFF || cmd == EXIT) // no param commands
369   if(cmd == DSPOFF || cmd == EXIT || cmd == SPROFF || cmd == SPROV) // no param commands
355370      return;
356371
357372   buf_ram[buf_index] = data;
r9460r9461
369384         case ACTSCR:    execute_actscr_cmd(space->machine); break;
370385         case CURS:      execute_curs_cmd(space->machine);   break;
371386         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;
373389
374390         default:
375            printf("%02x\n",data);
391            //printf("%02x\n",data);
376392            break;
377393      }
378394   }

Previous 15994 Revisions Next


© 1998-2018 The MESS Team