src/mess/drivers/ccs2422.c
| r9682 | r9683 | |
| 20 | 20 | UINT8 *ccs_ram; |
| 21 | 21 | }; |
| 22 | 22 | |
| 23 | static UINT8 term_data; |
| 23 | 24 | |
| 25 | static READ8_HANDLER( ccs2422_10_r ) |
| 26 | { |
| 27 | UINT8 ret = term_data; |
| 28 | term_data = 0; |
| 29 | return ret; |
| 30 | } |
| 24 | 31 | |
| 25 | | static WRITE8_HANDLER(ccs2422_terminal_w) |
| 32 | static READ8_HANDLER( ccs2422_11_r ) |
| 26 | 33 | { |
| 34 | return 4 | ((term_data) ? 1 : 0); |
| 35 | } |
| 36 | |
| 37 | static WRITE8_HANDLER(ccs2422_10_w) |
| 38 | { |
| 27 | 39 | running_device *devconf = space->machine->device("terminal"); |
| 28 | | terminal_write(devconf,0,data); |
| 40 | terminal_write(devconf,0,data & 0x7f); |
| 29 | 41 | } |
| 30 | 42 | |
| 31 | 43 | static ADDRESS_MAP_START(ccs2422_mem, ADDRESS_SPACE_PROGRAM, 8) |
| r9682 | r9683 | |
| 36 | 48 | static ADDRESS_MAP_START( ccs2422_io , ADDRESS_SPACE_IO, 8) |
| 37 | 49 | ADDRESS_MAP_UNMAP_HIGH |
| 38 | 50 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 39 | | AM_RANGE(0x10, 0x10) AM_WRITE(ccs2422_terminal_w) |
| 51 | AM_RANGE(0x10, 0x10) AM_READWRITE(ccs2422_10_r,ccs2422_10_w) |
| 52 | AM_RANGE(0x11, 0x11) AM_READ(ccs2422_11_r) |
| 40 | 53 | ADDRESS_MAP_END |
| 41 | 54 | |
| 42 | 55 | /* Input ports */ |
| r9682 | r9683 | |
| 56 | 69 | |
| 57 | 70 | static WRITE8_DEVICE_HANDLER( ccs2422_kbd_put ) |
| 58 | 71 | { |
| 72 | term_data = data; |
| 59 | 73 | } |
| 60 | 74 | |
| 61 | 75 | static GENERIC_TERMINAL_INTERFACE( ccs2422_terminal_intf ) |
| r9682 | r9683 | |
| 64 | 78 | }; |
| 65 | 79 | |
| 66 | 80 | static MACHINE_CONFIG_START( ccs2422, ccs2422_state ) |
| 67 | | /* basic machine hardware */ |
| 68 | | MDRV_CPU_ADD("maincpu",Z80, XTAL_4MHz) |
| 69 | | MDRV_CPU_PROGRAM_MAP(ccs2422_mem) |
| 70 | | MDRV_CPU_IO_MAP(ccs2422_io) |
| 81 | /* basic machine hardware */ |
| 82 | MDRV_CPU_ADD("maincpu",Z80, XTAL_4MHz) |
| 83 | MDRV_CPU_PROGRAM_MAP(ccs2422_mem) |
| 84 | MDRV_CPU_IO_MAP(ccs2422_io) |
| 71 | 85 | |
| 72 | | MDRV_MACHINE_RESET(ccs2422) |
| 86 | MDRV_MACHINE_RESET(ccs2422) |
| 73 | 87 | |
| 74 | | /* video hardware */ |
| 75 | | MDRV_FRAGMENT_ADD( generic_terminal ) |
| 88 | /* video hardware */ |
| 89 | MDRV_FRAGMENT_ADD( generic_terminal ) |
| 76 | 90 | MDRV_GENERIC_TERMINAL_ADD(TERMINAL_TAG,ccs2422_terminal_intf) |
| 77 | 91 | MACHINE_CONFIG_END |
| 78 | 92 | |
| 79 | 93 | /* ROM definition */ |
| 80 | 94 | ROM_START( ccs2422 ) |
| 81 | | ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF ) |
| 95 | ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF ) |
| 82 | 96 | ROM_LOAD( "2422b.u24", 0x0000, 0x0800, CRC(6cf22e31) SHA1(9aa3327cd8c23d0eab82cb6519891aff13ebe1d0)) |
| 83 | 97 | ROM_LOAD( "2422.u23", 0x0900, 0x0100, CRC(b279cada) SHA1(6cc6e00ec49ba2245c8836d6f09266b09d6e7648)) |
| 84 | 98 | ROM_LOAD( "2422.u22", 0x0a00, 0x0100, CRC(e41858bb) SHA1(0be53725032ebea16e32cb720f099551a357e761)) |