summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author rfka01 <rfka01@users.noreply.github.com>2017-12-12 16:56:07 +0100
committer ajrhacker <ajrhacker@users.noreply.github.com>2017-12-12 10:56:07 -0500
commit21490be86e8193cce1599e5c6d026ba8955802f7 (patch)
tree493aa1fe897040be03c3fafdb00466121f14e5f3
parent7e5f86f170aa66dade551acdcadbd65efe53dddc (diff)
alphatp3: Two distinct ROM sets. (#2918)
* alphatp3: Two distinct ROM sets. * alphatp3: removed redundant ROM loading, alphatp2: Two complete P2 ROM sets * alphatp2: info and correct floppy format for P2 * alphatpx: Floppy drives info, P30/P40 info
-rw-r--r--src/mame/drivers/alphatpx.cpp76
1 files changed, 55 insertions, 21 deletions
diff --git a/src/mame/drivers/alphatpx.cpp b/src/mame/drivers/alphatpx.cpp
index fcb3d9de838..67e8751628b 100644
--- a/src/mame/drivers/alphatpx.cpp
+++ b/src/mame/drivers/alphatpx.cpp
@@ -25,15 +25,18 @@ P1
Upper 32K
0x4000 - 0x400a reserved
0x4010 - 0xc000 32K RAM
+1x 160K, single sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drive
P2, P2S
Upper 48K
0x4000 - 0x400a reserved
0x4010 - 0xfff 48K RAM
+P2: 2x 160K, single sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drives
P2 U, paging via
An adapter with RAM at 0x0000 and 0x3fff and the banking logic (see above) is added to the the standard 48K memory card.
16K memory card
+P2S, P2U: 2x 320K, double sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drives
P3, P4
0x0000 - 0x0fff ROM monitor (MOS)
@@ -42,13 +45,16 @@ P3, P4
0x1c00 - 0x2fff free
0x3000 - 0x3fff video memory
0x4000 - 0xffff RAM
-
+P3: 2x785K, double sided, 80 tracks, 5 sectors/track, 1024 bytes/sector floppy disk drives
+P4: 1x785K, double sided, 80 tracks, 5 sectors/track, 1024 bytes/sector floppy disk drive, 1x harddisk 360 tracks, 4 heads, 17 sectors/track, 512 bytes/sector
P2 U and P3 support regular CP/M use with a full 64K RAM complement.
Still, the video RAM is at 0x3000 and 0x3ffff even for these machines, and from what I've read they also use the routine present in the ROM monitor, the MOS.
That means, that in order to update the video RAM and probably other I/O the lower 16K (page 0) are constantly paged in and paged out.
-
This is accomplished by writing 2FH to port 0x78 in order to switch in the ROM (and assorted, see below) area and by writing 63H to port 0x78 in order to swap the full 64K RAM back in.
+
+P30 and P40 were P3 and P4's with an additional 8088 card (some with an extra graphics extension) to support MS-DOS.
+
***************************************************************************/
#include "emu.h"
@@ -323,10 +329,13 @@ INPUT_PORTS_END
// FLOPPY
//**************************************************************************
-static SLOT_INTERFACE_START( alphatp3_floppies )
+static SLOT_INTERFACE_START( alphatp3_floppies ) // two BASF 2471 drives
SLOT_INTERFACE("525qd", FLOPPY_525_QD)
SLOT_INTERFACE_END
+static SLOT_INTERFACE_START( alphatp2_floppies ) // two BASF 6106 drives
+ SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD)
+SLOT_INTERFACE_END
//**************************************************************************
// VIDEO
@@ -558,6 +567,12 @@ static MACHINE_CONFIG_START( alphatp3 )
MCFG_FLOPPY_DRIVE_ADD("fdc:1", alphatp3_floppies, "525qd", floppy_image_device::default_floppy_formats)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED (alphatp2, alphatp3)
+ MCFG_DEVICE_REMOVE("fdc:0")
+ MCFG_DEVICE_REMOVE("fdc:1")
+ MCFG_FLOPPY_DRIVE_ADD("fdc:0", alphatp2_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fdc:1", alphatp2_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
+MACHINE_CONFIG_END
//**************************************************************************
// ROM DEFINITIONS
@@ -566,40 +581,59 @@ MACHINE_CONFIG_END
// Alphatronic P2
ROM_START( alphatp2 ) // P2 ROM space 0x1800
ROM_REGION(0x1800, "boot", 0)
- ROM_SYSTEM_BIOS(0, "p2_es", "p2_es")
- ROMX_LOAD("caap_p2_es.bin", 0x0000, 0x1800, CRC(FBA85CD3) SHA1(E82482AF6D39F892B88868677572898945E02581), ROM_BIOS(1) ) // P2 SPANIEN
- ROM_SYSTEM_BIOS(1, "p2_sks", "p2_sks")
- ROMX_LOAD("mos3-p2_sks.bin", 0x0000, 0x1800, CRC(C045AADB) SHA1(1478530894E1DA53CC96DDB765DD1E03FF3ADEF1), ROM_BIOS(2) ) // P2 sks
- ROM_SYSTEM_BIOS(2, "p2_ta", "p2_ta")
- ROMX_LOAD("prom2p00.bin", 0x0000, 0x0800, CRC(c98d2982) SHA1(11e98ae441b7a9c8dfd22795f8208667959f1d1c), ROM_BIOS(3) ) // P2 TA
- ROMX_LOAD("prom2p01.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9), ROM_BIOS(3) )
- ROMX_LOAD("prom2p02.bin", 0x1000, 0x0800, CRC(f304c3aa) SHA1(92213e77e4e6de12a4eaee25a9c1ec0ab54e93d4), ROM_BIOS(3) )
+ ROM_SYSTEM_BIOS(0, "caap94-96", "caap94-96")
+ ROM_SYSTEM_BIOS(1, "caap04-06", "caap04-06")
+ ROM_SYSTEM_BIOS(2, "p2_es", "p2_es")
+ ROM_SYSTEM_BIOS(3, "p2_sks", "p2_sks")
+ ROM_SYSTEM_BIOS(4, "p2_ta", "p2_ta")
+
+ ROMX_LOAD("caap_96_00_5a.bin", 0x0000, 0x0800, CRC(cb137796) SHA1(876bd0762faffc7b74093922d8fbf1c72ec70060), ROM_BIOS(1) ) // earlier P2, three 16K RAM boards
+ ROMX_LOAD("caap_05_02_12.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9), ROM_BIOS(1) )
+ ROMX_LOAD("caap_94_01_50.bin", 0x1000, 0x0800, CRC(fda8d4a4) SHA1(fa91e6e8504e7f84cf69d86f72826ad5405fd82d), ROM_BIOS(1) )
+
+ ROMX_LOAD("prom2p00.bin", 0x0000, 0x0800, CRC(c98d2982) SHA1(11e98ae441b7a9c8dfd22795f8208667959f1d1c), ROM_BIOS(2) ) // later P2, one 48K RAM board
+ ROMX_LOAD("prom2p01.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9), ROM_BIOS(2) )
+ ROMX_LOAD("prom2p02.bin", 0x1000, 0x0800, CRC(f304c3aa) SHA1(92213e77e4e6de12a4eaee25a9c1ec0ab54e93d4), ROM_BIOS(2) )
+
+ ROMX_LOAD("caap_p2_es.bin", 0x0000, 0x1800, CRC(FBA85CD3) SHA1(E82482AF6D39F892B88868677572898945E02581), ROM_BIOS(3) ) // P2 Spain
+
+ ROMX_LOAD("mos3-p2_sks.bin", 0x0000, 0x1800, CRC(C045AADB) SHA1(1478530894E1DA53CC96DDB765DD1E03FF3ADEF1), ROM_BIOS(4) ) // P2 sks
+
+ ROMX_LOAD("prom2p00.bin", 0x0000, 0x0800, CRC(c98d2982) SHA1(11e98ae441b7a9c8dfd22795f8208667959f1d1c), ROM_BIOS(5) ) // P2 TA
+ ROMX_LOAD("prom2p01.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9), ROM_BIOS(5) )
+ ROMX_LOAD("prom2p02.bin", 0x1000, 0x0800, CRC(f304c3aa) SHA1(92213e77e4e6de12a4eaee25a9c1ec0ab54e93d4), ROM_BIOS(5) )
ROM_REGION(0x400, "kbdmcu", 0)
- ROM_LOAD("p3_keyboard_8278.bin", 0x000, 0x400, CRC(5DB00D85) SHA1(0DC8E274A5AECE261EF60494901601C0D8B1EB51)) // borrowed from rfka01 machine #2 until we have a proper dump from a P2
+ ROM_LOAD("p2_keyboard_ip8041a_8278.bin", 0x000, 0x400, CRC(5db00d85) SHA1(0dc8e274a5aece261ef60494901601c0d8b1eb51)) // same across all dumped P2 and P3 machines
ROM_REGION(0x800, "gfx", 0)
- ROM_LOAD("cajp08_01_15.bin", 0x000, 0x800, CRC(4ed11dac) SHA1(9db9b8e0edf471faaddbb5521d6223121146bab8)) // borrowed from rfka01 machine #1 until we have a proper dump from a P2
+ ROMX_LOAD("cajp_97_00_5a.bin", 0x000, 0x800, CRC(aa5eab85) SHA1(2718924f5520e7e9aad635786847e78e3096b285), ROM_BIOS(1))
+ ROMX_LOAD("cajp_01_01_28.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d), ROM_BIOS(2))
+ ROMX_LOAD("cajp_01_01_28.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d), ROM_BIOS(3))
+ ROMX_LOAD("cajp_01_01_28.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d), ROM_BIOS(4))
+ ROMX_LOAD("cajp_01_01_28.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d), ROM_BIOS(5))
ROM_END
// Alphatronic P3
ROM_START( alphatp3 )
ROM_REGION(0x1800, "boot", 0) // P3 ROM space 0x1000
- ROM_LOAD("caap36_02_19.bin", 0x0000, 0x1000, CRC(23df6666) SHA1(5ea04cd299dec9951425eb91ecceb4818c4c6378)) // identical between rfka01 #1 and #2
-
+ ROM_SYSTEM_BIOS(0, "gx347", "gx347") // earlier P3, seperate 48K and 16K RAM boards
+ ROM_SYSTEM_BIOS(1, "lb352", "lb352") // later P3, one 64K RAM board
+
+ ROM_LOAD("caap36_02_19.bin", 0x0000, 0x1000, CRC(23df6666) SHA1(5ea04cd299dec9951425eb91ecceb4818c4c6378) ) // identical between earlier and later P3
+ // BIOS names taken from CPU card labels
ROM_REGION(0x400, "kbdmcu", 0)
-// ROM_LOAD("p3_keyboard_mab8041a.bin", 0x000, 0x400, CRC(4fd60dc1) SHA1(165f0c5afdef37385d06cf5caeae8422536de7fc)) // rfka01 machine #1
- ROM_LOAD("p3_keyboard_8278.bin", 0x000, 0x400, CRC(5DB00D85) SHA1(0DC8E274A5AECE261EF60494901601C0D8B1EB51)) // rfka01 machine #2
+ ROM_LOAD("p3_keyboard_8278.bin", 0x000, 0x400, CRC(5db00d85) SHA1(0dc8e274a5aece261ef60494901601c0d8b1eb51) )
ROM_REGION(0x800, "gfx", 0)
- // ROM_LOAD("cajp08_00_15.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d)) // rfka01 machine #2
- ROM_LOAD("cajp08_01_15.bin", 0x000, 0x800, CRC(4ed11dac) SHA1(9db9b8e0edf471faaddbb5521d6223121146bab8)) // rfka01 machine #1
+ ROMX_LOAD("cajp08_00_15.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d), ROM_BIOS(1) )
+ ROMX_LOAD("cajp08_01_15.bin", 0x000, 0x800, CRC(4ed11dac) SHA1(9db9b8e0edf471faaddbb5521d6223121146bab8), ROM_BIOS(2) )
ROM_END
// Alphatronic P30
ROM_START( alphatp30 ) // P30 add-on card with 8088 needs to be emulated to boot DOS
ROM_REGION(0x1800, "boot", 0)
- ROM_LOAD("hasl17.07.84.bin", 0x0000, 0x1000, CRC(6A91701B) SHA1(8A4F925D0FABAB37852A54D04E06DEB2AEAA349C)) // netmercer EPRom P30 ...wait for INT6.5 or INT5.5 with RIM to write char in hsync or hsync GAP-time !!
+ ROM_LOAD("hasl17.07.84.bin", 0x0000, 0x1000, CRC(6A91701B) SHA1(8A4F925D0FABAB37852A54D04E06DEB2AEAA349C)) // netmercer Eprom P30 ...wait for INT6.5 or INT5.5 with RIM to write char in hsync or hsync GAP-time !!
ROM_REGION(0x400, "kbdmcu", 0)
ROM_LOAD("p3_keyboard_8278.bin", 0x000, 0x400, CRC(5DB00D85) SHA1(0DC8E274A5AECE261EF60494901601C0D8B1EB51)) // borrowed from rfka01 machine #2
@@ -616,6 +650,6 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 198?, alphatp2, alphatp3, 0, alphatp3, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+COMP( 198?, alphatp2, alphatp3, 0, alphatp2, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
COMP( 1982, alphatp3, 0, 0, alphatp3, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
COMP( 198?, alphatp30, alphatp3, 0, alphatp3, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P30",MACHINE_NOT_WORKING | MACHINE_NO_SOUND )