| Previous | 199869 Revisions | Next |
| r17380 Tuesday 21st August, 2012 at 19:50:30 UTC by Curt Coder |
|---|
| (MESS) vip: Fixed VP-700 Tiny BASIC ROM mapping and VP-620 ASCII keyboard. [Curt Coder] |
| [src/mess/drivers] | vip.c |
| [src/mess/machine] | vp620.c vp620.h vp700.c |
| r17379 | r17380 | |
|---|---|---|
| 25 | 25 | WRITE8_MEMBER( vp620_device::kb_w ) |
| 26 | 26 | { |
| 27 | 27 | m_keydata = data; |
| 28 | ||
| 28 | ||
| 29 | m_slot->inst_w(0); | |
| 30 | m_slot->inst_w(1); | |
| 31 | ||
| 29 | 32 | m_keystb = ASSERT_LINE; |
| 30 | 33 | } |
| 31 | 34 | |
| r17379 | r17380 | |
| 96 | 99 | // vip_ef3_r - EF3 flag read |
| 97 | 100 | //------------------------------------------------- |
| 98 | 101 | |
| 99 | int vp620_device::vip_ef | |
| 102 | int vp620_device::vip_ef4_r() | |
| 100 | 103 | { |
| 101 | 104 | int state = m_keystb; |
| 102 | 105 |
| r17379 | r17380 | |
|---|---|---|
| 44 | 44 | |
| 45 | 45 | // device_vip_byteio_port_interface overrides |
| 46 | 46 | virtual UINT8 vip_in_r(); |
| 47 | virtual int vip_ef | |
| 47 | virtual int vip_ef4_r(); | |
| 48 | 48 | |
| 49 | 49 | private: |
| 50 | 50 | UINT8 m_keydata; |
| r17379 | r17380 | |
|---|---|---|
| 72 | 72 | { |
| 73 | 73 | UINT8 data = 0xff; |
| 74 | 74 | |
| 75 | if ( | |
| 75 | if (offset < 0x1000) | |
| 76 | 76 | { |
| 77 | 77 | *minh = 1; |
| 78 | 78 |
| r17379 | r17380 | |
|---|---|---|
| 56 | 56 | |
| 57 | 57 | TODO: |
| 58 | 58 | |
| 59 | - | |
| 59 | - | |
| 60 | 60 | - cassette loading |
| 61 | 61 | - 20K RAM for Floating Point BASIC |
| 62 | 62 | - VP-111 has 1K RAM, no byte I/O, no expansion |
| r17379 | r17380 | |
| 266 | 266 | |
| 267 | 267 | UINT8 data = m_exp->program_r(space, offset, cs, cdef, &minh); |
| 268 | 268 | |
| 269 | if ( | |
| 269 | if (cs | |
| 270 | 270 | { |
| 271 | if (cs) | |
| 272 | { | |
| 273 | data = memregion(CDP1802_TAG)->base()[offset & 0x1ff]; | |
| 274 | } | |
| 275 | else | |
| 276 | { | |
| 277 | data = m_ram->pointer()[offset & m_ram->mask()]; | |
| 278 | } | |
| 271 | data = memregion(CDP1802_TAG)->base()[offset & 0x1ff]; | |
| 279 | 272 | } |
| 273 | else if (!minh) | |
| 274 | { | |
| 275 | data = m_ram->pointer()[offset & m_ram->mask()]; | |
| 276 | } | |
| 280 | 277 | |
| 281 | 278 | return data; |
| 282 | 279 | } |
| r17379 | r17380 | |
| 708 | 705 | |
| 709 | 706 | // internal speaker |
| 710 | 707 | m_beeper->set_output_gain(0, ioport("BEEPER")->read() ? 0.80 : 0); |
| 708 | ||
| 709 | // clear byte I/O latch | |
| 710 | m_byteio_data = 0; | |
| 711 | 711 | } |
| 712 | 712 | |
| 713 | 713 |
| Previous | 199869 Revisions | Next |