Previous 199869 Revisions Next

r26517 Friday 6th December, 2013 at 05:21:39 UTC by Barry Rodewald
wicat: Made it start to boot.  Added LEDs, these blink, but little else happens so far.
[src/mess]mess.mak
[src/mess/drivers]wicat.c
[src/mess/layout]wicat.lay*

trunk/src/mess/layout/wicat.lay
r0r26517
1<!-- LED layout for Wicat WS-150 -->
2
3<mamelayout version="2">
4
5   <element name="led">
6      <disk>
7         <color red="1.0" green="0.0" blue="0.0" />
8      </disk>
9   </element>
10
11   <view name="LEDs">
12      <bezel name="led6" element="led">
13         <bounds left="0" right="8" top="0" bottom="8" />
14      </bezel>
15      <bezel name="led5" element="led">
16         <bounds left="10" right="18" top="0" bottom="8" />
17      </bezel>
18      <bezel name="led4" element="led">
19         <bounds left="20" right="28" top="0" bottom="8" />
20      </bezel>
21      <bezel name="led3" element="led">
22         <bounds left="30" right="38" top="0" bottom="8" />
23      </bezel>
24      <bezel name="led2" element="led">
25         <bounds left="40" right="48" top="0" bottom="8" />
26      </bezel>
27      <bezel name="led1" element="led">
28         <bounds left="50" right="58" top="0" bottom="8" />
29      </bezel>
30      <screen index="0">
31         <bounds x="0" y="10" width="400" height="300" />
32      </screen>
33   </view>
34
35</mamelayout>
No newline at end of file
Property changes on: trunk/src/mess/layout/wicat.lay
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/mess/drivers/wicat.c
r26516r26517
1111#include "emu.h"
1212#include "cpu/m68000/m68000.h"
1313#include "machine/terminal.h"
14#include "wicat.lh"
1415
1516class wicat_state : public driver_device
1617{
1718public:
1819   wicat_state(const machine_config &mconfig, device_type type, const char *tag)
1920      : driver_device(mconfig, type, tag)
20      , m_p_base(*this, "rambase")
21//      , m_p_base(*this, "rambase")
2122      , m_maincpu(*this, "maincpu")
2223      , m_terminal(*this, TERMINAL_TAG)
2324   { }
2425
2526   DECLARE_WRITE8_MEMBER(kbd_put);
27   DECLARE_READ16_MEMBER(invalid_r);
28   DECLARE_WRITE16_MEMBER(invalid_w);
29   DECLARE_WRITE16_MEMBER(serial_w);
30   DECLARE_WRITE16_MEMBER(parallel_led_w);
2631private:
2732   UINT8 m_term_data;
33   virtual void machine_start();
2834   virtual void machine_reset();
29   required_shared_ptr<UINT16> m_p_base;
35//   required_shared_ptr<UINT16> m_p_base;
3036   required_device<cpu_device> m_maincpu;
3137   required_device<generic_terminal_device> m_terminal;
3238};
r26516r26517
3541static ADDRESS_MAP_START(wicat_mem, AS_PROGRAM, 16, wicat_state)
3642   ADDRESS_MAP_UNMAP_HIGH
3743   ADDRESS_MAP_GLOBAL_MASK(0xffffff)
38   AM_RANGE(0x000000, 0x04cfff) AM_RAM AM_SHARE("rambase")
39   AM_RANGE(0x04d000, 0x04ffff) AM_ROM AM_REGION("c1", 0)
40   AM_RANGE(0x018000, 0x018fff) AM_RAM
44//   AM_RANGE(0x000000, 0x01efff) AM_RAM AM_SHARE("rambase")
45   AM_RANGE(0x000000, 0x001fff) AM_ROM AM_REGION("c2", 0x0000)
46   AM_RANGE(0x020000, 0x1fffff) AM_RAM
47   AM_RANGE(0x200000, 0x3fffff) AM_RAM
48   AM_RANGE(0x400000, 0xdfffff) AM_READWRITE(invalid_r,invalid_w)
49   AM_RANGE(0xeff800, 0xefffff) AM_RAM  // memory mapping SRAM, used during boot sequence for the stack (TODO)
50   AM_RANGE(0xf00000, 0xf0002f) AM_WRITE(serial_w)  // UARTs
51   AM_RANGE(0xf000d0, 0xf000d1) AM_WRITE(parallel_led_w)
4152ADDRESS_MAP_END
4253
4354
r26516r26517
4657INPUT_PORTS_END
4758
4859
60void wicat_state::machine_start()
61{
62}
63
4964void wicat_state::machine_reset()
5065{
51   UINT8* ROM = memregion("c1")->base();
52   memcpy(m_p_base, ROM, 8);
53   m_maincpu->reset();
5466}
5567
5668WRITE8_MEMBER( wicat_state::kbd_put )
r26516r26517
5870   m_term_data = data;
5971}
6072
73WRITE16_MEMBER( wicat_state::serial_w )
74{
75   if(ACCESSING_BITS_8_15)  // even addresses
76   {
77      switch(offset)
78      {
79      case 0x00:
80      case 0x02:
81      case 0x04:
82      case 0x06:
83         m_terminal->write(space,0,data);
84      default:
85         logerror("Serial: Unused serial port write %02x to offset %02x\n",data,offset);
86      }
87   }
88}
89
90WRITE16_MEMBER( wicat_state::parallel_led_w )
91{
92   // bit 0 - parallel port A direction (0 = input)
93   // bit 1 - parallel port B direction (0 = input)
94   output_set_value("led1",(~data) & 0x0400);
95   output_set_value("led2",(~data) & 0x0800);
96   output_set_value("led3",(~data) & 0x1000);
97   output_set_value("led4",(~data) & 0x2000);
98   output_set_value("led5",(~data) & 0x4000);
99   output_set_value("led6",(~data) & 0x8000);
100}
101
102READ16_MEMBER( wicat_state::invalid_r )
103{
104   m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
105   m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE);
106   return 0xff;
107}
108
109WRITE16_MEMBER( wicat_state::invalid_w )
110{
111   m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
112   m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE);
113}
114
61115static GENERIC_TERMINAL_INTERFACE( terminal_intf )
62116{
63117   DEVCB_DRIVER_MEMBER(wicat_state, kbd_put)
r26516r26517
70124
71125   /* video hardware */
72126   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
127
128   MCFG_DEFAULT_LAYOUT(layout_wicat)
73129MACHINE_CONFIG_END
74130
75131/* ROM definition */
76132ROM_START( wicat )
77   ROM_REGION16_BE(0x3000, "c1", 0)
133   ROM_REGION16_BE(0x4000, "c1", 0)
78134   ROM_LOAD16_BYTE("wiboot.e",   0x00000, 0x0800, CRC(6f0f73c6) SHA1(be635bf3ffa1301f844a3d5560e278de46740d19) )
79135   ROM_LOAD16_BYTE("wiboot.o",   0x00001, 0x0800, CRC(b9763bbd) SHA1(68f497be56ff69534e17b41a40737cd6f708d65e) )
80136   ROM_LOAD16_BYTE("tpcnif.e",   0x01000, 0x0800, CRC(fd1127ec) SHA1(7c6b436c0cea41dbb23cb6bd9b9a5c21fa61d232) )
r26516r26517
87143   ROM_LOAD       ("cpu.15c",    0x00040, 0x0020, CRC(ba2dd77d) SHA1(eb693d6d30aa6a9dba61c6c41a75614ed4e9e69a) )
88144
89145   ROM_REGION16_BE(0x2000, "c2", 0)
90   ROM_LOAD16_BYTE("wd3_15.b5",  0x00000, 0x0800, CRC(a765899b) SHA1(8427c564029914b7dbc29768ce451604180e390f) )
91   ROM_LOAD16_BYTE("wd3_15.b7",  0x00001, 0x0800, CRC(9d986585) SHA1(1ac7579c692f827b121c56dac0a77b15400caba1) )
92   ROM_LOAD16_BYTE("boot156.a5", 0x01000, 0x0800, CRC(58510a52) SHA1(d2135b056a04ba830b0ae1cef539e4a9a1b58f82) )
93   ROM_LOAD16_BYTE("boot156.a7", 0x01001, 0x0800, CRC(e53999f1) SHA1(9c6c6a3a56b5c16a35e1fe824f37c8ae739ebcb9) )
146   ROM_LOAD16_BYTE("boot156.a5", 0x00000, 0x0800, CRC(58510a52) SHA1(d2135b056a04ba830b0ae1cef539e4a9a1b58f82) )
147   ROM_LOAD16_BYTE("boot156.a7", 0x00001, 0x0800, CRC(e53999f1) SHA1(9c6c6a3a56b5c16a35e1fe824f37c8ae739ebcb9) )
148   ROM_LOAD16_BYTE("wd3_15.b5",  0x01000, 0x0800, CRC(a765899b) SHA1(8427c564029914b7dbc29768ce451604180e390f) )
149   ROM_LOAD16_BYTE("wd3_15.b7",  0x01001, 0x0800, CRC(9d986585) SHA1(1ac7579c692f827b121c56dac0a77b15400caba1) )
94150
95151   ROM_REGION16_BE(0x8000, "g1", 0)
96152   ROM_LOAD16_BYTE("1term0.e",   0x00000, 0x0800, CRC(a9aade37) SHA1(644e9362d5a9523be5c6f39a650b574735dbd4a2) )
trunk/src/mess/mess.mak
r26516r26517
23972397$(MESS_DRIVERS)/votrtnt.o:  $(MESS_LAYOUT)/votrtnt.lh
23982398$(MESS_DRIVERS)/vk100.o:    $(MESS_LAYOUT)/vk100.lh
23992399$(MESS_DRIVERS)/vt100.o:    $(MESS_LAYOUT)/vt100.lh
2400$(MESS_DRIVERS)/wicat.o:    $(MESS_LAYOUT)/wicat.lh
24002401$(MESS_DRIVERS)/wswan.o:    $(MESS_LAYOUT)/wswan.lh
24012402$(MESS_DRIVERS)/x68k.o:     $(MESS_LAYOUT)/x68000.lh
24022403$(MESS_DRIVERS)/z80dev.o:   $(MESS_LAYOUT)/z80dev.lh

Previous 199869 Revisions Next


© 1997-2024 The MAME Team