src/mess/drivers/ht68k.c
| r6496 | r6497 | |
| 11 | 11 | #include "machine/68681.h" |
| 12 | 12 | #include "devices/flopdrv.h" |
| 13 | 13 | #include "machine/wd17xx.h" |
| 14 | #include "machine/terminal.h" |
| 14 | 15 | |
| 15 | 16 | static UINT16* ht68k_ram; |
| 16 | 17 | |
| r6496 | r6497 | |
| 26 | 27 | |
| 27 | 28 | /* Input ports */ |
| 28 | 29 | INPUT_PORTS_START( ht68k ) |
| 30 | PORT_INCLUDE(generic_terminal) |
| 29 | 31 | INPUT_PORTS_END |
| 30 | 32 | |
| 31 | 33 | |
| r6496 | r6497 | |
| 38 | 40 | device_reset(cputag_get_cpu(machine, "maincpu")); |
| 39 | 41 | } |
| 40 | 42 | |
| 41 | | static VIDEO_START( ht68k ) |
| 43 | static void duart_irq_handler(const device_config *device, UINT8 vector) |
| 42 | 44 | { |
| 45 | cputag_set_input_line_and_vector(device->machine, "maincpu", M68K_IRQ_3, HOLD_LINE, M68K_INT_ACK_AUTOVECTOR); |
| 43 | 46 | } |
| 44 | 47 | |
| 45 | | static VIDEO_UPDATE( ht68k ) |
| 48 | static void duart_tx(const device_config *device, int channel, UINT8 data) |
| 46 | 49 | { |
| 47 | | return 0; |
| 50 | const device_config *devconf = devtag_get_device(device->machine, "terminal"); |
| 51 | terminal_write(devconf,0,data); |
| 48 | 52 | } |
| 49 | 53 | |
| 50 | | |
| 51 | | static void duart_irq_handler(const device_config *device, UINT8 vector) |
| 54 | static UINT8 duart_input(const device_config *device) |
| 52 | 55 | { |
| 53 | | logerror("duart_irq_handler\n"); |
| 56 | return 0; |
| 54 | 57 | } |
| 55 | 58 | |
| 56 | | static void duart_tx(const device_config *device, int channel, UINT8 data) |
| 59 | static WRITE8_DEVICE_HANDLER( ht68k_kbd_put ) |
| 57 | 60 | { |
| 61 | duart68681_rx_data(devtag_get_device(device->machine, "duart68681"), 1, data); |
| 58 | 62 | } |
| 59 | 63 | |
| 60 | | static UINT8 duart_inp = 0x0e; |
| 61 | | |
| 62 | | static UINT8 duart_input(const device_config *device) |
| 64 | static GENERIC_TERMINAL_INTERFACE( ht68k_terminal_intf ) |
| 63 | 65 | { |
| 64 | | if (duart_inp != 0) |
| 65 | | { |
| 66 | | duart_inp = 0; |
| 67 | | return 0x0e; |
| 68 | | } |
| 69 | | else |
| 70 | | { |
| 71 | | duart_inp = 0x0e; |
| 72 | | return 0x00; |
| 73 | | } |
| 74 | | } |
| 66 | DEVCB_HANDLER(ht68k_kbd_put) |
| 67 | }; |
| 75 | 68 | |
| 76 | 69 | static const duart68681_config ht68k_duart68681_config = |
| 77 | 70 | { |
| r6496 | r6497 | |
| 101 | 94 | MDRV_MACHINE_RESET(ht68k) |
| 102 | 95 | |
| 103 | 96 | /* video hardware */ |
| 104 | | MDRV_SCREEN_ADD("screen", RASTER) |
| 105 | | MDRV_SCREEN_REFRESH_RATE(50) |
| 106 | | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
| 107 | | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 108 | | MDRV_SCREEN_SIZE(640, 480) |
| 109 | | MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
| 110 | | MDRV_PALETTE_LENGTH(2) |
| 111 | | MDRV_PALETTE_INIT(black_and_white) |
| 97 | MDRV_IMPORT_FROM( generic_terminal ) |
| 98 | MDRV_GENERIC_TERMINAL_ADD(TERMINAL_TAG,ht68k_terminal_intf) |
| 112 | 99 | |
| 113 | | MDRV_VIDEO_START(ht68k) |
| 114 | | MDRV_VIDEO_UPDATE(ht68k) |
| 115 | | |
| 116 | | MDRV_DUART68681_ADD( "duart68681", XTAL_8MHz, ht68k_duart68681_config ) |
| 100 | MDRV_DUART68681_ADD( "duart68681", XTAL_8MHz / 2, ht68k_duart68681_config ) |
| 117 | 101 | MDRV_WD1770_ADD("wd1770", default_wd17xx_interface_2_drives ) |
| 118 | 102 | MDRV_FLOPPY_2_DRIVES_ADD(ht68k_floppy_config) |
| 119 | 103 | MACHINE_DRIVER_END |