_T("gfx_correct_aspect"), _T("gfx_autoscale"), _T("parallel_sampler"), _T("parallel_ascii_emulation"),
_T("avoid_vid"), _T("avoid_dga"), _T("z3chipmem_size"), _T("state_replay_buffer"), _T("state_replay"),
_T("z3realmapping"), _T("force_0x10000000_z3"),
+ _T("fpu_arithmetic_exceptions"),
_T("gfx_filter_vert_zoom"),_T("gfx_filter_horiz_zoom"),
_T("gfx_filter_vert_zoom_mult"), _T("gfx_filter_horiz_zoom_mult"),
cfgfile_dwrite_bool (f, _T("cpu_no_unimplemented"), p->int_no_unimplemented);
cfgfile_write_bool (f, _T("fpu_strict"), p->fpu_strict);
cfgfile_dwrite_bool (f, _T("fpu_softfloat"), p->fpu_softfloat);
- cfgfile_dwrite_bool (f, _T("fpu_arithmetic_exceptions"), p->fpu_exceptions);
cfgfile_write_bool (f, _T("rtg_nocustom"), p->picasso96_nocustom);
cfgfile_write (f, _T("rtg_modes"), _T("0x%x"), p->picasso96_modeflags);
|| cfgfile_yesno (option, value, _T("serial_direct"), &p->serial_direct)
|| cfgfile_yesno (option, value, _T("fpu_strict"), &p->fpu_strict)
|| cfgfile_yesno (option, value, _T("fpu_softfloat"), &p->fpu_softfloat)
- || cfgfile_yesno (option, value, _T("fpu_arithmetic_exceptions"), &p->fpu_exceptions)
|| cfgfile_yesno (option, value, _T("comp_nf"), &p->compnf)
|| cfgfile_yesno (option, value, _T("comp_constjump"), &p->comp_constjump)
#ifdef USE_JIT_FPU
p->int_no_unimplemented = false;
p->fpu_strict = 0;
p->fpu_softfloat = 0;
- p->fpu_exceptions = 0;
p->m68k_speed = 0;
p->cpu_compatible = 1;
p->address_space_24 = 1;
#include "ppc/ppcd.h"
#include "uae/io.h"
#include "uae/ppc.h"
+#include "drawing.h"
int debugger_active;
static uaecptr skipaddr_start, skipaddr_end;
struct dma_rec *dr;
int t;
- if (debug_dma >= 5)
- yplus = 3;
- else if (debug_dma >= 4)
+ if (debug_dma >= 4)
yplus = 2;
else
yplus = 1;
xplus = 1;
t = dma_record_toggle ^ 1;
- y = line / yplus - 8;
+ y = line / yplus;
+ if (yplus < 2)
+ y -= 8;
if (y < 0)
return;
uae_u32 c = debug_colors[0].l[0];
xx = x * xplus + dx;
dr = &dma_record[t][y * NR_DMA_REC_HPOS + x];
- if (dr->reg != 0xffff) {
- if (debug_colors[dr->type].enabled)
- c = debug_colors[dr->type].l[dr->extra];
- else
- c = 0;
+ if (dr->reg != 0xffff && debug_colors[dr->type].enabled) {
+ c = debug_colors[dr->type].l[dr->extra];
}
if (dr->intlev > intlev)
intlev = dr->intlev;
if (debug_dma) {
console_out_f (_T("DMA debugger disabled\n"), debug_dma);
record_dma_reset();
+ reset_drawing();
debug_dma = 0;
}
} else if (*inptr == 'm') {
if (debug_dma && v1 >= 0 && v2 >= 0) {
decode_dma_record (v2, v1, cmd == 'v', false);
} else {
- if (debug_dma)
+ if (debug_dma) {
record_dma_reset();
+ reset_drawing();
+ }
debug_dma = v1 < 0 ? -v1 : 1;
console_out_f (_T("DMA debugger enabled, mode=%d.\n"), debug_dma);
}
// map non-autoconfig ram boards
for (int i = 0; i < MAX_RAM_BOARDS; i++) {
struct ramboard *rb = &currprefs.fastmem[i];
- if (rb->manual_config) {
- map_banks(&fastmem_bank[i], rb->start_address >> 16, (rb->end_address - rb->start_address + 1) >> 16, 0);
- } else if (rb->no_reset_unmap && rb->start_address) {
- map_banks(&fastmem_bank[i], rb->start_address >> 16, rb->size >> 16, 0);
+ if (rb->size) {
+ if (rb->manual_config) {
+ map_banks(&fastmem_bank[i], rb->start_address >> 16, (rb->end_address - rb->start_address + 1) >> 16, 0);
+ } else if (rb->no_reset_unmap && rb->start_address) {
+ map_banks(&fastmem_bank[i], rb->start_address >> 16, rb->size >> 16, 0);
+ }
}
rb = &currprefs.z3fastmem[i];
- if (rb->manual_config) {
- map_banks(&z3fastmem_bank[i], rb->start_address >> 16, (rb->end_address - rb->start_address + 1) >> 16, 0);
- } else if (rb->no_reset_unmap && rb->start_address) {
- map_banks(&z3fastmem_bank[i], rb->start_address >> 16, rb->size >> 16, 0);
+ if (rb->size) {
+ if (rb->manual_config) {
+ map_banks(&z3fastmem_bank[i], rb->start_address >> 16, (rb->end_address - rb->start_address + 1) >> 16, 0);
+ } else if (rb->no_reset_unmap && rb->start_address) {
+ map_banks(&z3fastmem_bank[i], rb->start_address >> 16, rb->size >> 16, 0);
+ }
}
}
if (currprefs.z3chipmem_size) {
false, EXPANSIONTYPE_IDE,
2092, 8, 0
},
+ {
+ _T("malibu"), _T("Malibu"), _T("California Access"),
+ malibu_init, NULL, malibu_add_scsi_unit, ROMTYPE_MALIBU, 0, 0, BOARD_AUTOCONFIG_Z2, false,
+ NULL, 0,
+ true, EXPANSIONTYPE_SCSI,
+ 0, 0, 0, false, NULL,
+ false, 0, NULL,
+ { 0xd1, 0x01, 0x00, 0x00, 0x08, 0x11, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00 },
+ },
{
_T("cltda1000scsi"), _T("A1000/A2000 SCSI"), _T("C-Ltd"),
cltda1000scsi_init, NULL, cltda1000scsi_add_scsi_unit, ROMTYPE_CLTDSCSI | ROMTYPE_NOT, 0, 0, BOARD_AUTOCONFIG_Z2, false,
0, 0, 0, false, NULL,
true, 0, a4091_settings
},
+ {
+ _T("comspec1000"), _T("SA-1000"), _T("Comspec"),
+ comspec_init, NULL, comspec_add_scsi_unit, ROMTYPE_COMSPEC, 0, 0, BOARD_NONAUTOCONFIG_BEFORE, true,
+ NULL, 0,
+ true, EXPANSIONTYPE_SCSI
+ },
{
_T("dataflyerscsiplus"), _T("DataFlyer SCSI+"), _T("Expansion Systems"),
dataflyer_init, NULL, dataflyer_add_scsi_unit, ROMTYPE_DATAFLYERP | ROMTYPE_NOT, 0, 0, BOARD_NONAUTOCONFIG_BEFORE, true,
_T("SCSI module installed"),
_T("scsi")
},
+ {
+ _T("Memory disable"),
+ _T("memory")
+ },
{
NULL
}
_T("Apollo"),
ROMTYPE_CB_APOLLO, 0,
apollo_add_scsi_unit, EXPANSIONTYPE_SCSI,
- BOARD_MEMORY_HIGHMEM,
- 128 * 1024 * 1024,
+ BOARD_MEMORY_CUSTOM_32,
+ 64 * 1024 * 1024,
0,
apollo_init_cpu, NULL, 2, 0,
apollo_settings
bool comp_constjump;
int cachesize;
bool fpu_strict;
-
bool fpu_softfloat;
- bool fpu_exceptions;
int gfx_framerate, gfx_autoframerate;
struct wh gfx_size_win;
error_log (_T("JIT is not compatible with unimplemented CPU/FPU instruction emulation."));
p->fpu_no_unimplemented = p->int_no_unimplemented = false;
}
- if (p->cachesize && p->compfpu && (p->fpu_softfloat || p->fpu_exceptions)) {
+ if (p->cachesize && p->compfpu && p->fpu_softfloat) {
error_log (_T("JIT FPU emulation is not compatible with softfloat FPU emulation."));
p->fpu_softfloat = false;
- p->fpu_exceptions = false;
}
#if 0
p->fastmem[0].size = p->cpuboardmem1_size;
} else if (cpuboard_memorytype(p) == BOARD_MEMORY_25BITMEM) {
p->mem25bit_size = p->cpuboardmem1_size;
+ } else if (cpuboard_memorytype(p) == BOARD_MEMORY_CUSTOM_32) {
+ p->mem25bit_size = 0;
}
if (((p->chipmem_size & (p->chipmem_size - 1)) != 0 && p->chipmem_size != 0x180000)
|| currprefs.cpu_compatible != changed_prefs.cpu_compatible
|| currprefs.cpu_cycle_exact != changed_prefs.cpu_cycle_exact
|| currprefs.cpu_memory_cycle_exact != changed_prefs.cpu_memory_cycle_exact
- || currprefs.fpu_softfloat != changed_prefs.fpu_softfloat
- || currprefs.fpu_exceptions != changed_prefs.fpu_exceptions) {
+ || currprefs.fpu_softfloat != changed_prefs.fpu_softfloat) {
cpu_prefs_changed_flag |= 1;
}
if (changed
#define IDC_22KHZ 1233
#define IDC_SPEED_x86 1233
#define IDC_44KHZ 1234
-#define IDC_FPU_EXCEPTIONS 1234
#define IDC_48KHZ 1235
#define IDC_SOUNDSIZE 1236
#define IDC_FREQUENCY 1237
CONTROL "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,221,299,72,10
CONTROL "No flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,299,299,68,11
CONTROL "Softfloat FPU emulation",IDC_FPU_SOFTFLOAT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,8,285,115,10
- CONTROL "Arithmetic exceptions",IDC_FPU_EXCEPTIONS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,8,298,115,10
END
IDD_FLOPPY DIALOGEX 0, 0, 396, 261
#define LANG_DLL_FULL_VERSION_MATCH 1
#if WINUAEPUBLICBETA
-#define WINUAEBETA _T("5")
+#define WINUAEBETA _T("6")
#else
#define WINUAEBETA _T("")
#endif
-#define WINUAEDATE MAKEBD(2017, 4, 2)
+#define WINUAEDATE MAKEBD(2017, 4, 17)
//#define WINUAEEXTRA _T("AmiKit Preview")
//#define WINUAEEXTRA _T("Amiga Forever Edition")
ew (hDlg, IDC_COMPATIBLE_FPU, workprefs.fpu_model > 0);
ew (hDlg, IDC_FPU_UNIMPLEMENTED, workprefs.fpu_model && !workprefs.cachesize);
ew (hDlg, IDC_FPU_SOFTFLOAT, workprefs.fpu_model && (!workprefs.compfpu || !workprefs.cachesize));
- ew (hDlg, IDC_FPU_EXCEPTIONS, workprefs.fpu_model && (!workprefs.compfpu || !workprefs.cachesize) && workprefs.fpu_softfloat);
ew (hDlg, IDC_CPU_UNIMPLEMENTED, workprefs.cpu_model == 68060 && !workprefs.cachesize);
#if 0
ew (hDlg, IDC_CPU_MULTIPLIER, workprefs.cpu_cycle_exact);
CheckDlgButton (hDlg, IDC_COMPATIBLE_FPU, workprefs.fpu_strict);
CheckDlgButton (hDlg, IDC_FPU_UNIMPLEMENTED, !workprefs.fpu_no_unimplemented || workprefs.cachesize);
CheckDlgButton (hDlg, IDC_FPU_SOFTFLOAT, workprefs.fpu_softfloat);
- CheckDlgButton (hDlg, IDC_FPU_EXCEPTIONS, workprefs.fpu_exceptions);
CheckDlgButton (hDlg, IDC_CPU_UNIMPLEMENTED, !workprefs.int_no_unimplemented || workprefs.cachesize);
SendDlgItemMessage (hDlg, IDC_CPUIDLE, TBM_SETPOS, TRUE, workprefs.cpu_idle == 0 ? 0 : 12 - workprefs.cpu_idle / 15);
SendDlgItemMessage (hDlg, IDC_PPC_CPUIDLE, TBM_SETPOS, TRUE, workprefs.ppc_cpu_idle);
workprefs.fpu_strict = ischecked (hDlg, IDC_COMPATIBLE_FPU) ? 1 : 0;
workprefs.fpu_no_unimplemented = ischecked (hDlg, IDC_FPU_UNIMPLEMENTED) ? 0 : 1;
workprefs.fpu_softfloat = ischecked (hDlg, IDC_FPU_SOFTFLOAT) ? 1 : 0;
- workprefs.fpu_exceptions = (ischecked (hDlg, IDC_FPU_EXCEPTIONS) ? 1 : 0) && workprefs.fpu_softfloat;
workprefs.int_no_unimplemented = ischecked (hDlg, IDC_CPU_UNIMPLEMENTED) ? 0 : 1;
workprefs.address_space_24 = ischecked (hDlg, IDC_COMPATIBLE24) ? 1 : 0;
workprefs.m68k_speed = ischecked (hDlg, IDC_CS_HOST) ? -1 : 0;
}
if (workprefs.cachesize && workprefs.compfpu && workprefs.fpu_softfloat) {
workprefs.fpu_softfloat = false;
- workprefs.fpu_exceptions = false;
setchecked(hDlg, IDC_FPU_SOFTFLOAT, false);
}
if (oldcache == 0 && workprefs.cachesize > 0) {
<ClCompile Include="..\..\softfloat\softfloat.cpp" />
<ClCompile Include="..\..\softfloat\softfloat_decimal.cpp" />
<ClCompile Include="..\..\softfloat\softfloat_extension.cpp" />
+ <ClCompile Include="..\..\softfloat\softfloat_fpsp.cpp" />
<ClCompile Include="..\..\specialmonitors.cpp" />
<ClCompile Include="..\..\statusline.cpp" />
<ClCompile Include="..\..\support\time.cpp" />
<Filter Include="support">
<UniqueIdentifier>{fe9d96c8-c5ef-4f92-b9dc-79b5d3e4145c}</UniqueIdentifier>
</Filter>
+ <Filter Include="softfloat">
+ <UniqueIdentifier>{b113952e-b596-4a9e-922f-8ccff5b915ed}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\ahidsound_dsonly.cpp">
<ClCompile Include="..\..\fpp_softfloat.cpp">
<Filter>common</Filter>
</ClCompile>
- <ClCompile Include="..\..\softfloat\softfloat.cpp">
- <Filter>qemu</Filter>
- </ClCompile>
- <ClCompile Include="..\..\softfloat\softfloat_extension.cpp">
- <Filter>qemu</Filter>
- </ClCompile>
<ClCompile Include="..\..\slirp_uae.cpp">
<Filter>common</Filter>
</ClCompile>
+ <ClCompile Include="..\..\slirp\slirp.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
<ClCompile Include="..\..\slirp\udp.cpp">
<Filter>slirp</Filter>
</ClCompile>
<ClCompile Include="..\..\slirp\slirpdebug.cpp">
<Filter>slirp</Filter>
</ClCompile>
- <ClCompile Include="..\..\slirp\slirp.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
<ClCompile Include="..\..\slirp\sbuf.cpp">
<Filter>slirp</Filter>
</ClCompile>
<ClCompile Include="..\..\slirp\bootp.cpp">
<Filter>slirp</Filter>
</ClCompile>
+ <ClCompile Include="..\..\softfloat\softfloat.cpp">
+ <Filter>softfloat</Filter>
+ </ClCompile>
<ClCompile Include="..\..\softfloat\softfloat_decimal.cpp">
- <Filter>qemu</Filter>
+ <Filter>softfloat</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\softfloat\softfloat_extension.cpp">
+ <Filter>softfloat</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\softfloat\softfloat_fpsp.cpp">
+ <Filter>softfloat</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
- RTG VRAM is outside of reserved natmem space. Workaround: Move RTG in earlier position using Hardware info GUI panel.\r
Note that in 64-bit version RTG VRAM must be inside of reserved natmem space. (Outside = error message and return back to GUI)\r
\r
+\r
+Beta 6:\r
+\r
+- Comspec SA-1000 SCSI HD controller emulation. (Partially implemented only, don't have working install disk)\r
+- California Access Malibu SCSI HD controller emulation.\r
+- Stop immediately with halt code 11 if initial PC does not point to any valid address or is odd when CPU emulator starts.\r
+- Manually configured but disabled (size zero) Z2/Z3 banks were added to system.\r
+- Apollo 1240/1260 memory address space fixed. Memory disable jumper option added.\r
+- 68000 address error stacked PC was not correct in some read-modify-write instructions.\r
+- If Custom board order was enabled, expansion devices custom config setting(s) was not saved correctly.\r
+- Emulate rare 68040/060 FPU (with unimplemented instructions not emulated) fpsp (68040/060.library) software emulation case\r
+ correctly when both operands are denormals.\r
+- Show [Paused] in windowed mode title bar when in pause mode.\r
+- Transcendental functions added to softfloat emulation (Andreas Grabher). Not 100% identical results compared to\r
+ 6888x but almost. Softfloat mode is now complete.\r
+- Removed Arithmetic exceptions option, it is now always enabled in softfloat mode. (It was only temporary option until\r
+ arithmetic exceptions are fully implemented)\r
+- Visual DMA debugger can be switched off, "vo".\r
+- Added visual DMA debugger -5 and -6 modes (-5 = larger overlay with "transparency" and -6 = no "transparency)\r
+- Added separate colors for visual DMA debugger copper wait and special cases (strobe extra cycle, 0xe0 cycle)\r
+- Added visual DMA debugger configuration: DMA channels can be disabled and colors can be changed.\r
+ "vm" = show status\r
+ "vm <channel> <sub index>" = enable/disable toggle. (sub index is not used but must be included)\r
+ "vm <channel> <sub index> <hex rgb>" = change color of channel. If sub index is zero: all sub index colors are changed.\r
+\r
+Comspec SA-1000:\r
+\r
+- Autobooting A1000 HD controller that also supports loading KS disk from HD!\r
+- Not RDB compatible.\r
+- WD33C93 based, PIO, handshake in hardware but still needs status register polling.\r
+- "ComspecHD.device 34.805 (17 Oct 1988)" added to ROM scanner.\r
+\r
+California Access Malibu:\r
+\r
+- 5380 SCSI, fake DMA (Long word)\r
+- "Malibu.device 1.0 (1 Jan 1991)" added to ROM scanner.\r
+\r
+\r
Beta 5:\r
\r
- Added Actionware dual light gun adapter emulation. Second gun config entries added to Input panel.\r