mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +03:00
(MESS) BBC Micro keyboard LED's: [Nigel Barnes]
- added layout for keyboard LED's. - defined actual screen sizes.
This commit is contained in:
parent
54a6a136f4
commit
735fa982fa
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -7634,6 +7634,7 @@ src/mess/layout/apollo_dsp.lay svneol=native#text/xml
|
||||
src/mess/layout/apricotp.lay svneol=native#text/xml
|
||||
src/mess/layout/avigo.lay svneol=native#text/xml
|
||||
src/mess/layout/babbage.lay svneol=native#text/xml
|
||||
src/mess/layout/bbc.lay svneol=native#text/xml
|
||||
src/mess/layout/beta.lay svneol=native#text/xml
|
||||
src/mess/layout/bob85.lay svneol=native#text/xml
|
||||
src/mess/layout/borisdpl.lay svneol=native#text/xml
|
||||
|
@ -50,6 +50,7 @@
|
||||
#include "bus/econet/econet.h"
|
||||
#include "sound/tms5220.h" /* Speech */
|
||||
#include "video/saa5050.h" /* Teletext */
|
||||
#include "bbc.lh"
|
||||
|
||||
/* Devices */
|
||||
#include "imagedev/flopdrv.h"
|
||||
@ -722,6 +723,8 @@ static MACHINE_CONFIG_START( bbca, bbc_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_SIZE(640, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 256-1)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(128))
|
||||
MCFG_SCREEN_UPDATE_DEVICE("mc6845", mc6845_device, screen_update)
|
||||
@ -730,9 +733,12 @@ static MACHINE_CONFIG_START( bbca, bbc_state )
|
||||
MCFG_PALETTE_INIT_OVERRIDE(bbc_state, bbc)
|
||||
MCFG_SAA5050_ADD("saa5050", XTAL_12MHz/2, trom_intf)
|
||||
|
||||
/* crtc */
|
||||
MCFG_MC6845_ADD("mc6845", MC6845, "screen", 2000000, bbc_mc6845_intf)
|
||||
MCFG_VIDEO_START_OVERRIDE(bbc_state, bbca)
|
||||
|
||||
MCFG_DEFAULT_LAYOUT(layout_bbc)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("sn76489", SN76489, 4000000) /* 4 MHz */
|
||||
@ -752,7 +758,7 @@ static MACHINE_CONFIG_START( bbca, bbc_state )
|
||||
MCFG_RS232_OUT_DCD_HANDLER(WRITELINE(bbc_state, write_dcd_serial))
|
||||
MCFG_RS232_OUT_CTS_HANDLER(WRITELINE(bbc_state, write_cts_serial))
|
||||
|
||||
/* devices */
|
||||
/* system via */
|
||||
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(bbc_state, bbcb_via_system_read_porta))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_system_read_portb))
|
||||
@ -780,7 +786,7 @@ static MACHINE_CONFIG_DERIVED( bbcb, bbca )
|
||||
// MCFG_SOUND_ADD("tms5220", TMS5220, 640000)
|
||||
// MCFG_TMS52XX_SPEECHROM("vsm")
|
||||
|
||||
/* devices */
|
||||
/* user via */
|
||||
MCFG_DEVICE_ADD("via6522_1", VIA6522, 1000000)
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_user_read_portb))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8("centronics", centronics_device, write))
|
||||
@ -788,6 +794,7 @@ static MACHINE_CONFIG_DERIVED( bbcb, bbca )
|
||||
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE("centronics", centronics_device, strobe_w))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_user_irq_w))
|
||||
|
||||
/* adc */
|
||||
MCFG_UPD7002_ADD("upd7002", bbc_uPD7002)
|
||||
|
||||
/* printer */
|
||||
@ -828,9 +835,11 @@ static MACHINE_CONFIG_DERIVED( bbcb_us, bbca )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_SIZE(640, 200)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
|
||||
/* devices */
|
||||
/* system via */
|
||||
MCFG_DEVICE_ADD("via6522_1", VIA6522, 1000000)
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_user_read_portb))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8("centronics", centronics_device, write))
|
||||
@ -838,6 +847,7 @@ static MACHINE_CONFIG_DERIVED( bbcb_us, bbca )
|
||||
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE("centronics", centronics_device, strobe_w))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_user_irq_w))
|
||||
|
||||
/* adc */
|
||||
MCFG_UPD7002_ADD("upd7002", bbc_uPD7002)
|
||||
|
||||
/* printer */
|
||||
@ -909,18 +919,21 @@ static MACHINE_CONFIG_START( bbcm, bbc_state )
|
||||
MCFG_MACHINE_START_OVERRIDE(bbc_state, bbcm)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(bbc_state, bbcm)
|
||||
|
||||
MCFG_DEFAULT_LAYOUT(layout_bbc)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(128))
|
||||
MCFG_SCREEN_SIZE(800, 300)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 800-1, 0, 300-1)
|
||||
MCFG_SCREEN_SIZE(640, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 256-1)
|
||||
MCFG_PALETTE_LENGTH(16)
|
||||
MCFG_PALETTE_INIT_OVERRIDE(bbc_state, bbc)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("mc6845", mc6845_device, screen_update)
|
||||
|
||||
MCFG_SAA5050_ADD("saa5050", XTAL_12MHz/2, trom_intf)
|
||||
|
||||
/* crtc */
|
||||
MCFG_MC6845_ADD("mc6845", MC6845, "screen", 2000000, bbc_mc6845_intf)
|
||||
MCFG_VIDEO_START_OVERRIDE(bbc_state, bbcm)
|
||||
|
||||
@ -954,13 +967,16 @@ static MACHINE_CONFIG_START( bbcm, bbc_state )
|
||||
|
||||
/* acia */
|
||||
MCFG_ACIA6850_ADD("acia6850", bbc_acia6850_interface)
|
||||
|
||||
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
|
||||
MCFG_SERIAL_OUT_RX_HANDLER(WRITELINE(bbc_state, write_rxd_serial))
|
||||
MCFG_RS232_OUT_DCD_HANDLER(WRITELINE(bbc_state, write_dcd_serial))
|
||||
MCFG_RS232_OUT_CTS_HANDLER(WRITELINE(bbc_state, write_cts_serial))
|
||||
|
||||
/* devices */
|
||||
/* adc */
|
||||
MCFG_UPD7002_ADD("upd7002", bbc_uPD7002)
|
||||
|
||||
/* system via */
|
||||
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(bbc_state, bbcb_via_system_read_porta))
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_system_read_portb))
|
||||
@ -968,6 +984,7 @@ static MACHINE_CONFIG_START( bbcm, bbc_state )
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(bbc_state, bbcb_via_system_write_portb))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_system_irq_w))
|
||||
|
||||
/* user via */
|
||||
MCFG_DEVICE_ADD("via6522_1", VIA6522, 1000000)
|
||||
MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_user_read_portb))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8("centronics", centronics_device, write))
|
||||
|
84
src/mess/layout/bbc.lay
Normal file
84
src/mess/layout/bbc.lay
Normal file
@ -0,0 +1,84 @@
|
||||
<!-- Basic display of keyboard LEDs for the BBC Micro series -->
|
||||
|
||||
<mamelayout version="2">
|
||||
|
||||
<element name="red_led">
|
||||
<disk>
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</disk>
|
||||
</element>
|
||||
|
||||
<element name="label_cassette">
|
||||
<text string="cassette">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="label_motor">
|
||||
<text string="motor">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="label_caps">
|
||||
<text string="caps">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="label_shift">
|
||||
<text string="shift">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="label_lock">
|
||||
<text string="lock">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<view name="Keyboard LED's">
|
||||
<bounds left="0" right="400" top="0" bottom="330" />
|
||||
<screen index="0">
|
||||
<bounds left="0" right="400" top="0" bottom="300" />
|
||||
</screen>
|
||||
|
||||
<bezel name="label_cassette" element="label_cassette">
|
||||
<bounds x="10" y="305" width="24" height="7" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="label_motor" element="label_motor">
|
||||
<bounds x="10" y="312" width="24" height="7" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="motor_led" element="red_led">
|
||||
<bounds x="20" y="320" width="5" height="5" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="label_caps" element="label_caps">
|
||||
<bounds x="40" y="305" width="24" height="7" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="label_lock" element="label_lock">
|
||||
<bounds x="40" y="312" width="24" height="7" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="capslock_led" element="red_led">
|
||||
<bounds x="50" y="320" width="5" height="5" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="label_shift" element="label_shift">
|
||||
<bounds x="70" y="305" width="24" height="7" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="label_lock" element="label_lock">
|
||||
<bounds x="70" y="312" width="24" height="7" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="shiftlock_led" element="red_led">
|
||||
<bounds x="80" y="320" width="5" height="5" />
|
||||
</bezel>
|
||||
</view>
|
||||
|
||||
</mamelayout>
|
@ -581,7 +581,7 @@ READ8_MEMBER(bbc_state::bbcm_r)
|
||||
return m_acia->data_read(space,0);
|
||||
}
|
||||
if ((myo>=0x10) && (myo<=0x17)) return 0xfe; /* Serial System Chip */
|
||||
if ((myo>=0x18) && (myo<=0x1f)) return m_upd7002->read(space, myo-0x18); /* A to D converter */
|
||||
if ((myo>=0x18) && (myo<=0x1f)) return m_upd7002->read(space, myo-0x18); /* A to D converter */
|
||||
if ((myo>=0x20) && (myo<=0x23)) return 0xfe; /* VideoULA */
|
||||
if ((myo>=0x24) && (myo<=0x27)) return bbcm_wd1770l_read(space, myo-0x24); /* 1770 */
|
||||
if ((myo>=0x28) && (myo<=0x2f)) return bbcm_wd1770_read(space, myo-0x28); /* disc control latch */
|
||||
@ -615,7 +615,7 @@ WRITE8_MEMBER(bbc_state::bbcm_w)
|
||||
m_acia->data_write(space, 0, data);
|
||||
}
|
||||
if ((myo>=0x10) && (myo<=0x17)) bbc_SerialULA_w(space, myo-0x10, data); /* Serial System Chip */
|
||||
if ((myo>=0x18) && (myo<=0x1f)) m_upd7002->write(space, myo-0x18, data); /* A to D converter */
|
||||
if ((myo>=0x18) && (myo<=0x1f)) m_upd7002->write(space, myo-0x18, data); /* A to D converter */
|
||||
if ((myo>=0x20) && (myo<=0x23)) bbc_videoULA_w(space, myo-0x20, data); /* VideoULA */
|
||||
if ((myo>=0x24) && (myo<=0x27)) bbcm_wd1770l_write(space, myo-0x24, data); /* 1770 */
|
||||
if ((myo>=0x28) && (myo<=0x2f)) bbcm_wd1770_write(space, myo-0x28, data); /* disc control latch */
|
||||
@ -958,6 +958,7 @@ WRITE8_MEMBER(bbc_state::bbcb_via_system_write_portb)
|
||||
{
|
||||
m_b6_caps_lock_led = 1;
|
||||
/* call caps lock led update */
|
||||
output_set_value("capslock_led", m_b6_caps_lock_led);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
@ -965,6 +966,7 @@ WRITE8_MEMBER(bbc_state::bbcb_via_system_write_portb)
|
||||
{
|
||||
m_b7_shift_lock_led = 1;
|
||||
/* call shift lock led update */
|
||||
output_set_value("shiftlock_led", m_b7_shift_lock_led);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -1043,6 +1045,7 @@ WRITE8_MEMBER(bbc_state::bbcb_via_system_write_portb)
|
||||
{
|
||||
m_b6_caps_lock_led = 0;
|
||||
/* call caps lock led update */
|
||||
output_set_value("capslock_led", m_b6_caps_lock_led);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
@ -1050,6 +1053,7 @@ WRITE8_MEMBER(bbc_state::bbcb_via_system_write_portb)
|
||||
{
|
||||
m_b7_shift_lock_led = 0;
|
||||
/* call shift lock led update */
|
||||
output_set_value("shiftlock_led", m_b7_shift_lock_led);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -1254,7 +1258,7 @@ TIMER_CALLBACK_MEMBER(bbc_state::bbc_tape_timer_cb)
|
||||
{
|
||||
if (m_wav_len>(9*3))
|
||||
{
|
||||
//this is to long to recive anything so reset the serial IC. This is a hack, this should be done as a timer in the MC6850 code.
|
||||
//this is too long to receive anything so reset the serial IC. This is a hack, this should be done as a timer in the MC6850 code.
|
||||
logerror ("Cassette length %d\n",m_wav_len);
|
||||
m_nr_high_tones = 0;
|
||||
m_dcd_cass = 0;
|
||||
@ -1393,6 +1397,7 @@ void bbc_state::BBC_Cassette_motor(unsigned char status)
|
||||
m_cass_out_phase = 0;
|
||||
m_cass_out_samples_to_go = 4;
|
||||
}
|
||||
output_set_value("motor_led", !status);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2333,6 +2333,7 @@ $(MESS_DRIVERS)/apollo.o: $(MESS_LAYOUT)/apollo_dsp.lh
|
||||
$(MESS_DRIVERS)/apricotp.o: $(MESS_LAYOUT)/apricotp.lh
|
||||
$(MESS_DRIVERS)/avigo.o: $(MESS_LAYOUT)/avigo.lh
|
||||
$(MESS_DRIVERS)/babbage.o: $(MESS_LAYOUT)/babbage.lh
|
||||
$(MESS_DRIVERS)/bbc.o: $(MESS_LAYOUT)/bbc.lh
|
||||
$(MESS_DRIVERS)/beta.o: $(MESS_LAYOUT)/beta.lh
|
||||
$(MESS_DRIVERS)/bob85.o: $(MESS_LAYOUT)/bob85.lh
|
||||
$(MAME_DRIVERS)/cdi.o: $(MAME_LAYOUT)/cdi.lh
|
||||
|
Loading…
Reference in New Issue
Block a user