src/mess/layout/k1003.lay
| r0 | r6441 | |
| 1 | <?xml version="1.0"?> |
| 2 | <mamelayout version="2"> |
| 3 | <element name="digit" defstate="0"> |
| 4 | <led7seg> |
| 5 | <color red="0.75" green="0.0" blue="0.0" /> |
| 6 | </led7seg> |
| 7 | </element> |
| 8 | <element name="background"> |
| 9 | <rect> |
| 10 | <bounds left="0" top="0" right="1" bottom="1" /> |
| 11 | <color red="0.0" green="0.0" blue="0.0" /> |
| 12 | </rect> |
| 13 | </element> |
| 14 | |
| 15 | <view name="Simple LCD"> |
| 16 | <!-- Black background --> |
| 17 | <bezel element="background"> |
| 18 | <bounds left="1" top="1" right="920" bottom="100" /> |
| 19 | </bezel> |
| 20 | |
| 21 | <!-- first 2 digits are away from others --> |
| 22 | <bezel name="digit0" element="digit"> |
| 23 | <bounds left="0" top="10" right="48" bottom="90" /> |
| 24 | </bezel> |
| 25 | <bezel name="digit1" element="digit"> |
| 26 | <bounds left="48" top="10" right="96" bottom="90" /> |
| 27 | </bezel> |
| 28 | |
| 29 | <bezel name="digit2" element="digit"> |
| 30 | <bounds left="196" top="10" right="244" bottom="90" /> |
| 31 | </bezel> |
| 32 | <bezel name="digit3" element="digit"> |
| 33 | <bounds left="244" top="10" right="292" bottom="90" /> |
| 34 | </bezel> |
| 35 | <bezel name="digit4" element="digit"> |
| 36 | <bounds left="292" top="10" right="340" bottom="90" /> |
| 37 | </bezel> |
| 38 | <bezel name="digit5" element="digit"> |
| 39 | <bounds left="340" top="10" right="388" bottom="90" /> |
| 40 | </bezel> |
| 41 | <bezel name="digit6" element="digit"> |
| 42 | <bounds left="388" top="10" right="436" bottom="90" /> |
| 43 | </bezel> |
| 44 | <bezel name="digit7" element="digit"> |
| 45 | <bounds left="436" top="10" right="484" bottom="90" /> |
| 46 | </bezel> |
| 47 | <bezel name="digit8" element="digit"> |
| 48 | <bounds left="484" top="10" right="532" bottom="90" /> |
| 49 | </bezel> |
| 50 | <bezel name="digit9" element="digit"> |
| 51 | <bounds left="532" top="10" right="580" bottom="90" /> |
| 52 | </bezel> |
| 53 | <bezel name="digit10" element="digit"> |
| 54 | <bounds left="580" top="10" right="628" bottom="90" /> |
| 55 | </bezel> |
| 56 | <bezel name="digit11" element="digit"> |
| 57 | <bounds left="628" top="10" right="676" bottom="90" /> |
| 58 | </bezel> |
| 59 | <bezel name="digit12" element="digit"> |
| 60 | <bounds left="676" top="10" right="724" bottom="90" /> |
| 61 | </bezel> |
| 62 | <bezel name="digit13" element="digit"> |
| 63 | <bounds left="772" top="10" right="820" bottom="90" /> |
| 64 | </bezel> |
| 65 | <bezel name="digit14" element="digit"> |
| 66 | <bounds left="820" top="10" right="868" bottom="90" /> |
| 67 | </bezel> |
| 68 | <bezel name="digit15" element="digit"> |
| 69 | <bounds left="868" top="10" right="916" bottom="90" /> |
| 70 | </bezel> |
| 71 | </view> |
| 72 | </mamelayout> |
src/mess/drivers/elekscmp.c
| r0 | r6441 | |
| 1 | /*************************************************************************** |
| 2 | |
| 3 | Elektor SC/MP |
| 4 | |
| 5 | 22/11/2009 Skeleton driver. |
| 6 | |
| 7 | ****************************************************************************/ |
| 8 | |
| 9 | #include "driver.h" |
| 10 | #include "cpu/scmp/scmp.h" |
| 11 | #include "elekscmp.lh" |
| 12 | |
| 13 | static WRITE8_HANDLER(hex_display_w) |
| 14 | { |
| 15 | output_set_digit_value(7-offset, data); |
| 16 | } |
| 17 | |
| 18 | static READ8_HANDLER(keyboard_r) |
| 19 | { |
| 20 | return 0; |
| 21 | } |
| 22 | |
| 23 | static ADDRESS_MAP_START(elekscmp_mem, ADDRESS_SPACE_PROGRAM, 8) |
| 24 | ADDRESS_MAP_UNMAP_HIGH |
| 25 | ADDRESS_MAP_GLOBAL_MASK(0x0fff) |
| 26 | AM_RANGE(0x000, 0x5ff) AM_ROM // ROM |
| 27 | AM_RANGE(0x700, 0x707) AM_WRITE(hex_display_w) |
| 28 | AM_RANGE(0x708, 0x70f) AM_READ(keyboard_r) |
| 29 | AM_RANGE(0x800, 0xfff) AM_RAM // RAM - up to 2K of RAM |
| 30 | ADDRESS_MAP_END |
| 31 | |
| 32 | /* Input ports */ |
| 33 | INPUT_PORTS_START( elekscmp ) |
| 34 | INPUT_PORTS_END |
| 35 | |
| 36 | |
| 37 | static MACHINE_RESET(elekscmp) |
| 38 | { |
| 39 | } |
| 40 | |
| 41 | static MACHINE_DRIVER_START( elekscmp ) |
| 42 | /* basic machine hardware */ |
| 43 | MDRV_CPU_ADD("maincpu",SCMP, XTAL_4_433619MHz) |
| 44 | MDRV_CPU_PROGRAM_MAP(elekscmp_mem) |
| 45 | |
| 46 | MDRV_MACHINE_RESET(elekscmp) |
| 47 | |
| 48 | /* video hardware */ |
| 49 | MDRV_DEFAULT_LAYOUT(layout_elekscmp) |
| 50 | |
| 51 | MACHINE_DRIVER_END |
| 52 | |
| 53 | /* ROM definition */ |
| 54 | ROM_START( elekscmp ) |
| 55 | ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) |
| 56 | // Too many possible errors, few found and fixed, but not sure if there are more |
| 57 | ROM_LOAD( "elbug.001", 0x0000, 0x0200, BAD_DUMP CRC(f733da28) SHA1(b65d98be03eab80478167964beec26bb327bfdf3)) |
| 58 | ROM_LOAD( "elbug.002", 0x0200, 0x0200, BAD_DUMP CRC(529c0b88) SHA1(bd72dd890cd974e1744ca70aa3457657374cbf76)) |
| 59 | ROM_LOAD( "elbug.003", 0x0400, 0x0200, BAD_DUMP CRC(13585ad1) SHA1(93f722b3e84095a1b701b04bf9018c891933b9ff)) |
| 60 | ROM_END |
| 61 | |
| 62 | /* Driver */ |
| 63 | |
| 64 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ |
| 65 | COMP( ????, elekscmp, 0, 0, elekscmp, elekscmp, 0, 0, "Elektor Electronics", "Elektor SC/MP", GAME_NOT_WORKING) |
| 66 | |
src/mess/drivers/mk14.c
| r0 | r6441 | |
| 1 | /*************************************************************************** |
| 2 | |
| 3 | Science of Cambridge MK-14 |
| 4 | |
| 5 | 20/11/2009 Skeleton driver. |
| 6 | |
| 7 | ****************************************************************************/ |
| 8 | |
| 9 | #include "driver.h" |
| 10 | #include "cpu/scmp/scmp.h" |
| 11 | #include "machine/ins8154.h" |
| 12 | #include "mk14.lh" |
| 13 | /* |
| 14 | 000-1FF 512 byte SCIOS ROM Decoded by 0xxx |
| 15 | 200-3FF ROM Shadow / Expansion RAM |
| 16 | 400-5FF ROM Shadow / Expansion RAM |
| 17 | 600-7FF ROM Shadow / Expansion RAM |
| 18 | 800-87F 128 bytes I/O chip RAM Decoded by 1xx0 |
| 19 | 880-8FF I/O Ports Decoded by 1xx0 |
| 20 | 900-9FF Keyboard & Display Decoded by 1x01 |
| 21 | A00-AFF I/O Port & RAM Shadow |
| 22 | B00-BFF 256 bytes RAM (Extended) / VDU RAM Decoded by 1011 |
| 23 | C00-CFF I/O Port & RAM Shadow |
| 24 | D00-DFF Keyboard & Display Shadow |
| 25 | E00-EFF I/O Port & RAM Shadow |
| 26 | F00-FFF 256 bytes RAM (Standard) / VDU RAM Decoded by 1111 |
| 27 | |
| 28 | */ |
| 29 | static const char *const keynames[] = { |
| 30 | "LINE0", "LINE1", "LINE2", "LINE3", |
| 31 | "LINE4", "LINE5", "LINE6", "LINE7"}; |
| 32 | |
| 33 | static READ8_HANDLER(keyboard_r) |
| 34 | { |
| 35 | if (offset < 8) { |
| 36 | return input_port_read(space->machine, keynames[offset]); |
| 37 | } else { |
| 38 | return 0xff; |
| 39 | } |
| 40 | } |
| 41 | |
| 42 | static WRITE8_HANDLER(display_w) |
| 43 | { |
| 44 | if (offset < 8 ) { |
| 45 | output_set_digit_value(7-offset, data); |
| 46 | } else { |
| 47 | //logerror("write %02x to %02x\n",data,offset); |
| 48 | } |
| 49 | } |
| 50 | |
| 51 | static ADDRESS_MAP_START(mk14_mem, ADDRESS_SPACE_PROGRAM, 8) |
| 52 | ADDRESS_MAP_UNMAP_HIGH |
| 53 | ADDRESS_MAP_GLOBAL_MASK(0x0fff) |
| 54 | AM_RANGE(0x000, 0x1ff) AM_ROM AM_MIRROR(0x600) // ROM |
| 55 | AM_RANGE(0x800, 0x87f) AM_RAM AM_MIRROR(0x600) // 128 I/O chip RAM |
| 56 | AM_RANGE(0x880, 0x8ff) AM_DEVREADWRITE("ic8", ins8154_r, ins8154_w) AM_MIRROR(0x600) // I/O |
| 57 | AM_RANGE(0x900, 0x9ff) AM_READWRITE(keyboard_r, display_w) AM_MIRROR(0x400) |
| 58 | AM_RANGE(0xb00, 0xbff) AM_RAM // VDU RAM |
| 59 | AM_RANGE(0xf00, 0xfff) AM_RAM // Standard RAM |
| 60 | ADDRESS_MAP_END |
| 61 | |
| 62 | |
| 63 | /* Input ports */ |
| 64 | INPUT_PORTS_START( mk14 ) |
| 65 | PORT_START("LINE0") |
| 66 | PORT_BIT(0x0F, IP_ACTIVE_LOW, IPT_UNUSED) |
| 67 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) |
| 68 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 69 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) |
| 70 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) |
| 71 | PORT_START("LINE1") |
| 72 | PORT_BIT(0x0F, IP_ACTIVE_LOW, IPT_UNUSED) |
| 73 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) |
| 74 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 75 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) |
| 76 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) |
| 77 | PORT_START("LINE2") |
| 78 | PORT_BIT(0x0F, IP_ACTIVE_LOW, IPT_UNUSED) |
| 79 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) |
| 80 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GO") PORT_CODE(KEYCODE_F1) |
| 81 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 82 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) |
| 83 | PORT_START("LINE3") |
| 84 | PORT_BIT(0x0F, IP_ACTIVE_LOW, IPT_UNUSED) |
| 85 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) |
| 86 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MEM") PORT_CODE(KEYCODE_F2) |
| 87 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 88 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) |
| 89 | PORT_START("LINE4") |
| 90 | PORT_BIT(0x0F, IP_ACTIVE_LOW, IPT_UNUSED) |
| 91 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 92 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("AB") PORT_CODE(KEYCODE_F3) |
| 93 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 94 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) |
| 95 | PORT_START("LINE5") |
| 96 | PORT_BIT(0x0F, IP_ACTIVE_LOW, IPT_UNUSED) |
| 97 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) |
| 98 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 99 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 100 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) |
| 101 | PORT_START("LINE6") |
| 102 | PORT_BIT(0x0F, IP_ACTIVE_LOW, IPT_UNUSED) |
| 103 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) |
| 104 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) |
| 105 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 106 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) |
| 107 | PORT_START("LINE7") |
| 108 | PORT_BIT(0x0F, IP_ACTIVE_LOW, IPT_UNUSED) |
| 109 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) |
| 110 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TERM") PORT_CODE(KEYCODE_F4) |
| 111 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) |
| 112 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) |
| 113 | INPUT_PORTS_END |
| 114 | |
| 115 | |
| 116 | static MACHINE_RESET(mk14) |
| 117 | { |
| 118 | } |
| 119 | |
| 120 | static const ins8154_interface mk14_ins8154 = |
| 121 | { |
| 122 | NULL, |
| 123 | NULL, |
| 124 | NULL, |
| 125 | NULL, |
| 126 | NULL |
| 127 | }; |
| 128 | |
| 129 | static MACHINE_DRIVER_START( mk14 ) |
| 130 | /* basic machine hardware */ |
| 131 | // IC1 1SP-8A/600 (8060) SC/MP Microprocessor |
| 132 | MDRV_CPU_ADD("maincpu",SCMP, XTAL_4_433619MHz) |
| 133 | MDRV_CPU_PROGRAM_MAP(mk14_mem) |
| 134 | |
| 135 | MDRV_MACHINE_RESET(mk14) |
| 136 | |
| 137 | /* video hardware */ |
| 138 | MDRV_DEFAULT_LAYOUT(layout_mk14) |
| 139 | |
| 140 | /* devices */ |
| 141 | MDRV_INS8154_ADD("ic8", mk14_ins8154) |
| 142 | MACHINE_DRIVER_END |
| 143 | |
| 144 | /* ROM definition */ |
| 145 | ROM_START( mk14 ) |
| 146 | ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) |
| 147 | // IC2,3 74S571 512 x 4 bit ROM |
| 148 | ROM_LOAD( "scios.bin", 0x0000, 0x0200, CRC(8b667daa) SHA1(802dc637ce5391a2a6627f76f919b12a869b56ef)) |
| 149 | ROM_END |
| 150 | |
| 151 | /* Driver */ |
| 152 | |
| 153 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ |
| 154 | COMP( 1977, mk14, 0, 0, mk14, mk14, 0, 0, "Science of Cambridge", "MK-14", 0) |
| 155 | |
src/mess/drivers/mod8.c
| r0 | r6441 | |
| 1 | /*************************************************************************** |
| 2 | |
| 3 | Microsystems International Limited MOD-8 |
| 4 | |
| 5 | 18/11/2009 Skeleton driver. |
| 6 | |
| 7 | ****************************************************************************/ |
| 8 | |
| 9 | #include "driver.h" |
| 10 | #include "cpu/i8008/i8008.h" |
| 11 | |
| 12 | static UINT16 tty_data; |
| 13 | static UINT8 tty_key_data; |
| 14 | static int tty_cnt = 0; |
| 15 | static WRITE8_HANDLER(out_w) |
| 16 | { |
| 17 | tty_data >>= 1; |
| 18 | tty_data |= (data & 0x01) ? 0x8000 : 0; |
| 19 | tty_cnt++; |
| 20 | if (tty_cnt==10) { |
| 21 | logerror("%c",(tty_data >> 7) & 0x7f); |
| 22 | tty_cnt = 0; |
| 23 | } |
| 24 | } |
| 25 | |
| 26 | static WRITE8_HANDLER(tty_w) |
| 27 | { |
| 28 | tty_data = 0; |
| 29 | tty_cnt = 0; |
| 30 | } |
| 31 | |
| 32 | static READ8_HANDLER(tty_r) |
| 33 | { |
| 34 | UINT8 d = tty_key_data & 0x01; |
| 35 | tty_key_data >>= 1; |
| 36 | return d; |
| 37 | } |
| 38 | static ADDRESS_MAP_START(mod8_mem, ADDRESS_SPACE_PROGRAM, 8) |
| 39 | ADDRESS_MAP_UNMAP_HIGH |
| 40 | AM_RANGE(0x000,0x6ff) AM_ROM |
| 41 | AM_RANGE(0x700,0xfff) AM_RAM |
| 42 | ADDRESS_MAP_END |
| 43 | |
| 44 | static ADDRESS_MAP_START( mod8_io , ADDRESS_SPACE_IO, 8) |
| 45 | ADDRESS_MAP_UNMAP_HIGH |
| 46 | AM_RANGE(0x00,0x00) AM_READ(tty_r) |
| 47 | AM_RANGE(0x0a,0x0a) AM_WRITE(out_w) |
| 48 | AM_RANGE(0x0b,0x0b) AM_WRITE(tty_w) |
| 49 | ADDRESS_MAP_END |
| 50 | |
| 51 | /* Input ports */ |
| 52 | INPUT_PORTS_START( mod8 ) |
| 53 | INPUT_PORTS_END |
| 54 | |
| 55 | static IRQ_CALLBACK ( mod8_irq_callback ) |
| 56 | { |
| 57 | return 0xC0; // LAA - NOP equivalent |
| 58 | } |
| 59 | |
| 60 | static MACHINE_RESET(mod8) |
| 61 | { |
| 62 | cpu_set_irq_callback(cputag_get_cpu(machine, "maincpu"), mod8_irq_callback); |
| 63 | } |
| 64 | |
| 65 | static VIDEO_START( mod8 ) |
| 66 | { |
| 67 | } |
| 68 | |
| 69 | static VIDEO_UPDATE( mod8 ) |
| 70 | { |
| 71 | return 0; |
| 72 | } |
| 73 | |
| 74 | static MACHINE_DRIVER_START( mod8 ) |
| 75 | /* basic machine hardware */ |
| 76 | MDRV_CPU_ADD("maincpu",I8008, 800000) |
| 77 | MDRV_CPU_PROGRAM_MAP(mod8_mem) |
| 78 | MDRV_CPU_IO_MAP(mod8_io) |
| 79 | |
| 80 | MDRV_MACHINE_RESET(mod8) |
| 81 | |
| 82 | /* video hardware */ |
| 83 | MDRV_SCREEN_ADD("screen", RASTER) |
| 84 | MDRV_SCREEN_REFRESH_RATE(50) |
| 85 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
| 86 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 87 | MDRV_SCREEN_SIZE(640, 480) |
| 88 | MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
| 89 | MDRV_PALETTE_LENGTH(2) |
| 90 | MDRV_PALETTE_INIT(black_and_white) |
| 91 | |
| 92 | MDRV_VIDEO_START(mod8) |
| 93 | MDRV_VIDEO_UPDATE(mod8) |
| 94 | MACHINE_DRIVER_END |
| 95 | |
| 96 | |
| 97 | /* ROM definition */ |
| 98 | ROM_START( mod8 ) |
| 99 | ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) |
| 100 | ROM_LOAD( "mon8.001", 0x0000, 0x0100, CRC(b82ac6b8) SHA1(fbea5a6dd4c779ca1671d84089f857a3f548ffcb)) |
| 101 | ROM_LOAD( "mon8.002", 0x0100, 0x0100, CRC(8b82bc3c) SHA1(66222511527b27e56a5a1f9656d424d407eac7d3)) |
| 102 | ROM_LOAD( "mon8.003", 0x0200, 0x0100, CRC(679ae913) SHA1(22423efcb9051c9812fcbac9a27af70415d0dd81)) |
| 103 | ROM_LOAD( "mon8.004", 0x0300, 0x0100, CRC(2a4e580f) SHA1(8b0cb9660fde3cacd299faaa31724e4f3262d77f)) |
| 104 | ROM_LOAD( "mon8.005", 0x0400, 0x0100, CRC(e281bb1a) SHA1(cc7c2746e075512dbf5eed88ae3aea009558dbd0)) |
| 105 | ROM_LOAD( "mon8.006", 0x0500, 0x0100, CRC(b7e2f585) SHA1(5408adabc3df6e6ea8dcfb2327b2883b435ab85e)) |
| 106 | ROM_LOAD( "mon8.007", 0x0600, 0x0100, CRC(49a5c626) SHA1(66c1865db9151818d3b20ec3c68dd793cb98a221)) |
| 107 | ROM_END |
| 108 | |
| 109 | /* Driver */ |
| 110 | |
| 111 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ |
| 112 | COMP( ????, mod8, 0, 0, mod8, mod8, 0, 0, "Microsystems International Limited", "MOD-8", GAME_NOT_WORKING) |
| 113 | |
src/mess/drivers/k1003.c
| r0 | r6441 | |
| 1 | /*************************************************************************** |
| 2 | |
| 3 | Robotron K1003 |
| 4 | |
| 5 | 20/11/2009 Skeleton driver. |
| 6 | |
| 7 | ****************************************************************************/ |
| 8 | |
| 9 | #include "driver.h" |
| 10 | #include "cpu/i8008/i8008.h" |
| 11 | #include "k1003.lh" |
| 12 | |
| 13 | static ADDRESS_MAP_START(k1003_mem, ADDRESS_SPACE_PROGRAM, 8) |
| 14 | AM_RANGE(0x0000,0x07ff) AM_ROM |
| 15 | AM_RANGE(0x0800,0x17ff) AM_RAM |
| 16 | AM_RANGE(0x1800,0x1fff) AM_ROM |
| 17 | AM_RANGE(0x2000,0x27ff) AM_ROM |
| 18 | AM_RANGE(0x2800,0x2fff) AM_RAM |
| 19 | AM_RANGE(0x3000,0x3aff) AM_ROM |
| 20 | ADDRESS_MAP_END |
| 21 | |
| 22 | static READ8_HANDLER (port2_r) |
| 23 | { |
| 24 | return 0x00; |
| 25 | } |
| 26 | |
| 27 | static READ8_HANDLER (key_r) |
| 28 | { |
| 29 | return 0x00; |
| 30 | } |
| 31 | |
| 32 | static UINT8 disp_1; |
| 33 | static UINT8 disp_2; |
| 34 | |
| 35 | static WRITE8_HANDLER (disp_1_w) |
| 36 | { |
| 37 | disp_1 = data; |
| 38 | } |
| 39 | |
| 40 | static WRITE8_HANDLER (disp_2_w) |
| 41 | { |
| 42 | disp_2 = data; |
| 43 | } |
| 44 | |
| 45 | static UINT8 bit_to_dec(UINT8 val) { |
| 46 | if (BIT(val,0)) return 0; |
| 47 | if (BIT(val,1)) return 1; |
| 48 | if (BIT(val,2)) return 2; |
| 49 | if (BIT(val,3)) return 3; |
| 50 | if (BIT(val,4)) return 4; |
| 51 | if (BIT(val,5)) return 5; |
| 52 | if (BIT(val,6)) return 6; |
| 53 | if (BIT(val,7)) return 7; |
| 54 | return 0; |
| 55 | } |
| 56 | static WRITE8_HANDLER (disp_w) |
| 57 | { |
| 58 | output_set_digit_value(bit_to_dec(data)*2, disp_1); |
| 59 | output_set_digit_value(bit_to_dec(data)*2+1, disp_2); |
| 60 | } |
| 61 | |
| 62 | static ADDRESS_MAP_START( k1003_io , ADDRESS_SPACE_IO, 8) |
| 63 | ADDRESS_MAP_UNMAP_HIGH |
| 64 | AM_RANGE(0x00,0x00) AM_READ(key_r) |
| 65 | AM_RANGE(0x02,0x02) AM_READ(port2_r) |
| 66 | |
| 67 | AM_RANGE(0x08,0x08) AM_WRITE(disp_w) |
| 68 | AM_RANGE(0x09,0x09) AM_WRITE(disp_2_w) |
| 69 | AM_RANGE(0x10,0x10) AM_WRITE(disp_1_w) |
| 70 | ADDRESS_MAP_END |
| 71 | |
| 72 | /* Input ports */ |
| 73 | INPUT_PORTS_START( k1003 ) |
| 74 | INPUT_PORTS_END |
| 75 | |
| 76 | |
| 77 | static MACHINE_RESET(k1003) |
| 78 | { |
| 79 | } |
| 80 | |
| 81 | static MACHINE_DRIVER_START( k1003 ) |
| 82 | /* basic machine hardware */ |
| 83 | MDRV_CPU_ADD("maincpu",I8008, 800000) |
| 84 | MDRV_CPU_PROGRAM_MAP(k1003_mem) |
| 85 | MDRV_CPU_IO_MAP(k1003_io) |
| 86 | |
| 87 | MDRV_MACHINE_RESET(k1003) |
| 88 | |
| 89 | /* video hardware */ |
| 90 | MDRV_DEFAULT_LAYOUT(layout_k1003) |
| 91 | MACHINE_DRIVER_END |
| 92 | |
| 93 | |
| 94 | /* ROM definition */ |
| 95 | ROM_START( k1003 ) |
| 96 | ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) |
| 97 | ROM_LOAD( "k1003.01", 0x0000, 0x0100, CRC(9342f67d) SHA1(75d33cad89cf47e8e691a6ddbb86a8c11f454434)) |
| 98 | ROM_LOAD( "k1003.02", 0x0100, 0x0100, CRC(a6846b2b) SHA1(a38b15ae0ac3f216e49aef4618363ea0d262fe52)) |
| 99 | ROM_LOAD( "k1003.03", 0x0200, 0x0100, CRC(3fddd922) SHA1(9c9f28ad8a611d8a0911d2935ffa262976a0272d)) |
| 100 | ROM_LOAD( "k1003.04", 0x0300, 0x0100, CRC(ec3edbe9) SHA1(d58064db7f2d085760088da1899f44f7a5b02923)) |
| 101 | ROM_LOAD( "k1003.05", 0x0400, 0x0100, CRC(93836b34) SHA1(7397c9748c1adb347270529464f1e10d3ac92879)) |
| 102 | ROM_LOAD( "k1003.06", 0x0500, 0x0100, CRC(79e39c8f) SHA1(bffc24a47867834d749d32307dca1053231a1b62)) |
| 103 | ROM_LOAD( "k1003.07", 0x0600, 0x0100, CRC(1f7279e0) SHA1(1e625adf606f87a55b6e8827fc9764d8a777903a)) |
| 104 | ROM_LOAD( "k1003.08", 0x0700, 0x0100, CRC(4b950957) SHA1(268c7dbf52a85bdf4eb5ebbe6d01aae45e853a72)) |
| 105 | |
| 106 | ROM_LOAD( "k1003.09", 0x1800, 0x0100, CRC(f3ec866f) SHA1(0b274be7290c9d469205136851c48595cd4f15e2)) |
| 107 | ROM_LOAD( "k1003.10", 0x1900, 0x0100, CRC(c4af2cf7) SHA1(1815030d08072542fa56c4063b6de1d64b146887)) |
| 108 | ROM_LOAD( "k1003.11", 0x1a00, 0x0100, CRC(473ef6db) SHA1(45372e09babf6fa08875e53d43e90d53f9cc0ec1)) |
| 109 | ROM_LOAD( "k1003.12", 0x1b00, 0x0100, CRC(8af505d4) SHA1(21302f2bb660ddaf5e4526335ec457479f1673d5)) |
| 110 | ROM_LOAD( "k1003.13", 0x1c00, 0x0100, CRC(753166da) SHA1(90b91bac845f5d0ecd3af4d67174d351e478b632)) |
| 111 | ROM_LOAD( "k1003.14", 0x1d00, 0x0100, CRC(a885a676) SHA1(e899ea5b97734360421d2696e0a75d65fa8a031c)) |
| 112 | ROM_LOAD( "k1003.15", 0x1e00, 0x0100, CRC(db63b0cd) SHA1(726d80bb34862301df773b8587acccbeedfcc38d)) |
| 113 | ROM_LOAD( "k1003.16", 0x1f00, 0x0100, CRC(9457f1bd) SHA1(aae0a7c0a63d8213a57850383aaf92927577be7a)) |
| 114 | |
| 115 | // Math pack |
| 116 | ROM_LOAD( "026.bin", 0x2000, 0x0100, CRC(d678e80c) SHA1(bdf696e9704c286ed0ad5ffbdae206580a277c38)) |
| 117 | ROM_LOAD( "027.bin", 0x2100, 0x0100, CRC(dbe2ca8e) SHA1(2060bbb6b6dee87c98ddcf84a49069547749ae9b)) |
| 118 | ROM_LOAD( "028.bin", 0x2200, 0x0100, CRC(2cd742ed) SHA1(ec3f1ba548c64b0fe538af365a383f2341c81988)) |
| 119 | ROM_LOAD( "029.bin", 0x2300, 0x0100, CRC(12165b43) SHA1(7bb2c97893a07196cf245c8ac3a64c0ee49bb75e)) |
| 120 | ROM_LOAD( "030.bin", 0x2400, 0x0100, CRC(545dd7e0) SHA1(ab9f2e8cd4d3d4ba8accf74caec20de2e3094a66)) |
| 121 | ROM_LOAD( "031.bin", 0x2500, 0x0100, CRC(315d27d2) SHA1(26bb39d50781eed8d8be4ad6e1f13bc2b4672ce2)) |
| 122 | ROM_LOAD( "032.bin", 0x2600, 0x0100, CRC(d03f7cc7) SHA1(5a1c0614eed6dfe21d0d1776f409c1c2209a74d1)) |
| 123 | ROM_LOAD( "033.bin", 0x2700, 0x0100, CRC(efaeb541) SHA1(decdbbd3c4084dc18b34577f78ddf7044341764a)) |
| 124 | |
| 125 | ROM_LOAD( "k1003.17", 0x3000, 0x0100, CRC(9031390b) SHA1(6f99a9f643b19770a373242edb0df8f342bbc230)) |
| 126 | ROM_LOAD( "k1003.18", 0x3100, 0x0100, CRC(38435ffe) SHA1(7db78d304fe8a8f71c067babcdcf3c06da908ad3)) |
| 127 | ROM_LOAD( "k1003.19", 0x3200, 0x0100, CRC(3cfddbda) SHA1(7e9d5c6126d0f08fcb7d88d0cc26eb24467f7321)) |
| 128 | ROM_LOAD( "k1003.20", 0x3300, 0x0100, CRC(08707172) SHA1(fef18e407ebec13d34c2bd6925ffae533139551e)) |
| 129 | ROM_LOAD( "k1003.21", 0x3400, 0x0100, CRC(4038b284) SHA1(f6ee7fd8fb06a73a7d1ed71ca7022f1c76c207bd)) |
| 130 | ROM_LOAD( "k1003.22", 0x3500, 0x0100, CRC(04691d40) SHA1(72f96994811f435adecc74585f3dfaa89d0f192a)) |
| 131 | ROM_LOAD( "k1003.23", 0x3600, 0x0100, CRC(a2f7170c) SHA1(2cd9a64019c2cd7f6f6146d1886de6a1aa5ccc88)) |
| 132 | ROM_LOAD( "k1003.24", 0x3700, 0x0100, CRC(c0935c12) SHA1(f3fc7c3fa97b2bcb9ec522002ee760a226eb329a)) |
| 133 | ROM_LOAD( "k1003.25", 0x3800, 0x0100, CRC(a827aec0) SHA1(a8f582a9a6b31581d8a174a0bc2f4588d6b53400)) |
| 134 | ROM_LOAD( "k1003.26", 0x3900, 0x0100, CRC(fc949804) SHA1(088b63b7f8704efb6867be899b81d64a294af6be)) |
| 135 | ROM_LOAD( "k1003.27", 0x3a00, 0x0100, CRC(ddcdd065) SHA1(e29c6f2dd1e4da125d150e28cf51f8c558ec9ee5)) |
| 136 | // 0x3b00 - missing on board - returning 0xff |
| 137 | ROM_END |
| 138 | |
| 139 | /* Driver */ |
| 140 | |
| 141 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ |
| 142 | COMP( ????, k1003, 0, 0, k1003, k1003, 0, 0, "Robotron", "K1003", GAME_NOT_WORKING) |
| 143 | |
| 144 | |