Previous 199869 Revisions Next

r19097 Thursday 22nd November, 2012 at 02:53:09 UTC by Angelo Salese
Notes for PC-88VA
[src/mess/drivers]pc88va.c

trunk/src/mess/drivers/pc88va.c
r19096r19097
1515    - What is exactly supposed to be a "bus slot"?
1616    - fdc "intelligent mode" has 0x7f as irq vector ... 0x7f is ld a,a and it IS NOT correctly
1717      hooked up by the current z80 core
18    - PC-88VA has two bogus opcodes. One is at 0xf0b15, another at 0xf0b31. Making a patch
19      for the latter makes the system to jump into a "DIP-Switch" display.
20    - DMA almost certainly ISN'T i8237. What is it?
1821
1922********************************************************************************************/
2023
r19096r19097
126129   DECLARE_WRITE8_MEMBER(r232_ctrl_portc_w);
127130   DECLARE_WRITE_LINE_MEMBER(pc88va_pic_irq);
128131   DECLARE_READ8_MEMBER(get_slave_ack);
132   DECLARE_READ8_MEMBER(pc88va_dma_r);
133   DECLARE_WRITE8_MEMBER(pc88va_dma_w);
129134   DECLARE_WRITE_LINE_MEMBER(pc88va_pit_out0_changed);
130135   DECLARE_WRITE_LINE_MEMBER(pc88va_upd765_interrupt);
131136   UINT8 m_fdc_ctrl_2;
r19096r19097
11201125}
11211126#endif
11221127
1128/* TODO: identify or emulate this DMAC */
1129READ8_MEMBER(pc88va_state::pc88va_dma_r)
1130{
1131/*
11320: undefined
11331: ---x ---- mode
1134   ---- xxxx select channel (bit-wise)
11352/3: xxxx xxxx count
11364/5: xxxx xxxx address
11376: ---- xxxx address
11388: ???? ???? Device control Register
1139A: ???? ???? Mode control Register
1140B: ???? ???? Status Register (r/o)
1141F: xxxx xxxx Mask Register
1142*/
1143
1144   return 0;
1145}
1146
1147WRITE8_MEMBER(pc88va_state::pc88va_dma_w)
1148{
1149   switch(offset)
1150   {
1151      case 0x00: printf("DMA reset %02x\n",data & 1); break;
1152      case 0x01: printf("DMA select channel %02x mode channel %02x\n",data & 3,(data & 4) >> 2); break;
1153      case 0x02: printf("DMA count 7-0 %02x\n",data); break;
1154      case 0x03: printf("DMA count 15-8 %02x\n",data); break;
1155      case 0x04: printf("DMA address 7-0 %02x\n",data); break;
1156      case 0x05: printf("DMA address 15-8 %02x\n",data); break;
1157      case 0x06: printf("DMA address 19-16 %02x\n",data); break;
1158      case 0x08: printf("DMA Device control register %02x\n",data); break;
1159      case 0x0a: printf("DMA Mode control register %02x\n",data); break;
1160      case 0x0f: printf("DMA Mask register %02x\n",data); break;
1161   }
1162}
1163
11231164static ADDRESS_MAP_START( pc88va_io_map, AS_IO, 16, pc88va_state )
11241165   AM_RANGE(0x0000, 0x000f) AM_READ8(key_r,0xffff) // Keyboard ROW reading
11251166//  AM_RANGE(0x0010, 0x0010) Printer / Calendar Clock Interface
r19096r19097
11701211   AM_RANGE(0x0156, 0x0157) AM_READ8(rom_bank_r,0x00ff) // ROM bank status
11711212//  AM_RANGE(0x0158, 0x0159) Interruption Mode Modification
11721213//  AM_RANGE(0x015c, 0x015f) NMI mask port (strobe port)
1173//  AM_RANGE(0x0160, 0x016f) DMA Controller
1214   AM_RANGE(0x0160, 0x016f) AM_READWRITE8(pc88va_dma_r,pc88va_dma_w,0xffff) // DMA Controller
11741215   AM_RANGE(0x0184, 0x0187) AM_DEVREADWRITE8_LEGACY("pic8259_slave", pic8259_r, pic8259_w, 0x00ff)
11751216   AM_RANGE(0x0188, 0x018b) AM_DEVREADWRITE8_LEGACY("pic8259_master", pic8259_r, pic8259_w, 0x00ff) // ICU, also controls 8214 emulation
11761217//  AM_RANGE(0x0190, 0x0191) System Port 5

Previous 199869 Revisions Next


© 1997-2024 The MAME Team