src/mess/drivers/vector4.c
| r6590 | r6591 | |
| 8 | 8 | |
| 9 | 9 | #include "driver.h" |
| 10 | 10 | #include "cpu/z80/z80.h" |
| 11 | #include "machine/terminal.h" |
| 11 | 12 | |
| 13 | static UINT8 received_char = 0; |
| 14 | |
| 15 | static WRITE8_HANDLER(vector_terminal_w) |
| 16 | { |
| 17 | const device_config *devconf = devtag_get_device(space->machine, "terminal"); |
| 18 | terminal_write(devconf,0,data); |
| 19 | } |
| 20 | |
| 21 | static READ8_HANDLER(vector_terminal_status_r) |
| 22 | { |
| 23 | if (received_char!=0) return 3; // char received |
| 24 | return 1; // ready |
| 25 | } |
| 26 | |
| 27 | static READ8_HANDLER(vector_terminal_r) |
| 28 | { |
| 29 | UINT8 retVal = received_char; |
| 30 | received_char = 0; |
| 31 | return retVal; |
| 32 | } |
| 33 | |
| 12 | 34 | static ADDRESS_MAP_START(vector4_mem, ADDRESS_SPACE_PROGRAM, 8) |
| 13 | 35 | ADDRESS_MAP_UNMAP_HIGH |
| 14 | 36 | AM_RANGE(0x0000, 0xdfff) AM_RAM |
| 15 | 37 | AM_RANGE(0xe000, 0xefff) AM_ROM |
| 16 | 38 | AM_RANGE(0xf000, 0xf7ff) AM_RAM |
| 17 | 39 | AM_RANGE(0xf800, 0xf8ff) AM_ROM |
| 18 | | AM_RANGE(0xf900, 0xffff) AM_RAM |
| 40 | AM_RANGE(0xfc00, 0xffff) AM_RAM |
| 19 | 41 | ADDRESS_MAP_END |
| 20 | 42 | |
| 21 | 43 | static ADDRESS_MAP_START( vector4_io , ADDRESS_SPACE_IO, 8) |
| 22 | 44 | ADDRESS_MAP_UNMAP_HIGH |
| 45 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 46 | AM_RANGE(0x02, 0x02) AM_READWRITE(vector_terminal_r,vector_terminal_w) |
| 47 | AM_RANGE(0x03, 0x03) AM_READ(vector_terminal_status_r) |
| 23 | 48 | ADDRESS_MAP_END |
| 24 | 49 | |
| 25 | 50 | /* Input ports */ |
| 26 | 51 | INPUT_PORTS_START( vector4 ) |
| 52 | PORT_INCLUDE(generic_terminal) |
| 27 | 53 | INPUT_PORTS_END |
| 28 | 54 | |
| 29 | 55 | |
| 30 | 56 | static MACHINE_RESET(vector4) |
| 31 | 57 | { |
| 58 | received_char = 0; |
| 32 | 59 | cpu_set_reg(cputag_get_cpu(machine, "maincpu"), Z80_PC, 0xe000); |
| 33 | 60 | } |
| 34 | 61 | |
| 35 | | static VIDEO_START( vector4 ) |
| 62 | static WRITE8_DEVICE_HANDLER( vector4_kbd_put ) |
| 36 | 63 | { |
| 64 | received_char = data; |
| 37 | 65 | } |
| 38 | 66 | |
| 39 | | static VIDEO_UPDATE( vector4 ) |
| 67 | static GENERIC_TERMINAL_INTERFACE( vector4_terminal_intf ) |
| 40 | 68 | { |
| 41 | | return 0; |
| 42 | | } |
| 69 | DEVCB_HANDLER(vector4_kbd_put) |
| 70 | }; |
| 43 | 71 | |
| 72 | |
| 44 | 73 | static MACHINE_DRIVER_START( vector4 ) |
| 45 | 74 | /* basic machine hardware */ |
| 46 | 75 | MDRV_CPU_ADD("maincpu",Z80, XTAL_4MHz) |
| r6590 | r6591 | |
| 50 | 79 | MDRV_MACHINE_RESET(vector4) |
| 51 | 80 | |
| 52 | 81 | /* video hardware */ |
| 53 | | MDRV_SCREEN_ADD("screen", RASTER) |
| 54 | | MDRV_SCREEN_REFRESH_RATE(50) |
| 55 | | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
| 56 | | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 57 | | MDRV_SCREEN_SIZE(640, 480) |
| 58 | | MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
| 59 | | MDRV_PALETTE_LENGTH(2) |
| 60 | | MDRV_PALETTE_INIT(black_and_white) |
| 61 | | |
| 62 | | MDRV_VIDEO_START(vector4) |
| 63 | | MDRV_VIDEO_UPDATE(vector4) |
| 82 | MDRV_IMPORT_FROM( generic_terminal ) |
| 83 | MDRV_GENERIC_TERMINAL_ADD(TERMINAL_TAG,vector4_terminal_intf) |
| 64 | 84 | MACHINE_DRIVER_END |
| 65 | 85 | |
| 66 | | static SYSTEM_CONFIG_START(vector4) |
| 67 | | SYSTEM_CONFIG_END |
| 68 | | |
| 69 | 86 | /* ROM definition */ |
| 70 | 87 | ROM_START( vector4 ) |
| 71 | 88 | ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) |
| 72 | | ROM_LOAD( "vg-em-43.bin", 0xe000, 0x1000, CRC(29a0fcee) SHA1(ca44de527f525b72f78b1c084c39aa6ce21731b5)) |
| 73 | | // ROM_LOAD( "vg40cl_ihl.bin", 0xe000, 0x0400, CRC(dcaf79e6) SHA1(63619ddb12ff51e5862902fb1b33a6630f555ad7)) |
| 74 | | // ROM_LOAD( "vg40ch_ihl.bin", 0xe400, 0x0400, CRC(3ff97d70) SHA1(b401e49aa97ac106c2fd5ee72d89e683ebe34e34)) |
| 75 | | // ROM_LOAD( "vg-zcb50.bin", 0xe000, 0x1000, CRC(22d692ce) SHA1(cbb21b0acc98983bf5febd59ff67615d71596e36)) |
| 89 | ROM_SYSTEM_BIOS( 0, "v4c", "ver 4.0c" ) |
| 90 | ROMX_LOAD( "vg40cl_ihl.bin", 0xe000, 0x0400, CRC(dcaf79e6) SHA1(63619ddb12ff51e5862902fb1b33a6630f555ad7), ROM_BIOS(1)) |
| 91 | ROMX_LOAD( "vg40ch_ihl.bin", 0xe400, 0x0400, CRC(3ff97d70) SHA1(b401e49aa97ac106c2fd5ee72d89e683ebe34e34), ROM_BIOS(1)) |
| 92 | ROM_SYSTEM_BIOS( 1, "v43", "ver 4.3" ) |
| 93 | ROMX_LOAD( "vg-em-43.bin", 0xe000, 0x1000, CRC(29a0fcee) SHA1(ca44de527f525b72f78b1c084c39aa6ce21731b5), ROM_BIOS(2)) |
| 94 | ROM_SYSTEM_BIOS( 2, "v5", "ver 5.0" ) |
| 95 | ROMX_LOAD( "vg-zcb50.bin", 0xe000, 0x1000, CRC(22d692ce) SHA1(cbb21b0acc98983bf5febd59ff67615d71596e36), ROM_BIOS(3)) |
| 76 | 96 | ROM_LOAD( "mfdc.bin", 0xf800, 0x0100, CRC(d82a40d6) SHA1(cd1ef5fb0312cd1640e0853d2442d7d858bc3e3b)) |
| 77 | 97 | ROM_END |
| 78 | 98 | |
| 79 | 99 | /* Driver */ |
| 80 | 100 | |
| 81 | | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ |
| 82 | | COMP( ????, vector4, 0, 0, vector4, vector4, 0, vector4, "Vector Graphics", "Vector 4", GAME_NOT_WORKING) |
| 101 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ |
| 102 | COMP( ????, vector4, 0, 0, vector4, vector4, 0, 0, "Vector Graphics", "Vector 4", GAME_NOT_WORKING) |
| 83 | 103 | |