mirror of
https://github.com/holub/mame
synced 2025-04-15 13:07:23 +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": "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": "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": "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.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": "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": "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": "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" },
|
||||
@ -583,4 +583,4 @@
|
||||
"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) :
|
||||
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)
|
||||
{
|
||||
if (offset == 0x7ff)
|
||||
{
|
||||
m_c800_bank = 1;
|
||||
}
|
||||
|
||||
if (!m_c800_bank)
|
||||
{
|
||||
return m_rom[offset];
|
||||
}
|
||||
|
||||
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:
|
||||
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_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
|
||||
{
|
||||
printf("write %x to c800 + %x\n", data, offset);
|
||||
if (offset == 0x7ff)
|
||||
{
|
||||
m_c800_bank = data & 1;
|
||||
}
|
||||
}
|
||||
|
||||
virtual bool take_c800() override { return true; }
|
||||
|
||||
private:
|
||||
int m_c800_bank;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
|
Loading…
Reference in New Issue
Block a user