mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Cleaned up some recent changes.
This commit is contained in:
parent
5b2ab244d1
commit
d5399553bc
@ -3313,9 +3313,9 @@ void upd72069_device::auxcmd_w(uint8_t data)
|
||||
}
|
||||
|
||||
|
||||
hd63266f_device::hd63266f_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock)
|
||||
: upd765_family_device(mconfig, HD63266F, tag, owner, clock)
|
||||
, inp_cb(*this)
|
||||
hd63266f_device::hd63266f_device(const machine_config& mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: upd765_family_device(mconfig, HD63266F, tag, owner, clock)
|
||||
, inp_cb(*this)
|
||||
{
|
||||
has_dor = false;
|
||||
}
|
||||
@ -3326,10 +3326,10 @@ void hd63266f_device::device_start()
|
||||
inp_cb.resolve();
|
||||
}
|
||||
|
||||
void hd63266f_device::map(address_map& map)
|
||||
void hd63266f_device::map(address_map &map)
|
||||
{
|
||||
map(0x0, 0x0).rw(FUNC(upd765a_device::msr_r), FUNC(hd63266f_device::abort_w));
|
||||
map(0x1, 0x1).rw(FUNC(upd765a_device::fifo_r), FUNC(upd765a_device::fifo_w));
|
||||
map(0x0, 0x0).rw(FUNC(hd63266f_device::msr_r), FUNC(hd63266f_device::abort_w));
|
||||
map(0x1, 0x1).rw(FUNC(hd63266f_device::fifo_r), FUNC(hd63266f_device::fifo_w));
|
||||
map(0x2, 0x2).r(FUNC(hd63266f_device::extstat_r));
|
||||
}
|
||||
|
||||
@ -3353,14 +3353,14 @@ void hd63266f_device::abort_w(u8 data)
|
||||
int hd63266f_device::check_command()
|
||||
{
|
||||
switch(command[0]) {
|
||||
case 0x0e:
|
||||
return C_SLEEP;
|
||||
case 0x0b:
|
||||
case 0x2b:
|
||||
return command_pos == 4 ? C_SPECIFY : C_INCOMPLETE;
|
||||
case 0x4b:
|
||||
case 0x6b:
|
||||
return command_pos == 7 ? C_SPECIFY2 : C_INCOMPLETE;
|
||||
case 0x0e:
|
||||
return C_SLEEP;
|
||||
case 0x0b:
|
||||
case 0x2b:
|
||||
return command_pos == 4 ? C_SPECIFY : C_INCOMPLETE;
|
||||
case 0x4b:
|
||||
case 0x6b:
|
||||
return command_pos == 7 ? C_SPECIFY2 : C_INCOMPLETE;
|
||||
}
|
||||
return upd765_family_device::check_command();
|
||||
}
|
||||
@ -3369,27 +3369,28 @@ void hd63266f_device::execute_command(int cmd)
|
||||
{
|
||||
switch(cmd)
|
||||
{
|
||||
case C_SLEEP:
|
||||
for(int i = 0; i < 4; i++)
|
||||
if(flopi[i].dev) flopi[i].dev->mon_w(1);
|
||||
main_phase = PHASE_CMD;
|
||||
motor_state = 0;
|
||||
LOGCOMMAND("sleep\n");
|
||||
break;
|
||||
case C_SPECIFY2:
|
||||
spec = (command[1] << 8) | command[2];
|
||||
LOGCOMMAND("command specify2 %02x %02x: step_rate=%d ms, head_unload=%d ms, head_load=%d ms, non_dma=%s\n",
|
||||
case C_SLEEP:
|
||||
for(int i = 0; i < 4; i++) {
|
||||
if(flopi[i].dev) flopi[i].dev->mon_w(1);
|
||||
}
|
||||
main_phase = PHASE_CMD;
|
||||
motor_state = 0;
|
||||
LOGCOMMAND("sleep\n");
|
||||
break;
|
||||
case C_SPECIFY2:
|
||||
spec = (command[1] << 8) | command[2];
|
||||
LOGCOMMAND("command specify2 %02x %02x: step_rate=%d ms, head_unload=%d ms, head_load=%d ms, non_dma=%s\n",
|
||||
command[1], command[2], 16-(command[1]>>4), (command[1]&0x0f)<<4, command[2]&0xfe, ((command[2]&1)==1)? "true":"false");
|
||||
main_phase = PHASE_CMD;
|
||||
break;
|
||||
case C_SENSE_DRIVE_STATUS:
|
||||
upd765_family_device::execute_command(cmd);
|
||||
if(inp_cb)
|
||||
result[0] = (result[0] & ~ST3_TS) | (inp_cb() ? 0 : 8);
|
||||
break;
|
||||
default:
|
||||
upd765_family_device::execute_command(cmd);
|
||||
break;
|
||||
main_phase = PHASE_CMD;
|
||||
break;
|
||||
case C_SENSE_DRIVE_STATUS:
|
||||
upd765_family_device::execute_command(cmd);
|
||||
if(inp_cb)
|
||||
result[0] = (result[0] & ~ST3_TS) | (inp_cb() ? 0 : 8);
|
||||
break;
|
||||
default:
|
||||
upd765_family_device::execute_command(cmd);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3469,7 +3470,7 @@ void hd63266f_device::motor_control(int fid, bool start_motor)
|
||||
|
||||
void hd63266f_device::index_callback(floppy_image_device *floppy, int state)
|
||||
{
|
||||
if(state)
|
||||
if(state) {
|
||||
for(floppy_info &fi : flopi) {
|
||||
if(fi.dev != floppy)
|
||||
continue;
|
||||
@ -3477,7 +3478,7 @@ void hd63266f_device::index_callback(floppy_image_device *floppy, int state)
|
||||
// update motor on/off counters and stop motor if necessary
|
||||
motor_control(fi.id, false);
|
||||
}
|
||||
|
||||
}
|
||||
upd765_family_device::index_callback(floppy, state);
|
||||
}
|
||||
|
||||
|
@ -598,17 +598,19 @@ private:
|
||||
|
||||
class hd63266f_device : public upd765_family_device {
|
||||
public:
|
||||
hd63266f_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock);
|
||||
hd63266f_device(const machine_config &mconfig, const char *tag, device_t* owner, uint32_t clock);
|
||||
|
||||
virtual void map(address_map& map) override;
|
||||
virtual void map(address_map &map) override;
|
||||
auto inp_rd_callback() { return inp_cb.bind(); } // this is really the ts signal
|
||||
|
||||
void rate_w(u8 state) { state ? set_rate(500000) : set_rate(250000); }
|
||||
void abort_w(u8 data);
|
||||
u8 extstat_r();
|
||||
|
||||
protected:
|
||||
virtual void soft_reset() override;
|
||||
virtual void device_start() override;
|
||||
|
||||
private:
|
||||
virtual int check_command() override;
|
||||
virtual void execute_command(int cmd) override;
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#include "formats/abc800_dsk.h"
|
||||
#include "abc800_dsk.h"
|
||||
|
||||
abc800_format::abc800_format() : wd177x_format(formats)
|
||||
{
|
||||
|
@ -8,9 +8,11 @@
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#include "formats/abc800i_dsk.h"
|
||||
#include "abc800i_dsk.h"
|
||||
|
||||
#include "ioprocs.h"
|
||||
|
||||
|
||||
abc800i_format::abc800i_format() : wd177x_format(formats)
|
||||
{
|
||||
}
|
||||
|
@ -2,15 +2,20 @@
|
||||
// copyright-holders:Bartman/Abyss
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/z180/z180.h"
|
||||
#include "imagedev/floppy.h"
|
||||
#include "imagedev/floppy.h"
|
||||
#include "machine/timer.h"
|
||||
#include "machine/upd765.h"
|
||||
#include "sound/beep.h"
|
||||
#include "video/mc6845.h"
|
||||
|
||||
#include "debug/debugcpu.h"
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
#include "util/utf8.h"
|
||||
|
||||
// command line parameters:
|
||||
@ -23,7 +28,7 @@ Brother LW-350
|
||||
|
||||
Hardware:
|
||||
|
||||
#4
|
||||
#4
|
||||
Hitachi HG62F33R63FH
|
||||
US0021-A
|
||||
CMOS Gate Array
|
||||
@ -76,14 +81,13 @@ see https://github.com/BartmanAbyss/brother-hardware/tree/master/2G%20-%20Brothe
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "machine/upd765.h"
|
||||
#include "imagedev/floppy.h"
|
||||
namespace {
|
||||
|
||||
class lw350_state : public driver_device
|
||||
{
|
||||
public:
|
||||
lw350_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
lw350_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
maincpu(*this, "maincpu"),
|
||||
screen(*this, "screen"),
|
||||
floppy(*this, "fdc:0"),
|
||||
@ -94,13 +98,13 @@ public:
|
||||
vram(*this, "vram")
|
||||
{ }
|
||||
|
||||
void lw350(machine_config& config);
|
||||
void lw350(machine_config &config) ATTR_COLD;
|
||||
|
||||
protected:
|
||||
// driver_device overrides
|
||||
void machine_start() override;
|
||||
void machine_reset() override;
|
||||
void video_start() override;
|
||||
void machine_start() override ATTR_COLD;
|
||||
void machine_reset() override ATTR_COLD;
|
||||
void video_start() override ATTR_COLD;
|
||||
|
||||
private:
|
||||
// devices
|
||||
@ -144,7 +148,7 @@ private:
|
||||
}
|
||||
uint8_t io_b8_r() {
|
||||
// keyboard matrix
|
||||
if(io_b8 <= 8)
|
||||
if(io_b8 <= 8)
|
||||
return io_kbrow[io_b8]->read();
|
||||
|
||||
switch(io_b8) {
|
||||
@ -185,7 +189,7 @@ private:
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(io_90_timer_callback);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(int1_timer_callback);
|
||||
|
||||
void map_program(address_map& map) {
|
||||
void map_program(address_map &map) ATTR_COLD {
|
||||
map(0x00000, 0x01fff).rom();
|
||||
map(0x02000, 0x05fff).ram();
|
||||
map(0x06000, 0x3ffff).rom();
|
||||
@ -197,7 +201,7 @@ private:
|
||||
map(0x76000, 0x7ffff).ram();
|
||||
}
|
||||
|
||||
void map_io(address_map& map) {
|
||||
void map_io(address_map &map) ATTR_COLD {
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x3f).noprw(); // Z180 internal registers
|
||||
map(0x70, 0x70).w(FUNC(lw350_state::io_70_w));
|
||||
@ -370,16 +374,16 @@ void lw350_state::machine_start()
|
||||
// ROM patches
|
||||
|
||||
// force jump to self-test menu
|
||||
// rom[0x280f2] = 0x20;
|
||||
// rom[0x280f2+1] = 0x05;
|
||||
// rom[0x280f2] = 0x20;
|
||||
// rom[0x280f2+1] = 0x05;
|
||||
|
||||
// force jump to lcd-test menu
|
||||
// rom[0x280f2] = 0x2c;
|
||||
// rom[0x280f2+1] = 0x05;
|
||||
// rom[0x280f2] = 0x2c;
|
||||
// rom[0x280f2+1] = 0x05;
|
||||
|
||||
// force jump to self-print menu
|
||||
// rom[0x280f2] = 0x32;
|
||||
// rom[0x280f2 + 1] = 0x05;
|
||||
// rom[0x280f2] = 0x32;
|
||||
// rom[0x280f2 + 1] = 0x05;
|
||||
|
||||
// set initial mode
|
||||
//rom[0x29a12] = 0x0a;
|
||||
@ -421,12 +425,12 @@ static void lw350_floppies(device_slot_interface& device) {
|
||||
device.option_add("35hd", FLOPPY_35_HD);
|
||||
}
|
||||
|
||||
void lw350_state::lw350(machine_config& config) {
|
||||
void lw350_state::lw350(machine_config &config) {
|
||||
// basic machine hardware
|
||||
HD64180RP(config, maincpu, 16'000'000 / 2);
|
||||
maincpu->set_addrmap(AS_PROGRAM, &lw350_state::map_program);
|
||||
maincpu->set_addrmap(AS_IO, &lw350_state::map_io);
|
||||
maincpu->tend0_wr_callback().set([this](int state){ fdc->tc_w((fdc_drq && state) ? 1 : 0); });
|
||||
maincpu->tend0_wr_callback().set([this] (int state) { fdc->tc_w((fdc_drq && state) ? 1 : 0); });
|
||||
maincpu->rts0_wr_callback().set(fdc, FUNC(hd63266f_device::rate_w));
|
||||
TIMER(config, "1khz").configure_periodic(FUNC(lw350_state::int1_timer_callback), attotime::from_hz(1000));
|
||||
|
||||
@ -439,10 +443,10 @@ void lw350_state::lw350(machine_config& config) {
|
||||
screen->set_size(480, 128);
|
||||
|
||||
HD63266F(config, fdc, XTAL(16'000'000));
|
||||
fdc->drq_wr_callback().set([this](int state){ fdc_drq = state; maincpu->set_input_line(Z180_INPUT_LINE_DREQ0, state); });
|
||||
fdc->drq_wr_callback().set([this] (int state) { fdc_drq = state; maincpu->set_input_line(Z180_INPUT_LINE_DREQ0, state); });
|
||||
fdc->set_ready_line_connected(false);
|
||||
fdc->set_select_lines_connected(false);
|
||||
fdc->inp_rd_callback().set([this](){ return floppy->get_device()->dskchg_r(); });
|
||||
fdc->inp_rd_callback().set([this] () { return floppy->get_device()->dskchg_r(); });
|
||||
|
||||
FLOPPY_CONNECTOR(config, floppy, lw350_floppies, "35hd", floppy_image_device::default_pc_floppy_formats);
|
||||
|
||||
@ -559,8 +563,8 @@ constexpr int MDA_CLOCK = 16'257'000;
|
||||
class lw450_state : public driver_device
|
||||
{
|
||||
public:
|
||||
lw450_state(const machine_config& mconfig, device_type type, const char* tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
lw450_state(const machine_config &mconfig, device_type type, const char* tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
maincpu(*this, "maincpu"),
|
||||
screen(*this, "screen"),
|
||||
palette(*this, "palette"),
|
||||
@ -574,13 +578,13 @@ public:
|
||||
rombank(*this, "dictionary")
|
||||
{ }
|
||||
|
||||
void lw450(machine_config& config);
|
||||
void lw450(machine_config &config) ATTR_COLD;
|
||||
|
||||
protected:
|
||||
// driver_device overrides
|
||||
void machine_start() override;
|
||||
void machine_reset() override;
|
||||
void video_start() override;
|
||||
void machine_start() override ATTR_COLD;
|
||||
void machine_reset() override ATTR_COLD;
|
||||
void video_start() override ATTR_COLD;
|
||||
|
||||
private:
|
||||
// devices
|
||||
@ -646,15 +650,15 @@ private:
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(int1_timer_callback);
|
||||
|
||||
void map_program(address_map& map);
|
||||
void map_io(address_map& map);
|
||||
void map_program(address_map& map) ATTR_COLD;
|
||||
void map_io(address_map& map) ATTR_COLD;
|
||||
};
|
||||
|
||||
void lw450_state::video_start()
|
||||
{
|
||||
}
|
||||
|
||||
void lw450_state::map_program(address_map& map)
|
||||
void lw450_state::map_program(address_map &map)
|
||||
{
|
||||
map(0x00000, 0x01fff).rom();
|
||||
map(0x02000, 0x05fff).ram();
|
||||
@ -668,7 +672,7 @@ void lw450_state::map_program(address_map& map)
|
||||
// font @ FC000-FD000 pitch 16
|
||||
}
|
||||
|
||||
void lw450_state::map_io(address_map& map)
|
||||
void lw450_state::map_io(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x3f).noprw(); // Z180 internal registers
|
||||
@ -700,8 +704,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(lw450_state::int1_timer_callback)
|
||||
maincpu->set_input_line(INPUT_LINE_IRQ1, ASSERT_LINE);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(lw450_state::crtc_vsync)
|
||||
{
|
||||
WRITE_LINE_MEMBER(lw450_state::crtc_vsync)
|
||||
{
|
||||
if(state) {
|
||||
framecnt++;
|
||||
}
|
||||
@ -732,14 +736,14 @@ MC6845_UPDATE_ROW(lw450_state::crtc_update_row)
|
||||
|
||||
// based on LW-450 CRT Test Menu
|
||||
enum attrs {
|
||||
underline = 0b00000001,
|
||||
extended_charset = 0b00000100,
|
||||
bold = 0b00001000,
|
||||
reverse = 0b00010000,
|
||||
underline = 0b00000001,
|
||||
extended_charset = 0b00000100,
|
||||
bold = 0b00001000,
|
||||
reverse = 0b00010000,
|
||||
blink = 0b10000000,
|
||||
};
|
||||
|
||||
const rgb_t *palette = this->palette->palette()->entry_list_raw();
|
||||
rgb_t const *const palette = this->palette->palette()->entry_list_raw();
|
||||
uint32_t* p = &bitmap.pix(y);
|
||||
uint16_t chr_base = ra;
|
||||
|
||||
@ -838,10 +842,10 @@ void lw450_state::machine_reset()
|
||||
static const gfx_layout pc_16_charlayout {
|
||||
8, 16, // 8 x 16 characters
|
||||
256, // 256 characters
|
||||
1, // 1 bits per pixel
|
||||
1, // 1 bits per pixel
|
||||
{ 0 }, // no bitplanes
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7 }, // x offsets
|
||||
{ 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8, 8 * 8, 9 * 8, 10 * 8, 11 * 8, 12 * 8, 13 * 8, 14 * 8, 15 * 8 }, // y offsets
|
||||
{ 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8, 8 * 8, 9 * 8, 10 * 8, 11 * 8, 12 * 8, 13 * 8, 14 * 8, 15 * 8 }, // y offsets
|
||||
16*8 // every char takes 2 x 8 bytes
|
||||
};
|
||||
|
||||
@ -849,7 +853,7 @@ static GFXDECODE_START( gfx_lw450 )
|
||||
GFXDECODE_RAM("vram", 0x4000, pc_16_charlayout, 0, 1)
|
||||
GFXDECODE_END
|
||||
|
||||
void lw450_state::lw450(machine_config& config) {
|
||||
void lw450_state::lw450(machine_config &config) {
|
||||
// basic machine hardware
|
||||
Z80180(config, maincpu, 12'000'000 / 2);
|
||||
maincpu->set_addrmap(AS_PROGRAM, &lw450_state::map_program);
|
||||
@ -894,7 +898,7 @@ void lw450_state::lw450(machine_config& config) {
|
||||
ROM_START( lw350 )
|
||||
ROM_REGION( 0x80000, "maincpu", 0 )
|
||||
ROM_LOAD("uc6273-a-lwb6", 0x00000, 0x80000, CRC(5E85D1EC) SHA1(4ca68186fc70f30ccac95429604c88db4f0c34d2))
|
||||
// ROM_LOAD("patched", 0x00000, 0x80000, CRC(5E85D1EC) SHA1(4ca68186fc70f30ccac95429604c88db4f0c34d2))
|
||||
// ROM_LOAD("patched", 0x00000, 0x80000, CRC(5E85D1EC) SHA1(4ca68186fc70f30ccac95429604c88db4f0c34d2))
|
||||
ROM_END
|
||||
|
||||
ROM_START( lw450 )
|
||||
@ -904,6 +908,8 @@ ROM_START( lw450 )
|
||||
ROM_LOAD("ua2849-a", 0x00000, 0x80000, CRC(FA8712EB) SHA1(2d3454138c79e75604b30229c05ed8fb8e7d15fe))
|
||||
ROM_END
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1995, lw350, 0, 0, lw350, lw350, lw350_state, empty_init, "Brother", "Brother LW-350", MACHINE_NODEVICE_PRINTER )
|
||||
COMP( 1992, lw450, 0, 0, lw450, lw350, lw450_state, empty_init, "Brother", "Brother LW-450", MACHINE_NODEVICE_PRINTER )
|
||||
} // anonymous namespace
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1995, lw350, 0, 0, lw350, lw350, lw350_state, empty_init, "Brother", "LW-350", MACHINE_NODEVICE_PRINTER )
|
||||
COMP( 1992, lw450, 0, 0, lw450, lw350, lw450_state, empty_init, "Brother", "LW-450", MACHINE_NODEVICE_PRINTER )
|
||||
|
@ -16,11 +16,11 @@
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/h8/h83003.h"
|
||||
#include "imagedev/floppy.h"
|
||||
#include "machine/at28c16.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "machine/timer.h"
|
||||
#include "machine/upd765.h"
|
||||
#include "imagedev/floppy.h"
|
||||
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
@ -34,32 +34,35 @@ class lw700i_state : public driver_device
|
||||
{
|
||||
public:
|
||||
lw700i_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_mainram(*this, "mainram"),
|
||||
m_screen(*this, "screen"),
|
||||
m_fdc(*this, "fdc"),
|
||||
m_floppy(*this, "fdc:1"),
|
||||
m_keyboard(*this, "X%u", 0)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_mainram(*this, "mainram")
|
||||
, m_screen(*this, "screen")
|
||||
, m_fdc(*this, "fdc")
|
||||
, m_floppy(*this, "fdc:1")
|
||||
, m_keyboard(*this, "X%u", 0)
|
||||
{ }
|
||||
|
||||
void lw700i(machine_config &config);
|
||||
void lw700i(machine_config &config) ATTR_COLD;
|
||||
|
||||
protected:
|
||||
// driver_device implementation
|
||||
virtual void machine_reset() override ATTR_COLD;
|
||||
virtual void machine_start() override ATTR_COLD;
|
||||
virtual void video_start() override ATTR_COLD;
|
||||
|
||||
private:
|
||||
uint8_t p7_r();
|
||||
uint8_t pb_r();
|
||||
void pb_w(uint8_t data);
|
||||
|
||||
private:
|
||||
virtual void machine_reset() override;
|
||||
virtual void machine_start() override;
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void main_map(address_map &map);
|
||||
void io_map(address_map &map);
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(vbl_interrupt);
|
||||
|
||||
void main_map(address_map &map) ATTR_COLD;
|
||||
void io_map(address_map &map) ATTR_COLD;
|
||||
|
||||
// devices
|
||||
required_device<h83003_device> m_maincpu;
|
||||
required_shared_ptr<uint16_t> m_mainram;
|
||||
@ -68,9 +71,6 @@ private:
|
||||
required_device<floppy_connector> m_floppy;
|
||||
required_ioport_array<9> m_keyboard;
|
||||
|
||||
// driver_device overrides
|
||||
virtual void video_start() override;
|
||||
|
||||
uint8_t m_keyrow = 0;
|
||||
};
|
||||
|
||||
|
@ -122,7 +122,7 @@ void pv1000_sound_device::sound_stream_update(sound_stream &stream, std::vector<
|
||||
{
|
||||
auto &buffer = outputs[0];
|
||||
|
||||
//Each channel has a different volume via resistor mixing which correspond to -6dB, -3dB, 0dB drops
|
||||
// Each channel has a different volume via resistor mixing which correspond to -6dB, -3dB, 0dB drops
|
||||
static const int volumes[3] = {0x1000, 0x1800, 0x2000};
|
||||
|
||||
for (int index = 0; index < buffer.samples(); index++)
|
||||
|
@ -5,7 +5,7 @@
|
||||
Heathkit H19
|
||||
|
||||
A smart terminal designed and manufactured by Heath Company. This
|
||||
is identical to the Zenith Data Systems Z-19.
|
||||
is identical to the Zenith Data Systems Z-19.
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
The board used in the H19 smart terminal designed and manufactured
|
||||
by Heath Company. (and the identical Z19 sold by Zenith Data Systems)
|
||||
This board is also used the Heath's H89 / H88, and ZDS's Z-89 and Z-90.
|
||||
This board is also used the Heath's H89 / H88, and ZDS's Z-89 and Z-90.
|
||||
|
||||
The keyboard consists of a 9x10 matrix connected to a MM5740AAC/N
|
||||
mask-programmed keyboard controller. The output of this passes
|
||||
|
@ -45,7 +45,6 @@ protected:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
private:
|
||||
|
||||
void key_click_w(uint8_t data);
|
||||
void bell_w(uint8_t data);
|
||||
uint8_t kbd_key_r();
|
||||
|
@ -28,15 +28,18 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "k053246_k053247_k055673.h"
|
||||
#include "k054156_k054157_k056832.h"
|
||||
#include "k055555.h"
|
||||
#include "konami_helper.h"
|
||||
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/gen_latch.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "machine/timer.h"
|
||||
#include "sound/ymz280b.h"
|
||||
#include "k053246_k053247_k055673.h"
|
||||
#include "k054156_k054157_k056832.h"
|
||||
#include "k055555.h"
|
||||
#include "konami_helper.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
@ -1770,14 +1770,14 @@ static INPUT_PORTS_START( namcos10 )
|
||||
PORT_START("SYSTEM")
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
// TODO: 0x400 might be required for extension boards
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x01, IP_ACTIVE_LOW, "DIP SW:8" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x02, IP_ACTIVE_LOW, "DIP SW:7" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x04, IP_ACTIVE_LOW, "DIP SW:6" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x08, IP_ACTIVE_LOW, "DIP SW:5" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "DIP SW:4" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "DIP SW:3" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x40, IP_ACTIVE_LOW, "DIP SW:2" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x80, IP_ACTIVE_LOW, "DIP SW:1" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW1:7" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:6" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW1:5" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:4" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:3" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW1:2" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW1:1" )
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x0f110000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
@ -1838,7 +1838,7 @@ static INPUT_PORTS_START( gamshara )
|
||||
// NOTE: this uses 7 bits, only the exact value of 0x6e gives World region, the rest give Japan
|
||||
// currently we only allow for values 0x7f and 0x6e to be selected
|
||||
// it is unknown if the later 'gamshara' set will work in the same way or default to English
|
||||
PORT_DIPNAME( 0x7f, 0x7f, DEF_STR( Region ) )
|
||||
PORT_DIPNAME( 0x7f, 0x7f, DEF_STR( Region ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4,3,2")
|
||||
PORT_DIPSETTING(0x7f, DEF_STR( Japan ) ) // JPN
|
||||
PORT_DIPSETTING(0x6e, DEF_STR( World ) ) // ETC
|
||||
INPUT_PORTS_END
|
||||
@ -1858,7 +1858,7 @@ static INPUT_PORTS_START( konotako )
|
||||
PORT_BIT( 0x1fff4040, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_MODIFY("SYSTEM")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Region ) )
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Region ) ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPSETTING(0x00, "Export (Cristaltec license)")
|
||||
PORT_DIPSETTING(0x01, DEF_STR( Japan ) )
|
||||
INPUT_PORTS_END
|
||||
|
@ -777,5 +777,5 @@ ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
COMP(1992?, luna88k2, 0, 0, luna88k2, luna88k, luna_88k_state, init, "Omron", "Luna 88K²", MACHINE_NOT_WORKING)
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
COMP(1992?, luna88k2, 0, 0, luna88k2, luna88k, luna_88k_state, init, "Omron", u8"Luna 88K²", MACHINE_NOT_WORKING)
|
||||
|
Loading…
Reference in New Issue
Block a user