summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2021-01-23 09:12:32 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2021-01-23 09:12:32 +0100
commitd7329570d4b8d92a95ddfc644cf96682272f8f3a (patch)
treea83ff8fa5728c3bb5158af4acfadf431af91b228
parent2eb851f3bce93aa33424f638701c1b4a0a8f52ef (diff)
- amstr_pc.cpp: added hardware info for ppc512 / ppc640 [Guru]
- jungleyo.cpp: very minor comments corrections
-rw-r--r--src/mame/drivers/amstr_pc.cpp181
1 files changed, 173 insertions, 8 deletions
diff --git a/src/mame/drivers/amstr_pc.cpp b/src/mame/drivers/amstr_pc.cpp
index ab656d0a514..5052f8428c8 100644
--- a/src/mame/drivers/amstr_pc.cpp
+++ b/src/mame/drivers/amstr_pc.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Wilbert Pol
/***************************************************************************
- drivers/amstr_pc.c
+ drivers/amstr_pc.cpp
Driver file for Amstrad PC1512 and related machines.
@@ -24,6 +24,165 @@ Amstrad PC1640
More information can be found at http://www.seasip.info/AmstradXT/1640tech/index.html
+***************************************************************************
+
+Amstrad PPC512/PPC640, Amstrad 1987
+Hardware info by Guru
+-----------------------------------
+
+The Amstrad PPC512/PPC640 is an XT-class portable PC with a built in
+mono 9" LCD screen supporting CGA and MDA.
+
+The specification includes:
+- NEC V30 (8086-compatible) 16-bit CPU at 8MHz (Sony CXQ70116P-8)
+- For PPC640, 640k RAM & 64k video memory
+ For PPC512, 512k RAM & 64k video memory. Main RAM can be expanded to 640k
+ by inserting the correct type of DRAMs into the 6 unpopulated locations on the motherboard
+- Integrated display adapter compatible with CGA and MDA
+- Built in mono 640 x 200 pixel 9" LCD screen, tiltable with contrast adjustment
+- 25 pin parallel printer port
+- 25 pin serial port
+- Internal 2400bps modem (PPC640 only, via optional plug-in PCB)
+- Enhanced AT-type keyboard with 101 or 102 keys
+- Single or twin 720k 3 1/2" floppy drive
+- MSDOS 3.3 (bundled with the unit)
+- Speaker with volume control
+- Battery-backed real time clock
+- Socket for 8087 Math Co-processor
+- Socket for external expansion box to accept IBM-compatible expansion cards and hard disk
+- Compartment for 10x alkaline 'C' cells for up to 8 hours of use
+
+
+CPU PCB
+-------
+
+MC0051D
+Z70850
+|-------------------------------------------------------------------|
+| VIDEO PARALLEL SERIAL EXP-B EXP-A |
+| LK2 1489 |
+|DIPSW(6) LK3 28.63636MHz 24MHz |
+| LK1 6845R |------| CX112 |
+| 1.8432MHz | 40104| CX902|
+| INS82C50 |------| |-------| |
+| |40039 | |
+| 1489 1488 | | |
+| LC3664 |------| | | |
+| 6MHz LC3664 |T4750 | |-------| CX901|
+| 40112 LCD-CONN |------| |
+|KEYB1 KEYB2 40109.IC159 |
+| KEYB3 LA4140 LK6 LK7 8087 |
+| LED CONT SPEAKER VOLUME CY903 V30 |
+|-------------------------------------------------------------------|
+Notes:
+ VIDEO - 9 pin D-sub video port
+ PARALLEL - 25 pin D-sub parallel port
+ SERIAL - 25 pin D-sub serial port
+ EXP-B - Expansion port B
+ EXP-A - Expansion port A
+ DIPSW - 6 position DIP switch (up is off, down is on. * = Default)
+ SW1: Display Use
+ ON - Internal LCD *
+ OFF - External monitor
+ SW2: Video Emulation Mode
+ ON - CGA *
+ OFF - MDA
+ SW3: Video Adapter Enable
+ ON - Use internal video adapter *
+ OFF - Use external video adapter in external expansion box
+ SW4,5: Initial Video Mode
+ OFF, OFF - External video card
+ OFF, ON - CGA 40 column
+ ON , OFF - CGA 80 column *
+ ON , ON - MDA 80 column
+ SW6 - Not Used
+ 1488 - MC1488 Quad Line EIA232 Driver
+ 1489 - MC1489 Quad Line EIA232 Receiver
+ INS82C50 - 82C50 UART marked as Amstrad 40049 custom chip. Clock input 1.8432MHz
+ CX112 - Jumper to configure 40039 gate array to address either 512k or 640k RAM (sometimes marked LK5)
+ 6845R - UMC UM6845R CRT Controller. Clock input on pin 21 unknown (comes from the 40104 custom chip)
+ 40104 - VDU/LCD custom gate array LCD controller
+ 40039 - Bus controller custom gate array marked as Amstrad 40039 custom chip. Clock input 24.000MHz. This chip generates the 8MHz for the CPU.
+ T4750 - DMA/Programmable Interrupt Controller/Programmable Timer custom chip
+ 40112 - Keyboard controller (likely i8049/i8051) marked as Amstrad 40012 custom chip. Clock input 6.000MHz
+ LCD-CONN - Multi pin connector for LCD screen
+ KEYB1 - 5 pin connector for keyboard caps lock, scroll lock and num lock keys, plus VCC and GND
+ KEYB2 - Multi pin connector for keyboard matrix
+ KEYB3 - Multi pin connector for keyboard matrix
+ CX901/902 - Connectors joining to optional modem PCB
+ LED - Connector for power-on LEDs
+ CONT - Connector for LCD screen contrast adjustment
+ LA4140 - Sanyo LA4140 0.5W audio power amplifier IC
+ SPEAKER - Connector for PC speaker
+ VOLUME - Connector for audio volume knob
+ LC3664 - Sanyo LC3664 8kx8-bit Static RAM
+ 40109.IC159 - 8kx8-bit character ROM. Compatible with 2764 EPROM
+ Font selection is set with LK6 & LK7
+ CY903 - Multi pin connector for connection to memory/power PCB
+ 8087 - Socket for i8087-2 Numeric Data Processor (math coprocessor). Clock input 8.000MHz
+ V30 - NEC V30 CPU (Sony CXQ70116P-8). Clock input 8.000MHz
+ LK1/LK2/LK3 - Jumpers to set language selection (off = open, on = short)
+ LK1 LK2 LK3
+ OFF OFF OFF English
+ OFF OFF ON German
+ OFF ON OFF French
+ OFF ON ON Spanish
+ ON OFF OFF Danish
+ ON OFF ON Swedish
+ ON ON OFF Italian
+ ON ON ON Diagnostic Mode
+ LK6/LK7 - Jumpers to set font selection in ROM (off = open, on = short)
+ LK6 LK7
+ OFF OFF Normal : Codepage 437
+ OFF ON Norwegian : Codepage 865
+ ON OFF Portugese : Codepage 860
+ ON ON Greek : Codepage unknown but will be 869 or 851 or 737
+
+
+MEMORY / POWER PCB
+------------------
+
+MC0052D
+Z70851
+|----------------------------------------------------------------|
+| NE556 KBSW BATSW POWER |
+| 41256 41256 X 41256 41256 |
+| |
+| 41256 41256 X 41256 41256 |
+| |
+|FD UM8272A 41256 41256 X 41256 41256 |
+| |
+| 16MHz 41256 41256 X 41256 41256 |
+| SED9420 |
+| LK4 41256Y |
+|---------------| |-------| |
+ | |40040 | 40108.IC129 Y |
+ | | | |
+ | | | 40107.IC132 41256Y |
+ | 32.768kHz |-------| |
+ | MC146818 Y |
+ | FDDLED CX903 |
+ |------------------------------------------------|
+Notes:
+ FD - 34 pin floppy drive cable
+ FDDLED - Connector for floppy drive activity LED for drives A: and B:
+ POWER - Connector for mains power input
+ SED9420 - EPSON SED9420 data separator for FDD. Clock input 16.000MHz
+ UM8272A - UMC UM8272A floppy drive controller (pin compatible with uPD765)
+ 41256 - Samsung KM41256AP-15 256kx1-bit DRAM
+ 41256Y - Samsung KM41256AP-15 256kx1-bit DRAM used as parity RAM
+ X - Unpopulated location for 64kx4-bit DRAM (additional 128k expansion to give 640kb main RAM for PPC512)
+ Y - Unpopulated location for 256kx1-bit DRAM (additional parity RAM to support the additional 128k RAM)
+ LK4 - Jumper to set physical main RAM present on the PCB to either 512k or 640k
+ 40108.IC129 - BIOS ROM. Compatible with 2764 EPROM
+ 40107.IC132 - BIOS ROM. Compatible with 2764 EPROM
+ CX903 - Multi pin connector for connection to CPU PCB. The connector is located on the solder side of this PCB.
+ 40040 - Memory controller gate array marked as Amstrad 40040 custom chip
+ NE556 - NE556 Dual Timer
+ MC146818 - Motorola MC146818 Real Time Clock
+ KBSW - Connector for keyboard open/close detect switch
+ BATSW - Connector for battery/mains power detect switch
+
***************************************************************************/
#include "emu.h"
@@ -41,6 +200,9 @@ More information can be found at http://www.seasip.info/AmstradXT/1640tech/index
#include "machine/pc_lpt.h"
#include "machine/ram.h"
+
+namespace {
+
class amstrad_pc_state : public driver_device
{
public:
@@ -79,10 +241,10 @@ private:
uint8_t pc200_port378_r(offs_t offset);
uint8_t pc200_port278_r(offs_t offset);
- uint8_t pc1640_port378_r(offs_t offset);
- uint8_t pc1640_port3d0_r(offs_t offset);
- uint8_t pc1640_port4278_r(offs_t offset);
- uint8_t pc1640_port278_r(offs_t offset);
+ [[maybe_unused]] uint8_t pc1640_port378_r(offs_t offset);
+ [[maybe_unused]] uint8_t pc1640_port3d0_r(offs_t offset);
+ [[maybe_unused]] uint8_t pc1640_port4278_r(offs_t offset);
+ [[maybe_unused]] uint8_t pc1640_port278_r(offs_t offset);
struct {
uint8_t x,y; //byte clipping needed
@@ -404,7 +566,7 @@ void amstrad_pc_state::pc1640_mouse_y_w(uint8_t data)
m_mouse.y = data + ioport("pc_mouse_y")->read();
}
-static INPUT_PORTS_START( pc200 )
+static INPUT_PORTS_START( pc200 ) // TODO: PPC512/PPC640 DSW differ, see readme at the top of the file
PORT_START("DSW0") /* IN1 */
PORT_DIPNAME( 0x07, 0x07, "Name/Language")
PORT_DIPSETTING( 0x00, "English/less checks" )
@@ -619,8 +781,8 @@ ROM_START( ppc512 )
// ROM_REGION(0x100000,"bios", 0)
ROM_REGION16_LE(0x10000,"bios", 0)
// special bios at 0xe0000 !?
- ROM_LOAD16_BYTE("40107.v1", 0xc000, 0x2000, CRC(4e37e769) SHA1(88be3d3375ec3b0a7041dbcea225b197e50d4bfe)) // v1.9
- ROM_LOAD16_BYTE("40108.v1", 0xc001, 0x2000, CRC(4f0302d9) SHA1(e4d69ca98c3b98f3705a2902b16746360043f039)) // v1.9
+ ROM_LOAD16_BYTE("40107_v1.ic132", 0xc000, 0x2000, CRC(4e37e769) SHA1(88be3d3375ec3b0a7041dbcea225b197e50d4bfe)) // v1.9
+ ROM_LOAD16_BYTE("40108_v1.ic129", 0xc001, 0x2000, CRC(4f0302d9) SHA1(e4d69ca98c3b98f3705a2902b16746360043f039)) // v1.9
// also mapped to f0000, f4000, f8000
ROM_REGION( 0x800, "keyboard", 0 ) // PPC512 / PPC640 / PC200 102-key keyboard
ROM_LOAD( "40112.ic801", 0x000, 0x800, CRC(842a954c) SHA1(93ca6badf20e0215025fe109959eddead8c52f38) )
@@ -663,6 +825,9 @@ ROM_START( pc3086 )
ROM_LOAD( "40178.ic801", 0x000, 0x800, CRC(f72f1c2e) SHA1(34897e78b3d10f96b36d81778e97c4a9a1b8618b) )
ROM_END
+} // Anonymous namespace
+
+
/***************************************************************************
Game driver(s)