trunk/src/mess/video/pc_t1t.c
| r26481 | r26482 | |
| 53 | 53 | |
| 54 | 54 | void pcvideo_t1000_device::device_start() |
| 55 | 55 | { |
| 56 | | int buswidth; |
| 57 | | address_space &space = machine().firstcpu->space(AS_PROGRAM); |
| 58 | | address_space &spaceio = machine().firstcpu->space(AS_IO); |
| 59 | | |
| 60 | 56 | m_chr_gen = machine().root_device().memregion("gfx1")->base(); |
| 61 | 57 | m_update_row = NULL; |
| 62 | 58 | m_bank = 0; |
| 63 | 59 | m_chr_size = 1; |
| 64 | 60 | m_ra_offset = 256; |
| 65 | | |
| 66 | | buswidth = machine().firstcpu->space_config(AS_PROGRAM)->m_databus_width; |
| 67 | | switch(buswidth) |
| 68 | | { |
| 69 | | case 8: |
| 70 | | space.install_readwrite_handler(0xb8000, 0xbffff, read8_delegate(FUNC(pcvideo_t1000_device::videoram_r), this), write8_delegate(FUNC(pcvideo_t1000_device::videoram_w), this)); |
| 71 | | spaceio.install_readwrite_handler(0x3d0, 0x3df, read8_delegate(FUNC(pc_t1t_device::read), this), write8_delegate(FUNC(pcvideo_t1000_device::write), this)); |
| 72 | | break; |
| 73 | | |
| 74 | | case 16: |
| 75 | | space.install_readwrite_handler(0xb8000, 0xbffff, read8_delegate(FUNC(pcvideo_t1000_device::videoram_r), this), write8_delegate(FUNC(pcvideo_t1000_device::videoram_w), this), 0xffff ); |
| 76 | | spaceio.install_readwrite_handler(0x3d0, 0x3df, read8_delegate(FUNC(pc_t1t_device::read), this), write8_delegate(FUNC(pcvideo_t1000_device::write), this), 0xffff ); |
| 77 | | break; |
| 78 | | |
| 79 | | default: |
| 80 | | fatalerror("T1T: Bus width %d not supported\n", buswidth); |
| 81 | | break; |
| 82 | | } |
| 83 | 61 | } |
| 84 | 62 | |
| 85 | 63 | |
| 86 | 64 | void pcvideo_pcjr_device::device_start() |
| 87 | 65 | { |
| 88 | | int buswidth; |
| 89 | | address_space &spaceio = machine().firstcpu->space(AS_IO); |
| 90 | | |
| 91 | 66 | m_chr_gen = machine().root_device().memregion("gfx1")->base(); |
| 92 | 67 | m_update_row = NULL; |
| 93 | 68 | m_bank = 0; |
| r26481 | r26482 | |
| 98 | 73 | m_jxkanji = machine().root_device().memregion("kanji")->base(); |
| 99 | 74 | else |
| 100 | 75 | m_jxkanji = NULL; |
| 101 | | |
| 102 | | buswidth = machine().firstcpu->space_config(AS_PROGRAM)->m_databus_width; |
| 103 | | switch(buswidth) |
| 104 | | { |
| 105 | | case 8: |
| 106 | | spaceio.install_readwrite_handler(0x3d0, 0x3df, read8_delegate(FUNC(pc_t1t_device::read), this), write8_delegate(FUNC(pcvideo_pcjr_device::write), this)); |
| 107 | | break; |
| 108 | | |
| 109 | | default: |
| 110 | | fatalerror("PCJR: Bus width %d not supported\n", buswidth); |
| 111 | | break; |
| 112 | | } |
| 113 | 76 | } |
| 114 | 77 | |
| 115 | 78 | |
trunk/src/mess/video/pc_t1t.h
| r26481 | r26482 | |
| 79 | 79 | // construction/destruction |
| 80 | 80 | pcvideo_t1000_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 81 | 81 | |
| 82 | DECLARE_WRITE8_MEMBER( write ); |
| 83 | DECLARE_READ8_MEMBER( videoram_r ); |
| 84 | DECLARE_WRITE8_MEMBER( videoram_w ); |
| 82 | 85 | DECLARE_WRITE_LINE_MEMBER( t1000_vsync_changed ); |
| 83 | 86 | |
| 84 | 87 | protected: |
| r26481 | r26482 | |
| 87 | 90 | |
| 88 | 91 | private: |
| 89 | 92 | UINT8 *m_t1_displayram; |
| 90 | | |
| 91 | | DECLARE_WRITE8_MEMBER( write ); |
| 92 | | DECLARE_READ8_MEMBER( videoram_r ); |
| 93 | | DECLARE_WRITE8_MEMBER( videoram_w ); |
| 94 | 93 | void mode_switch( void ); |
| 95 | 94 | void vga_data_w(int data); |
| 96 | 95 | void bank_w(int data); |
| r26481 | r26482 | |
| 108 | 107 | // construction/destruction |
| 109 | 108 | pcvideo_pcjr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 110 | 109 | |
| 110 | DECLARE_WRITE8_MEMBER( write ); |
| 111 | 111 | DECLARE_WRITE_LINE_MEMBER( pcjr_vsync_changed ); |
| 112 | 112 | |
| 113 | 113 | UINT8 *m_jxkanji; |
| r26481 | r26482 | |
| 117 | 117 | virtual void device_start(); |
| 118 | 118 | |
| 119 | 119 | private: |
| 120 | | DECLARE_WRITE8_MEMBER( write ); |
| 121 | 120 | void pc_pcjr_mode_switch(); |
| 122 | 121 | void pc_pcjr_vga_data_w(int data); |
| 123 | 122 | void pc_pcjr_bank_w(int data); |
trunk/src/mess/drivers/pc.c
| r26481 | r26482 | |
| 374 | 374 | AM_RANGE(0x00000, 0x9ffff) AM_RAMBANK("bank10") |
| 375 | 375 | AM_RANGE(0xa0000, 0xaffff) AM_RAM |
| 376 | 376 | AM_RANGE(0xb0000, 0xb7fff) AM_NOP |
| 377 | AM_RANGE(0xb8000, 0xbffff) AM_DEVREADWRITE("pcvideo_t1000", pcvideo_t1000_device, videoram_r, videoram_w); |
| 377 | 378 | AM_RANGE(0xc0000, 0xc7fff) AM_NOP |
| 378 | 379 | AM_RANGE(0xc8000, 0xc9fff) AM_ROM |
| 379 | 380 | AM_RANGE(0xca000, 0xcffff) AM_NOP |
| r26481 | r26482 | |
| 394 | 395 | AM_RANGE(0x02f8, 0x02ff) AM_DEVREADWRITE("ins8250_1", ins8250_device, ins8250_r, ins8250_w) |
| 395 | 396 | AM_RANGE(0x0378, 0x037f) AM_READWRITE(pc_t1t_p37x_r, pc_t1t_p37x_w) |
| 396 | 397 | AM_RANGE(0x03bc, 0x03be) AM_DEVREADWRITE("lpt_0", pc_lpt_device, read, write) |
| 398 | AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE("pcvideo_t1000", pcvideo_t1000_device, read, write) |
| 397 | 399 | AM_RANGE(0x03f0, 0x03f7) AM_DEVICE("fdc", pc_fdc_interface, map) |
| 398 | 400 | AM_RANGE(0x03f8, 0x03ff) AM_DEVREADWRITE("ins8250_0", ins8250_device, ins8250_r, ins8250_w) |
| 399 | 401 | ADDRESS_MAP_END |
| r26481 | r26482 | |
| 404 | 406 | AM_RANGE(0x00000, 0x9ffff) AM_RAMBANK("bank10") |
| 405 | 407 | AM_RANGE(0xa0000, 0xaffff) AM_RAM |
| 406 | 408 | AM_RANGE(0xb0000, 0xb7fff) AM_NOP |
| 409 | AM_RANGE(0xb8000, 0xbffff) AM_DEVREADWRITE8("pcvideo_t1000", pcvideo_t1000_device, videoram_r, videoram_w, 0xffff) |
| 407 | 410 | AM_RANGE(0xc0000, 0xc7fff) AM_NOP |
| 408 | 411 | AM_RANGE(0xc8000, 0xc9fff) AM_ROM |
| 409 | 412 | AM_RANGE(0xca000, 0xcffff) AM_NOP |
| r26481 | r26482 | |
| 423 | 426 | AM_RANGE(0x02f8, 0x02ff) AM_DEVREADWRITE8("ins8250_1", ins8250_device, ins8250_r, ins8250_w, 0xffff) |
| 424 | 427 | AM_RANGE(0x0378, 0x037f) AM_READWRITE8(pc_t1t_p37x_r, pc_t1t_p37x_w, 0xffff) |
| 425 | 428 | AM_RANGE(0x03bc, 0x03bf) AM_DEVREADWRITE8("lpt_0", pc_lpt_device, read, write, 0xffff) |
| 429 | AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE8("pcvideo_t1000", pcvideo_t1000_device, read, write, 0xffff) |
| 426 | 430 | AM_RANGE(0x03f0, 0x03f7) AM_DEVICE8("fdc", pc_fdc_interface, map, 0xffff) |
| 427 | 431 | AM_RANGE(0x03f8, 0x03ff) AM_DEVREADWRITE8("ins8250_0", ins8250_device, ins8250_r, ins8250_w, 0xffff) |
| 428 | 432 | AM_RANGE(0xffea, 0xffeb) AM_READWRITE8(tandy1000_bank_r, tandy1000_bank_w, 0xffff) |
| r26481 | r26482 | |
| 435 | 439 | AM_RANGE(0x00000, 0x9ffff) AM_RAMBANK("bank10") |
| 436 | 440 | AM_RANGE(0xa0000, 0xaffff) AM_RAM |
| 437 | 441 | AM_RANGE(0xb0000, 0xb7fff) AM_NOP |
| 442 | AM_RANGE(0xb8000, 0xbffff) AM_DEVREADWRITE8("pcvideo_t1000", pcvideo_t1000_device, videoram_r, videoram_w, 0xffff) |
| 438 | 443 | AM_RANGE(0xc0000, 0xc7fff) AM_NOP |
| 439 | 444 | AM_RANGE(0xc8000, 0xc9fff) AM_ROM |
| 440 | 445 | AM_RANGE(0xca000, 0xcffff) AM_NOP |
| r26481 | r26482 | |
| 455 | 460 | AM_RANGE(0x02f8, 0x02ff) AM_DEVREADWRITE8("ins8250_1", ins8250_device, ins8250_r, ins8250_w, 0xffff) |
| 456 | 461 | AM_RANGE(0x0378, 0x037f) AM_READWRITE8(pc_t1t_p37x_r, pc_t1t_p37x_w, 0xffff) |
| 457 | 462 | AM_RANGE(0x03bc, 0x03bf) AM_DEVREADWRITE8("lpt_0", pc_lpt_device, read, write, 0xffff) |
| 463 | AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE8("pcvideo_t1000", pcvideo_t1000_device, read, write, 0xffff) |
| 458 | 464 | AM_RANGE(0x03f0, 0x03f7) AM_DEVICE8("fdc", pc_fdc_interface, map, 0xffff) |
| 459 | 465 | AM_RANGE(0x03f8, 0x03ff) AM_DEVREADWRITE8("ins8250_0", ins8250_device, ins8250_r, ins8250_w, 0xffff) |
| 460 | 466 | ADDRESS_MAP_END |
| r26481 | r26482 | |
| 487 | 493 | AM_RANGE(0x02f8, 0x02ff) AM_DEVREADWRITE("ins8250_1", ins8250_device, ins8250_r, ins8250_w) |
| 488 | 494 | AM_RANGE(0x0378, 0x037f) AM_READWRITE(pc_t1t_p37x_r, pc_t1t_p37x_w) |
| 489 | 495 | AM_RANGE(0x03bc, 0x03be) AM_DEVREADWRITE("lpt_0", pc_lpt_device, read, write) |
| 496 | AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE("pcvideo_pcjr", pcvideo_pcjr_device, read, write) |
| 490 | 497 | AM_RANGE(0x03f8, 0x03ff) AM_DEVREADWRITE("ins8250_0", ins8250_device, ins8250_r, ins8250_w) |
| 491 | 498 | ADDRESS_MAP_END |
| 492 | 499 | |