mirror of
https://github.com/holub/mame
synced 2025-10-04 08:28:39 +03:00
(MESS) New skeleton driver:
--------------------------- Intelbras TI630 telephone [Felipe Sanches] Fixed current/prior submissions for proper license attribution (nw)
This commit is contained in:
parent
236d4a2bc2
commit
f1f05fcb07
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -8297,6 +8297,7 @@ src/mess/drivers/tek410x.c svneol=native#text/plain
|
|||||||
src/mess/drivers/terak.c svneol=native#text/plain
|
src/mess/drivers/terak.c svneol=native#text/plain
|
||||||
src/mess/drivers/test_t400.c svneol=native#text/plain
|
src/mess/drivers/test_t400.c svneol=native#text/plain
|
||||||
src/mess/drivers/thomson.c svneol=native#text/plain
|
src/mess/drivers/thomson.c svneol=native#text/plain
|
||||||
|
src/mess/drivers/ti630.c svneol=native#text/plain
|
||||||
src/mess/drivers/ti85.c svneol=native#text/plain
|
src/mess/drivers/ti85.c svneol=native#text/plain
|
||||||
src/mess/drivers/ti89.c svneol=native#text/plain
|
src/mess/drivers/ti89.c svneol=native#text/plain
|
||||||
src/mess/drivers/ti990_10.c svneol=native#text/plain
|
src/mess/drivers/ti990_10.c svneol=native#text/plain
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
/*
|
// license:MAME
|
||||||
|
// copyright-holders: Ryan Holtz (Mooglyguy), Sandro Ronco, Felipe Sanches
|
||||||
|
/***************************************************************************
|
||||||
|
|
||||||
Atmel 8-bit AVR simulator
|
Atmel 8-bit AVR simulator
|
||||||
|
|
||||||
- Notes -
|
- Notes -
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
// license:MAME|GPL-2.0+
|
||||||
|
// copyright-holders: Felipe Sanches
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
HENRY Prot I/II - brazilian document timestamp printers
|
HENRY Prot I/II - brazilian document timestamp printers
|
||||||
@ -6,13 +8,9 @@
|
|||||||
Driver by Felipe Sanches
|
Driver by Felipe Sanches
|
||||||
Technical info at https://www.garoa.net.br/wiki/HENRY
|
Technical info at https://www.garoa.net.br/wiki/HENRY
|
||||||
|
|
||||||
Licensed under GPLv2 or later.
|
|
||||||
|
|
||||||
NOTE: Even though the MAME/MESS project has been adopting a non-commercial additional licensing clause, I do allow commercial usage of my portion of the code according to the plain terms of the GPL license (version 2 or later). This is useful if you happen to use my code in another project or in case the other MAME/MESS developers happen to drop the non-comercial clause completely. I suggest that other developers consider doing the same. --Felipe Sanches
|
|
||||||
|
|
||||||
Changelog:
|
Changelog:
|
||||||
|
|
||||||
2014 JUN 13 [Felipe Sanches]:
|
2014 JUN 13 [Felipe Sanches]:
|
||||||
* new derivative "CARD I PCB rev.08A"
|
* new derivative "CARD I PCB rev.08A"
|
||||||
* new derivative "CARD II PCB rev.6"
|
* new derivative "CARD II PCB rev.6"
|
||||||
* fixed LCD rendering (now both lines are displayed properly)
|
* fixed LCD rendering (now both lines are displayed properly)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// license:MAME|GPL-2.0+
|
// license:MAME|GPL-2.0+
|
||||||
// copyright-holders:Felipe Correa
|
// copyright-holders: Felipe Sanches
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
SONY PVE-500 Editing Control Unit
|
SONY PVE-500 Editing Control Unit
|
||||||
@ -8,13 +8,6 @@
|
|||||||
Driver by Felipe Correa da Silva Sanches <juca@members.fsf.org>
|
Driver by Felipe Correa da Silva Sanches <juca@members.fsf.org>
|
||||||
Technical info at https://www.garoa.net.br/wiki/PVE-500
|
Technical info at https://www.garoa.net.br/wiki/PVE-500
|
||||||
|
|
||||||
Licensed under GPLv2 or later.
|
|
||||||
|
|
||||||
NOTE: Even though the MAME/MESS project has been adopting a non-commercial additional licensing clause, I do allow commercial usage
|
|
||||||
of my portion of the code according to the plain terms of the GPL license (version 2 or later). This is useful if you happen to use
|
|
||||||
my code in another project or in case the other MAME/MESS developers happen to drop the non-comercial clause completely. I suggest
|
|
||||||
that other developers consider doing the same. --Felipe Sanches
|
|
||||||
|
|
||||||
Changelog:
|
Changelog:
|
||||||
|
|
||||||
2014 JAN 14 [Felipe Sanches]:
|
2014 JAN 14 [Felipe Sanches]:
|
||||||
|
@ -1,14 +1,10 @@
|
|||||||
// license:MAME|GPL-2.0+
|
// license:MAME|GPL-2.0+
|
||||||
// copyright-holders:Felipe Correa
|
// copyright-holders:Felipe Sanches
|
||||||
/*
|
/*
|
||||||
Replicator 1 desktop 3d printer
|
Replicator 1 desktop 3d printer
|
||||||
|
|
||||||
driver by Felipe Correa da Silva Sanches <fsanches@metamaquina.com.br>
|
driver by Felipe Correa da Silva Sanches <fsanches@metamaquina.com.br>
|
||||||
|
|
||||||
Licensed under GPLv2 or later.
|
|
||||||
|
|
||||||
NOTE: Even though the MAME/MESS project has been adopting a non-commercial additional licensing clause, I do allow commercial usage of my portion of the code according to the plain terms of the GPL license (version 2 or later). This is useful if you happen to use my code in another project or in case the other MAME/MESS developers happen to drop the non-comercial clause completely. I suggest that other developers consider doing the same. --Felipe Sanches
|
|
||||||
|
|
||||||
Changelog:
|
Changelog:
|
||||||
|
|
||||||
2013 DEC 28 [Felipe Sanches]:
|
2013 DEC 28 [Felipe Sanches]:
|
||||||
|
212
src/mess/drivers/ti630.c
Normal file
212
src/mess/drivers/ti630.c
Normal file
@ -0,0 +1,212 @@
|
|||||||
|
// license:MAME|GPL-2.0+
|
||||||
|
// copyright-holders: Felipe Sanches
|
||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
Intelbras TI630 telephone
|
||||||
|
Driver by Felipe Correa da Silva Sanches <juca@members.fsf.org>
|
||||||
|
|
||||||
|
http://images.quebarato.com.br/T440x/telefone+ks+ti+630+seminovo+intelbras+sao+paulo+sp+brasil__2E255D_1.jpg
|
||||||
|
|
||||||
|
Changelog:
|
||||||
|
|
||||||
|
2014 JUN 17 [Felipe Sanches]:
|
||||||
|
* Initial driver skeleton
|
||||||
|
* LCD works
|
||||||
|
|
||||||
|
================
|
||||||
|
Messages displayed on screen are in brazilian portuguese.
|
||||||
|
During boot, it says:
|
||||||
|
|
||||||
|
"TI auto-test."
|
||||||
|
"Wait!"
|
||||||
|
|
||||||
|
Then it says:
|
||||||
|
|
||||||
|
"Initializing..."
|
||||||
|
"Wait!"
|
||||||
|
|
||||||
|
And finally:
|
||||||
|
|
||||||
|
"TI did not receive"
|
||||||
|
"the dial tone"
|
||||||
|
|
||||||
|
It means we probably would have to emulate a modem device for it to treat communications with a PABX phone hub.
|
||||||
|
================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
#include "cpu/mcs51/mcs51.h"
|
||||||
|
#include "video/hd44780.h"
|
||||||
|
#include "rendlay.h"
|
||||||
|
|
||||||
|
class ti630_state : public driver_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ti630_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
|
: driver_device(mconfig, type, tag)
|
||||||
|
, m_maincpu(*this, "maincpu")
|
||||||
|
, m_lcdc(*this, "hd44780")
|
||||||
|
{ }
|
||||||
|
|
||||||
|
DECLARE_WRITE8_MEMBER(ti630_io_w);
|
||||||
|
DECLARE_READ8_MEMBER(ti630_io_r);
|
||||||
|
DECLARE_DRIVER_INIT(ti630);
|
||||||
|
DECLARE_PALETTE_INIT(ti630);
|
||||||
|
private:
|
||||||
|
virtual void machine_start();
|
||||||
|
virtual void machine_reset();
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<hd44780_device> m_lcdc;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOG_IO_PORTS 0
|
||||||
|
|
||||||
|
static ADDRESS_MAP_START(i80c31_prg, AS_PROGRAM, 8, ti630_state)
|
||||||
|
AM_RANGE(0x0000, 0xffff) AM_ROM
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
DRIVER_INIT_MEMBER( ti630_state, ti630 )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static ADDRESS_MAP_START(i80c31_io, AS_IO, 8, ti630_state)
|
||||||
|
AM_RANGE(0x0000,0x0000) /*AM_MIRROR(?)*/ AM_DEVWRITE("hd44780", hd44780_device, control_write)
|
||||||
|
AM_RANGE(0x1000,0x1000) /*AM_MIRROR(?)*/ AM_DEVWRITE("hd44780", hd44780_device, data_write)
|
||||||
|
AM_RANGE(0x2000,0x2000) /*AM_MIRROR(?)*/ AM_DEVREAD("hd44780", hd44780_device, control_read)
|
||||||
|
AM_RANGE(0x8000,0xffff) AM_RAM /*TODO: verify the ammont of RAM and the correct address range to which it is mapped. This is just a first reasonable guess that apparently yields good results in the emulation */
|
||||||
|
|
||||||
|
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(ti630_io_r, ti630_io_w)
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
void ti630_state::machine_start()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void ti630_state::machine_reset()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
READ8_MEMBER(ti630_state::ti630_io_r)
|
||||||
|
{
|
||||||
|
switch (offset)
|
||||||
|
{
|
||||||
|
case 0x01:
|
||||||
|
{
|
||||||
|
UINT8 value = 0;
|
||||||
|
#if LOG_IO_PORTS
|
||||||
|
printf("P1 read value:%02X\n", value);
|
||||||
|
#endif
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
#if LOG_IO_PORTS
|
||||||
|
printf("Unhandled I/O Read at offset 0x%02X (return 0)\n", offset);
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER(ti630_state::ti630_io_w)
|
||||||
|
{
|
||||||
|
static UINT8 p0=0, p1=0, p2=0, p3=0;
|
||||||
|
switch (offset)
|
||||||
|
{
|
||||||
|
case 0x00:
|
||||||
|
{
|
||||||
|
if (data != p0)
|
||||||
|
{
|
||||||
|
p0=data;
|
||||||
|
#if LOG_IO_PORTS
|
||||||
|
printf("Write to P0: %02X\n", data);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 0x01:
|
||||||
|
{
|
||||||
|
if (data != p1)
|
||||||
|
{
|
||||||
|
p1=data;
|
||||||
|
#if LOG_IO_PORTS
|
||||||
|
printf("Write to P1: %02X\n", data);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 0x02:
|
||||||
|
{
|
||||||
|
if (data != p2)
|
||||||
|
{
|
||||||
|
p2=data;
|
||||||
|
#if LOG_IO_PORTS
|
||||||
|
printf("Write to P2: %02X\n", data);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 0x03:
|
||||||
|
{
|
||||||
|
if (data != p3)
|
||||||
|
{
|
||||||
|
p3=data;
|
||||||
|
#if LOG_IO_PORTS
|
||||||
|
printf("Write to P3: %02X\n", data);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PALETTE_INIT_MEMBER(ti630_state, ti630)
|
||||||
|
{
|
||||||
|
palette.set_pen_color(0, rgb_t(138, 146, 148));
|
||||||
|
palette.set_pen_color(1, rgb_t(92, 83, 88));
|
||||||
|
}
|
||||||
|
|
||||||
|
static const gfx_layout ti630_charlayout =
|
||||||
|
{
|
||||||
|
5, 8, /* 5 x 8 characters */
|
||||||
|
256, /* 256 characters */
|
||||||
|
1, /* 1 bits per pixel */
|
||||||
|
{ 0 }, /* no bitplanes */
|
||||||
|
{ 3, 4, 5, 6, 7},
|
||||||
|
{ 0, 8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8},
|
||||||
|
8*8 /* 8 bytes */
|
||||||
|
};
|
||||||
|
|
||||||
|
static GFXDECODE_START( ti630 )
|
||||||
|
GFXDECODE_ENTRY( "hd44780:cgrom", 0x0000, ti630_charlayout, 0, 1 )
|
||||||
|
GFXDECODE_END
|
||||||
|
|
||||||
|
static MACHINE_CONFIG_START( ti630, ti630_state )
|
||||||
|
/* basic machine hardware */
|
||||||
|
MCFG_CPU_ADD("maincpu", I80C31, XTAL_10MHz)
|
||||||
|
MCFG_CPU_PROGRAM_MAP(i80c31_prg)
|
||||||
|
MCFG_CPU_IO_MAP(i80c31_io)
|
||||||
|
|
||||||
|
/* video hardware */
|
||||||
|
MCFG_SCREEN_ADD("screen", LCD)
|
||||||
|
MCFG_SCREEN_REFRESH_RATE(50)
|
||||||
|
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
||||||
|
MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update)
|
||||||
|
MCFG_SCREEN_SIZE(6*16, 9*2)
|
||||||
|
MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-1)
|
||||||
|
MCFG_SCREEN_PALETTE("palette")
|
||||||
|
|
||||||
|
MCFG_DEFAULT_LAYOUT(layout_lcd)
|
||||||
|
MCFG_PALETTE_ADD("palette", 2)
|
||||||
|
MCFG_PALETTE_INIT_OWNER(ti630_state, ti630)
|
||||||
|
MCFG_GFXDECODE_ADD("gfxdecode", "palette", ti630)
|
||||||
|
|
||||||
|
MCFG_HD44780_ADD("hd44780")
|
||||||
|
MCFG_HD44780_LCD_SIZE(2, 16)
|
||||||
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
ROM_START( ti630 )
|
||||||
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
|
ROM_LOAD( "ti630.ci11", 0x00000, 0x10000, CRC(2602cbdc) SHA1(98266bea52a5893e0af0b5872eca0a0a1e0c5f9c) )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||||
|
COMP( 1999, ti630, 0, 0, ti630, 0, ti630_state, ti630, "Intelbras", "TI630 telephone", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND)
|
@ -2301,6 +2301,7 @@ pdp11ub2
|
|||||||
pdp11qb
|
pdp11qb
|
||||||
sms1000
|
sms1000
|
||||||
terak
|
terak
|
||||||
|
ti630
|
||||||
sacstate
|
sacstate
|
||||||
prose2k
|
prose2k
|
||||||
eacc
|
eacc
|
||||||
|
@ -2162,6 +2162,7 @@ $(MESSOBJ)/skeleton.a: \
|
|||||||
$(MESS_DRIVERS)/systec.o \
|
$(MESS_DRIVERS)/systec.o \
|
||||||
$(MESS_DRIVERS)/tavernie.o \
|
$(MESS_DRIVERS)/tavernie.o \
|
||||||
$(MESS_DRIVERS)/terak.o \
|
$(MESS_DRIVERS)/terak.o \
|
||||||
|
$(MESS_DRIVERS)/ti630.o \
|
||||||
$(MESS_DRIVERS)/tsispch.o \
|
$(MESS_DRIVERS)/tsispch.o \
|
||||||
$(MESS_DRIVERS)/unistar.o \
|
$(MESS_DRIVERS)/unistar.o \
|
||||||
$(MESS_DRIVERS)/v6809.o \
|
$(MESS_DRIVERS)/v6809.o \
|
||||||
|
Loading…
Reference in New Issue
Block a user