trunk/src/mess/drivers/pc9801.c
| r19409 | r19410 | |
| 730 | 730 | if(kanji_sel) |
| 731 | 731 | tile_data = (state->m_kanji_rom[tile*0x20+yi*2+pcg_lr]); |
| 732 | 732 | 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]); |
| 734 | 734 | else |
| 735 | 735 | tile_data = (state->m_char_rom[tile*char_size+state->m_video_ff[FONTSEL_REG]*0x800+yi]); |
| 736 | 736 | } |
| r19409 | r19410 | |
| 1174 | 1174 | { |
| 1175 | 1175 | UINT32 pcg_offset; |
| 1176 | 1176 | |
| 1177 | | pcg_offset = m_font_addr << 6; |
| 1177 | pcg_offset = m_font_addr << 5; |
| 1178 | 1178 | pcg_offset|= m_font_line; |
| 1179 | 1179 | pcg_offset|= m_font_lr; |
| 1180 | 1180 | if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700) |
| 1181 | { |
| 1181 | 1182 | return m_pcg_ram[pcg_offset]; |
| 1183 | } |
| 1182 | 1184 | |
| 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 |
| 1184 | 1192 | } |
| 1185 | 1193 | } |
| 1186 | 1194 | |
| r19409 | r19410 | |
| 1248 | 1256 | { |
| 1249 | 1257 | UINT32 pcg_offset; |
| 1250 | 1258 | |
| 1251 | | pcg_offset = m_font_addr << 6; |
| 1259 | pcg_offset = m_font_addr << 5; |
| 1252 | 1260 | pcg_offset|= m_font_line; |
| 1253 | 1261 | pcg_offset|= m_font_lr; |
| 1254 | 1262 | //printf("%04x %02x %02x %08x\n",m_font_addr,m_font_line,m_font_lr,pcg_offset); |
| 1255 | 1263 | if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700) |
| 1264 | { |
| 1256 | 1265 | m_pcg_ram[pcg_offset] = data; |
| 1266 | } |
| 1257 | 1267 | return; |
| 1258 | 1268 | } |
| 1259 | 1269 | } |
| r19409 | r19410 | |
| 1293 | 1303 | bool ready = m_fdc_2hd_ctrl & 0x40; |
| 1294 | 1304 | floppy_image_device *floppy; |
| 1295 | 1305 | 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) |
| 1297 | 1308 | ready = floppy->ready_r(); |
| 1298 | 1309 | floppy = machine().device<floppy_connector>("upd765_2hd:1")->get_device(); |
| 1299 | | if(floppy && ready) |
| 1310 | if(floppy || ready) |
| 1300 | 1311 | ready = floppy->ready_r(); |
| 1301 | 1312 | |
| 1302 | 1313 | m_fdc_2hd->ready_w(ready); |
| r19409 | r19410 | |
| 2267 | 2278 | AM_RANGE(0x0064, 0x0067) AM_WRITE8(pc9801_vrtc_mask_w, 0xffffffff) |
| 2268 | 2279 | AM_RANGE(0x0068, 0x006b) AM_WRITE8(pc9821_video_ff_w, 0xffffffff) //mode FF / <undefined> |
| 2269 | 2280 | 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> |
| 2271 | 2282 | AM_RANGE(0x0090, 0x0097) AM_READWRITE8(pc9801rs_2hd_r, pc9801rs_2hd_w, 0xffffffff) |
| 2272 | 2283 | AM_RANGE(0x00a0, 0x00af) AM_READWRITE8(pc9821_a0_r, pc9821_a0_w, 0xffffffff) //upd7220 bitmap ports / display registers |
| 2273 | 2284 | // AM_RANGE(0x00b0, 0x00b3) PC9861k (serial port?) |
| r19409 | r19410 | |
| 2301 | 2312 | // AM_RANGE(0x0cc0, 0x0cc7) SCSI interface / <undefined> |
| 2302 | 2313 | // AM_RANGE(0x0cfc, 0x0cff) PCI bus |
| 2303 | 2314 | 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 |
| 2305 | 2316 | AM_RANGE(0x841c, 0x841f) AM_READWRITE8(sdip_0_r,sdip_0_w,0xffffffff) |
| 2306 | 2317 | AM_RANGE(0x851c, 0x851f) AM_READWRITE8(sdip_1_r,sdip_1_w,0xffffffff) |
| 2307 | 2318 | AM_RANGE(0x861c, 0x861f) AM_READWRITE8(sdip_2_r,sdip_2_w,0xffffffff) |
| r19409 | r19410 | |
| 2450 | 2461 | PORT_START("KEY7") // 0x38 - 0x3f |
| 2451 | 2462 | 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) |
| 2452 | 2463 | 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) |
| 2457 | 2468 | 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) |
| 2458 | 2469 | 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) |
| 2459 | 2470 | |