From 784454336344d1a4596565034b1a0152f5f2d975 Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Wed, 5 Feb 2025 15:36:57 +0100 Subject: [PATCH 1/5] Add a skeleton driver for IBM InfoWindow 3477 New systems marked not working ------------------------------ IBM InfoWindow 3477 [OldComputers ES] --- src/mame/ibm/ibm3477.cpp | 118 +++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 + 2 files changed, 121 insertions(+) create mode 100644 src/mame/ibm/ibm3477.cpp diff --git a/src/mame/ibm/ibm3477.cpp b/src/mame/ibm/ibm3477.cpp new file mode 100644 index 0000000000000..0b3075965de1c --- /dev/null +++ b/src/mame/ibm/ibm3477.cpp @@ -0,0 +1,118 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/******************************************************************************* + +Skeleton driver for IBM InfoWindow 3477 terminal. + + ______________ ________ + ___________________| |_________| |_______________________ + | |_____________| |_______| | + | BATTERY ______ _____ | + | |_____| |____| | + | ____________ ___ ___ ___ ___ | + | _________ |38F5768 | | <-SN74LS74AN | | | | + | CXK58257M-10LL |TC110G17AF | | | | <-SN75112N | | + | | | | | | | | | | <-SN7510BN| + | ____ ____ | | |__| |__| |__| |__| | + | |___| |___| |___________| _________ ____ | + |____ CXK58257M-10LL |___| | + | ______ ______ _________ ____________ | + | ___ | | | | |AMD | |38F5769 | Xtal | + | | | |EPROM| |EPROM| |N8088-2 | |TC110G26AF | 59.8185 MHz| + | | | | | | | | | | | | + | | | | | | | |________| | | | + ___| |__| | | | | |___________| | + _|__ |_____| |_____| ____ | +| | 10124N-> | | +|___| |||||||||||||||| | | | + | |__| | + | _________________ ___ ___ | + |___________________________| |_|_| | | |___| + |_|_|_|_|_|_|_|_| + +ToDo: +- Everything! + +********************************************************************************/ + +#include "emu.h" +#include "cpu/i86/i86.h" +#include "emupal.h" +#include "screen.h" + + +namespace { + +class ibm3477_state : public driver_device +{ +public: + ibm3477_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_p_chargen(*this, "chargen") + { } + + void ibm3477(machine_config &config); + +private: + virtual void machine_reset() override ATTR_COLD; + void ibm3477_palette(palette_device &palette) const; + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + required_device m_maincpu; + required_region_ptr m_p_chargen; +}; + + +// Input ports +static INPUT_PORTS_START( ibm3477 ) +INPUT_PORTS_END + +uint32_t ibm3477_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void ibm3477_state::ibm3477_palette(palette_device &palette) const +{ + palette.set_pen_color(0, 0, 0, 0); // Black + palette.set_pen_color(1, 0, 255, 0); // Full + palette.set_pen_color(2, 0, 128, 0); // Dimmed +} + +void ibm3477_state::machine_reset() +{ +} + +void ibm3477_state::ibm3477(machine_config &config) +{ + // Basic machine hardware + I8088(config, m_maincpu, 59'818'500 / 10); // Unknown clock + + // Video hardware + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // Not accurate + screen.set_screen_update(FUNC(ibm3477_state::screen_update)); + screen.set_size(640, 240); + screen.set_visarea(0, 639, 0, 239); + screen.set_palette("palette"); + + PALETTE(config, "palette", FUNC(ibm3477_state::ibm3477_palette), 3); +} + +// ROM definition +ROM_START( ibm3477 ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD("pn_38f5843_ibm_30-10-89.zm12", 0x00000, 0x20000, CRC(b07efb93) SHA1(84d245d17828bc4e096e0cae2d066f2209f56a8f) ) + ROM_LOAD("pn_38f5844_ibm_20-10-89.zm13", 0x20000, 0x20000, CRC(05f3c0f6) SHA1(f99096a2f3e97fe1eb540db3f3e620ddccf71bbc) ) + + ROM_REGION( 0x2000, "chargen", 0 ) + ROM_LOAD( "char.bin", 0x0000, 0x2000, NO_DUMP ) // probably inside the video processor +ROM_END + +} // anonymous namespace + + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1998, ibm3477, 0, 0, ibm3477, ibm3477, ibm3477_state, empty_init, "IBM", "IBM InfoWindow 3477", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // Spanish ROMs? diff --git a/src/mame/mame.lst b/src/mame/mame.lst index fb5be0e403dd4..3d99417d77f2d 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -20095,6 +20095,9 @@ husky // DVW Husky @source:ibm/ibm3153.cpp ibm3153 // +@source:ibm/ibm3477.cpp +ibm3477 // IBM InfoWindow 3477 + @source:ibm/ibm5100.cpp ibm5100 ibm5110 From cb1e08efa16137f3c4266c40519c2b607f72608d Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Wed, 5 Feb 2025 17:29:20 +0100 Subject: [PATCH 2/5] Rename palette init method as palette_init --- src/mame/ibm/ibm3477.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mame/ibm/ibm3477.cpp b/src/mame/ibm/ibm3477.cpp index 0b3075965de1c..5aba2c5b5b773 100644 --- a/src/mame/ibm/ibm3477.cpp +++ b/src/mame/ibm/ibm3477.cpp @@ -56,7 +56,7 @@ class ibm3477_state : public driver_device private: virtual void machine_reset() override ATTR_COLD; - void ibm3477_palette(palette_device &palette) const; + void palette_init(palette_device &palette) const; uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device m_maincpu; @@ -73,7 +73,7 @@ uint32_t ibm3477_state::screen_update(screen_device &screen, bitmap_ind16 &bitma return 0; } -void ibm3477_state::ibm3477_palette(palette_device &palette) const +void ibm3477_state::palette_init(palette_device &palette) const { palette.set_pen_color(0, 0, 0, 0); // Black palette.set_pen_color(1, 0, 255, 0); // Full @@ -98,7 +98,7 @@ void ibm3477_state::ibm3477(machine_config &config) screen.set_visarea(0, 639, 0, 239); screen.set_palette("palette"); - PALETTE(config, "palette", FUNC(ibm3477_state::ibm3477_palette), 3); + PALETTE(config, "palette", FUNC(ibm3477_state::palette_init), 3); } // ROM definition @@ -115,4 +115,4 @@ ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1998, ibm3477, 0, 0, ibm3477, ibm3477, ibm3477_state, empty_init, "IBM", "IBM InfoWindow 3477", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // Spanish ROMs? +COMP( 1998, ibm3477, 0, 0, ibm3477, ibm3477, ibm3477_state, empty_init, "IBM", "InfoWindow 3477", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // Spanish ROMs? From 29b70d47f45fe7d943bedf7cf26993dab0f3457b Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Thu, 6 Feb 2025 10:40:14 +0100 Subject: [PATCH 3/5] There is no character ROM --- src/mame/ibm/ibm3477.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/mame/ibm/ibm3477.cpp b/src/mame/ibm/ibm3477.cpp index 5aba2c5b5b773..95546bf39151b 100644 --- a/src/mame/ibm/ibm3477.cpp +++ b/src/mame/ibm/ibm3477.cpp @@ -106,9 +106,6 @@ ROM_START( ibm3477 ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD("pn_38f5843_ibm_30-10-89.zm12", 0x00000, 0x20000, CRC(b07efb93) SHA1(84d245d17828bc4e096e0cae2d066f2209f56a8f) ) ROM_LOAD("pn_38f5844_ibm_20-10-89.zm13", 0x20000, 0x20000, CRC(05f3c0f6) SHA1(f99096a2f3e97fe1eb540db3f3e620ddccf71bbc) ) - - ROM_REGION( 0x2000, "chargen", 0 ) - ROM_LOAD( "char.bin", 0x0000, 0x2000, NO_DUMP ) // probably inside the video processor ROM_END } // anonymous namespace From ebb24e4a9badbe6b3e51d435ac331b79dcfa6d4c Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Thu, 6 Feb 2025 11:33:12 +0100 Subject: [PATCH 4/5] Remove copy-pasted copyright --- src/mame/ibm/ibm3153.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mame/ibm/ibm3153.cpp b/src/mame/ibm/ibm3153.cpp index 2e8025748a68b..eff6f06107528 100644 --- a/src/mame/ibm/ibm3153.cpp +++ b/src/mame/ibm/ibm3153.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Robbbert +// copyright-holders: /*************************************************************************** IBM 3153 Terminal. From 5cf7a25a99e00d0f4a99bbc731fa913a2c7cb4bb Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Sun, 9 Feb 2025 21:43:55 +0100 Subject: [PATCH 5/5] Remove m_p_charge --- src/mame/ibm/ibm3477.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/mame/ibm/ibm3477.cpp b/src/mame/ibm/ibm3477.cpp index 95546bf39151b..d7b6e13e9680c 100644 --- a/src/mame/ibm/ibm3477.cpp +++ b/src/mame/ibm/ibm3477.cpp @@ -49,7 +49,6 @@ class ibm3477_state : public driver_device ibm3477_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_p_chargen(*this, "chargen") { } void ibm3477(machine_config &config); @@ -60,7 +59,6 @@ class ibm3477_state : public driver_device uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device m_maincpu; - required_region_ptr m_p_chargen; };