mirror of
https://github.com/holub/mame
synced 2025-07-02 16:49:22 +03:00
- amstr_pc.cpp: added hardware info for ppc512 / ppc640 [Guru]
- jungleyo.cpp: very minor comments corrections
This commit is contained in:
parent
2eb851f3bc
commit
d7329570d4
@ -2,7 +2,7 @@
|
|||||||
// copyright-holders:Wilbert Pol
|
// copyright-holders:Wilbert Pol
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
drivers/amstr_pc.c
|
drivers/amstr_pc.cpp
|
||||||
|
|
||||||
Driver file for Amstrad PC1512 and related machines.
|
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
|
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"
|
#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/pc_lpt.h"
|
||||||
#include "machine/ram.h"
|
#include "machine/ram.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
class amstrad_pc_state : public driver_device
|
class amstrad_pc_state : public driver_device
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -79,10 +241,10 @@ private:
|
|||||||
|
|
||||||
uint8_t pc200_port378_r(offs_t offset);
|
uint8_t pc200_port378_r(offs_t offset);
|
||||||
uint8_t pc200_port278_r(offs_t offset);
|
uint8_t pc200_port278_r(offs_t offset);
|
||||||
uint8_t pc1640_port378_r(offs_t offset);
|
[[maybe_unused]] uint8_t pc1640_port378_r(offs_t offset);
|
||||||
uint8_t pc1640_port3d0_r(offs_t offset);
|
[[maybe_unused]] uint8_t pc1640_port3d0_r(offs_t offset);
|
||||||
uint8_t pc1640_port4278_r(offs_t offset);
|
[[maybe_unused]] uint8_t pc1640_port4278_r(offs_t offset);
|
||||||
uint8_t pc1640_port278_r(offs_t offset);
|
[[maybe_unused]] uint8_t pc1640_port278_r(offs_t offset);
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
uint8_t x,y; //byte clipping needed
|
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();
|
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_START("DSW0") /* IN1 */
|
||||||
PORT_DIPNAME( 0x07, 0x07, "Name/Language")
|
PORT_DIPNAME( 0x07, 0x07, "Name/Language")
|
||||||
PORT_DIPSETTING( 0x00, "English/less checks" )
|
PORT_DIPSETTING( 0x00, "English/less checks" )
|
||||||
@ -619,8 +781,8 @@ ROM_START( ppc512 )
|
|||||||
// ROM_REGION(0x100000,"bios", 0)
|
// ROM_REGION(0x100000,"bios", 0)
|
||||||
ROM_REGION16_LE(0x10000,"bios", 0)
|
ROM_REGION16_LE(0x10000,"bios", 0)
|
||||||
// special bios at 0xe0000 !?
|
// special bios at 0xe0000 !?
|
||||||
ROM_LOAD16_BYTE("40107.v1", 0xc000, 0x2000, CRC(4e37e769) SHA1(88be3d3375ec3b0a7041dbcea225b197e50d4bfe)) // v1.9
|
ROM_LOAD16_BYTE("40107_v1.ic132", 0xc000, 0x2000, CRC(4e37e769) SHA1(88be3d3375ec3b0a7041dbcea225b197e50d4bfe)) // v1.9
|
||||||
ROM_LOAD16_BYTE("40108.v1", 0xc001, 0x2000, CRC(4f0302d9) SHA1(e4d69ca98c3b98f3705a2902b16746360043f039)) // v1.9
|
ROM_LOAD16_BYTE("40108_v1.ic129", 0xc001, 0x2000, CRC(4f0302d9) SHA1(e4d69ca98c3b98f3705a2902b16746360043f039)) // v1.9
|
||||||
// also mapped to f0000, f4000, f8000
|
// also mapped to f0000, f4000, f8000
|
||||||
ROM_REGION( 0x800, "keyboard", 0 ) // PPC512 / PPC640 / PC200 102-key keyboard
|
ROM_REGION( 0x800, "keyboard", 0 ) // PPC512 / PPC640 / PC200 102-key keyboard
|
||||||
ROM_LOAD( "40112.ic801", 0x000, 0x800, CRC(842a954c) SHA1(93ca6badf20e0215025fe109959eddead8c52f38) )
|
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_LOAD( "40178.ic801", 0x000, 0x800, CRC(f72f1c2e) SHA1(34897e78b3d10f96b36d81778e97c4a9a1b8618b) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
} // Anonymous namespace
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Game driver(s)
|
Game driver(s)
|
||||||
|
Loading…
Reference in New Issue
Block a user