]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1430b13.zip
authorToni Wilen <twilen@winuae.net>
Sat, 28 Jul 2007 15:08:19 +0000 (18:08 +0300)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:35:07 +0000 (21:35 +0200)
ar.c
debug.c
gencpu.c
memory.c
newcpu.c
od-win32/resources/winuae.rc
od-win32/resources/winuae9.exe.manifest [new file with mode: 0755]
od-win32/win32.h
od-win32/winuae_msvc/winuae_msvc.vcproj
od-win32/winuaechangelog.txt
table68k

diff --git a/ar.c b/ar.c
index 04ccf792f0e63082db2b8d1135e83be908c58afe..a3e1555f57f7fa9f0445f7fe86f337ca3b5ccbcc 100755 (executable)
--- a/ar.c
+++ b/ar.c
@@ -1982,16 +1982,24 @@ uae_u8 *save_hrtmon (int *len, uae_u8 *dstptr)
     if (dstptr)
        dstbak = dst = dstptr;
     else
-       dstbak = dst = (uae_u8*)malloc (hrtmem_size + sizeof ar_custom + sizeof ar_ciaa + sizeof ar_ciab + 1024);
-    save_u8 (0);
+       dstbak = dst = (uae_u8*)malloc (hrtmem_size + hrtmem2_size + sizeof ar_custom + sizeof ar_ciaa + sizeof ar_ciab + 1024);
+    save_u8 (cart_type);
     save_u8 (0);
     save_u32 (0);
     strcpy (dst, currprefs.cartfile);
     dst += strlen(dst) + 1;
     save_u32 (0);
-    save_u32 (hrtmem_size);
-    memcpy (dst, hrtmemory, hrtmem_size);
-    dst += hrtmem_size;
+    if (!hrtmem_rom) {
+       save_u32 (hrtmem_size);
+        memcpy (dst, hrtmemory, hrtmem_size);
+       dst += hrtmem_size;
+    } else if (hrtmem2_size) {
+       save_u32 (hrtmem2_size);
+       memcpy (dst, hrtmemory2, hrtmem2_size);
+       dst += hrtmem2_size;
+    } else {
+       save_u32 (0);
+    }
     save_u32 (sizeof ar_custom);
     memcpy (dst, ar_custom, sizeof ar_custom);
     dst += sizeof ar_custom;
@@ -2007,6 +2015,8 @@ uae_u8 *save_hrtmon (int *len, uae_u8 *dstptr)
 
 uae_u8 *restore_hrtmon (uae_u8 *src)
 {
+    uae_u32 size;
+
     action_replay_unload (1);
     restore_u8 ();
     restore_u8 ();
@@ -2015,13 +2025,18 @@ uae_u8 *restore_hrtmon (uae_u8 *src)
     strcpy (currprefs.cartfile, changed_prefs.cartfile);
     src += strlen(src) + 1;
     hrtmon_load ();
+    action_replay_load ();
     if (restore_u32() != 0)
        return src;
-    if (restore_u32() != hrtmem_size)
-       return src;
-    if (hrtmemory)
-       memcpy (hrtmemory, src, hrtmem_size);
-    src += hrtmem_size;
+    size = restore_u32();
+    if (!hrtmem_rom) {
+       if (hrtmemory)
+           memcpy (hrtmemory, src, size);
+    } else if (hrtmem2_size) {
+       if (hrtmemory2)
+           memcpy (hrtmemory2, src, size);
+    }
+    src += size;
     restore_u32();
     memcpy (ar_custom, src, sizeof ar_custom);
     src += sizeof ar_custom;
diff --git a/debug.c b/debug.c
index b888a25ecf2e30a30646e09c100475308b796436..0467eb904ea0c170e1b0e3993b5611d2a75eb794 100755 (executable)
--- a/debug.c
+++ b/debug.c
@@ -1024,13 +1024,15 @@ static addrbank *debug_mem_area;
 struct memwatch_node mwnodes[MEMWATCH_TOTAL];
 static struct memwatch_node mwhit;
 
-static uae_u8 *illgdebug;
+static uae_u8 *illgdebug, *illghdebug;
 static int illgdebug_break;
 
 static void illg_free (void)
 {
-    free (illgdebug);
+    xfree (illgdebug);
     illgdebug = NULL;
+    xfree (illghdebug);
+    illghdebug = NULL;
 }
 
 static void illg_init (void)
@@ -1040,14 +1042,25 @@ static void illg_init (void)
     uaecptr addr, end;
 
     illgdebug = (uae_u8*)xcalloc (0x01000000, 1);
-    if (!illgdebug)
+    illghdebug = (uae_u8*)xcalloc(65536, 1);
+    if (!illgdebug || !illghdebug) {
+       illg_free();
        return;
+    }
     addr = 0xffffffff;
     while ((addr = nextaddr(addr, &end)) != 0xffffffff)  {
-       if (end < 0x01000000)
+       if (end < 0x01000000) {
            memset (illgdebug + addr, c, end - addr);
+       } else {
+           uae_u32 s = addr >> 16;
+           uae_u32 e = end >> 16;
+           memset (illghdebug + s, c, e - s);
+       }
         addr = end - 1;
     }
+    if (currprefs.gfxmem_size)
+       memset (illghdebug + (p96ram_start >> 16), 3, currprefs.gfxmem_size >> 16);
+
     i = 0;
     while (custd[i].name) {
        int rw = custd[i].rw;
@@ -1081,6 +1094,8 @@ static void illg_init (void)
     if (uae_boot_rom) /* filesys "rom" */
        memset (illgdebug + RTAREA_BASE, 1, 0x10000);
 #endif
+    if (currprefs.cs_ide > 0)
+       memset (illgdebug + 0xdd0000, 3, 65536);
 }
 
 /* add special custom register check here */
@@ -1099,7 +1114,7 @@ static void illg_debug_do (uaecptr addr, int rwi, int size, uae_u32 val)
        uae_u8 v = val >> (i * 8);
        uae_u32 ad = addr + i;
        if (ad >= 0x01000000)
-           mask = 7;
+           mask = illghdebug[ad >> 16];
        else
            mask = illgdebug[ad];
        if ((mask & 3) == 3)
index 1f85e07fae28ca4877279993e37adf6561e4af60..fcc25a0e81d56f823ec9ca59bfc8a435b10263db 100755 (executable)
--- a/gencpu.c
+++ b/gencpu.c
@@ -2897,7 +2897,10 @@ static void gen_opcode (unsigned long int opcode)
        break;
     case i_MMUOP30A:
        printf ("\tuaecptr pc = m68k_getpc (regs);\n");
-       genamode (curi->smode, "srcreg", curi->size, "extra", 0, 0, 0);
+       if (curi->smode == Areg || curi->smode == Dreg)
+           printf("\tuae_u16 extraa = 0;\n");
+        else
+           genamode (curi->smode, "srcreg", curi->size, "extra", 0, 0, 0);
        sync_m68k_pc ();
        printf ("\tmmu_op30(pc, opcode, regs, 1, extraa);\n");
        break;
index 2adffec73aa1da4e2a48a5210157d13ee940d7b7..4cd4c0404294b3154b3bb1d9393482f7a1a1551f 100755 (executable)
--- a/memory.c
+++ b/memory.c
@@ -211,8 +211,8 @@ static struct romdata roms[] = {
        0xe668a0be, 0x633A6E65,0xA93580B8,0xDDB0BE9C,0x9A64D4A1,0x7D4B4801 },
     { "Freezer: X-Power Professional 500 v1.2", 1, 2, 1, 2, "XPOWER\0", 131072, 65, 0, 0, ROMTYPE_SUPERIV, 1,
        0x9e70c231, 0xa2977a1c,0x41a8ca7d,0x4af4a168,0x726da542,0x179d5963 },
-    /* only 2 bad dumps available */
-    { "Freezer: Nordic Power v1", 0, 0, 0, 0, "NPOWER\0", 65536, 66, 0, 0, ROMTYPE_SUPERIV, 1, },
+    /* v1.0 is bad dump */
+    { "Freezer: Nordic Power v1.0", 0, 0, 0, 0, "NPOWER\0", 65536, 66, 0, 0, ROMTYPE_SUPERIV, 1, },
        //0xdd16cdec, 0xfd882967,0x87e2da5f,0x4ef6be32,0x5f7c9324,0xb5bd8e64 },
     { "Freezer: Nordic Power v2.0", 2, 0, 2, 0, "NPOWER\0", 65536, 67, 0, 0, ROMTYPE_SUPERIV, 1,
        0xa4db2906, 0x0aec68f7,0x25470c89,0x6b699ff4,0x6623dec5,0xc777466e },
index 1809ad328b61b3b8df5cd5b570e2c5552e65688f..70f04cc158de2c574c3b3244af8fce1ef31766a5 100755 (executable)
--- a/newcpu.c
+++ b/newcpu.c
@@ -1828,6 +1828,13 @@ static void mmu_op30_ptest(uaecptr pc, uae_u32 opcode, uae_u16 next, uaecptr ext
     mmusr_030 = 0;
 }
 
+static void mmu_op30_pflush(uaecptr pc, uae_u32 opcode, uae_u16 next, uaecptr extra)
+{
+#if MMUOP_DEBUG > 0
+    write_log("PFLUSH PC=%08X\n", pc);
+#endif
+}
+
 void mmu_op30(uaecptr pc, uae_u32 opcode, struct regstruct *regs, int isnext, uaecptr extra)
 {
     if (currprefs.cpu_model != 68030) {
@@ -1839,6 +1846,8 @@ void mmu_op30(uaecptr pc, uae_u32 opcode, struct regstruct *regs, int isnext, ua
        uae_u16 next = get_word(pc + 2);
        if (next & 0x8000)
            mmu_op30_ptest(pc, opcode, next, extra);
+       else if (next & 0x2000)
+           mmu_op30_pflush (pc, opcode, next, extra);
        else
            mmu_op30_pmove(pc, opcode, next, extra);
        m68k_setpc (regs, m68k_getpc (regs) + 2);
index 3178b0199756e61e01f537a86be71d5d55a12d9d..991fde320c0342b073e82b917909d7eafb55a2c9 100755 (executable)
@@ -1050,7 +1050,7 @@ BEGIN
     IDS_SELECTFILESYSROOT   "Please select the root directory of the file system..."\r
     IDS_DEFAULTMIDIOUT      "Default MIDI-Out Device"\r
     IDS_CONTRIBUTORS1       "Bernd Schmidt - The Grand-Master\nSam Jordan - Custom-chip, floppy-DMA, etc.\nMathias Ortmann - Original WinUAE Main Guy, BSD Socket support\nBrian King - Picasso96 Support, Integrated GUI for WinUAE, previous WinUAE Main Guy\nToni Wilen - Core updates, WinUAE Main Guy\nGustavo Goedert/Peter Remmers/Michael Sontheimer/Tomi Hakala/Tim Gunn/Nemo Pohle - DOS Port Stuff\nSamuel Devulder/Olaf Barthel/Sam Jordan - Amiga Ports\nKrister Bergman - XFree86 and OS/2 Port\nA. Blanchard/Ernesto Corvi - MacOS Port\nChristian Bauer - BeOS Port\nIan Stephenson - NextStep Port\nPeter Teichmann - Acorn/RiscOS Port\nStefan Reinauer - ZorroII/III AutoConfig, Serial Support\nChristian Schmitt/Chris Hames - Serial Support\nHerman ten Brugge - 68020/68881 Emulation Code\nTauno Taipaleenmaki - Various UAE-Control/UAE-Library Support\nBrett Eden/Tim Gunn/Paolo Besser/Nemo Pohle - Various Docs and Web-Sites\nGeorg Veichtlbauer - Help File coordinator, German GUI\nFulvio Leonardi - Italian translator for WinUAE\n"\r
-    IDS_CONTRIBUTORS2       "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\nSteven Weiser  - Postscript printing emulation idea and testing.\nPéter Tóth /Balázs Rátkai/Iván Herczeg/András Arató - Hungarian translation.\nKarsten Bock and Dirk Trowe - Cartridge hardware support."\r
+    IDS_CONTRIBUTORS2       "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\nSteven Weiser  - Postscript printing emulation idea and testing.\nPéter Tóth /Balázs Rátkai/Iván Herczeg/András Arató - Hungarian translation.\nKarsten Bock, Gavin Fance and Dirk Trowe - Freezer cartridge hardware support."\r
     IDS_INVALIDPRTPORT      "The printer you have in this configuration is not valid on this machine.\n"\r
     IDS_RESTOREUSS          "Restore a WinUAE snapshot file"\r
     IDS_USS                 "WinUAE snapshot files"\r
diff --git a/od-win32/resources/winuae9.exe.manifest b/od-win32/resources/winuae9.exe.manifest
new file mode 100755 (executable)
index 0000000..e73f33f
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1"  manifestVersion="1.0">
+<dependency>
+   <dependentAssembly>
+     <assemblyIdentity type="win32"
+          name="Microsoft.Windows.Common-Controls"
+          version="6.0.0.0"
+          processorArchitecture="*"
+          publicKeyToken="6595b64144ccf1df"
+          language="*"
+      />
+   </dependentAssembly>
+</dependency>
+</assembly>
index 6aa979e3ca54fca459462d4f18c168589ba9d0e7..f4eaaa93b33fb6e3d75f797d75bf1824b91f9f59 100755 (executable)
 #define GETBDM(x) (((x) - ((x / 10000) * 10000)) / 100)
 #define GETBDD(x) ((x) % 100)
 
-#define WINUAEBETA 12
-#define WINUAEPUBLICBETA 1
-#define WINUAEDATE MAKEBD(2007, 7, 24)
-#define WINUAEEXTRA " RC1"
+#define WINUAEBETA 0
+#define WINUAEPUBLICBETA 0
+#define WINUAEDATE MAKEBD(2007, 7, 28)
+#define WINUAEEXTRA " RC2"
 #define WINUAEREV ""
 
 #define IHF_WINDOWHIDDEN 6
index f06fa8ade76b41d6dae63ce7376a5d87fbcfb2e9..7ba46da2f19eefb64cad330b61743009f7ddcc88 100755 (executable)
                        />
                        <Tool
                                Name="VCManifestTool"
-                               AdditionalManifestFiles="..\resources\winuae.exe.manifest"
+                               AdditionalManifestFiles="..\resources\winuae9.exe.manifest"
                        />
                        <Tool
                                Name="VCXDCMakeTool"
                                EnableCOMDATFolding="2"
                                OptimizeForWindows98="0"
                                LinkTimeCodeGeneration="1"
-                               RandomizedBaseAddress="2"
+                               RandomizedBaseAddress="1"
                                DataExecutionPrevention="2"
-                               TargetMachine="1"
+                               TargetMachine="0"
                        />
                        <Tool
                                Name="VCALinkTool"
                        />
                        <Tool
                                Name="VCManifestTool"
-                               AdditionalManifestFiles="..\resources\winuae.exe.manifest"
+                               AdditionalManifestFiles="..\resources\winuae9.exe.manifest"
                        />
                        <Tool
                                Name="VCXDCMakeTool"
index 854ed86ed411aa871b748c3caf83e52792e710d2..6ec9cf069123610525bdb69155dcbc2ba5727550 100755 (executable)
@@ -1,5 +1,13 @@
 
-Beta 12:
+Beta 13: (RC2)
+
+- Action Replay 1200 "cartridge support" credits added
+- Nordic Power/X-Power/SuperIV statefile support added (not complete)
+- 68030 "NOP MMU emulation" fix, some variants of PFLUSH caused F-line
+  exception
+- illegal access logger (wd) now supports full 32-bit address space
+
+Beta 12: (RC1)
 
 - added quick enable/disable checkboxes to floppy panel
 - non-word aligned word writes to custom registers emulated correctly
@@ -17,7 +25,7 @@ Beta 11:
   autoconfig expansions enabled (ancient bug..)
 - do not crash if CD32 is selected in advanced chipset without
   extended ROM
-- fixes and updates to illegal address logger
+- fixes and updates to illegal access logger
 - "faster RTG" "immediate copper" emulation was very broken
 - reverted JIT LSL/LSR/ASR change, merge error most likely, later..
 
index 03ffc0d70f0b36c2631a0ef2c15c2ce3cfadd416..9a4699e662c4efbab1c34ff2722860d8d2a2a029 100755 (executable)
--- a/table68k
+++ b/table68k
 1111 0011 01ss sSSS:42:?????:?????:10: FRESTORE s[!Dreg,Areg,Apdi,Immd]
 
 % 68030 MMU (allowed addressing modes not checked!)
-1111 0000 00ss sSSS:30:?????:?????:11: MMUOP30A s[!Dreg,Areg,Immd],#1
+1111 0000 00ss sSSS:30:?????:?????:11: MMUOP30A s[!Immd],#1
 1111 1000 00ss sSSS:30:?????:?????:11: MMUOP30B s[!Immd]
 % Misc MMU
 1111 0101 iiii iSSS:50:?????:?????:11: MMUOP    #i,s