mirror of
https://github.com/holub/mame
synced 2025-04-18 14:33:19 +03:00
apple2: figured out C800 banking on the Applesurance card, it now works 100% (nw)
This commit is contained in:
parent
2c586719a2
commit
e95e2a743d
@ -58,12 +58,12 @@
|
|||||||
{ "type": "intenum", "name": "adjustments", "text": "Enable Adjustments", "default": 1, "max": 1, "min": 0, "step": 1, "format": "%s", "screen": "any", "strings": [ "Off", "On" ] },
|
{ "type": "intenum", "name": "adjustments", "text": "Enable Adjustments", "default": 1, "max": 1, "min": 0, "step": 1, "format": "%s", "screen": "any", "strings": [ "Off", "On" ] },
|
||||||
|
|
||||||
{ "type": "intenum", "name": "ntsc", "text": "Enable NTSC", "default": 0, "max": 1, "min": 0, "step": 1, "format": "%s", "screen": "any", "strings": [ "Off", "On" ] },
|
{ "type": "intenum", "name": "ntsc", "text": "Enable NTSC", "default": 0, "max": 1, "min": 0, "step": 1, "format": "%s", "screen": "any", "strings": [ "Off", "On" ] },
|
||||||
{ "type": "float", "name": "a_value", "text": "NTSC A Value", "default": 0.50, "max": 1.00, "min": 0.00, "step": 0.01, "format": "%1.2f", "screen": "raster" },
|
{ "type": "float", "name": "a_value", "text": "NTSC A Value", "default": 0.00, "max": 1.00, "min": 0.00, "step": 0.01, "format": "%1.2f", "screen": "raster" },
|
||||||
{ "type": "float", "name": "b_value", "text": "NTSC B Value", "default": 0.50, "max": 1.00, "min": 0.00, "step": 0.01, "format": "%1.2f", "screen": "raster" },
|
{ "type": "float", "name": "b_value", "text": "NTSC B Value", "default": 0.00, "max": 1.00, "min": 0.00, "step": 0.01, "format": "%1.2f", "screen": "raster" },
|
||||||
{ "type": "float", "name": "cc_value", "text": "NTSC Color Carrier (Hz)", "default": 3.57954, "max": 3.67954, "min": 3.47954, "step": 0.00001, "format": "%1.5f", "screen": "raster" },
|
{ "type": "float", "name": "cc_value", "text": "NTSC Color Carrier (Hz)", "default": 3.57954, "max": 3.67954, "min": 3.47954, "step": 0.00001, "format": "%1.5f", "screen": "raster" },
|
||||||
{ "type": "float", "name": "o_value", "text": "NTSC Outgoing Phase Offset", "default": 0.00, "max": 1.00, "min": 0.00, "step": 0.01, "format": "%1.2f", "screen": "raster" },
|
{ "type": "float", "name": "o_value", "text": "NTSC Outgoing Phase Offset", "default": 0.00, "max": 1.00, "min": 0.00, "step": 0.01, "format": "%1.2f", "screen": "raster" },
|
||||||
{ "type": "float", "name": "p_value", "text": "NTSC Incoming Phase Pixel Clock Scale", "default": 1.00, "max": 2.00, "min": 0.00, "step": 0.01, "format": "%1.2f", "screen": "raster" },
|
{ "type": "float", "name": "p_value", "text": "NTSC Incoming Phase Pixel Clock Scale", "default": 1.00, "max": 2.00, "min": 0.00, "step": 0.01, "format": "%1.2f", "screen": "raster" },
|
||||||
{ "type": "float", "name": "scan_time", "text": "NTSC Scanline Duration (uSec)", "default": 52.60, "max": 150.00, "min": 1.00, "step": 0.1, "format": "%3.1f", "screen": "raster" },
|
{ "type": "float", "name": "scan_time", "text": "NTSC Scanline Duration (uSec)", "default": 39.10, "max": 150.00, "min": 1.00, "step": 0.1, "format": "%3.1f", "screen": "raster" },
|
||||||
{ "type": "float", "name": "notch_width", "text": "NTSC Color Notch Filter Width", "default": 2.00, "max": 4.00, "min": 1.00, "step": 0.01, "format": "%1.2f", "screen": "raster" },
|
{ "type": "float", "name": "notch_width", "text": "NTSC Color Notch Filter Width", "default": 2.00, "max": 4.00, "min": 1.00, "step": 0.01, "format": "%1.2f", "screen": "raster" },
|
||||||
{ "type": "float", "name": "y_freq_response", "text": "NTSC Y Signal Bandwidth (Hz)", "default": 6.00, "max": 21.00, "min": 0.00, "step": 0.01, "format": "%2.2f", "screen": "raster" },
|
{ "type": "float", "name": "y_freq_response", "text": "NTSC Y Signal Bandwidth (Hz)", "default": 6.00, "max": 21.00, "min": 0.00, "step": 0.01, "format": "%2.2f", "screen": "raster" },
|
||||||
{ "type": "float", "name": "i_freq_response", "text": "NTSC I Signal Bandwidth (Hz)", "default": 1.20, "max": 21.00, "min": 0.00, "step": 0.01, "format": "%2.2f", "screen": "raster" },
|
{ "type": "float", "name": "i_freq_response", "text": "NTSC I Signal Bandwidth (Hz)", "default": 1.20, "max": 21.00, "min": 0.00, "step": 0.01, "format": "%2.2f", "screen": "raster" },
|
||||||
@ -583,4 +583,4 @@
|
|||||||
"output": "output"
|
"output": "output"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,8 @@ a2bus_diskiing13_device::a2bus_diskiing13_device(const machine_config &mconfig,
|
|||||||
}
|
}
|
||||||
|
|
||||||
a2bus_applesurance_device::a2bus_applesurance_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
a2bus_applesurance_device::a2bus_applesurance_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
diskiing_device(mconfig, A2BUS_APPLESURANCE, tag, owner, clock)
|
diskiing_device(mconfig, A2BUS_APPLESURANCE, tag, owner, clock),
|
||||||
|
m_c800_bank(1)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,5 +171,21 @@ uint8_t a2bus_applesurance_device::read_cnxx(uint8_t offset)
|
|||||||
|
|
||||||
uint8_t a2bus_applesurance_device::read_c800(uint16_t offset)
|
uint8_t a2bus_applesurance_device::read_c800(uint16_t offset)
|
||||||
{
|
{
|
||||||
|
if (offset == 0x7ff)
|
||||||
|
{
|
||||||
|
m_c800_bank = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!m_c800_bank)
|
||||||
|
{
|
||||||
|
return m_rom[offset];
|
||||||
|
}
|
||||||
|
|
||||||
return m_rom[offset+0x800];
|
return m_rom[offset+0x800];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void a2bus_applesurance_device::device_reset()
|
||||||
|
{
|
||||||
|
m_c800_bank = 1;
|
||||||
|
diskiing_device::device_reset();
|
||||||
|
}
|
||||||
|
@ -78,22 +78,23 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||||
|
|
||||||
|
virtual void device_reset() override;
|
||||||
|
|
||||||
virtual uint8_t read_cnxx(uint8_t offset) override;
|
virtual uint8_t read_cnxx(uint8_t offset) override;
|
||||||
virtual uint8_t read_c800(uint16_t offset) override;
|
virtual uint8_t read_c800(uint16_t offset) override;
|
||||||
|
|
||||||
virtual void write_cnxx(uint8_t offset, uint8_t data) override
|
|
||||||
{
|
|
||||||
printf("write %x to cn00 + %x\n", data, offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void write_c800(uint16_t offset, uint8_t data) override
|
virtual void write_c800(uint16_t offset, uint8_t data) override
|
||||||
{
|
{
|
||||||
printf("write %x to c800 + %x\n", data, offset);
|
if (offset == 0x7ff)
|
||||||
|
{
|
||||||
|
m_c800_bank = data & 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool take_c800() override { return true; }
|
virtual bool take_c800() override { return true; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
int m_c800_bank;
|
||||||
};
|
};
|
||||||
|
|
||||||
// device type definition
|
// device type definition
|
||||||
|
Loading…
Reference in New Issue
Block a user