Previous 199869 Revisions Next

r25465 Monday 30th September, 2013 at 08:02:10 UTC by Robbbert
(MESS) pt68k4 : Connected to a terminal. System works with bios 0 (nw)
[src/mess/drivers]pt68k4.c

trunk/src/mess/drivers/pt68k4.c
r25464r25465
11/***************************************************************************
22
3        Peripheral Technology PT68K4
3    Peripheral Technology PT68K4
44
5        03/01/2011 Skeleton driver.
5    2011-01-03 Skeleton driver.
6    2013-09-30 Connected to a terminal
67
78This has the appearance of a PC, including pc power supply, slots, etc
89on a conventional pc-like motherboard and case.
910
1011Some pics: http://www.wormfood.net/old_computers/
1112
13Note: bios 0 works with the terminal. When first started, press Enter
14      to get the logo. Enter HE to get a list of commands. Terminate
15      numeric entries with a Space (not Enter!).
16
1217****************************************************************************/
1318
1419#include "emu.h"
1520#include "cpu/m68000/m68000.h"
21#include "machine/terminal.h"
1622
1723class pt68k4_state : public driver_device
1824{
1925public:
2026   pt68k4_state(const machine_config &mconfig, device_type type, const char *tag)
21      : driver_device(mconfig, type, tag),
22      m_p_ram(*this, "p_ram"),
23      m_maincpu(*this, "maincpu") { }
27      : driver_device(mconfig, type, tag)
28      , m_p_base(*this, "rambase")
29      , m_p_upper(*this, "upper_ram")
30      , m_maincpu(*this, "maincpu")
31      , m_terminal(*this, TERMINAL_TAG)
32   { }
2433
25   required_shared_ptr<UINT16> m_p_ram;
34   DECLARE_WRITE8_MEMBER(kbd_put);
35   DECLARE_READ16_MEMBER(status_r);
36   DECLARE_READ16_MEMBER(nop_r);
37   //virtual void video_start();
38   //UINT32 screen_update_pt68k4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
39private:
2640   virtual void machine_reset();
27   virtual void video_start();
28   UINT32 screen_update_pt68k4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
41   required_shared_ptr<UINT16> m_p_base;
42   required_shared_ptr<UINT16> m_p_upper;
2943   required_device<cpu_device> m_maincpu;
44   required_device<generic_terminal_device> m_terminal;
3045};
3146
3247static ADDRESS_MAP_START(pt68k4_mem, AS_PROGRAM, 16, pt68k4_state)
3348   ADDRESS_MAP_UNMAP_HIGH
34   AM_RANGE(0x00000000, 0x0007ffff) AM_RAM AM_SHARE("p_ram") // 512 KB RAM / ROM at boot
35   AM_RANGE(0x00f00000, 0x00f0ffff) AM_ROM AM_MIRROR(0xf0000) AM_REGION("user1", 0)
36   AM_RANGE(0x00ff0000, 0x00ffffff) AM_RAM
49   AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_SHARE("rambase") // 512 KB RAM / ROM at boot
50   AM_RANGE(0xf80000, 0xf8ffff) AM_ROM AM_REGION("roms", 0)
51   AM_RANGE(0xfe0002, 0xfe0003) AM_READ(status_r)
52   AM_RANGE(0xfe0006, 0xfe0007) AM_DEVWRITE8(TERMINAL_TAG, generic_terminal_device, write, 0x00ff)
53   AM_RANGE(0xfe0012, 0xfe0013) AM_READ(nop_r)
54   AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("upper_ram")
3755ADDRESS_MAP_END
3856
3957/* Input ports */
r25464r25465
4361
4462void pt68k4_state::machine_reset()
4563{
46   UINT8* user1 = memregion("user1")->base();
64   UINT8* user1 = memregion("roms")->base();
65   memcpy((UINT8*)m_p_base.target(), user1, 8);
4766
48   memcpy((UINT8*)m_p_ram.target(), user1, 8);
49
5067   m_maincpu->reset();
5168}
5269
53void pt68k4_state::video_start()
70//void pt68k4_state::video_start()
71//{
72//}
73
74//UINT32 pt68k4_state::screen_update_pt68k4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
75//{
76//   return 0;
77//}
78
79READ16_MEMBER( pt68k4_state::status_r )
5480{
81   return 0x8c;
5582}
5683
57UINT32 pt68k4_state::screen_update_pt68k4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
84READ16_MEMBER( pt68k4_state::nop_r )
5885{
5986   return 0;
6087}
6188
89WRITE8_MEMBER( pt68k4_state::kbd_put )
90{
91   m_p_upper[0x64f] = 0x100 | data;
92}
93
94static GENERIC_TERMINAL_INTERFACE( terminal_intf )
95{
96   DEVCB_DRIVER_MEMBER(pt68k4_state, kbd_put)
97};
98
6299static MACHINE_CONFIG_START( pt68k4, pt68k4_state )
63100   /* basic machine hardware */
64101   MCFG_CPU_ADD("maincpu",M68000, XTAL_16MHz)
65102   MCFG_CPU_PROGRAM_MAP(pt68k4_mem)
66103
67
68104   /* video hardware */
69   MCFG_SCREEN_ADD("screen", RASTER)
70   MCFG_SCREEN_REFRESH_RATE(50)
71   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
72   MCFG_SCREEN_SIZE(640, 480)
73   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
74   MCFG_SCREEN_UPDATE_DRIVER(pt68k4_state, screen_update_pt68k4)
75   MCFG_PALETTE_LENGTH(2)
76   MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
105   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
106   //MCFG_SCREEN_ADD("screen", RASTER)
107   //MCFG_SCREEN_REFRESH_RATE(50)
108   //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
109   //MCFG_SCREEN_SIZE(640, 480)
110   //MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
111   //MCFG_SCREEN_UPDATE_DRIVER(pt68k4_state, screen_update_pt68k4)
112   //MCFG_PALETTE_LENGTH(2)
113   //MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
77114MACHINE_CONFIG_END
78115
79116/* ROM definition */
80117ROM_START( pt68k4 )
81   ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF )
118   ROM_REGION16_BE( 0x10000, "roms", 0 )
82119   ROM_SYSTEM_BIOS( 0, "humbug", "Humbug" )
83   ROMX_LOAD( "humpta40.bin", 0x0001, 0x8000, CRC(af67ff64) SHA1(da9fa31338c6847bb0e66118679b1ec01f6dc30b), ROM_SKIP(1) | ROM_BIOS(1))
84   ROMX_LOAD( "humpta41.bin", 0x0000, 0x8000, CRC(a8b16e27) SHA1(218802f6e20d14cff736bb7423f06ce2f66e074c), ROM_SKIP(1) | ROM_BIOS(1))
120   ROMX_LOAD( "humpta40.bin", 0x0000, 0x8000, CRC(af67ff64) SHA1(da9fa31338c6847bb0e66118679b1ec01f6dc30b), ROM_SKIP(1) | ROM_BIOS(1))
121   ROMX_LOAD( "humpta41.bin", 0x0001, 0x8000, CRC(a8b16e27) SHA1(218802f6e20d14cff736bb7423f06ce2f66e074c), ROM_SKIP(1) | ROM_BIOS(1))
85122   ROM_SYSTEM_BIOS( 1, "monk", "Monk" )
86   ROMX_LOAD( "monk_0.bin", 0x0001, 0x8000, CRC(420d6a4b) SHA1(fca8c53c9c3c8ebd09370499cf34f4cc75ed9463), ROM_SKIP(1) | ROM_BIOS(2))
87   ROMX_LOAD( "monk_1.bin", 0x0000, 0x8000, CRC(fc495e82) SHA1(f7b720d87db4d72a23e6c42d2cdd03216db04b60), ROM_SKIP(1) | ROM_BIOS(2))
123   ROMX_LOAD( "monk_0.bin", 0x0000, 0x8000, CRC(420d6a4b) SHA1(fca8c53c9c3c8ebd09370499cf34f4cc75ed9463), ROM_SKIP(1) | ROM_BIOS(2))
124   ROMX_LOAD( "monk_1.bin", 0x0001, 0x8000, CRC(fc495e82) SHA1(f7b720d87db4d72a23e6c42d2cdd03216db04b60), ROM_SKIP(1) | ROM_BIOS(2))
88125ROM_END
89126
90127/* Driver */
91128
92/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT    INIT     COMPANY             FULLNAME       FLAGS */
129/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT   CLASS          INIT     COMPANY             FULLNAME       FLAGS */
93130COMP( 1990, pt68k4,  0,       0,     pt68k4,    pt68k4, driver_device,  0,  "Peripheral Technology", "PT68K4", GAME_NOT_WORKING | GAME_NO_SOUND)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team