src/mess/drivers/unior.c
| r12972 | r12973 | |
| 4 | 4 | |
| 5 | 5 | 12/05/2009 Skeleton driver. |
| 6 | 6 | |
| 7 | Some info obtained from EMU-80. |
| 8 | There are no manuals, diagrams, or anything else available afaik. |
| 9 | The entire driver is guesswork. |
| 10 | |
| 7 | 11 | The monitor will only allow certain characters to be typed, thus the |
| 8 | 12 | modifier keys appear to do nothing. There is no need to use the enter |
| 9 | 13 | key; using spacebar and the correct parameters is enough. |
| r12972 | r12973 | |
| 22 | 26 | M |
| 23 | 27 | |
| 24 | 28 | ToDo: |
| 25 | | - Everything |
| 26 | | - Fix scrolling |
| 29 | - All devices |
| 30 | - Beeper |
| 31 | - Cassette |
| 27 | 32 | |
| 28 | 33 | ****************************************************************************/ |
| 29 | 34 | #define ADDRESS_MAP_MODERN |
| r12972 | r12973 | |
| 42 | 47 | DECLARE_WRITE8_MEMBER(unior_4c_w); |
| 43 | 48 | DECLARE_READ8_MEMBER(unior_4c_r); |
| 44 | 49 | DECLARE_READ8_MEMBER(unior_4d_r); |
| 45 | | DECLARE_WRITE8_MEMBER(cursor_pos_w); |
| 50 | DECLARE_WRITE8_MEMBER(unior_50_w); |
| 51 | DECLARE_WRITE8_MEMBER(unior_60_w); |
| 46 | 52 | UINT8 *m_p_vram; |
| 47 | 53 | UINT8 *m_p_videoram; |
| 48 | 54 | UINT8 *m_p_chargen; |
| r12972 | r12973 | |
| 73 | 79 | m_p_vram[offset] = data; |
| 74 | 80 | } |
| 75 | 81 | |
| 76 | | WRITE8_MEMBER( unior_state::cursor_pos_w ) |
| 82 | WRITE8_MEMBER( unior_state::unior_50_w ) |
| 77 | 83 | { |
| 84 | if (data) |
| 85 | memcpy(m_p_vram, m_p_vram+80, 24*80); |
| 86 | } |
| 87 | |
| 88 | WRITE8_MEMBER( unior_state::unior_60_w ) |
| 89 | { |
| 78 | 90 | static UINT8 ctrl=0; |
| 79 | 91 | if (offset) |
| 80 | 92 | ctrl = 0; // port 61 - reset ctrl |
| r12972 | r12973 | |
| 88 | 100 | } |
| 89 | 101 | } |
| 90 | 102 | |
| 91 | | |
| 92 | 103 | static ADDRESS_MAP_START( unior_mem, AS_PROGRAM, 8, unior_state ) |
| 93 | 104 | ADDRESS_MAP_UNMAP_HIGH |
| 94 | 105 | AM_RANGE(0x0000, 0xf7af) AM_RAM |
| r12972 | r12973 | |
| 99 | 110 | static ADDRESS_MAP_START( unior_io, AS_IO, 8, unior_state ) |
| 100 | 111 | ADDRESS_MAP_UNMAP_HIGH |
| 101 | 112 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 113 | AM_RANGE(0x30, 0x3f) AM_NOP // dma data |
| 102 | 114 | AM_RANGE(0x4c, 0x4c) AM_READWRITE(unior_4c_r,unior_4c_w) |
| 103 | 115 | AM_RANGE(0x4d, 0x4d) AM_READ(unior_4d_r) |
| 104 | | AM_RANGE(0x60, 0x61) AM_WRITE(cursor_pos_w) |
| 116 | AM_RANGE(0x50, 0x50) AM_WRITE(unior_50_w) |
| 117 | AM_RANGE(0x60, 0x61) AM_WRITE(unior_60_w) |
| 105 | 118 | ADDRESS_MAP_END |
| 106 | 119 | |
| 107 | 120 | /* Input ports */ |