bbc: added Torch computer (preliminary)

This commit is contained in:
Nigel Barnes 2015-12-29 19:51:53 +00:00
parent c5591b3010
commit be27191a1a
6 changed files with 250 additions and 18 deletions

View File

@ -352,7 +352,55 @@ const bbc_cpm_format::format bbc_cpm_format::formats[] =
{}
};
bbc_cpn_format::bbc_cpn_format() : wd177x_format(formats)
{
}
const char *bbc_cpn_format::name() const
{
return "cpn";
}
const char *bbc_cpn_format::description() const
{
return "Torch CPN disk image";
}
const char *bbc_cpn_format::extensions() const
{
return "dsd";
}
int bbc_cpn_format::identify(io_generic *io, UINT32 form_factor)
{
int type = find_size(io, form_factor);
if(type != -1)
return 50;
return 0;
}
int bbc_cpn_format::get_image_offset(const format &f, int head, int track)
{
if (f.sector_base_id == -1)
return (track * f.head_count + head) * compute_track_size(f);
else
return (f.track_count * head + track) * compute_track_size(f);
}
const bbc_cpn_format::format bbc_cpn_format::formats[] =
{
{ // 400k 80 track double sided single density (interleaved) - gaps unverified
floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
4000, 10, 80, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9 }, 40, 10, 10
},
{}
};
const floppy_format_type FLOPPY_BBC_DFS_FORMAT = &floppy_image_format_creator<bbc_dfs_format>;
const floppy_format_type FLOPPY_BBC_ADFS_FORMAT = &floppy_image_format_creator<bbc_adfs_format>;
const floppy_format_type FLOPPY_BBC_DOS_FORMAT = &floppy_image_format_creator<bbc_dos_format>;
const floppy_format_type FLOPPY_BBC_CPM_FORMAT = &floppy_image_format_creator<bbc_cpm_format>;
const floppy_format_type FLOPPY_BBC_CPN_FORMAT = &floppy_image_format_creator<bbc_cpn_format>;

View File

@ -78,10 +78,26 @@ private:
static const format formats[];
};
class bbc_cpn_format : public wd177x_format
{
public:
bbc_cpn_format();
virtual int identify(io_generic *io, UINT32 form_factor);
virtual int get_image_offset(const format &f, int head, int track);
virtual const char *name() const;
virtual const char *description() const;
virtual const char *extensions() const;
private:
static const format formats[];
};
extern const floppy_format_type FLOPPY_BBC_DFS_FORMAT;
extern const floppy_format_type FLOPPY_BBC_ADFS_FORMAT;
extern const floppy_format_type FLOPPY_BBC_DOS_FORMAT;
extern const floppy_format_type FLOPPY_BBC_CPM_FORMAT;
extern const floppy_format_type FLOPPY_BBC_CPN_FORMAT;
#endif // __BBC_DSK_H__

View File

@ -32,7 +32,7 @@
Acorn Business Computer
ABC110 - 64K, 10MB HDD, Z80, CP/M 2.2
ABC110 - 64K, 10MB HDD, Z80, CP/M 2.2
ABC210/ACW443 - 4096K, 20MB HDD, 32016, PanOS
ABC310 - 1024K, 10MB HDD, 80286, DOS 3.1/GEM
@ -386,13 +386,13 @@ static INPUT_PORTS_START(bbc_keyboard)
PORT_START("COL9")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DELETE") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("COPY") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END))
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
PORT_START("BRK")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BREAK") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12)) PORT_CHANGED_MEMBER(DEVICE_SELF, bbc_state, trigger_reset, 0)
@ -441,6 +441,49 @@ static INPUT_PORTS_START(bbc_keypad)
INPUT_PORTS_END
static INPUT_PORTS_START(torch_keyboard)
PORT_MODIFY("COL9")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MOVE LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LOWERCASE") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UPPERCASE") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DELETE THIS") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MOVE PAST") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END))
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MOVE RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
PORT_MODIFY("COL10")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad +") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD))
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad /") PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD))
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad #") PORT_CODE(KEYCODE_NUMLOCK) PORT_CHAR(UCHAR_MAMEKEY(NUMLOCK))
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 0") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
PORT_MODIFY("COL11")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 7") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 9") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad -") PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad DELETE") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD))
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad *") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK))
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 1") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 5") PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
PORT_MODIFY("COL12")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad RETURN") PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD))
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad .") PORT_CODE(KEYCODE_STOP) PORT_CHAR(UCHAR_MAMEKEY(STOP))
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad ,") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(UCHAR_MAMEKEY(COMMA))
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 3") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD))
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
INPUT_PORTS_END
static INPUT_PORTS_START(bbc_dipswitch)
PORT_MODIFY("COL2")
PORT_DIPNAME(0x01, 0x01, "Default File System") PORT_DIPLOCATION("KBD:1")
@ -651,6 +694,13 @@ static INPUT_PORTS_START(bbcbp)
PORT_INCLUDE(bbc_joy)
INPUT_PORTS_END
static INPUT_PORTS_START(torch)
PORT_INCLUDE(bbc_keyboard)
PORT_INCLUDE(torch_keyboard)
PORT_INCLUDE(bbcb_links)
PORT_INCLUDE(bbc_joy)
INPUT_PORTS_END
static INPUT_PORTS_START(abc)
PORT_INCLUDE(bbc_keyboard)
PORT_INCLUDE(bbc_keypad)
@ -684,6 +734,7 @@ WRITE_LINE_MEMBER(bbc_state::bbcb_acia6850_irq_w)
FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_bbc )
FLOPPY_BBC_DFS_FORMAT,
FLOPPY_BBC_CPM_FORMAT,
FLOPPY_BBC_CPN_FORMAT,
FLOPPY_FSD_FORMAT
FLOPPY_FORMATS_END
@ -691,6 +742,7 @@ FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_bbcm )
FLOPPY_BBC_DFS_FORMAT,
FLOPPY_BBC_ADFS_FORMAT,
FLOPPY_BBC_CPM_FORMAT,
FLOPPY_BBC_CPN_FORMAT,
FLOPPY_BBC_DOS_FORMAT,
FLOPPY_FSD_FORMAT
FLOPPY_FORMATS_END
@ -879,6 +931,14 @@ static MACHINE_CONFIG_DERIVED( bbcb, bbca )
MCFG_FLOPPY_DRIVE_ADD("i8271:1", bbc_floppies_525, "qd", bbc_state::floppy_formats_bbc)
MCFG_FLOPPY_DRIVE_SOUND(true)
/* econet */
MCFG_DEVICE_ADD("mc6854", MC6854, 0)
MCFG_MC6854_OUT_TXD_CB(DEVWRITELINE(ECONET_TAG, econet_device, data_w))
MCFG_ECONET_ADD()
MCFG_ECONET_CLK_CALLBACK(WRITELINE(bbc_state, econet_clk_w))
MCFG_ECONET_DATA_CALLBACK(DEVWRITELINE("mc6854", mc6854_device, set_rx))
MCFG_ECONET_SLOT_ADD("econet254", 254, econet_devices, NULL)
/* software lists */
MCFG_SOFTWARE_LIST_ADD("cass_ls_b", "bbcb_cass")
MCFG_SOFTWARE_LIST_ADD("flop_ls_b", "bbcb_flop")
@ -958,6 +1018,46 @@ static MACHINE_CONFIG_DERIVED( bbcbp128, bbcb1770 )
MACHINE_CONFIG_END
/***************************************************************************
Torch Computers
****************************************************************************/
static MACHINE_CONFIG_DERIVED( torchf, bbcb )
/* basic machine hardware */
MCFG_MACHINE_START_OVERRIDE(bbc_state, torch)
MCFG_MACHINE_RESET_OVERRIDE(bbc_state, torch)
/* Add Torch Z80 Communicator co-processor */
/* software lists */
MCFG_SOFTWARE_LIST_ADD("flop_ls_torch", "bbc_torch_flop")
MCFG_SOFTWARE_LIST_REMOVE("flop_ls_z80")
MCFG_SOFTWARE_LIST_REMOVE("flop_ls_32016")
MCFG_SOFTWARE_LIST_REMOVE("flop_ls_68000")
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( torchh10, torchf )
/* fdc */
MCFG_DEVICE_REMOVE("i8271:1")
/* Add 10MB HDD */
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( torchh21, torchf )
/* fdc */
MCFG_DEVICE_REMOVE("i8271:1")
/* Add 21MB HDD */
MACHINE_CONFIG_END
/***************************************************************************
Acorn Business Computers
@ -1523,10 +1623,10 @@ ROM_START(bbcb_us)
ROM_DEFAULT_BIOS("os10b3")
ROM_SYSTEM_BIOS( 0, "os10b3", "OS A1.0 / BASIC3" )
ROMX_LOAD("usmos10.rom", 0x40000, 0x4000, CRC(c8e946a9) SHA1(83d91d089dca092d2c8b7c3650ff8143c9069b89), ROM_BIOS(1))
ROMX_LOAD("usbasic3.rom", 0x3c000, 0x4000, CRC(161b9539) SHA1(b39014610a968789afd7695aa04d1277d874405c), ROM_BIOS(1)) /* rom page 15 3c000 */
ROMX_LOAD("usbasic3.rom", 0x38000, 0x4000, CRC(161b9539) SHA1(b39014610a968789afd7695aa04d1277d874405c), ROM_BIOS(1)) /* rom page 15 3c000 */
ROM_LOAD("viewa210.rom", 0x30000, 0x4000, CRC(4345359f) SHA1(88c93df1854f5fbe6cd6e5f0e29a8bf4ea3b5614))
ROM_LOAD("usdnfs10.rom", 0x38000, 0x4000, CRC(7e367e8c) SHA1(161f585dc45665ea77433c84afd2f95049f7f5a0))
ROM_LOAD("usdnfs10.rom", 0x34000, 0x4000, CRC(7e367e8c) SHA1(161f585dc45665ea77433c84afd2f95049f7f5a0))
ROM_REGION(0x4000, "os", 0)
ROM_COPY("option", 0x40000, 0, 0x4000)
@ -1536,6 +1636,42 @@ ROM_START(bbcb_us)
ROM_END
ROM_START(torchf)
ROM_REGION(0x08000,"maincpu",ROMREGION_ERASEFF) /* RAM */
ROM_REGION(0x44000,"option",0) /* ROM */
/* rom page 12 30000 IC52 BASIC */
/* rom page 13 34000 IC88 DNFS */
/* rom page 14 38000 IC100 CPN */
/* rom page 15 3c000 IC101 SPARE SOCKET */
ROM_LOAD("os12.rom", 0x40000, 0x4000, CRC(3c14fc70) SHA1(0d9bcaf6a393c9ce2359ed700ddb53c232c2c45d)) /* os */
ROM_LOAD("basic2.rom", 0x0c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281))
ROM_LOAD("dnfs120-201666.rom", 0x34000, 0x4000, CRC(8ccd2157) SHA1(7e3c536baeae84d6498a14e8405319e01ee78232))
ROM_DEFAULT_BIOS("mcp120cbl")
ROM_SYSTEM_BIOS( 0, "mcp120cbl", "MCP120CBL" )
ROMX_LOAD("mcp120cbl.rom", 0x38000, 0x4000, CRC(851d0879) SHA1(2e54ef15692ba7dd9fcfd1ef0d660464a772b156), ROM_BIOS(1))
ROM_SYSTEM_BIOS( 1, "mcp041cbl", "MCP041CBL" )
ROMX_LOAD("mcp041cbl.rom", 0x38000, 0x4000, CRC(b36f07f4) SHA1(bd53f09bf73357845a6f97df1ee9e5aea5cdca90), ROM_BIOS(2))
ROM_SYSTEM_BIOS( 2, "cpn071", "CPN71+" )
ROMX_LOAD("cpn071.rom", 0x38000, 0x2000, CRC(fcb1bdc8) SHA1(756e22f6d76eb26206765f92c78c7152944102b6), ROM_BIOS(3))
ROM_RELOAD( 0x3a000, 0x2000 )
ROM_REGION(0x4000, "os", 0)
ROM_COPY("option", 0x40000, 0, 0x4000)
ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
ROM_LOAD("phrom_us.bin", 0x0000, 0x4000, CRC(bf4b3b64) SHA1(66876702d1d95eecc034d20f25047f893a27cde5))
ROM_END
#define rom_torchh10 rom_torchf
#define rom_torchh21 rom_torchf
ROM_START(bbcbp)
ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
@ -1558,7 +1694,7 @@ ROM_START(bbcbp)
/* rom page 11 2c000 IC68 SPARE SOCKET */
/* rom page 12 30000 SWRAM (B+ 128K only) */
/* rom page 13 34000 SWRAM (B+ 128K only) */
/* rom page 14 38000 32K IN PAGE 15 */
/* rom page 14 38000 IC71 32K IN PAGE 15 */
/* rom page 15 3C000 IC71 BASIC */
ROM_LOAD("adfs130.rom", 0x14000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
ROM_LOAD("ddfs223.rom", 0x1c000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
@ -1693,11 +1829,11 @@ ROM_START(bbcm)
ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
ROM_REGION(0x44000,"option",0) /* ROM */
ROM_DEFAULT_BIOS("mos350")
ROM_SYSTEM_BIOS( 0, "mos350", "Enhanced MOS 3.50" )
ROMX_LOAD("mos350.ic24", 0x20000, 0x20000, CRC(141027b9) SHA1(85211b5bc7c7a269952d2b063b7ec0e1f0196803), ROM_BIOS(1))
ROM_SYSTEM_BIOS( 1, "mos320", "Original MOS 3.20" )
ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0f747ebe) SHA1(eacacbec3892dc4809ad5800e6c8299ff9eb528f), ROM_BIOS(2))
ROM_DEFAULT_BIOS("mos320")
ROM_SYSTEM_BIOS( 0, "mos320", "Original MOS 3.20" )
ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0f747ebe) SHA1(eacacbec3892dc4809ad5800e6c8299ff9eb528f), ROM_BIOS(1))
ROM_SYSTEM_BIOS( 1, "mos350", "Enhanced MOS 3.50" )
ROMX_LOAD("mos350.ic24", 0x20000, 0x20000, CRC(141027b9) SHA1(85211b5bc7c7a269952d2b063b7ec0e1f0196803), ROM_BIOS(2))
ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */
ROM_FILL(0x20000, 0x4000, 0xFFFF)
/* 00000 rom 0 SK3 Rear Cartridge bottom 16K */
@ -1951,15 +2087,18 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
COMP ( 1981, bbcb, 0, bbca, bbcb, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B w/8271 FDC", MACHINE_IMPERFECT_GRAPHICS)
COMP ( 1981, bbca, bbcb, 0, bbca, bbca, bbc_state, bbc, "Acorn", "BBC Micro Model A", MACHINE_IMPERFECT_GRAPHICS)
COMP ( 1982, torchf, bbcb, 0, torchf, torch, bbc_state, bbc, "Torch", "Torch CF240", MACHINE_IMPERFECT_KEYBOARD | MACHINE_NOT_WORKING)
COMP ( 1982, torchh10, bbcb, 0, torchh10, torch, bbc_state, bbc, "Torch", "Torch CH240/10", MACHINE_IMPERFECT_KEYBOARD | MACHINE_NOT_WORKING)
COMP ( 1982, torchh21, bbcb, 0, torchh21, torch, bbc_state, bbc, "Torch", "Torch CH240/21", MACHINE_IMPERFECT_KEYBOARD | MACHINE_NOT_WORKING)
COMP ( 1982, bbcb_de, bbcb, 0, bbcb_de, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B (German)", MACHINE_IMPERFECT_GRAPHICS)
COMP ( 1983, bbcb_us, bbcb, 0, bbcb_us, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B (US)", MACHINE_IMPERFECT_GRAPHICS)
COMP ( 1984, bbcb1770, bbcb, 0, bbcb1770, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B w/1770 FDC", MACHINE_IMPERFECT_GRAPHICS)
COMP ( 1985, bbcbp, 0, bbcb, bbcbp, bbcbp, bbc_state, bbc, "Acorn", "BBC Micro Model B+ 64K", MACHINE_IMPERFECT_GRAPHICS)
COMP ( 1985, bbcbp128, bbcbp, 0, bbcbp128, bbcbp, bbc_state, bbc, "Acorn", "BBC Micro Model B+ 128K", MACHINE_IMPERFECT_GRAPHICS)
COMP ( 1985, acw443, 0, 0, acw443, abc, bbc_state, bbc, "Acorn", "ABC 210/Cambridge Workstation", MACHINE_NOT_WORKING)
COMP ( 1985, abc110, acw443, 0, abc110, abc, bbc_state, bbc, "Acorn", "ABC 110", MACHINE_NOT_WORKING)
COMP ( 1985, abc310, acw443, 0, abc310, abc, bbc_state, bbc, "Acorn", "ABC 310", MACHINE_NOT_WORKING)
COMP ( 1985, reutapm, 0, 0, reutapm, bbcb, bbc_state, bbc, "Acorn", "Reuters APM", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
COMP ( 1985, acw443, bbcbp, 0, acw443, abc, bbc_state, bbc, "Acorn", "ABC 210/Cambridge Workstation", MACHINE_NOT_WORKING)
COMP ( 1985, abc110, bbcbp, 0, abc110, abc, bbc_state, bbc, "Acorn", "ABC 110", MACHINE_NOT_WORKING)
COMP ( 1985, abc310, bbcbp, 0, abc310, abc, bbc_state, bbc, "Acorn", "ABC 310", MACHINE_NOT_WORKING)
COMP ( 1985, reutapm, bbcbp, 0, reutapm, bbcb, bbc_state, bbc, "Acorn", "Reuters APM", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING)
COMP ( 1986, bbcm, 0, bbcb, bbcm, bbcm, bbc_state, bbc, "Acorn", "BBC Master 128", MACHINE_IMPERFECT_GRAPHICS)
COMP ( 1986, bbcmt, bbcm, 0, bbcmt, bbcm, bbc_state, bbc, "Acorn", "BBC Master Turbo", MACHINE_NOT_WORKING)
COMP ( 1986, bbcmaiv, bbcm, 0, bbcmaiv, bbcm, bbc_state, bbc, "Acorn", "BBC Master AIV", MACHINE_NOT_WORKING)

View File

@ -138,6 +138,9 @@ public:
DECLARE_MACHINE_RESET(bbcb);
DECLARE_VIDEO_START(bbcb);
DECLARE_MACHINE_START(torch);
DECLARE_MACHINE_RESET(torch);
DECLARE_MACHINE_START(bbcbp);
DECLARE_MACHINE_RESET(bbcbp);
DECLARE_VIDEO_START(bbcbp);

View File

@ -1771,6 +1771,29 @@ MACHINE_RESET_MEMBER(bbc_state, bbcb)
}
MACHINE_START_MEMBER(bbc_state, torch)
{
m_machinetype = MODELB;
m_mc6850_clock = 0;
bbc_setup_banks(m_bank4, 16, 0, 0x4000);
}
MACHINE_RESET_MEMBER(bbc_state, torch)
{
UINT8 *RAM = m_region_maincpu->base();
m_Speech = 1;
m_SWRAMtype = 0;
m_bank1->set_base(RAM);
m_bank3->set_base(RAM + 0x4000);
m_memorySize=32;
m_bank4->set_entry(0);
m_bank7->set_base(m_region_os->base()); /* bank 7 points at the OS rom from c000 to ffff */
bbcb_IC32_initialise(this);
}
MACHINE_START_MEMBER(bbc_state, bbcbp)
{
m_machinetype = BPLUS;

View File

@ -344,12 +344,16 @@ sc55 // 1991 Sound Canvas SC-55
// Acorn
acrnsys1 // 1979 Acorn System 1 (Microcomputer Kit)
a6809
atom // 1979 Acorn Atom
atomeb // 1979 Acorn Atom
atombb // 1979 Acorn Atom
//prophet2
bbca // 1981 BBC Micro Model A
bbcb // 1981 BBC Micro Model B w/8271 FDC
torchf // 1982 Torch CF240
torchh10 // 1982 Torch CH240/10
torchh21 // 1982 Torch CH240/21
bbcb_de // 1982 BBC Micro Model B (German)
bbcb_us // 1983 BBC Micro Model B (US)
electron // 1983 Acorn Electron
@ -375,7 +379,6 @@ a3010 // 1988 Acorn Archimedes 3010
a3020 // 1988 Acorn Archimedes 3020
a7000 // 1995 Acorn Archimedes 7000
a7000p // 1997 Acorn Archimedes 7000+
a6809
rpc600
rpc700
sarpc