Previous 15994 Revisions Next

r9673 Saturday 27th November, 2010 at 07:52:35 UTC by Robbbert
[CZK80] Connected it to a terminal.
[src/mess/drivers]czk80.c

src/mess/drivers/czk80.c
r9672r9673
99        FDC board contains Z80A DMA and NEC 765A (XTAL on it is 8MHZ)
1010        Mega board contains 74LS612 and memory chips
1111
12   27/11/2010 Connected to a terminal
13
1214****************************************************************************/
1315
1416#include "emu.h"
1517#include "cpu/z80/z80.h"
18#include "machine/terminal.h"
1619
1720
1821class czk80_state : public driver_device
r9672r9673
2427   UINT8 *ram;
2528};
2629
30static UINT8 term_data;
2731
32static WRITE8_HANDLER( czk80_80_w )
33{
34   running_device *terminal = space->machine->device("terminal");
2835
36   terminal_write(terminal, 0, data);
37}
38
39static READ8_HANDLER( czk80_80_r )
40{
41   UINT8 ret = term_data;
42   term_data = 0;
43   return ret;
44}
45
46static READ8_HANDLER( czk80_c0_r )
47{
48   return 0x80;
49}
50
51static READ8_HANDLER( czk80_81_r )
52{
53   return 1 | ((term_data) ? 2 : 0);
54}
55
2956static ADDRESS_MAP_START(czk80_mem, ADDRESS_SPACE_PROGRAM, 8)
3057   ADDRESS_MAP_UNMAP_HIGH
3158   AM_RANGE(0x0000, 0xffff) AM_RAM AM_BASE_MEMBER(czk80_state, ram)
r9672r9673
3360
3461static ADDRESS_MAP_START( czk80_io, ADDRESS_SPACE_IO, 8 )
3562   ADDRESS_MAP_GLOBAL_MASK(0xff)
63   AM_RANGE(0x80, 0x80) AM_READWRITE(czk80_80_r,czk80_80_w)
64   AM_RANGE(0x81, 0x81) AM_READ(czk80_81_r)
65   AM_RANGE(0xc0, 0xc0) AM_READ(czk80_c0_r)
3666ADDRESS_MAP_END
3767
3868/* Input ports */
39INPUT_PORTS_START( czk80 )
69static INPUT_PORTS_START( czk80 )
70   PORT_INCLUDE(generic_terminal)
4071INPUT_PORTS_END
4172
4273static MACHINE_RESET(czk80)
r9672r9673
4879   memcpy(state->ram+0xe000,bios, 0x2000);
4980}
5081
51static VIDEO_START( czk80 )
82
83static WRITE8_DEVICE_HANDLER( czk80_kbd_put )
5284{
85   term_data = data;
5386}
5487
55static VIDEO_UPDATE( czk80 )
88static GENERIC_TERMINAL_INTERFACE( czk80_terminal_intf )
5689{
57   return 0;
58}
90   DEVCB_HANDLER(czk80_kbd_put)
91};
5992
6093static MACHINE_CONFIG_START( czk80, czk80_state )
61    /* basic machine hardware */
62    MDRV_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4)
63    MDRV_CPU_PROGRAM_MAP(czk80_mem)
94   /* basic machine hardware */
95   MDRV_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4)
96   MDRV_CPU_PROGRAM_MAP(czk80_mem)
6497   MDRV_CPU_IO_MAP(czk80_io)
6598
66    MDRV_MACHINE_RESET(czk80)
99   MDRV_MACHINE_RESET(czk80)
67100
68    /* video hardware */
69   MDRV_SCREEN_ADD("screen", RASTER)
70   MDRV_SCREEN_REFRESH_RATE(60)
71   MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
72   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
73   MDRV_SCREEN_SIZE(256, 192) /* border size not accurate */
74   MDRV_SCREEN_VISIBLE_AREA(0, 256 - 1, 0, 192 - 1)
101   MDRV_FRAGMENT_ADD( generic_terminal )
75102
76    MDRV_PALETTE_LENGTH(2)
77    MDRV_PALETTE_INIT(black_and_white)
78
79    MDRV_VIDEO_START(czk80)
80    MDRV_VIDEO_UPDATE(czk80)
103   MDRV_GENERIC_TERMINAL_ADD("terminal", czk80_terminal_intf)
81104MACHINE_CONFIG_END
82105
83106
84107/* ROM definition */
85108ROM_START( czk80 )
86    ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
109   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
87110   ROM_LOAD( "czk80.rom", 0xe000, 0x2000, CRC(7081b7c6) SHA1(13f75b14ea73b252bdfa2384e6eead6e720e49e3))
88111ROM_END
89112

Previous 15994 Revisions Next


© 1998-2018 The MESS Team