Previous 199869 Revisions Next

r19410 Saturday 8th December, 2012 at 16:05:57 UTC by Angelo Salese
Added kanji ROM hook-up read at i/o 0xa9, make keyboard up/down/left/right to not use port_impulse
[src/mess/drivers]pc9801.c

trunk/src/mess/drivers/pc9801.c
r19409r19410
730730               if(kanji_sel)
731731                  tile_data = (state->m_kanji_rom[tile*0x20+yi*2+pcg_lr]);
732732               else if(pcg_sel)
733                  tile_data = (state->m_pcg_ram[0xac000*2+tile*0x40+yi*2+pcg_lr]);
733                  tile_data = (state->m_pcg_ram[0xac000+tile*0x20+yi*2+pcg_lr]);
734734               else
735735                  tile_data = (state->m_char_rom[tile*char_size+state->m_video_ff[FONTSEL_REG]*0x800+yi]);
736736            }
r19409r19410
11741174         {
11751175            UINT32 pcg_offset;
11761176
1177            pcg_offset = m_font_addr << 6;
1177            pcg_offset = m_font_addr << 5;
11781178            pcg_offset|= m_font_line;
11791179            pcg_offset|= m_font_lr;
11801180            if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700)
1181            {
11811182               return m_pcg_ram[pcg_offset];
1183            }
11821184
1183            return machine().rand(); // TODO, kanji ROM
1185            //printf("%08x = %04x %04x %04x\n",pcg_offset,m_font_addr,m_font_line,m_font_lr);
1186
1187            pcg_offset = BITSWAP16(m_font_addr,15,7,14,13,12,11,6,5,10,9,8,4,3,2,1,0) << 5; // TODO
1188            pcg_offset|= m_font_line;
1189            pcg_offset|= m_font_lr;
1190
1191            return m_kanji_rom[pcg_offset]; // TODO, kanji ROM
11841192         }
11851193      }
11861194
r19409r19410
12481256         {
12491257            UINT32 pcg_offset;
12501258
1251            pcg_offset = m_font_addr << 6;
1259            pcg_offset = m_font_addr << 5;
12521260            pcg_offset|= m_font_line;
12531261            pcg_offset|= m_font_lr;
12541262            //printf("%04x %02x %02x %08x\n",m_font_addr,m_font_line,m_font_lr,pcg_offset);
12551263            if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700)
1264            {
12561265               m_pcg_ram[pcg_offset] = data;
1266            }
12571267            return;
12581268         }
12591269      }
r19409r19410
12931303   bool ready = m_fdc_2hd_ctrl & 0x40;
12941304   floppy_image_device *floppy;
12951305   floppy = machine().device<floppy_connector>("upd765_2hd:0")->get_device();
1296   if(floppy && ready)
1306   /* TODO: hack, needs to be removed */
1307   if(floppy || ready)
12971308      ready = floppy->ready_r();
12981309   floppy = machine().device<floppy_connector>("upd765_2hd:1")->get_device();
1299   if(floppy && ready)
1310   if(floppy || ready)
13001311      ready = floppy->ready_r();
13011312
13021313   m_fdc_2hd->ready_w(ready);
r19409r19410
22672278   AM_RANGE(0x0064, 0x0067) AM_WRITE8(pc9801_vrtc_mask_w, 0xffffffff)
22682279   AM_RANGE(0x0068, 0x006b) AM_WRITE8(pc9821_video_ff_w,  0xffffffff) //mode FF / <undefined>
22692280   AM_RANGE(0x0070, 0x007f) AM_READWRITE8(pc9801rs_70_r,      pc9801rs_70_w,    0xffffffff) //display registers "GRCG" / i8253 pit
2270//  AM_RANGE(0x0080, 0x0083) SASI interface / <undefined>
2281   AM_RANGE(0x0080, 0x0083) AM_READWRITE8(pc9801_sasi_r,      pc9801_sasi_w,      0xffffffff) //HDD SASI interface / <undefined>
22712282   AM_RANGE(0x0090, 0x0097) AM_READWRITE8(pc9801rs_2hd_r,     pc9801rs_2hd_w,     0xffffffff)
22722283   AM_RANGE(0x00a0, 0x00af) AM_READWRITE8(pc9821_a0_r,        pc9821_a0_w,        0xffffffff) //upd7220 bitmap ports / display registers
22732284//  AM_RANGE(0x00b0, 0x00b3) PC9861k (serial port?)
r19409r19410
23012312//  AM_RANGE(0x0cc0, 0x0cc7) SCSI interface / <undefined>
23022313//  AM_RANGE(0x0cfc, 0x0cff) PCI bus
23032314   AM_RANGE(0x3fd8, 0x3fdf) AM_READWRITE8(pc9821_pit_r,        pc9821_pit_w,        0xffffffff) // <undefined> / pit mirror ports
2304   AM_RANGE(0x7fd8, 0x7fdf) AM_READWRITE8(pc9801_mouse_r,pc9801_mouse_w,0xffffffff) // <undefined> / mouse ppi8255 ports
2315   AM_RANGE(0x7fd8, 0x7fdf) AM_READWRITE8(pc9801_mouse_r,      pc9801_mouse_w,      0xffffffff) // <undefined> / mouse ppi8255 ports
23052316   AM_RANGE(0x841c, 0x841f) AM_READWRITE8(sdip_0_r,sdip_0_w,0xffffffff)
23062317   AM_RANGE(0x851c, 0x851f) AM_READWRITE8(sdip_1_r,sdip_1_w,0xffffffff)
23072318   AM_RANGE(0x861c, 0x861f) AM_READWRITE8(sdip_2_r,sdip_2_w,0xffffffff)
r19409r19410
24502461   PORT_START("KEY7") // 0x38 - 0x3f
24512462   PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(" un 1-1") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x38)
24522463   PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x39)
2453   PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x3a)
2454   PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x3b)
2455   PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x3c)
2456   PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x3d)
2464   PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x3a)
2465   PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x3b)
2466   PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x3c)
2467   PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x3d)
24572468   PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("CLS") PORT_CODE(KEYCODE_HOME) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x3e)
24582469   PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(" un 1-8") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc9801_state, key_stroke, 0x3f)
24592470

Previous 199869 Revisions Next


© 1997-2024 The MAME Team