Previous 199869 Revisions Next

r29238 Friday 4th April, 2014 at 06:03:16 UTC by Fabio Priuli
(MESS) modernized friskyt and micronic nvram. nw.
[src/mame/drivers]seicross.c
[src/mame/includes]seicross.h
[src/mess/drivers]micronic.c nc.c
[src/mess/includes]micronic.h

trunk/src/mess/includes/micronic.h
r29237r29238
1313#include "video/hd61830.h"
1414#include "machine/mc146818.h"
1515#include "machine/ram.h"
16#include "machine/nvram.h"
1617#include "sound/beep.h"
1718#include "imagedev/cassette.h"
1819
r29237r29238
3031      m_lcdc(*this, HD61830_TAG),
3132      m_beep(*this, "beeper"),
3233      m_rtc(*this, MC146818_TAG),
34      m_nvram1(*this, "nvram1"),
35      m_nvram2(*this, "nvram2"),
3336      m_ram(*this, RAM_TAG),
3437      m_ram_base(*this, "ram_base"),
38      m_status_flag(1),
3539      m_bank1(*this, "bank1"),
3640      m_bit0(*this, "BIT0"),
3741      m_bit1(*this, "BIT1"),
r29237r29238
4145      m_bit5(*this, "BIT5"),
4246      m_backbattery(*this, "BACKBATTERY"),
4347      m_mainbattery(*this, "MAINBATTERY"),
44      m_cassette(*this, "cassette") { }
48      m_cassette(*this, "cassette")
49   { }
4550
4651   required_device<cpu_device> m_maincpu;
4752   required_device<hd61830_device> m_lcdc;
4853   required_device<beep_device> m_beep;
4954   required_device<mc146818_device> m_rtc;
55   required_device<nvram_device> m_nvram1;
56   required_device<nvram_device> m_nvram2;
5057   required_device<ram_device> m_ram;
5158
5259   virtual void machine_start();
5360   virtual void machine_reset();
61   void nvram_init(nvram_device &nvram, void *data, size_t size);
5462
5563   DECLARE_READ8_MEMBER( keypad_r );
5664   DECLARE_READ8_MEMBER( status_flag_r );
r29237r29238
7078   UINT8 m_banks_num;
7179   UINT8 m_kp_matrix;
7280   UINT8 m_lcd_contrast;
73   bool m_lcd_backlight;
81   int m_lcd_backlight;
7482   UINT8 m_status_flag;
7583   DECLARE_PALETTE_INIT(micronic);
7684
trunk/src/mess/drivers/micronic.c
r29237r29238
116116#include "emu.h"
117117#include "includes/micronic.h"
118118#include "rendlay.h"
119#include "mcfglgcy.h"
120119
121120READ8_MEMBER( micronic_state::keypad_r )
122121{
r29237r29238
300299      PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("END") PORT_CODE(KEYCODE_END)
301300INPUT_PORTS_END
302301
303static NVRAM_HANDLER( micronic )
304{
305   micronic_state *state = machine.driver_data<micronic_state>();
306302
307   if (read_or_write)
308   {
309      file->write(state->m_ram_base, 0x8000);
310      file->write(state->m_ram->pointer(), state->m_ram->size());
311   }
312   else
313   {
314      if (file)
315      {
316         file->read(state->m_ram_base, 0x8000);
317         file->read(state->m_ram->pointer(), state->m_ram->size());
318         state->m_status_flag = 0x01;
319      }
320      else
321      {
322         state->m_status_flag = 0x00;
323      }
324   }
303void micronic_state::nvram_init(nvram_device &nvram, void *data, size_t size)
304{
305   m_status_flag = 0;
325306}
326307
308
327309PALETTE_INIT_MEMBER(micronic_state, micronic)
328310{
329311   palette.set_pen_color(0, rgb_t(138, 146, 148));
r29237r29238
336318   m_bank1->configure_entries(0x00, 0x02, memregion(Z80_TAG)->base(), 0x10000);
337319
338320   /* RAM banks */
339   m_banks_num = (m_ram->size()>>15) + 1;
321   m_banks_num = (m_ram->size() >> 15) + 1;
340322   m_bank1->configure_entries(0x02, m_banks_num - 1, m_ram->pointer(), 0x8000);
341323
324   m_nvram1->set_base(m_ram_base, 0x8000);
325   m_nvram2->set_base(m_ram->pointer(), m_ram->size());
326
342327   /* register for state saving */
343//  save_item(NAME(state->));
328   save_item(NAME(m_banks_num));
329   save_item(NAME(m_kp_matrix));
330   save_item(NAME(m_lcd_contrast));
331   save_item(NAME(m_lcd_backlight));
332   save_item(NAME(m_status_flag));
333   // TODO: restore RAM bank at state load...
344334}
345335
346336void micronic_state::machine_reset()
r29237r29238
386376   MCFG_RAM_ADD(RAM_TAG)
387377   MCFG_RAM_DEFAULT_SIZE("224K")
388378
389   MCFG_NVRAM_HANDLER(micronic)
379   MCFG_NVRAM_ADD_CUSTOM_DRIVER("nvram1", micronic_state, nvram_init)   // base ram
380   MCFG_NVRAM_ADD_CUSTOM_DRIVER("nvram2", micronic_state, nvram_init)   // additional ram banks
390381
391382   MCFG_MC146818_ADD( MC146818_TAG, XTAL_32_768kHz )
392383   MCFG_MC146818_IRQ_HANDLER(WRITELINE(micronic_state, mc146818_irq))
trunk/src/mess/drivers/nc.c
r29237r29238
105105#include "sound/beep.h"
106106#include "machine/ram.h"
107107#include "rendlay.h"
108#include "mcfglgcy.h"
109108
109
110110#define VERBOSE 0
111111#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
112112
trunk/src/mame/drivers/seicross.c
r29237r29238
4848#include "sound/ay8910.h"
4949#include "sound/dac.h"
5050#include "includes/seicross.h"
51#include "mcfglgcy.h"
5251
53static NVRAM_HANDLER( seicross )
54{
55   seicross_state *state = machine.driver_data<seicross_state>();
56   UINT8 *nvram = state->m_nvram;
57   size_t nvram_size = state->m_nvram.bytes();
5852
59   if (read_or_write)
60      file->write(nvram,nvram_size);
61   else
62   {
63      if (file)
64         file->read(nvram,nvram_size);
65      else
66      {
67         /* fill in the default values */
68         memset(nvram,0,nvram_size);
69         nvram[0x0d] = nvram[0x0f] = nvram[0x11] = nvram[0x13] = nvram[0x15] = nvram[0x19] = 1;
70         nvram[0x17] = 3;
71      }
72   }
53void seicross_state::nvram_init(nvram_device &nvram, void *data, size_t size)
54{
55   static const UINT8 init[32] = {
56      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1,
57      0, 1, 0, 1, 0, 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, };
58   
59   memset(data, 0x00, size);
60   memcpy(data, init, sizeof(init));
7361}
7462
75
76
7763void seicross_state::machine_reset()
7864{
7965   /* start with the protection mcu halted */
r29237r29238
395381}
396382
397383
398static MACHINE_CONFIG_START( nvram, seicross_state )
384static MACHINE_CONFIG_START( no_nvram, seicross_state )
399385
400386   /* basic machine hardware */
401387   MCFG_CPU_ADD("maincpu", Z80, 3072000)   /* 3.072 MHz? */
r29237r29238
404390   MCFG_CPU_VBLANK_INT_DRIVER("screen", seicross_state,  vblank_irq)
405391
406392   MCFG_CPU_ADD("mcu", NSC8105, 3072000)   /* ??? */
407   MCFG_CPU_PROGRAM_MAP(mcu_nvram_map)
393   MCFG_CPU_PROGRAM_MAP(mcu_no_nvram_map)
408394
409395   MCFG_QUANTUM_TIME(attotime::from_hz(1200))  /* 20 CPU slices per frame - an high value to ensure proper */
410396                  /* synchronization of the CPUs */
411   MCFG_NVRAM_HANDLER(seicross)
412397
413398   /* video hardware */
414399   MCFG_SCREEN_ADD("screen", RASTER)
r29237r29238
435420MACHINE_CONFIG_END
436421
437422
438static MACHINE_CONFIG_DERIVED( no_nvram, nvram )
423static MACHINE_CONFIG_DERIVED( nvram, no_nvram )
439424
440425   /* basic machine hardware */
441426   MCFG_CPU_MODIFY("mcu")
442   MCFG_CPU_PROGRAM_MAP(mcu_no_nvram_map)
427   MCFG_CPU_PROGRAM_MAP(mcu_nvram_map)
443428
444   MCFG_NVRAM_HANDLER(0)
429   MCFG_NVRAM_ADD_CUSTOM_DRIVER("nvram", seicross_state, nvram_init)
445430MACHINE_CONFIG_END
446431
447432
trunk/src/mame/includes/seicross.h
r29237r29238
1#include "machine/nvram.h"
2
13class seicross_state : public driver_device
24{
35public:
r29237r29238
810      m_row_scroll(*this, "row_scroll"),
911      m_spriteram2(*this, "spriteram2"),
1012      m_colorram(*this, "colorram"),
11      m_nvram(*this, "nvram"),
1213      m_maincpu(*this, "maincpu"),
1314      m_mcu(*this, "mcu"),
15      m_nvram(*this, "nvram"),
1416      m_gfxdecode(*this, "gfxdecode"),
1517      m_palette(*this, "palette") { }
1618
r29237r29238
1921   required_shared_ptr<UINT8> m_row_scroll;
2022   required_shared_ptr<UINT8> m_spriteram2;
2123   required_shared_ptr<UINT8> m_colorram;
22   optional_shared_ptr<UINT8> m_nvram;
2324   
2425   UINT8 m_portb;
2526   tilemap_t *m_bg_tilemap;
27   void nvram_init(nvram_device &nvram, void *data, size_t size);
2628
2729   UINT8 m_irq_mask;
2830   DECLARE_WRITE8_MEMBER(seicross_videoram_w);
r29237r29238
3840   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
3941   required_device<cpu_device> m_maincpu;
4042   required_device<cpu_device> m_mcu;
43   optional_device<nvram_device> m_nvram;
4144   required_device<gfxdecode_device> m_gfxdecode;
4245   required_device<palette_device> m_palette;
4346};

Previous 199869 Revisions Next


© 1997-2024 The MAME Team