From: Toni Wilen Date: Sat, 1 Apr 2017 17:07:50 +0000 (+0300) Subject: Support GVP SCSI on boot rom code execution. X-Git-Tag: 3500~72 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=9cabb94b29dcf4d0c250a5754ffade0dd8219b9b;p=francis%2Fwinuae.git Support GVP SCSI on boot rom code execution. --- diff --git a/a2091.cpp b/a2091.cpp index 763f5e49..af480f3a 100644 --- a/a2091.cpp +++ b/a2091.cpp @@ -284,7 +284,7 @@ static void freencrunit(struct wd_state *wd) } } scsi_freenative(wd->scsis, MAX_SCSI_UNITS); - if (wd->bank.baseaddr == wd->rom) + if (wd->rom >= wd->bank.baseaddr && wd->rom < wd->bank.baseaddr + wd->bank.allocated_size) free_expansion_bank(&wd->bank); else xfree (wd->rom); @@ -2941,6 +2941,8 @@ static uae_u8 *REGPARAM2 dmac_gvp_xlate(uaecptr addr) if (!wd) return default_xlate(0); addr &= 0xffff; + if (wd->rom >= wd->bank.baseaddr && wd->rom < wd->bank.baseaddr + wd->bank.allocated_size) + return wd->bank.baseaddr + addr; return wd->rom + addr; } @@ -3709,6 +3711,12 @@ static bool gvp_init(struct autoconfig_info *aci, bool series2, bool accel) } } + if (!wd->rombankswitcher) { + memcpy(wd->bank.baseaddr + 32768, wd->rom, 32768); + xfree(wd->rom); + wd->rom = wd->bank.baseaddr + 32768; + } + if (series2) { wd->gdmac.version = GVP_SERIESII; wd->gdmac.addr_mask = 0x00ffffff;