]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
fs-uae portability patch
authorToni Wilen <twilen@winuae.net>
Sun, 13 May 2012 14:33:52 +0000 (17:33 +0300)
committerToni Wilen <twilen@winuae.net>
Sun, 13 May 2012 14:33:52 +0000 (17:33 +0300)
49 files changed:
a2091.cpp
akiko.cpp
ar.cpp
arcadia.cpp
audio.cpp
blkdev.cpp
blkdev_cdimage.cpp
build68k.cpp
cd32_fmv.cpp
cfgfile.cpp
consolehook.cpp
cpummu.cpp
custom.cpp
debug.cpp
disk.cpp
expansion.cpp
fdi2raw.cpp
filesys.cpp
fpp.cpp
fsdb.cpp
fsdb_unix.cpp
fsusage.cpp
gfxutil.cpp
include/ar.h
include/blkdev.h
include/bsdsocket.h
include/cpummu.h
include/custom.h
include/drawing.h
include/memory.h
include/options.h
include/savestate.h
include/sysdeps.h
include/uae.h
include/zarchive.h
include/zfile.h
inputdevice.cpp
isofs.cpp
main.cpp
memory.cpp
ncr_scsi.cpp
od-win32/sysconfig.h
od-win32/win32_filesys.cpp
savestate.cpp
scsiemul.cpp
serial.cpp
uaelib.cpp
zfile.cpp
zfile_archive.cpp

index d8225baa44137ae98bf77fcd5214bc234a6f9949..ad03b08df5d12f757986b3c1dc892e5dd5e163a8 100644 (file)
--- a/a2091.cpp
+++ b/a2091.cpp
@@ -193,8 +193,6 @@ void rethink_a2091 (void)
 
 static void INT2 (void)
 {
-       int irq = 0;
-
        if (currprefs.cs_cdtvscsi)
                return;
        if (!(auxstatus & 0x80))
@@ -618,7 +616,10 @@ uae_u8 wdscsi_getauxstatus (void)
 
 uae_u8 wdscsi_get (void)
 {
-       uae_u8 v, osasr = sasr;
+       uae_u8 v;
+#if WD33C93_DEBUG > 1
+       uae_u8 osasr = sasr;
+#endif
 
        v = wdregs[sasr];
        if (sasr == WD_DATA) {
@@ -1053,7 +1054,9 @@ static void mbdmac_write (uae_u32 addr, uae_u32 val, int mode)
 
 static uae_u32 mbdmac_read (uae_u32 addr, int mode)
 {
+#if A3000_DEBUG > 1
        uae_u32 vaddr = addr;
+#endif
        uae_u32 v = 0xffffffff;
 
        if (currprefs.cs_mbdmac > 1)
index 5610b39663396ac6ec55186f04d9fea4e01299a9..a812d61a416162f0b7e2913d079547bc357e888f 100644 (file)
--- a/akiko.cpp
+++ b/akiko.cpp
@@ -457,7 +457,7 @@ static uae_u8 qcode_buf[SUBQ_SIZE];
 static int qcode_valid;
 
 static int cdrom_disk, cdrom_paused, cdrom_playing, cdrom_audiostatus;
-static int cdrom_command_active, cdrom_command_idle;
+static int cdrom_command_active;
 static int cdrom_command_length;
 static int cdrom_checksum_error, cdrom_unknown_command;
 static int cdrom_data_offset, cdrom_speed, cdrom_sector_counter;
@@ -984,7 +984,9 @@ static int cdrom_command_multi (void)
        }
 
        if (cdrom_command_buffer[7] == 0x80) { /* data read */
+#if AKIKO_DEBUG_IO_CMD
                int cdrom_data_offset_end = endpos;
+#endif
                cdrom_data_offset = seekpos;
                cdrom_seek_delay = abs (cdrom_current_sector - cdrom_data_offset);
                if (cdrom_seek_delay < 100) {
@@ -1001,12 +1003,12 @@ static int cdrom_command_multi (void)
 #endif
                cdrom_result_buffer[1] |= 0x02;
        } else if (cdrom_command_buffer[10] & 4) { /* play audio */
+#if AKIKO_DEBUG_IO_CMD
                int scan = 0;
                if (cdrom_command_buffer[7] & 0x04)
                        scan = 1;
                else if (cdrom_command_buffer[7] & 0x08)
                        scan = -1;
-#if AKIKO_DEBUG_IO_CMD
                write_log (_T("PLAY FROM %06X (%d) to %06X (%d) SCAN=%d\n"),
                        seekpos, msf2lsn (seekpos), endpos, msf2lsn (endpos), scan);
 #endif
@@ -1061,7 +1063,9 @@ static void cdrom_run_command (void)
 {
        int i, cmd_len;
        uae_u8 checksum;
+#if 0
        uae_u8 *pp = get_real_address (cdtx_address);
+#endif
 
        if (!(cdrom_flags & CDFLAG_TXD))
                return;
@@ -1186,7 +1190,6 @@ static void cdrom_run_command_run (void)
 static void cdrom_run_read (void)
 {
        int i, sector, inc;
-       int read = 0;
        int sec;
        int seccnt;
 
@@ -1305,15 +1308,6 @@ static void akiko_internal (void)
                if (!cdrom_command_active)
                        cdrom_run_command_run ();
        }
-#if 0
-       if (!cdrom_playing && !cdrom_command_active) {
-               cdrom_command_idle++;
-               if (cdrom_command_idle > 1000) {
-                       cdrom_command_idle = 0;
-                       cdrom_start_return_data (cdrom_command_idle_status ());
-               }
-       }
-#endif
 }
 
 void AKIKO_hsync_handler (void)
@@ -1411,7 +1405,6 @@ static void *akiko_thread (void *null)
                if (frame2counter <= 0) {
                        frame2counter = 312 * 50 / 2;
                        if (unitnum >= 0 && sys_command_cd_qcode (unitnum, qcode_buf)) {
-                               uae_u8 as = qcode_buf[1];
                                qcode_valid = 1;
                        }
                }
diff --git a/ar.cpp b/ar.cpp
index bded36a66408a4fb8b4e319954d534546ea1fb0c..15469ac05f7d04c0186e2673b39ad34c66bf3ac3 100644 (file)
--- a/ar.cpp
+++ b/ar.cpp
@@ -882,6 +882,15 @@ static addrbank arram_bank = {
        arram_lget, arram_wget, ABFLAG_RAM
 };
 
+
+static void action_replay_map_banks (void)
+{
+       if(!armemory_rom)
+               return;
+       map_banks (&arrom_bank, arrom_start >> 16, arrom_size >> 16, 0);
+       map_banks (&arram_bank, arram_start >> 16, arram_size >> 16, 0);
+}
+
 static void action_replay_unmap_banks (void)
 {
        if(!armemory_rom)
@@ -894,14 +903,6 @@ static void action_replay_unmap_banks (void)
        map_banks (&dummy_bank, arram_start >> 16 , arram_size >> 16, 0);
 }
 
-static void action_replay_map_banks (void)
-{
-       if(!armemory_rom)
-               return;
-       map_banks (&arrom_bank, arrom_start >> 16, arrom_size >> 16, 0);
-       map_banks (&arram_bank, arram_start >> 16, arram_size >> 16, 0);
-}
-
 static void hide_cart (int hide)
 {
 #ifdef ACTION_REPLAY_HIDE_CARTRIDGE
index f1c49e62482e33641a8f950e73ac6f8984897725..a8f47fd6a8ff56e1548580ddd7f087e533cde905 100644 (file)
@@ -92,7 +92,7 @@ static int load_rom8 (TCHAR *xpath, uae_u8 *mem,      int extra)
        TCHAR path[MAX_DPATH];
        int i;
        uae_u8 *tmp = xmalloc (uae_u8, 131072);
-       TCHAR *bin = extra == 1 ? _T(".bin") : _T("");
+       const TCHAR *bin = extra == 1 ? _T(".bin") : _T("");
 
        memset (tmp, 0, 131072);
        _stprintf (path, _T("%s%s%s"), xpath, extra == 3 ? _T("-hi") : (extra == 2 ? _T("hi") : _T("h")), bin);
index 363c098145d5ba3e22c8a1ad66ac162a9820006e..2e6ede3874f59a1549f5a0946c8b2cbbd2d5e596 100644 (file)
--- a/audio.cpp
+++ b/audio.cpp
@@ -43,7 +43,7 @@
 
 #include <math.h>
 
-#define MAX_EV ~0ul
+#define MAX_EV ~0u
 #define DEBUG_AUDIO 0
 #define DEBUG_CHANNEL_MASK 15
 #define TEST_AUDIO 0
@@ -58,10 +58,12 @@ STATIC_INLINE bool isaudio (void)
        return currprefs.produce_sound != 0;
 }
 
+#if DEBUG_AUDIO > 0
 static bool debugchannel (int ch)
 {
        return ((1 << ch) & DEBUG_CHANNEL_MASK) != 0;
 }
+#endif
 
 STATIC_INLINE bool usehacks1 (void)
 {
@@ -216,7 +218,7 @@ void audio_sampleripper (int mode)
        while (rs) {
                if (rs->changed) {
                        rs->changed = 0;
-                       fetch_ripperpath (path, sizeof (path) / sizeof TCHAR);
+                       fetch_ripperpath (path, sizeof (path) / sizeof (TCHAR));
                        name[0] = 0;
                        if (currprefs.floppyslots[0].dfxtype >= 0)
                                _tcscpy (name, currprefs.floppyslots[0].df);
@@ -305,7 +307,7 @@ int sound_available = 0;
 void (*sample_handler) (void);
 static void (*sample_prehandler) (unsigned long best_evtime);
 
-static float sample_evtime;
+float sample_evtime;
 float scaled_sample_evtime;
 
 static unsigned long last_cycles;
@@ -1685,7 +1687,9 @@ void set_audio (void)
 void update_audio (void)
 {
        unsigned long int n_cycles = 0;
+#if SOUNDSTUFF > 1
        static int samplecounter;
+#endif
 
        if (!isaudio ())
                goto end;
index 766bc5e9cf07c8cc5f30562ff7a78f739c073dca..6bd13c2048142ed13bea307d3e29c027b8d1cd22 100644 (file)
@@ -118,12 +118,16 @@ extern struct device_functions devicefunc_win32_spti;
 extern struct device_functions devicefunc_win32_ioctl;
 extern struct device_functions devicefunc_cdimage;
 
+#endif
+
 static struct device_functions *devicetable[] = {
        NULL,
        &devicefunc_cdimage,
+#ifdef _WIN32
        &devicefunc_win32_ioctl,
        &devicefunc_win32_spti,
        &devicefunc_win32_aspi,
+#endif
        NULL
 };
 static int driver_installed[6];
@@ -180,7 +184,6 @@ static void install_driver (int flags)
        }
 
 }
-#endif
 
 void blkdev_default_prefs (struct uae_prefs *p)
 {
index 6770989f19dc1cbc06f5513f2e1c48cf3078eddb..2ee531eb73c6078aba8744d903a61cac67d854d9 100644 (file)
@@ -1021,7 +1021,7 @@ static int parsemds (struct cdunit *cdu, struct zfile *zmds, const TCHAR *img)
        MDS_SessionBlock *sb = (MDS_SessionBlock*)(mds + head->sessions_blocks_offset);
        cdu->tracks = sb->last_track - sb->first_track + 1;
        for (int i = 0; i < sb->num_all_blocks; i++) {
-               MDS_TrackBlock *tb = (MDS_TrackBlock*)(mds + sb->tracks_blocks_offset + i * sizeof MDS_TrackBlock);
+               MDS_TrackBlock *tb = (MDS_TrackBlock*)(mds + sb->tracks_blocks_offset + i * sizeof (MDS_TrackBlock));
                int point = tb->point;
                int tracknum = -1;
                if (point == 0xa2)
@@ -1341,7 +1341,7 @@ static int parsecue (struct cdunit *cdu, struct zfile *zcue, const TCHAR *img)
                                                s2 = _tcsrchr (tmp, '/');
                                        if (s2) {
                                                s2[0] = 0;
-                                               _tcscat (tmp, _T("\\"));
+                                               _tcscat (tmp, FSDB_DIR_SEPARATOR_S);
                                                _tcscat (tmp, fname);
                                                ztrack = zfile_fopen (tmp, _T("rb"), ZFD_ARCHIVE | ZFD_DELAYEDOPEN);
                                        }
index f39d2ebe61c739c3353f0430ec17f462ab019846..78a5437d9ac5e95356992cceeef7c78f2dca0614 100644 (file)
@@ -251,7 +251,7 @@ int main(int argc, char **argv)
            for(i = 0; i < 5; i++) {
                printf("{%d,%d}%s", flaguse[i], flagset[i], i == 4 ? "" : ",");
            }
-           printf("},%2d,L\"%s\"}", sduse, opstrp);
+           printf("},%2d,_T(\"%s\")}", sduse, opstrp);
        }
     }
     printf("};\nint n_defs68k = %d;\n", no_insns);
index 725a0d337e16f4663700568692ad9ba4145f036b..dd1b33c768fed07f8cdba59714b7d40d35fcf0af 100644 (file)
@@ -303,8 +303,6 @@ static void REGPARAM2 fmv_lput (uaecptr addr, uae_u32 w)
        fmv_wput (addr + 2, w >>  0);
 }
 
-extern addrbank fmv_bank;
-
 static void REGPARAM2 fmv_bput (uaecptr addr, uae_u32 w)
 {
        addr -= fmv_start & fmv_mask;
index d45f1d130359eeea34e65db3207ebc534bbd15dd..57cb65566fafcf09955b3146d563c061d6aed0ca 100644 (file)
@@ -330,7 +330,7 @@ static bool isdefault (const TCHAR *s)
        return false;
 }
 
-static size_t cfg_write (void *b, struct zfile *z)
+static size_t cfg_write (const void *b, struct zfile *z)
 {
        size_t v;
        if (unicode_config) {
@@ -4601,17 +4601,6 @@ static int bip_cdtv (struct uae_prefs *p, int config, int compa, int romcheck)
 {
        int roms[4];
 
-       roms[0] = 6;
-       roms[1] = 32;
-       roms[2] = -1;
-       if (!configure_rom (p, roms, romcheck))
-               return 0;
-       roms[0] = 20;
-       roms[1] = 21;
-       roms[2] = 22;
-       roms[3] = -1;
-       if (!configure_rom (p, roms, romcheck))
-               return 0;
        p->bogomem_size = 0;
        p->chipmem_size = 0x100000;
        p->chipset_mask = CSMASK_ECS_AGNUS;
@@ -4629,6 +4618,17 @@ static int bip_cdtv (struct uae_prefs *p, int config, int compa, int romcheck)
        built_in_chipset_prefs (p);
        fetch_datapath (p->flashfile, sizeof (p->flashfile) / sizeof (TCHAR));
        _tcscat (p->flashfile, _T("cdtv.nvr"));
+       roms[0] = 6;
+       roms[1] = 32;
+       roms[2] = -1;
+       if (!configure_rom (p, roms, romcheck))
+               return 0;
+       roms[0] = 20;
+       roms[1] = 21;
+       roms[2] = 22;
+       roms[3] = -1;
+       if (!configure_rom (p, roms, romcheck))
+               return 0;
        return 1;
 }
 
@@ -4637,6 +4637,15 @@ static int bip_cd32 (struct uae_prefs *p, int config, int compa, int romcheck)
        int roms[2];
 
        buildin_default_prefs_68020 (p);
+       p->cs_cd32c2p = p->cs_cd32cd = p->cs_cd32nvram = 1;
+       p->nr_floppies = 0;
+       p->floppyslots[0].dfxtype = DRV_NONE;
+       p->floppyslots[1].dfxtype = DRV_NONE;
+       set_68020_compa (p, compa, 1);
+       p->cs_compatible = CP_CD32;
+       built_in_chipset_prefs (p);
+       fetch_datapath (p->flashfile, sizeof (p->flashfile) / sizeof (TCHAR));
+       _tcscat (p->flashfile, _T("cd32.nvr"));
        roms[0] = 64;
        roms[1] = -1;
        if (!configure_rom (p, roms, 0)) {
@@ -4653,15 +4662,6 @@ static int bip_cd32 (struct uae_prefs *p, int config, int compa, int romcheck)
                if (!configure_rom (p, roms, romcheck))
                        return 0;
        }
-       p->cs_cd32c2p = p->cs_cd32cd = p->cs_cd32nvram = 1;
-       p->nr_floppies = 0;
-       p->floppyslots[0].dfxtype = DRV_NONE;
-       p->floppyslots[1].dfxtype = DRV_NONE;
-       set_68020_compa (p, compa, 1);
-       p->cs_compatible = CP_CD32;
-       built_in_chipset_prefs (p);
-       fetch_datapath (p->flashfile, sizeof (p->flashfile) / sizeof (TCHAR));
-       _tcscat (p->flashfile, _T("cd32.nvr"));
        return 1;
 }
 
index b5e3e7a2341bcf4f5751705673f123973b0e22ab..73225eed86151448c33cca4aed481b38a48cd2a0 100644 (file)
@@ -66,6 +66,7 @@ static void *console_thread (void *v)
                record_key_direct ((0x10 << 1) | 0);
                record_key_direct ((0x10 << 1) | 1);
        }
+       return NULL;
 }
 
 int consolehook_activate (void)
index 2337eedbd4c98f2b2c624089a93c86a33c115f92..e7d9d924980dd8142d4b68d968e7049d7ef72c19 100644 (file)
@@ -35,6 +35,9 @@
 #include "debug.h"
 #include "cpummu.h"
 
+static void REGPARAM3 mmu_flush_atc(uaecptr addr, bool super, bool global) REGPARAM;
+static void REGPARAM3 mmu_flush_atc_all(bool global) REGPARAM;
+
 #define DBG_MMU_VERBOSE        1
 #define DBG_MMU_SANITY 1
 
index 2b8abd26fd2bb12102d911841795e67662a25f09..f918c937b7106428d20a35a6b9923a3a632e9c44 100644 (file)
@@ -13,6 +13,7 @@
 
 #include <ctype.h>
 #include <assert.h>
+#include <math.h>
 
 #include "options.h"
 #include "uae.h"
@@ -2221,7 +2222,7 @@ STATIC_INLINE void record_sprite_1 (int sprxp, uae_u16 *buf, uae_u32 datab, int
                        col = (datab & 3) << (2 * num);
 #if 0
                if (sprxp == sprite_minx || sprxp == sprite_maxx - 1)
-                       col ^= (rand () << 16) | rand ();
+                       col ^= (uaerand () << 16) | uaerand ();
 #endif
                if ((j & mask) == 0) {
                        unsigned int tmp = (*buf) | col;
@@ -2727,7 +2728,7 @@ void compute_vsynctime (void)
        fake_vblank_hz = 0;
        vblank_hz_mult = 0;
        vblank_hz_state = 1;
-       if (abs (currprefs.chipset_refreshrate) > 0.1) {
+       if (fabs (currprefs.chipset_refreshrate) > 0.1) {
                vblank_hz = currprefs.chipset_refreshrate;
                if (isvsync_chipset ()) {
                        int mult = 0;
@@ -2840,7 +2841,7 @@ void compute_framesync (void)
                if (!picasso_on) {
                        if (isvsync_chipset ()) {
                                if (cr->index == CHIPSET_REFRESH_PAL || cr->index == CHIPSET_REFRESH_NTSC) {
-                                       if ((abs (vblank_hz - 50) < 1 || abs (vblank_hz - 60) < 1 || abs (vblank_hz - 100) < 1 || abs (vblank_hz - 120) < 1) && currprefs.gfx_apmode[0].gfx_vsync == 2 && currprefs.gfx_apmode[0].gfx_fullscreen > 0) {
+                                       if ((fabs (vblank_hz - 50) < 1 || fabs (vblank_hz - 60) < 1 || fabs (vblank_hz - 100) < 1 || fabs (vblank_hz - 120) < 1) && currprefs.gfx_apmode[0].gfx_vsync == 2 && currprefs.gfx_apmode[0].gfx_fullscreen > 0) {
                                                vsync_switchmode (vblank_hz);
                                        }
                                }
@@ -3080,11 +3081,13 @@ void init_hz (bool fullinit)
        maxvpos_total = (currprefs.chipset_mask & CSMASK_ECS_AGNUS) ? 2047 : 511;
        if (maxvpos_total > MAXVPOS)
                maxvpos_total = MAXVPOS;
+#ifdef PICASSO96
        if (!p96refresh_active) {
                maxvpos_stored = maxvpos;
                maxhpos_stored = maxhpos;
                vblank_hz_stored = vblank_hz;
        }
+#endif
 
        compute_framesync ();
 
@@ -5193,18 +5196,22 @@ static int rpt_vsync (void)
 
 static void rtg_vsync (void)
 {
+#ifdef PICASSO96
        frame_time_t start, end;
        start = read_processor_time ();
        picasso_handle_vsync ();
        end = read_processor_time ();
        frameskiptime += end - start;
+#endif
 }
 
 static void rtg_vsynccheck (void)
 {
        if (vblank_found_rtg) {
                vblank_found_rtg = false;
+#ifdef PICASSO96
                rtg_vsync ();
+#endif
        }
 }
 
@@ -5647,10 +5654,13 @@ static void vsync_handler_post (void)
        if (debug_dma)
                record_dma_reset ();
 
+#ifdef PICASSO96
        if (p96refresh_active) {
                vpos_count = p96refresh_active;
                vtotal = vpos_count;
        }
+#endif
+
        if ((beamcon0 & (0x20 | 0x80)) != (new_beamcon0 & (0x20 | 0x80)) || abs (vpos_count - vpos_count_diff) > 1 || lof_changed) {
                init_hz ();
        } else if (interlace_changed || changed_chipset_refresh ()) {
@@ -5672,7 +5682,7 @@ static void copper_check (int n)
                int vp = vpos & (((cop_state.saved_i2 >> 8) & 0x7F) | 0x80);
                if (vp < cop_state.vcmp) {
                        if (copper_enabled_thisline)
-                               write_log (_T("COPPER BUG %d: vp=%d vpos=%d vcmp=%d act=%d thisline=%d\n"), n, vp, vpos, cop_state.vcmp, copper_enabled_thisline);
+                               write_log (_T("COPPER BUG %d: vp=%d vpos=%d vcmp=%d thisline=%d\n"), n, vp, vpos, cop_state.vcmp, copper_enabled_thisline);
                }
        }
 }
@@ -6198,7 +6208,9 @@ static void hsync_handler_post (bool onvsync)
 #endif
 
        gayle_hsync ();
+#ifdef A2091
        scsi_hsync ();
+#endif
 
        //copper_check (2);
 
@@ -6514,7 +6526,9 @@ void custom_reset (int hardreset)
        if (hardreset)
                rtc_hardreset();
 
+#ifdef PICASSO96
        picasso_reset ();
+#endif
 }
 
 void dumpcustom (void)
@@ -7622,7 +7636,7 @@ uae_u8 *save_cycles (int *len, uae_u8 *dstptr)
        save_u32 (CYCLE_UNIT);
        save_u64 (get_cycles ());
        save_u32 (extra_cycle);
-       write_log (_T("SAVECYCLES %08X\n"), get_cycles ());
+       write_log (_T("SAVECYCLES %08lX\n"), get_cycles ());
        *len = dst - dstbak;
        return dstbak;
 }
@@ -7634,7 +7648,7 @@ uae_u8 *restore_cycles (uae_u8 *src)
        restore_u32 ();
        start_cycles = restore_u64 ();
        extra_cycle = restore_u32 ();
-       write_log (_T("RESTORECYCLES %08X\n"), start_cycles);
+       write_log (_T("RESTORECYCLES %08lX\n"), start_cycles);
        return src;
 }
 
index eb500cfd20e51828eccdf23f98795ad22fa081af..9731c7a04d3df9ca7b3398f8c0a1bfde7b1e89be 100644 (file)
--- a/debug.cpp
+++ b/debug.cpp
@@ -397,7 +397,7 @@ static int checkvaltype (TCHAR **cp, uae_u32 *val, int *size, TCHAR def)
                        return 0;
                *val = v;
                // stupid but works!
-               _stprintf(p, L"%u", v);
+               _stprintf(p, _T("%u"), v);
                p += _tcslen (p);
                if (peekchar (cp) == '.') {
                        readchar (cp);
@@ -2510,7 +2510,7 @@ STATIC_INLINE uaecptr BPTR2APTR (uaecptr addr)
 }
 static TCHAR *BSTR2CSTR (uae_u8 *bstr)
 {
-       WCHAR *s;
+       TCHAR *s;
        char *cstr = xmalloc (char, bstr[0] + 1);
        if (cstr) {
                memcpy (cstr, bstr + 1, bstr[0]);
index f862e6c22aace887860be6d2da898cbe47d15682..f2960fceb26e7a8032498f15f651af599926242c 100644 (file)
--- a/disk.cpp
+++ b/disk.cpp
@@ -4017,8 +4017,7 @@ int disk_prevnext (int drive, int dir)
        return 1;
 }
 
-
 int getdebug(void)
 {
        return floppy[0].mfmpos;
-}
\ No newline at end of file
+}
index 3f7ac9dfc94253c7e9b1b48f8eff1f32f48661e5..cdef62db2908780517a0d835bff36b493525d88a 100644 (file)
@@ -1318,7 +1318,9 @@ static void allocate_expamem (void)
        z3fastmem2_bank.baseaddr = z3fastmem2;
        z3chipmem_bank.baseaddr = z3chipmem;
        fastmem_bank.baseaddr = fastmemory;
+#ifdef PICASSO96
        gfxmem_bank.baseaddr = gfxmemory;
+#endif
 
 #ifdef SAVESTATE
        if (savestate_state == STATE_RESTORE) {
@@ -1409,19 +1411,27 @@ uaecptr need_uae_boot_rom (void)
 
 static void expamem_init_a2065 (void)
 {
+#ifdef A2065
        a2065_init ();
+#endif
 }
 static void expamem_init_cdtv (void)
 {
+#ifdef CDTV
        cdtv_init ();
+#endif
 }
 static void expamem_init_a2091 (void)
 {
+#ifdef A2091
        a2091_init ();
+#endif
 }
 static void expamem_init_a4091 (void)
 {
+#ifdef NCR
        ncr_init ();
+#endif
 }
 #if 0
 void p96memstart (void)
index 6b480f0f52d976a6c739c098e3aaf319b4e5a9f0..8adec8c3e8033731ea6e5f826ceecd683243a9a7 100644 (file)
@@ -1473,7 +1473,7 @@ static void fdi2_decode (FDI *fdi, unsigned long totalavg, uae_u32 *avgp, uae_u3
                        if (i >= pulses)
                                i = 0;
                        indx = idx[i];
-                       if (uaerand() <= (indx * RAND_MAX) / maxidx) {
+                       if (uaerand() <= (indx * UAE_RAND_MAX) / maxidx) {
                                pulse += avgp[i] - ref_pulse;
                                if (indx >= maxidx)
                                        ref_pulse = 0;
@@ -1624,23 +1624,23 @@ static void fdi2_decode (FDI *fdi, unsigned long totalavg, uae_u32 *avgp, uae_u3
                                if (min_pulse < ref_pulse)
                                        min_pulse = ref_pulse;
                                randval = uaerand();
-                               if (randval < (RAND_MAX / 2)) {
-                                       if (randval > (RAND_MAX / 4)) {
-                                               if (randval <= (3 * RAND_MAX / 8))
-                                                       randval = (2 * randval) - (RAND_MAX /4);
+                               if (randval < (UAE_RAND_MAX / 2)) {
+                                       if (randval > (UAE_RAND_MAX / 4)) {
+                                               if (randval <= (3 * UAE_RAND_MAX / 8))
+                                                       randval = (2 * randval) - (UAE_RAND_MAX  /4);
                                                else
-                                                       randval = (4 * randval) - RAND_MAX;
+                                                       randval = (4 * randval) - UAE_RAND_MAX;
                                        }
-                                       jitter = 0 - (randval * (avg_pulse - min_pulse)) / RAND_MAX;
+                                       jitter = 0 - (randval * (avg_pulse - min_pulse)) / UAE_RAND_MAX;
                                } else {
-                                       randval -= RAND_MAX / 2;
-                                       if (randval > (RAND_MAX / 4)) {
-                                               if (randval <= (3 * RAND_MAX / 8))
-                                                       randval = (2 * randval) - (RAND_MAX /4);
+                                       randval -= UAE_RAND_MAX / 2;
+                                       if (randval > (UAE_RAND_MAX / 4)) {
+                                               if (randval <= (3 * UAE_RAND_MAX / 8))
+                                                       randval = (2 * randval) - (UAE_RAND_MAX /4);
                                                else
-                                                       randval = (4 * randval) - RAND_MAX;
+                                                       randval = (4 * randval) - UAE_RAND_MAX;
                                        }
-                                       jitter = (randval * (max_pulse - avg_pulse)) / RAND_MAX;
+                                       jitter = (randval * (max_pulse - avg_pulse)) / UAE_RAND_MAX;
                                }
                                avg_pulse += jitter;
                                if ((avg_pulse < min_pulse) || (avg_pulse > max_pulse)) {
@@ -1654,28 +1654,28 @@ static void fdi2_decode (FDI *fdi, unsigned long totalavg, uae_u32 *avgp, uae_u3
                                ref_pulse = 0;
                                if (i == eodat)
                                        outstep++;
-                       } else if (uaerand() <= ((idx[i] * RAND_MAX) / maxidx)) {
+                       } else if (uaerand() <= ((idx[i] * UAE_RAND_MAX) / maxidx)) {
                                avg_pulse = avgp[i];
                                min_pulse = minp[i];
                                max_pulse = maxp[i];
                                randval = uaerand();
-                               if (randval < (RAND_MAX / 2)) {
-                                       if (randval > (RAND_MAX / 4)) {
-                                               if (randval <= (3 * RAND_MAX / 8))
-                                                       randval = (2 * randval) - (RAND_MAX /4);
+                               if (randval < (UAE_RAND_MAX / 2)) {
+                                       if (randval > (UAE_RAND_MAX / 4)) {
+                                               if (randval <= (3 * UAE_RAND_MAX / 8))
+                                                       randval = (2 * randval) - (UAE_RAND_MAX /4);
                                                else
-                                                       randval = (4 * randval) - RAND_MAX;
+                                                       randval = (4 * randval) - UAE_RAND_MAX;
                                        }
-                                       avg_pulse -= (randval * (avg_pulse - min_pulse)) / RAND_MAX;
+                                       avg_pulse -= (randval * (avg_pulse - min_pulse)) / UAE_RAND_MAX;
                                } else {
-                                       randval -= RAND_MAX / 2;
-                                       if (randval > (RAND_MAX / 4)) {
-                                               if (randval <= (3 * RAND_MAX / 8))
-                                                       randval = (2 * randval) - (RAND_MAX /4);
+                                       randval -= UAE_RAND_MAX / 2;
+                                       if (randval > (UAE_RAND_MAX / 4)) {
+                                               if (randval <= (3 * UAE_RAND_MAX / 8))
+                                                       randval = (2 * randval) - (UAE_RAND_MAX /4);
                                                else
-                                                       randval = (4 * randval) - RAND_MAX;
+                                                       randval = (4 * randval) - UAE_RAND_MAX;
                                        }
-                                       avg_pulse += (randval * (max_pulse - avg_pulse)) / RAND_MAX;
+                                       avg_pulse += (randval * (max_pulse - avg_pulse)) / UAE_RAND_MAX;
                                }
                                if ((avg_pulse > ref_pulse) && (avg_pulse < (avgp[nexti] - jitter))) {
                                        pulse += avg_pulse - ref_pulse;
index 048dbfd7be591ddfa60d568703aac5b2be727229..3cbe7ae90bc0cee92f493f94e40d709f549e7dce 100644 (file)
@@ -73,6 +73,8 @@
 #define TRACE2(x)
 #endif
 
+static void get_time (time_t t, long* days, long* mins, long* ticks);
+
 static uae_sem_t test_sem;
 
 int bootrom_header, bootrom_items;
@@ -649,7 +651,7 @@ int move_filesys_unitconfig (struct uae_prefs *p, int nr, int to)
 }
 
 
-static void filesys_addexternals (void);
+void filesys_addexternals (void);
 
 static void initialize_mountinfo (void)
 {
@@ -676,18 +678,24 @@ static void initialize_mountinfo (void)
                                uci->devname, uci->sectors, uci->surfaces, uci->reserved,
                                uci->bootpri, uci->filesys);
                } else if (uci->controller <= HD_CONTROLLER_SCSI6) {
+#ifdef A2091
                        if (currprefs.cs_mbdmac) {
                                a3000_add_scsi_unit (uci->controller - HD_CONTROLLER_SCSI0, uci->rootdir, uci->blocksize, uci->readonly,
                                        uci->devname, uci->sectors, uci->surfaces, uci->reserved,
                                        uci->bootpri, uci->filesys);
+#endif
                        } else if (currprefs.cs_a2091) {
+#ifdef A2091
                                a2091_add_scsi_unit (uci->controller - HD_CONTROLLER_SCSI0, uci->rootdir, uci->blocksize, uci->readonly,
                                        uci->devname, uci->sectors, uci->surfaces, uci->reserved,
                                        uci->bootpri, uci->filesys);
+#endif
                        } else if (currprefs.cs_cdtvscsi) {
+#ifdef CDTV
                                cdtv_add_scsi_unit (uci->controller - HD_CONTROLLER_SCSI0, uci->rootdir, uci->blocksize, uci->readonly,
                                        uci->devname, uci->sectors, uci->surfaces, uci->reserved,
                                        uci->bootpri, uci->filesys);
+#endif
                        }
                } else if (uci->controller == HD_CONTROLLER_PCMCIA_SRAM) {
                        gayle_add_pcmcia_sram_unit (uci->rootdir, uci->readonly);
@@ -732,7 +740,7 @@ int sprintf_filesys_unit (TCHAR *buffer, int num)
                uip[num].rootdir, uip[num].readonly ? "ro" : "");
        else
                _stprintf (buffer, _T("(DH%d:) Hardfile, \"%s\", size %d Mbytes"), num,
-               uip[num].rootdir, uip[num].hf.virtsize / (1024 * 1024));
+               uip[num].rootdir, (int)(uip[num].hf.virtsize / (1024 * 1024)));
        return 0;
 }
 
@@ -777,7 +785,7 @@ struct hardfiledata *get_hardfile_data (int nr)
 #define dp64_Arg5 56
 
 /* result codes */
-#define DOS_TRUE ((unsigned long)-1L)
+#define DOS_TRUE ((uae_u32)-1L)
 #define DOS_FALSE (0L)
 
 #define MAXFILESIZE32 (0x7fffffff)
@@ -1647,7 +1655,7 @@ static void dispose_aino (Unit *unit, a_inode **aip, a_inode *aino)
 static void free_all_ainos (Unit *u, a_inode *parent)
 {
        a_inode *a;
-       while (a = parent->child) {
+       while ((a = parent->child)) {
                free_all_ainos (u, a);
                dispose_aino (u, &parent->child, a);
        }
@@ -2277,12 +2285,14 @@ static Notify *new_notify (Unit *unit, TCHAR *name)
        return n;
 }
 
+#if 0
 static void free_notify_item (Notify *n)
 {
        xfree (n->fullname);
        xfree (n->partname);
        xfree (n);
 }
+#endif
 
 static void free_notify (Unit *unit, int hash, Notify *n)
 {
@@ -2304,7 +2314,7 @@ static void startup_update_unit (Unit *unit, UnitInfo *uinfo)
        if (!unit)
                return;
        xfree (unit->ui.volname);
-       memcpy (&unit->ui, uinfo, sizeof UnitInfo);
+       memcpy (&unit->ui, uinfo, sizeof (UnitInfo));
        unit->ui.devname = uinfo->devname;
        unit->ui.volname = my_strdup (uinfo->volname); /* might free later for rename */
 }
@@ -2677,6 +2687,7 @@ static Key *new_key (Unit *unit)
        return k;
 }
 
+#if TRACING_ENABLED
 static void
        dumplock (Unit *unit, uaecptr lock)
 {
@@ -2698,6 +2709,7 @@ static void
        }
        TRACE((_T(" }\n")));
 }
+#endif
 
 static a_inode *find_aino (Unit *unit, uaecptr lock, const TCHAR *name, int *err)
 {
@@ -3656,7 +3668,7 @@ static int action_examine_all (Unit *unit, dpacket packet)
        uaecptr control = GET_PCK_ARG5 (packet);
 
        ExAllKey *eak = NULL;
-       a_inode *base;
+       a_inode *base = NULL;
        struct fs_dirhandle *d;
        int ok, i;
        uaecptr exp;
@@ -4076,6 +4088,7 @@ static void do_find (Unit *unit, dpacket packet, int mode, int create, int fallb
                aino->shlock++;
        }
        de_recycle_aino (unit, aino);
+
        PUT_PCK_RES1 (packet, DOS_TRUE);
 }
 
@@ -5139,7 +5152,7 @@ static void action_change_file_position64 (Unit *unit, dpacket packet)
        if (mode < 0)
                whence = SEEK_SET;
 
-       TRACE((_T("ACTION_CHANGE_FILE_POSITION64(%s,%I64d,%d)\n"), k->aino->nname, pos, mode));
+       TRACE((_T("ACTION_CHANGE_FILE_POSITION64(%s,%lld,%d)\n"), k->aino->nname, pos, mode));
        gui_flicker_led (LED_HD, unit->unit, 1);
 
        cur = fs_lseek64 (k->fd, 0, SEEK_CUR);
@@ -5203,7 +5216,7 @@ static void action_change_file_size64 (Unit *unit, dpacket packet)
        if (mode < 0)
                whence = SEEK_SET;
 
-       TRACE((_T("ACTION_CHANGE_FILE_SIZE64(0x%lx, %I64d, 0x%x)\n"), GET_PCK64_ARG1 (packet), offset, mode));
+       TRACE((_T("ACTION_CHANGE_FILE_SIZE64(0x%lx, %lld, 0x%x)\n"), GET_PCK64_ARG1 (packet), offset, mode));
 
        k = lookup_key (unit, GET_PCK64_ARG1 (packet));
        if (k == 0) {
@@ -5503,49 +5516,58 @@ static int handle_packet (Unit *unit, dpacket pck, uae_u32 msg)
 }
 
 #ifdef UAE_FILESYS_THREADS
+
+static int filesys_iteration(UnitInfo *ui)
+{
+       dpacket pck;
+       uaecptr msg;
+       uae_u32 morelocks;
+
+       pck = read_comm_pipe_u32_blocking (ui->unit_pipe);
+       msg = read_comm_pipe_u32_blocking (ui->unit_pipe);
+       morelocks = (uae_u32)read_comm_pipe_int_blocking (ui->unit_pipe);
+
+       if (ui->reset_state == FS_GO_DOWN) {
+               if (pck != 0)
+                  return 1;
+               /* Death message received. */
+               uae_sem_post (&ui->reset_sync_sem);
+               /* Die.  */
+               return 0;
+       }
+
+       put_long (get_long (morelocks), get_long (ui->self->locklist));
+       put_long (ui->self->locklist, morelocks);
+       int ret = handle_packet (ui->self, pck, msg);
+       if (!ret) {
+               PUT_PCK_RES1 (pck, DOS_FALSE);
+               PUT_PCK_RES2 (pck, ERROR_ACTION_NOT_KNOWN);
+       }
+       if (ret >= 0) {
+               /* Mark the packet as processed for the list scan in the assembly code. */
+               put_long (msg + 4, 0xffffffff);
+       }
+       /* Acquire the message lock, so that we know we can safely send the message. */
+       ui->self->cmds_sent++;
+       /* The message is sent by our interrupt handler, so make sure an interrupt happens. */
+       do_uae_int_requested ();
+       /* Send back the locks. */
+       if (get_long (ui->self->locklist) != 0)
+               write_comm_pipe_int (ui->back_pipe, (int)(get_long (ui->self->locklist)), 0);
+       put_long (ui->self->locklist, 0);
+       return 1;
+}
+
+
 static void *filesys_thread (void *unit_v)
 {
        UnitInfo *ui = (UnitInfo *)unit_v;
 
        uae_set_thread_priority (NULL, 1);
        for (;;) {
-               dpacket pck;
-               uaecptr msg;
-               uae_u32 morelocks;
-
-               pck = read_comm_pipe_u32_blocking (ui->unit_pipe);
-               msg = read_comm_pipe_u32_blocking (ui->unit_pipe);
-               morelocks = (uae_u32)read_comm_pipe_int_blocking (ui->unit_pipe);
-
-               if (ui->reset_state == FS_GO_DOWN) {
-                       if (pck != 0)
-                               continue;
-                       /* Death message received. */
-                       uae_sem_post (&ui->reset_sync_sem);
-                       /* Die.  */
+               if (!filesys_iteration (ui)) {
                        return 0;
                }
-
-               put_long (get_long (morelocks), get_long (ui->self->locklist));
-               put_long (ui->self->locklist, morelocks);
-               int ret = handle_packet (ui->self, pck, msg);
-               if (!ret) {
-                       PUT_PCK_RES1 (pck, DOS_FALSE);
-                       PUT_PCK_RES2 (pck, ERROR_ACTION_NOT_KNOWN);
-               }
-               if (ret >= 0) {
-                       /* Mark the packet as processed for the list scan in the assembly code. */
-                       put_long (msg + 4, 0xffffffff);
-               }
-               /* Acquire the message lock, so that we know we can safely send the message. */
-               ui->self->cmds_sent++;
-               /* The message is sent by our interrupt handler, so make sure an interrupt happens. */
-               do_uae_int_requested ();
-               /* Send back the locks. */
-               if (get_long (ui->self->locklist) != 0)
-                       write_comm_pipe_int (ui->back_pipe, (int)(get_long (ui->self->locklist)), 0);
-               put_long (ui->self->locklist, 0);
-
        }
        return 0;
 }
@@ -5863,7 +5885,9 @@ static uae_u32 REGPARAM2 filesys_init_storeinfo (TrapContext *context)
        {
        case 1:
                mountertask = m68k_areg (regs, 1);
+#ifdef PICASSO96
                picasso96_alloc (context);
+#endif
                break;
        case 2:
                ret = automountunit;
@@ -6040,7 +6064,7 @@ static void dump_partinfo (struct hardfiledata *hfd, uae_u8 *pp)
        xfree (s);
 
        if ((uae_u64)highcyl * spt * surfaces * blocksize > hfd->virtsize) {
-               write_log (_T("RDB: WARNING: end of partition > size of disk! (%I64u > %I64u)\n"),
+               write_log (_T("RDB: WARNING: end of partition > size of disk! (%llu > %llu)\n"),
                        (uae_u64)highcyl * spt * surfaces * blocksize, hfd->virtsize);
        }
 
@@ -6100,7 +6124,7 @@ static void dump_rdb (UnitInfo *uip, struct hardfiledata *hfd, uae_u8 *bufrdb, u
        }
 }
 
-#define rdbmnt write_log (_T("Mounting uaehf.device %d (%d) (size=%I64u):\n"), unit_no, partnum, hfd->virtsize);
+#define rdbmnt write_log (_T("Mounting uaehf.device %d (%d) (size=%llu):\n"), unit_no, partnum, hfd->virtsize);
 
 static int rdb_mount (UnitInfo *uip, int unit_no, int partnum, uaecptr parmpacket)
 {
@@ -6131,7 +6155,7 @@ static int rdb_mount (UnitInfo *uip, int unit_no, int partnum, uaecptr parmpacke
        }
        if (lastblock * hfd->blocksize > hfd->virtsize) {
                rdbmnt
-               write_log (_T("failed, too small (%d*%d > %I64u)\n"), lastblock, hfd->blocksize, hfd->virtsize);
+               write_log (_T("failed, too small (%d*%d > %llu)\n"), lastblock, hfd->blocksize, hfd->virtsize);
                return -2;
        }
        for (rdblock = 0; rdblock < lastblock; rdblock++) {
@@ -6179,7 +6203,7 @@ static int rdb_mount (UnitInfo *uip, int unit_no, int partnum, uaecptr parmpacke
 
        if (showdebug) {
                if ((uae_u64)hfd->cylinders * hfd->sectors * hfd->heads * blocksize > hfd->virtsize)
-                       write_log (_T("RDB: WARNING: RDSK header disk size > disk size! (%I64u > %I64u)\n"),
+                       write_log (_T("RDB: WARNING: RDSK header disk size > disk size! (%llu > %llu)\n"),
                                (uae_u64)hfd->cylinders * hfd->sectors * hfd->heads * blocksize, hfd->virtsize);
                write_log (_T("RDSK dump start\n"));
                write_log (_T("RDSK at %d, C=%d S=%d H=%d\n"),
@@ -6722,11 +6746,13 @@ void filesys_install_code (void)
 #endif
 }
 
-#if USE_CDFS
+#if USE_CDFS == 1
 #include "cdrom-handler.cpp"
 #endif
 
+#ifdef _WIN32
 #include "od-win32/win32_filesys.cpp"
+#endif
 
 static uae_u8 *restore_filesys_hardfile (UnitInfo *ui, uae_u8 *src)
 {
@@ -7008,7 +7034,7 @@ static uae_u8 *restore_key (UnitInfo *ui, Unit *u, uae_u8 *src)
                                        write_log (_T("*** FS: Open file '%s', couldn't create dummy file!\n"), p);
                                }
                        } else {
-                               write_log (L"*** FS: Too big, ignored\n");
+                               write_log (_T("*** FS: Too big, ignored\n"));
                        }
                } else {
                        k->fd = fs_openfile (u, a, openmode | O_BINARY);
@@ -7020,9 +7046,9 @@ static uae_u8 *restore_key (UnitInfo *ui, Unit *u, uae_u8 *src)
                        uae_s64 s;
                        s = fs_fsize64 (k->fd);
                        if (s != savedsize)
-                               write_log (_T("FS: restored file '%s' size changed! orig=%I64d, now=%I64d!!\n"), p, savedsize, s);
+                               write_log (_T("FS: restored file '%s' size changed! orig=%lld, now=%lld!!\n"), p, savedsize, s);
                        if (k->file_pos > s) {
-                               write_log (_T("FS: restored filepos larger than size of file '%s'!! %I64d > %d\n"), p, k->file_pos, s);
+                               write_log (_T("FS: restored filepos larger than size of file '%s'!! %lld > %d\n"), p, k->file_pos, s);
                                k->file_pos = s;
                        }
                        fs_lseek64 (k->fd, k->file_pos, SEEK_SET);
@@ -7144,7 +7170,7 @@ static int recurse_aino (UnitInfo *ui, a_inode *a, int cnt, uae_u8 **dstp)
                if (a->elock || a->shlock || a->uniq == 0) {
                        if (dst) {
                                TCHAR *fn = NULL;
-                               write_log (_T("uniq=%d %I64d s=%d e=%d d=%d '%s' '%s'\n"), a->uniq, a->uniq_external, a->shlock, a->elock, a->dir, a->aname, a->nname);
+                               write_log (_T("uniq=%d %lld s=%d e=%d d=%d '%s' '%s'\n"), a->uniq, a->uniq_external, a->shlock, a->elock, a->dir, a->aname, a->nname);
                                if (a->aname) {
                                        fn = getfullaname (a);
                                        write_log (_T("->'%s'\n"), fn);
@@ -7187,7 +7213,7 @@ static uae_u8 *save_key (uae_u8 *dst, Key *k)
        save_string (fn);
        save_u64 (k->file_pos);
        save_u64 (size);
-       write_log (_T("'%s' uniq=%d size=%I64d seekpos=%I64d mode=%d dosmode=%d\n"),
+       write_log (_T("'%s' uniq=%d size=%lld seekpos=%lld mode=%d dosmode=%d\n"),
                fn, k->uniq, size, k->file_pos, k->createmode, k->dosmode);
        xfree (fn);
        return dst;
diff --git a/fpp.cpp b/fpp.cpp
index b8b0364817b0bc3a775d2b9e91e14377373f65f0..53126d7e6a11cefa830524e9f812f71e42455527 100644 (file)
--- a/fpp.cpp
+++ b/fpp.cpp
@@ -274,7 +274,9 @@ STATIC_INLINE tointtype toint (fptype src, fptype minval, fptype maxval)
 #endif
 }
 
+#ifndef HAVE_ISINF
 extern int isinf (double x);
+#endif
 
 uae_u32 get_fpsr (void)
 {
index fba1cb22883383dbfb4b8e29dfbcf68b12681b55..3e5d09c9ec50fadf868d52aa98c658ae144c9fa8 100644 (file)
--- a/fsdb.cpp
+++ b/fsdb.cpp
@@ -54,7 +54,7 @@ TCHAR *fsdb_search_dir (const TCHAR *dirname, TCHAR *rel)
 {
        TCHAR *p = 0;
        int de;
-       void *dir;
+       my_opendir_s *dir;
        TCHAR fn[MAX_DPATH];
 
        dir = my_opendir (dirname);
index e2b223266a5f0543ac14df0c3a4be2574f7e6f8e..f9a43556ff1edea9b06f1ff89f7c0718e1f878ad 100644 (file)
@@ -99,7 +99,7 @@ char *fsdb_create_unique_nname (a_inode *base, const char *suggestion)
        /* tmpnam isn't reentrant and I don't really want to hack configure
         * right now to see whether tmpnam_r is available...  */
        for (i = 0; i < 8; i++) {
-           tmp[i] = "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[random () % 63];
+           tmp[i] = "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[uaerand () % 63];
        }
     }
 }
index 13b1db33234b2e58fe59c4cc630b34284773377f..181272ecd239b8a08b39e934f6f69f60d51371b7 100644 (file)
@@ -46,7 +46,7 @@ static long adjust_blocks (long blocks, int fromsize, int tosize)
                return (blocks + (blocks < 0 ? -1 : 1)) / (tosize / fromsize);
 }
 
-#ifdef _WIN32
+#ifdef WINDOWS
 #include "od-win32/posixemu.h"
 #include <windows.h>
 int get_fs_usage (const TCHAR *path, const TCHAR *disk, struct fs_usage *fsp)
@@ -136,11 +136,7 @@ int statvfs ();
 Return the actual number of bytes read, zero for EOF, or negative
 for an error.  */
 
-int
-       safe_read (desc, ptr, len)
-       int desc;
-TCHAR *ptr;
-int len;
+int safe_read (int desc, TCHAR *ptr, int len)
 {
        int n_chars;
 
@@ -167,11 +163,8 @@ methods that need to know it.
 Return 0 if successful, -1 if not.  When returning -1, ensure that
 ERRNO is either a system error value, or zero if DISK is NULL
 on a system that requires a non-NULL value.  */
-int
-       get_fs_usage (path, disk, fsp)
-       const TCHAR *path;
-const TCHAR *disk;
-struct fs_usage *fsp;
+#ifndef WINDOWS
+int get_fs_usage (const TCHAR *path, const TCHAR *disk, struct fs_usage *fsp)
 {
 #ifdef STAT_STATFS3_OSF1
 # define CONVERT_BLOCKS(B) adjust_blocks ((B), fsd.f_fsize, 512)
@@ -317,6 +310,7 @@ struct fs_usage *fsp;
 
        return 0;
 }
+#endif
 
 #if defined(_AIX) && defined(_I386)
 /* AIX PS/2 does not supply statfs.  */
index 3011a37c4f91723686afa0e762a608837505c639..8a736170b87e94dbbc43fd8c07d98605159297bf 100644 (file)
@@ -39,7 +39,7 @@ double getvsyncrate (double hz, int *mult)
 unsigned int doMask (int p, int bits, int shift)
 {
        /* scale to 0..255, shift to align msb with mask, and apply mask */
-       unsigned long val;
+       uae_u32 val;
 
        if (flashscreen)
                p ^= 0xff;
@@ -211,6 +211,7 @@ static uae_u32 lowbits (int v, int shift, int lsize)
 
 void alloc_colors_picasso (int rw, int gw, int bw, int rs, int gs, int bs, int rgbfmt)
 {
+#ifdef PICASSO96
        int byte_swap = 0;
        int i;
        int red_bits = 0, green_bits, blue_bits;
@@ -294,6 +295,7 @@ void alloc_colors_picasso (int rw, int gw, int bw, int rs, int gs, int bs, int r
                        p96_rgbx16[i] = c;
                }
        }
+#endif
 }
 
 void alloc_colors_rgb (int rw, int gw, int bw, int rs, int gs, int bs, int aw, int as, int alpha, int byte_swap,
@@ -376,6 +378,7 @@ void alloc_colors64k (int rw, int gw, int bw, int rs, int gs, int bs, int aw, in
                grec[2 * 256 + i] = xgreencolors[255];
                bluc[2 * 256 + i] = xbluecolors[255];
        }
+#ifdef GFXFILTER
        if (usedfilter && usedfilter->yuv) {
                /* create internal 5:6:5 color tables */
                for (i = 0; i < 256; i++) {
@@ -427,6 +430,7 @@ void alloc_colors64k (int rw, int gw, int bw, int rs, int gs, int bs, int aw, in
                        tcrrgb[i] = ((uae_s8)get_cr (r, g, b)) * 256;
                }
        }
+#endif
 
 #endif
        xredcolor_b = rw;
index 88091bfd3e1289fe8156082bc58c1c2c1abecec1..c063ed4851b54380fb0974cd5206f42e3f636f01 100644 (file)
@@ -42,7 +42,6 @@ extern int action_replay_load (void);
 extern void action_replay_memory_reset (void);
 extern void action_replay_init (int);
 extern void action_replay_cleanup (void);
-extern void action_replay_map_banks (void);
 extern void REGPARAM3 chipmem_lput_actionreplay23 (uaecptr addr, uae_u32 l) REGPARAM;
 extern void REGPARAM3 chipmem_wput_actionreplay23 (uaecptr addr, uae_u32 w) REGPARAM;
 extern void REGPARAM3 chipmem_bput_actionreplay1 (uaecptr addr, uae_u32 b) REGPARAM;
index 7d9fabc8a6d4e652fc574b79c0c062a21ae4e314..016d3d110fc981d89c0082d9e2b2ba4b04cdd2cf 100644 (file)
@@ -152,8 +152,6 @@ struct device_functions {
 
 };
 
-extern struct device_functions *device_func[MAX_TOTAL_SCSI_DEVICES];
-
 extern int device_func_init(int flags);
 extern void device_func_reset(void);
 extern int sys_command_open (int unitnum);
index 883153cbf6843d0a8906132d21dfd7124fc67005..8510a38c03a936f5e4d170d683e8dda778a3a54d 100644 (file)
@@ -66,6 +66,7 @@ struct socketbase {
        uae_u32 logfacility;
        uaecptr fdcallback;
 
+    unsigned int *mtable;      /* window messages allocated for asynchronous event notification */
     /* host-specific fields below */
 #ifdef _WIN32
     SOCKET_TYPE sockAbort;     /* for aborting WinSock2 select() (damn Microsoft) */
@@ -73,7 +74,6 @@ struct socketbase {
     int needAbort;             /* abort flag */
     void *hAsyncTask;          /* async task handle */
     void *hEvent;              /* thread event handle */
-    unsigned int *mtable;      /* window messages allocated for asynchronous event notification */
 #else
     uae_sem_t sem;             /* semaphore to notify the socket thread of work */
     uae_thread_id thread;      /* socket thread */
index 13760e49f017bfa208e1751b472ddb9d53f8ab6d..baef88a019d69121752dd02dfa8388d23eed3903 100644 (file)
@@ -228,8 +228,6 @@ extern mmu_atc_l1_array *current_atc;
 
 #define ATC_L2_INDEX(addr)     ((((addr) >> 12) ^ ((addr) >> (32 - ATC_L2_SIZE_LOG))) % ATC_L2_SIZE)
 
-extern struct mmu_atc_line atc_l2[2][ATC_L2_SIZE];
-
 /*
  * lookup address in the level 1 atc cache,
  * the data and write arguments are constant in the common,
@@ -288,9 +286,6 @@ extern void REGPARAM3 dfc_put_long(uaecptr addr, uae_u32 val) REGPARAM;
 extern void REGPARAM3 dfc_put_word(uaecptr addr, uae_u16 val) REGPARAM;
 extern void REGPARAM3 dfc_put_byte(uaecptr addr, uae_u8 val) REGPARAM;
 
-
-extern void REGPARAM3 mmu_flush_atc(uaecptr addr, bool super, bool global) REGPARAM;
-extern void REGPARAM3 mmu_flush_atc_all(bool global) REGPARAM;
 extern void REGPARAM3 mmu_op_real(uae_u32 opcode, uae_u16 extra) REGPARAM;
 
 extern void REGPARAM3 mmu_reset(void) REGPARAM;
index 656c2e152a8b0df76838176de4be51fe02e20237..4454cd3e3f8f14873df8f0edc1a681f79fc18e5f 100644 (file)
@@ -139,7 +139,6 @@ extern frame_time_t syncbase;
 #define CYCLE_CPUNASTY 0x80
 
 extern unsigned long frametime, timeframes;
-extern int plfstrt, plfstop, plffirstline, plflastline;
 extern uae_u16 htotal, vtotal, beamcon0;
 
 /* 100 words give you 1600 horizontal pixels. Should be more than enough for
index aacbdd2db189d559aca84be9c278644da977c860..7af4073e86494fbd3e4f359ebcc5892af3f01e3c 100644 (file)
@@ -42,7 +42,7 @@ before it appears on-screen. (TW: display emulation now does this automatically)
 
 #define max_diwlastword (PIXEL_XPOS(0x1d4 >> 1))
 
-extern int lores_factor, lores_shift, sprite_width, interlace_seen;
+extern int lores_factor, lores_shift, interlace_seen;
 extern bool aga_mode, direct_rgb;
 
 STATIC_INLINE int coord_hw_to_window_x (int x)
@@ -202,13 +202,6 @@ extern uae_u16 spixels[MAX_SPR_PIXELS * 2];
 /* Way too much... */
 #define MAX_REG_CHANGE ((MAXVPOS + 1) * 2 * MAXHPOS)
 
-#ifdef OS_WITHOUT_MEMORY_MANAGEMENT
-extern struct color_change *color_changes[2];
-#else
-extern struct color_change color_changes[2][MAX_REG_CHANGE];
-#endif
-
-extern struct color_entry color_tables[2][(MAXVPOS + 2) * 2];
 extern struct color_entry *curr_color_tables, *prev_color_tables;
 
 extern struct sprite_entry *curr_sprite_entries, *prev_sprite_entries;
@@ -243,8 +236,6 @@ struct draw_info {
        int nr_color_changes, nr_sprites;
 };
 
-extern int next_sprite_entry;
-
 extern struct decision line_decisions[2 * (MAXVPOS + 2) + 1];
 
 extern uae_u8 line_data[(MAXVPOS + 2) * 2][MAX_PLANES * MAX_WORDS_PER_LINE * 2];
@@ -288,7 +279,6 @@ extern void putpixel (uae_u8 *buf, int bpp, int x, xcolnr c8, int opaq);
 /* Finally, stuff that shouldn't really be shared.  */
 
 extern int thisframe_first_drawn_line, thisframe_last_drawn_line;
-extern int diwfirstword, diwlastword;
 
 #define IHF_SCROLLLOCK 0
 #define IHF_QUIT_PROGRAM 1
index 55f8e50d53c048e810c1ff6a761732953b3cbc54..906387fa343481d99c19d63c207b6da5795ebdc9 100644 (file)
@@ -299,31 +299,18 @@ STATIC_INLINE int valid_address (uaecptr addr, uae_u32 size)
 extern int addr_valid (const TCHAR*, uaecptr,uae_u32);
 
 /* For faster access in custom chip emulation.  */
-extern uae_u32 REGPARAM3 chipmem_lget (uaecptr) REGPARAM;
-extern uae_u32 REGPARAM3 chipmem_wget (uaecptr) REGPARAM;
-extern uae_u32 REGPARAM3 chipmem_bget (uaecptr) REGPARAM;
 extern void REGPARAM3 chipmem_lput (uaecptr, uae_u32) REGPARAM;
 extern void REGPARAM3 chipmem_wput (uaecptr, uae_u32) REGPARAM;
 extern void REGPARAM3 chipmem_bput (uaecptr, uae_u32) REGPARAM;
 
-extern uae_u32 REGPARAM3 chipmem_agnus_lget (uaecptr) REGPARAM;
 extern uae_u32 REGPARAM3 chipmem_agnus_wget (uaecptr) REGPARAM;
-extern uae_u32 REGPARAM3 chipmem_agnus_bget (uaecptr) REGPARAM;
-extern void REGPARAM3 chipmem_agnus_lput (uaecptr, uae_u32) REGPARAM;
 extern void REGPARAM3 chipmem_agnus_wput (uaecptr, uae_u32) REGPARAM;
-extern void REGPARAM3 chipmem_agnus_bput (uaecptr, uae_u32) REGPARAM;
 
 extern uae_u32 chipmem_mask, kickmem_mask;
 extern uae_u8 *kickmemory;
-extern int kickmem_size;
 extern addrbank dummy_bank;
 
 /* 68020+ Chip RAM DMA contention emulation */
-extern uae_u32 REGPARAM3 chipmem_lget_ce2 (uaecptr) REGPARAM;
-extern uae_u32 REGPARAM3 chipmem_wget_ce2 (uaecptr) REGPARAM;
-extern uae_u32 REGPARAM3 chipmem_bget_ce2 (uaecptr) REGPARAM;
-extern void REGPARAM3 chipmem_lput_ce2 (uaecptr, uae_u32) REGPARAM;
-extern void REGPARAM3 chipmem_wput_ce2 (uaecptr, uae_u32) REGPARAM;
 extern void REGPARAM3 chipmem_bput_c2 (uaecptr, uae_u32) REGPARAM;
 
 extern uae_u32 (REGPARAM3 *chipmem_lget_indirect)(uaecptr) REGPARAM;
@@ -363,4 +350,4 @@ extern void memcpyah_safe (uae_u8 *dst, uaecptr src, int size);
 extern void memcpyah (uae_u8 *dst, uaecptr src, int size);
 
 extern uae_s32 getz2size (struct uae_prefs *p);
-extern ULONG getz2endaddr (void);
\ No newline at end of file
+extern ULONG getz2endaddr (void);
index fa3f7701de4cd9669e8afd86fad41405f7063483..f76ce8a261cb2cd264380adde502f75a3c751aa0 100644 (file)
@@ -18,7 +18,7 @@ extern long int version;
 #define MAX_PATHS 8
 
 struct multipath {
-       TCHAR path[MAX_PATHS][256];
+       TCHAR path[MAX_PATHS][PATH_MAX];
 };
 
 struct strlist {
index 051328ef8ef57a62ff4006480bc1af7e2b168d18..c74007e498186a35485b9d6174bfc84af42e9d1a 100644 (file)
@@ -153,7 +153,7 @@ extern void restore_cd_finish (void);
 extern uae_u8 *save_configuration (int *len);
 extern uae_u8 *restore_configuration (uae_u8 *src);
 extern uae_u8 *save_log (int, int *len);
-extern uae_u8 *restore_log (uae_u8 *src);
+//extern uae_u8 *restore_log (uae_u8 *src);
 
 extern uae_u8 *restore_input (uae_u8 *src);
 extern uae_u8 *save_input (int *len, uae_u8 *dstptr);
index c0ce29e595c7e2bcdaaabda278aa5f6120902b7b..e06132ab2abeb8be63f9682d0f02d9975b26c840 100644 (file)
@@ -150,7 +150,7 @@ struct utimbuf
 #define memcpy q_memcpy
 #define memset q_memset
 #define strdup my_strdup
-#define random rand
+#define random uaerand
 #define creat(x,y) open("T:creat",O_CREAT|O_RDWR|O_TRUNC,777)
 extern void* q_memset(void*,int,size_t);
 extern void* q_memcpy(void*,const void*,size_t);
@@ -578,4 +578,4 @@ extern void xfree (const void*);
 
 #endif
 
-#define DBLEQU(f, i) (abs ((f) - (i)) < 0.000001)
\ No newline at end of file
+#define DBLEQU(f, i) (abs ((f) - (i)) < 0.000001)
index 68756c2ccfba5a04e5d4fe7a7dc477227b2f6312..5b3c7b42e5a78f4456aa31e9b37c6518560489cb 100644 (file)
@@ -12,7 +12,6 @@ extern void start_program (void);
 extern void leave_program (void);
 extern void real_main (int, TCHAR **);
 extern void usage (void);
-extern void parse_cmdline (int argc, TCHAR **argv);
 extern void sleep_millis (int ms);
 extern void sleep_millis_main (int ms);
 extern void sleep_millis_busy (int ms);
index b9b863bba9d039dfa0be34cc31be613fd97ebc24..3c7389d326f1257bfd29f98e9dc88d46b276ce80 100644 (file)
@@ -1,6 +1,6 @@
 
 typedef uae_s64 (*ZFILEREAD)(void*, uae_u64, uae_u64, struct zfile*);
-typedef uae_s64 (*ZFILEWRITE)(void*, uae_u64, uae_u64, struct zfile*);
+typedef uae_s64 (*ZFILEWRITE)(const void*, uae_u64, uae_u64, struct zfile*);
 typedef uae_s64 (*ZFILESEEK)(struct zfile*, uae_s64, int);
 
 struct zfile {
@@ -112,11 +112,9 @@ extern struct znode *zvolume_adddir_abs (struct zvolume *zv, struct zarchive_inf
 extern struct znode *znode_adddir (struct znode *parent, const TCHAR *name, struct zarchive_info*);
 
 extern struct zvolume *archive_directory_plain (struct zfile *zf);
-extern struct zfile *archive_access_plain (struct znode *zn);
 extern struct zvolume *archive_directory_lha(struct zfile *zf);
 extern struct zfile *archive_access_lha (struct znode *zn);
 extern struct zvolume *archive_directory_zip(struct zfile *zf);
-extern struct zfile *archive_access_zip (struct znode *zn, int flags);
 extern struct zvolume *archive_directory_7z (struct zfile *z);
 extern struct zfile *archive_access_7z (struct znode *zn);
 extern struct zvolume *archive_directory_rar (struct zfile *z);
@@ -126,12 +124,8 @@ extern struct zfile *archive_access_lzx (struct znode *zn);
 extern struct zvolume *archive_directory_arcacc (struct zfile *z, unsigned int id);
 extern struct zfile *archive_access_arcacc (struct znode *zn);
 extern struct zvolume *archive_directory_adf (struct znode *zn, struct zfile *z);
-extern struct zfile *archive_access_adf (struct znode *zn);
 extern struct zvolume *archive_directory_rdb (struct zfile *z);
-extern struct zfile *archive_access_rdb (struct znode *zn);
 extern struct zvolume *archive_directory_fat (struct zfile *z);
-extern struct zfile *archive_access_fat (struct znode *zn);
-extern struct zfile *archive_access_dir (struct znode *zn);
 extern struct zvolume *archive_directory_tar (struct zfile *zf);
 extern struct zfile *archive_access_tar (struct znode *zn);
 
@@ -146,4 +140,4 @@ extern void archive_access_close (void *handle, unsigned int id);
 extern struct zfile *archive_getzfile (struct znode *zn, unsigned int id, int flags);
 extern struct zfile *archive_unpackzfile (struct zfile *zf);
 
-extern struct zfile *decompress_zfd (struct zfile*);
\ No newline at end of file
+extern struct zfile *decompress_zfd (struct zfile*);
index 5d10a7b0ddfa6819cd5a5909f3e27212321bebb9..a25a92d9b7a2c4af9e75e5aae9026be6cec01d29 100644 (file)
@@ -50,7 +50,7 @@ extern uae_s64 zfile_fseek (struct zfile *z, uae_s64 offset, int mode);
 extern uae_s64 zfile_ftell (struct zfile *z);
 extern uae_s64 zfile_size (struct zfile *z);
 extern size_t zfile_fread  (void *b, size_t l1, size_t l2, struct zfile *z);
-extern size_t zfile_fwrite  (void *b, size_t l1, size_t l2, struct zfile *z);
+extern size_t zfile_fwrite  (const void *b, size_t l1, size_t l2, struct zfile *z);
 extern TCHAR *zfile_fgets (TCHAR *s, int size, struct zfile *z);
 extern char *zfile_fgetsa (char *s, int size, struct zfile *z);
 extern size_t zfile_fputs (struct zfile *z, TCHAR *s);
@@ -129,4 +129,4 @@ extern unsigned int zfile_read_archive (struct zfile *d, void *b, unsigned int s
 extern void zfile_close_archive (struct zfile *d);
 extern struct zfile *zfile_open_archive (const TCHAR *path, int flags);
 extern int zfile_exists_archive (const TCHAR *path, const TCHAR *rel);
-extern bool zfile_needwrite (struct zfile*);
\ No newline at end of file
+extern bool zfile_needwrite (struct zfile*);
index 163883d6862ad36f29b1e91eb2aebdecb309d329..244eaf566fc2b7fcbd1548438089348002e6d1e4 100644 (file)
@@ -85,7 +85,7 @@ int inputdevice_logging = 0;
 
 #define JOYMOUSE_CDTV 8
 
-#define DEFEVENT(A, B, C, D, E, F) {L#A, B, C, D, E, F },
+#define DEFEVENT(A, B, C, D, E, F) {_T(#A), B, C, D, E, F },
 static struct inputevent events[] = {
        {0, 0, AM_K,0,0,0},
 #include "inputevents.def"
@@ -2416,6 +2416,7 @@ void inputdevice_add_inputcode (int code, int state)
 
 void inputdevice_do_keyboard (int code, int state)
 {
+#ifdef CDTV
        if (code >= 0x72 && code <= 0x77) { // CDTV keys
                if (cdtv_front_panel (-1)) {
                        // front panel active
@@ -2425,6 +2426,7 @@ void inputdevice_do_keyboard (int code, int state)
                        return;
                }
        }
+#endif
        if (code < 0x80) {
                uae_u8 key = code | (state ? 0x00 : 0x80);
                keybuf[key & 0x7f] = (key & 0x80) ? 0 : 1;
index c2b3a56e901c5dbf3429a2e304362fb23e6f7be7..0dbe4006093bf2b17ab65a2132cc2186402c6a52 100644 (file)
--- a/isofs.cpp
+++ b/isofs.cpp
@@ -2137,7 +2137,7 @@ static struct inode *isofs_find_entry(struct inode *dir, char *tmpname, TCHAR *t
                dpnt = de->name;
                /* Basic sanity check, whether name doesn't exceed dir entry */
                if (de_len < dlen + sizeof(struct iso_directory_record)) {
-                       write_log (_T("iso9660: Corrupted directory entry in block %lu of inode %lu\n"), block, dir->i_ino);
+                       write_log (_T("iso9660: Corrupted directory entry in block %lu of inode %u\n"), block, dir->i_ino);
                        return 0;
                }
 
index f13f125e5980bbfe58f7937646dbc534f5a98bef..cd320c36e6aec9f690ac1d9aeef393e3283e7606 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -106,7 +106,7 @@ void my_trim (TCHAR *s)
 {
        int len;
        while (_tcscspn (s, _T("\t \r\n")) == 0)
-               memmove (s, s + 1, (_tcslen (s + 1) + 1) * sizeof TCHAR);
+               memmove (s, s + 1, (_tcslen (s + 1) + 1) * sizeof (TCHAR));
        len = _tcslen (s);
        while (len > 0 && _tcscspn (s + len - 1, _T("\t \r\n")) == 0)
                s[--len] = '\0';
@@ -123,7 +123,7 @@ TCHAR *my_strdup_trim (const TCHAR *s)
        while (len > 0 && _tcscspn (s + len - 1, _T("\t \r\n")) == 0)
                len--;
        out = xmalloc (TCHAR, len + 1);
-       memcpy (out, s, len * sizeof TCHAR);
+       memcpy (out, s, len * sizeof (TCHAR));
        out[len] = 0;
        return out;
 }
@@ -477,8 +477,10 @@ void fixup_prefs (struct uae_prefs *p)
 #endif
 #if !defined (SCSIEMU)
        p->scsi = 0;
+#ifdef _WIN32
        p->win32_aspi = 0;
 #endif
+#endif
 #if !defined (SANA2)
        p->sana2 = 0;
 #endif
@@ -701,7 +703,7 @@ static void parse_cmdline_and_init_file (int argc, TCHAR **argv)
 #ifdef OPTIONS_IN_HOME
                /* sam: if not found in $HOME then look in current directory */
                _tcscpy (optionsfile, restart_config);
-               target_cfgfile_load (&currprefs, optionsfile, 0);
+               target_cfgfile_load (&currprefs, optionsfile, 0, default_config);
 #endif
        }
        fixup_prefs (&currprefs);
@@ -762,12 +764,14 @@ void reset_all_systems (void)
 * Add #ifdefs around these as appropriate.
 */
 
+#ifdef _WIN32
 #ifndef JIT
 extern int DummyException (LPEXCEPTION_POINTERS blah, int n_except)
 {
        return EXCEPTION_CONTINUE_SEARCH;
 }
 #endif
+#endif
 
 void do_start_program (void)
 {
index 38749be256e6a9dff3a542feb040ac5c108c5678..420b2fbbe355108b1d5ae775c7acf18f8f79284c 100644 (file)
@@ -170,13 +170,13 @@ static void dummylog (int rw, uaecptr addr, int size, uae_u32 val, int ins)
        if (MAX_ILG >= 0)
                illegal_count++;
        if (ins) {
-               write_log (_T("WARNING: Illegal opcode %cget at %08lx PC=%x\n"),
+               write_log (_T("WARNING: Illegal opcode %cget at %08x PC=%x\n"),
                        size == 2 ? 'w' : 'l', addr, M68K_GETPC);
        } else if (rw) {
-               write_log (_T("Illegal %cput at %08lx=%08lx PC=%x\n"),
+               write_log (_T("Illegal %cput at %08x=%08x PC=%x\n"),
                        size == 1 ? 'b' : size == 2 ? 'w' : 'l', addr, val, M68K_GETPC);
        } else {
-               write_log (_T("Illegal %cget at %08lx PC=%x\n"),
+               write_log (_T("Illegal %cget at %08x PC=%x\n"),
                        size == 1 ? 'b' : size == 2 ? 'w' : 'l', addr, M68K_GETPC);
        }
 }
@@ -442,7 +442,7 @@ void REGPARAM2 chipmem_bput (uaecptr addr, uae_u32 b)
 static uae_u32 chipmem_dummy (void)
 {
        /* not really right but something random that has more ones than zeros.. */
-       return 0xffff & ~((1 << (rand () & 31)) | (1 << (rand () & 31)));
+       return 0xffff & ~((1 << (uaerand () & 31)) | (1 << (uaerand () & 31)));
 }
 void REGPARAM2 chipmem_dummy_bput (uaecptr addr, uae_u32 b)
 {
@@ -971,7 +971,7 @@ static void REGPARAM2 kickmem_lput (uaecptr addr, uae_u32 b)
                } else
                        a1000_handle_kickstart (0);
        } else if (currprefs.illegal_mem)
-               write_log (_T("Illegal kickmem lput at %08lx\n"), addr);
+               write_log (_T("Illegal kickmem lput at %08x\n"), addr);
 }
 
 static void REGPARAM2 kickmem_wput (uaecptr addr, uae_u32 b)
@@ -989,7 +989,7 @@ static void REGPARAM2 kickmem_wput (uaecptr addr, uae_u32 b)
                } else
                        a1000_handle_kickstart (0);
        } else if (currprefs.illegal_mem)
-               write_log (_T("Illegal kickmem wput at %08lx\n"), addr);
+               write_log (_T("Illegal kickmem wput at %08x\n"), addr);
 }
 
 static void REGPARAM2 kickmem_bput (uaecptr addr, uae_u32 b)
@@ -1005,7 +1005,7 @@ static void REGPARAM2 kickmem_bput (uaecptr addr, uae_u32 b)
                } else
                        a1000_handle_kickstart (0);
        } else if (currprefs.illegal_mem)
-               write_log (_T("Illegal kickmem bput at %08lx\n"), addr);
+               write_log (_T("Illegal kickmem bput at %08x\n"), addr);
 }
 
 static void REGPARAM2 kickmem2_lput (uaecptr addr, uae_u32 l)
@@ -1099,7 +1099,7 @@ static void REGPARAM2 extendedkickmem_lput (uaecptr addr, uae_u32 b)
        special_mem |= S_WRITE;
 #endif
        if (currprefs.illegal_mem)
-               write_log (_T("Illegal extendedkickmem lput at %08lx\n"), addr);
+               write_log (_T("Illegal extendedkickmem lput at %08x\n"), addr);
 }
 static void REGPARAM2 extendedkickmem_wput (uaecptr addr, uae_u32 b)
 {
@@ -1107,7 +1107,7 @@ static void REGPARAM2 extendedkickmem_wput (uaecptr addr, uae_u32 b)
        special_mem |= S_WRITE;
 #endif
        if (currprefs.illegal_mem)
-               write_log (_T("Illegal extendedkickmem wput at %08lx\n"), addr);
+               write_log (_T("Illegal extendedkickmem wput at %08x\n"), addr);
 }
 static void REGPARAM2 extendedkickmem_bput (uaecptr addr, uae_u32 b)
 {
@@ -1115,7 +1115,7 @@ static void REGPARAM2 extendedkickmem_bput (uaecptr addr, uae_u32 b)
        special_mem |= S_WRITE;
 #endif
        if (currprefs.illegal_mem)
-               write_log (_T("Illegal extendedkickmem lput at %08lx\n"), addr);
+               write_log (_T("Illegal extendedkickmem lput at %08x\n"), addr);
 }
 static int REGPARAM2 extendedkickmem_check (uaecptr addr, uae_u32 size)
 {
@@ -1166,7 +1166,7 @@ static void REGPARAM2 extendedkickmem2_lput (uaecptr addr, uae_u32 b)
        special_mem |= S_WRITE;
 #endif
        if (currprefs.illegal_mem)
-               write_log (_T("Illegal extendedkickmem2 lput at %08lx\n"), addr);
+               write_log (_T("Illegal extendedkickmem2 lput at %08x\n"), addr);
 }
 static void REGPARAM2 extendedkickmem2_wput (uaecptr addr, uae_u32 b)
 {
@@ -1174,7 +1174,7 @@ static void REGPARAM2 extendedkickmem2_wput (uaecptr addr, uae_u32 b)
        special_mem |= S_WRITE;
 #endif
        if (currprefs.illegal_mem)
-               write_log (_T("Illegal extendedkickmem2 wput at %08lx\n"), addr);
+               write_log (_T("Illegal extendedkickmem2 wput at %08x\n"), addr);
 }
 static void REGPARAM2 extendedkickmem2_bput (uaecptr addr, uae_u32 b)
 {
@@ -1182,7 +1182,7 @@ static void REGPARAM2 extendedkickmem2_bput (uaecptr addr, uae_u32 b)
        special_mem |= S_WRITE;
 #endif
        if (currprefs.illegal_mem)
-               write_log (_T("Illegal extendedkickmem2 lput at %08lx\n"), addr);
+               write_log (_T("Illegal extendedkickmem2 lput at %08x\n"), addr);
 }
 static int REGPARAM2 extendedkickmem2_check (uaecptr addr, uae_u32 size)
 {
@@ -1894,7 +1894,7 @@ err:
 
 #ifndef NATMEM_OFFSET
 
-uae_u8 *mapped_malloc (size_t s, TCHAR *file)
+uae_u8 *mapped_malloc (size_t s, const TCHAR *file)
 {
        return xmalloc (uae_u8, s);
 }
@@ -2189,6 +2189,7 @@ static void allocate_memory (void)
                }
                need_hardreset = 1;
        }
+#ifdef CDTV
        if (allocated_cardmem != currprefs.cs_cdtvcard * 1024) {
                if (cardmemory)
                        mapped_free (cardmemory);
@@ -2205,6 +2206,7 @@ static void allocate_memory (void)
                }
                cdtv_loadcardmem(cardmemory, allocated_cardmem);
        }
+#endif
        if (allocated_custmem1 != currprefs.custom_memory_sizes[0]) {
                if (custmem1)
                        mapped_free (custmem1);
@@ -2523,21 +2525,29 @@ void memory_reset (void)
                map_banks (&clock_bank, 0xDC, 1, 0); /* none clock */
        if (currprefs.cs_fatgaryrev >= 0 || currprefs.cs_ramseyrev >= 0)
                map_banks (&mbres_bank, 0xDE, 1, 0);
+#ifdef CD32
        if (currprefs.cs_cd32c2p || currprefs.cs_cd32cd || currprefs.cs_cd32nvram) {
                map_banks (&akiko_bank, AKIKO_BASE >> 16, 1, 0);
                map_banks (&gayle2_bank, 0xDD, 2, 0);
        }
+#endif
+#ifdef CDTV
        if (currprefs.cs_cdtvcd)
                cdtv_check_banks ();
+#endif
+#ifdef A2091
        if (currprefs.cs_mbdmac == 1)
                a3000scsi_reset ();
+#endif
 
        if (a3000lmemory != 0)
                map_banks (&a3000lmem_bank, a3000lmem_start >> 16, allocated_a3000lmem >> 16, 0);
        if (a3000hmemory != 0)
                map_banks (&a3000hmem_bank, a3000hmem_start >> 16, allocated_a3000hmem >> 16, 0);
+#ifdef CDTV
        if (cardmemory != 0)
                map_banks (&cardmem_bank, cardmem_start >> 16, allocated_cardmem >> 16, 0);
+#endif
 
        map_banks (&kickmem_bank, 0xF8, 8, 0);
        if (currprefs.maprom)
@@ -2689,10 +2699,12 @@ void memory_cleanup (void)
                xfree (a1000_bootrom);
        if (chipmemory)
                mapped_free (chipmemory);
+#ifdef CDTV
        if (cardmemory) {
                cdtv_savecardmem (cardmemory, allocated_cardmem);
                mapped_free (cardmemory);
        }
+#endif
        if (custmem1)
                mapped_free (custmem1);
        if (custmem2)
index 91ffb06ff0557e1558a80b9760836f6b5b2d3aa2..bb898121f8c0185d8e245d2947465c730a2ecbb8 100644 (file)
@@ -420,7 +420,7 @@ static void REGPARAM2 ncr_bput (uaecptr addr, uae_u32 b)
        ncr_bput2 (addr, b);
 }
 
-static addrbank ncr_bank = {
+addrbank ncr_bank = {
        ncr_lget, ncr_wget, ncr_bget,
        ncr_lput, ncr_wput, ncr_bput,
        default_xlate, default_check, NULL, _T("A4091"),
index ddf7e143a1d2344182c9c540acd8aebb9f1df020..100d053f33bc4c482ff2fb7f68b177dbacb1a463 100644 (file)
@@ -14,6 +14,7 @@
 //#define X86_MSVC_ASSEMBLY_MEMACCESS
 #define OPTIMIZED_FLAGS
 #define __i386__
+#define WINDOWS
 
 #ifndef UAE_MINI
 
 
 #endif
 
+#define A_ZIP
+#define A_RAR
+#define A_7Z
+#define A_LHA
+#define A_LZX
+#define A_DMS
+#define A_WRP
+
+#ifndef PATH_MAX
+#define PATH_MAX 256
+#endif
+
+#define UAE_RAND_MAX RAND_MAX
+
 #ifndef GFXFILTER
 #undef OPENGL
 #undef D3D
 #define SIZEOF_DOUBLE 8
 
 #define HAVE_ISNAN
-#define HAVE_ISINF
+#undef HAVE_ISINF
 #define isnan _isnan
 
 /* Define if you have the bcopy function.  */
index b597d161069bce08f25dab055fe8c9480fa1daa4..a3a6c29a3f01c81749bf4dc54c2b8a711f34fd7b 100644 (file)
@@ -131,7 +131,7 @@ static int hfdcheck (TCHAR drive)
        return 0;
 }
 
-static void filesys_addexternals (void)
+void filesys_addexternals (void)
 {
        int drive, drivetype;
        UINT errormode;
index 2b9b1c14a05a32719becd4bb8d289d5d6bb6f963..1eceff658165f8d31f7608cc20ec75d2f3b87cd7 100644 (file)
@@ -728,9 +728,15 @@ void savestate_restore_finish (void)
        restore_disk_finish ();
        restore_blitter_finish ();
        restore_akiko_finish ();
+#ifdef CDTV
        restore_cdtv_finish ();
+#endif
+#ifdef PICASSO96
        restore_p96_finish ();
+#endif
+#ifdef A2065
        restore_a2065_finish ();
+#endif
        restore_cia_finish ();
        restore_debug_memwatch_finish ();
        savestate_state = 0;
index 9e9913fc9bfe2dacc50118574ecab492bc33d0eb..23f07b22101bc6c3884073936dfe46ac1dce7f66 100644 (file)
@@ -390,7 +390,7 @@ static int release_async_request (struct devstruct *dev, uaecptr request)
        int i = 0;
 
        if (log_scsi)
-               write_log (_T("async request %p removed\n"), request);
+               write_log (_T("async request %08x removed\n"), request);
        while (i < MAX_ASYNC_REQUESTS) {
                if (dev->d_request[i] == request) {
                        int type = dev->d_request_type[i];
@@ -859,7 +859,7 @@ static int dev_do_io (struct devstruct *dev, uaecptr request)
                        uae_u32 sdd = get_long (request + 40);
                        io_error = sys_command_scsi_direct (dev->unitnum, sdd);
                        if (log_scsi)
-                               write_log (_T("scsidev: did io: sdd %p request %p error %d\n"), sdd, request, get_byte (request + 31));
+                               write_log (_T("scsidev: did io: sdd %08x request %08x error %d\n"), sdd, request, get_byte (request + 31));
                }
                break;
        case NSCMD_DEVICEQUERY:
@@ -1048,7 +1048,7 @@ static void dev_reset (void)
                if (dev->opencnt > 0) {
                        for (j = 0; j < MAX_ASYNC_REQUESTS; j++) {
                                uaecptr request;
-                               if (request = dev->d_request[i])
+                               if ((request = dev->d_request[i]))
                                        abort_async (dev, request, 0, 0);
                        }
                        dev->opencnt = 1;
index 8b903ef607a062b21c01068cd378a9ded3c400b8..a1f5d1f73279624fa82f639d6f450687fa73e57a 100644 (file)
@@ -57,9 +57,6 @@ void serial_dtr_off (void);
 void serial_flush_buffer (void);
 static int serial_read (char *buffer);
 
-int serial_readstatus (void);
-uae_u16 serial_writestatus (int, int);
-
 uae_u16 SERDATR (void);
 
 int  SERDATS (void);
@@ -70,344 +67,344 @@ static char inbuf[1024], outbuf[1024];
 static int inptr, inlast, outlast;
 
 int waitqueue=0,
-    carrier=0,
-    serdev=0,
-    dsr=0,
-    dtr=0,
-    isbaeh=0,
-    doreadser=0,
-    serstat=-1;
+       carrier=0,
+       serdev=0,
+       dsr=0,
+       dtr=0,
+       isbaeh=0,
+       doreadser=0,
+       serstat=-1;
 
 int sd = -1;
 
 #ifdef POSIX_SERIAL
-    struct termios tios;
+       struct termios tios;
 #endif
 
 uae_u16 serper=0,serdat;
 
 void SERPER (uae_u16 w)
 {
-    int baud=0, pspeed;
+       int baud=0, pspeed;
 
-    if (!currprefs.use_serial)
-       return;
+       if (!currprefs.use_serial)
+               return;
 
 #if defined POSIX_SERIAL
-    if (serper == w)  /* don't set baudrate if it's already ok */
-       return;
-    serper=w;
+       if (serper == w)  /* don't set baudrate if it's already ok */
+               return;
+       serper=w;
 
-    if (w&0x8000)
+       if (w&0x8000)
        write_log ("SERPER: 9bit transmission not implemented.\n");
 
-    switch (w & 0x7fff) {
-     /* These values should be calculated by the current
-      * color clock value (NTSC/PAL). But this solution is
-      * easy and it works.
-      */
-
-     case 0x2e9b:
-     case 0x2e14: baud=300; pspeed=B300; break;
-     case 0x170a:
-     case 0x0b85: baud=1200; pspeed=B1200; break;
-     case 0x05c2:
-     case 0x05b9: baud=2400; pspeed=B2400; break;
-     case 0x02e9:
-     case 0x02e1: baud=4800; pspeed=B4800; break;
-     case 0x0174:
-     case 0x0170: baud=9600; pspeed=B9600; break;
-     case 0x00b9:
-     case 0x00b8: baud=19200; pspeed=B19200; break;
-     case 0x005c:
-     case 0x005d: baud=38400; pspeed=B38400; break;
-     case 0x003d: baud=57600; pspeed=B57600; break;
-     case 0x001e: baud=115200; pspeed=B115200; break;
-     case 0x000f: baud=230400; pspeed=B230400; break;
-     default:
-       write_log ("SERPER: unsupported baudrate (0x%04x) %d\n",w&0x7fff,
-                (unsigned int)(3579546.471/(double)((w&0x7fff)+1)));  return;
-    }
-
-    /* Only access hardware when we own it */
-    if (serdev == 1) {
-       if (tcgetattr (sd, &tios) < 0) {
-           write_log ("SERPER: TCGETATTR failed\n");
-           return;
+       switch (w & 0x7fff) {
+        /* These values should be calculated by the current
+         * color clock value (NTSC/PAL). But this solution is
+         * easy and it works.
+         */
+
+       case 0x2e9b:
+       case 0x2e14: baud=300; pspeed=B300; break;
+       case 0x170a:
+       case 0x0b85: baud=1200; pspeed=B1200; break;
+       case 0x05c2:
+       case 0x05b9: baud=2400; pspeed=B2400; break;
+       case 0x02e9:
+       case 0x02e1: baud=4800; pspeed=B4800; break;
+       case 0x0174:
+       case 0x0170: baud=9600; pspeed=B9600; break;
+       case 0x00b9:
+       case 0x00b8: baud=19200; pspeed=B19200; break;
+       case 0x005c:
+       case 0x005d: baud=38400; pspeed=B38400; break;
+       case 0x003d: baud=57600; pspeed=B57600; break;
+       case 0x001e: baud=115200; pspeed=B115200; break;
+       case 0x000f: baud=230400; pspeed=B230400; break;
+       default:
+               write_log ("SERPER: unsupported baudrate (0x%04x) %d\n",w&0x7fff,
+                       (unsigned int)(3579546.471/(double)((w&0x7fff)+1)));  return;
        }
 
-       if (cfsetispeed (&tios, pspeed) < 0) {    /* set serial input speed */
-           write_log ("SERPER: CFSETISPEED (%d bps) failed\n", baud);
-           return;
+       /* Only access hardware when we own it */
+       if (serdev == 1) {
+               if (tcgetattr (sd, &tios) < 0) {
+                       write_log ("SERPER: TCGETATTR failed\n");
+                       return;
+               }
+
+               if (cfsetispeed (&tios, pspeed) < 0) {  /* set serial input speed */
+                       write_log ("SERPER: CFSETISPEED (%d bps) failed\n", baud);
+                       return;
+               }
+               if (cfsetospeed (&tios, pspeed) < 0) {  /* set serial output speed */
+                       write_log ("SERPER: CFSETOSPEED (%d bps) failed\n", baud);
+                       return;
+               }
+
+               if (tcsetattr (sd, TCSADRAIN, &tios) < 0) {
+                       write_log ("SERPER: TCSETATTR failed\n");
+                       return;
+               }
        }
-       if (cfsetospeed (&tios, pspeed) < 0) {    /* set serial output speed */
-           write_log ("SERPER: CFSETOSPEED (%d bps) failed\n", baud);
-           return;
-       }
-
-       if (tcsetattr (sd, TCSADRAIN, &tios) < 0) {
-           write_log ("SERPER: TCSETATTR failed\n");
-           return;
-       }
-    }
 #endif
 
 #if SERIALDEBUG > 0
-    if (serdev == 1)
-       write_log ("SERPER: baudrate set to %d bit/sec\n", baud);
+       if (serdev == 1)
+               write_log ("SERPER: baudrate set to %d bit/sec\n", baud);
 #endif
 }
 
 /* Not (fully) implemented yet:
  *
  *  -  Something's wrong with the Interrupts.
- *     (NComm works, TERM does not. TERM switches to a
- *     blind mode after a connect and wait's for the end
- *     of an asynchronous read before switching blind
- *     mode off again. It never gets there on UAE :-< )
+ *      (NComm works, TERM does not. TERM switches to a
+ *      blind mode after a connect and wait's for the end
+ *      of an asynchronous read before switching blind
+ *      mode off again. It never gets there on UAE :-< )
  *
  *  -  RTS/CTS handshake, this is not really neccessary,
- *     because you can use RTS/CTS "outside" without
- *     passing it through to the emulated Amiga
+ *      because you can use RTS/CTS "outside" without
+ *      passing it through to the emulated Amiga
  *
  *  -  ADCON-Register ($9e write, $10 read) Bit 11 (UARTBRK)
- *     (see "Amiga Intern", pg 246)
+ *      (see "Amiga Intern", pg 246)
  */
 
 void SERDAT (uae_u16 w)
 {
-    unsigned char z;
-
-    if (!currprefs.use_serial)
-       return;
-
-    z = (unsigned char)(w&0xff);
-
-    if (currprefs.serial_demand && !dtr) {
-       if (!isbaeh) {
-           write_log ("SERDAT: Baeh.. Your software needs SERIAL_ALWAYS to work properly.\n");
-           isbaeh=1;
+       unsigned char z;
+
+       if (!currprefs.use_serial)
+               return;
+
+       z = (unsigned char)(w&0xff);
+
+       if (currprefs.serial_demand && !dtr) {
+               if (!isbaeh) {
+                       write_log ("SERDAT: Baeh.. Your software needs SERIAL_ALWAYS to work properly.\n");
+                       isbaeh=1;
+               }
+               return;
+       } else {
+               outbuf[outlast++] = z;
+               if (outlast == sizeof outbuf)
+                       serial_flush_buffer();
        }
-       return;
-    } else {
-       outbuf[outlast++] = z;
-       if (outlast == sizeof outbuf)
-           serial_flush_buffer();
-    }
 
 #if SERIALDEBUG > 2
-    write_log ("SERDAT: wrote 0x%04x\n", w);
+       write_log ("SERDAT: wrote 0x%04x\n", w);
 #endif
 
-    serdat|=0x2000; /* Set TBE in the SERDATR ... */
-    intreq|=1;      /* ... and in INTREQ register */
-    return;
+       serdat|=0x2000; /* Set TBE in the SERDATR ... */
+       intreq|=1;        /* ... and in INTREQ register */
+       return;
 }
 
 uae_u16 SERDATR (void)
 {
-    if (!currprefs.use_serial)
-       return 0;
+       if (!currprefs.use_serial)
+               return 0;
 #if SERIALDEBUG > 2
-    write_log ("SERDATR: read 0x%04x\n", serdat);
+       write_log ("SERDATR: read 0x%04x\n", serdat);
 #endif
-    waitqueue = 0;
-    return serdat;
+       waitqueue = 0;
+       return serdat;
 }
 
 int SERDATS (void)
 {
-    unsigned char z;
+       unsigned char z;
 
-    if (!serdev)           /* || (serdat&0x4000)) */
-       return 0;
+       if (!serdev)               /* || (serdat&0x4000)) */
+               return 0;
 
-    if (waitqueue == 1) {
-       intreq |= 0x0800;
-       return 1;
-    }
+       if (waitqueue == 1) {
+               intreq |= 0x0800;
+               return 1;
+       }
 
-    if ((serial_read ((char *)&z)) == 1) {
-       waitqueue = 1;
-       serdat = 0x4100; /* RBF and STP set! */
-       serdat |= ((unsigned int)z) & 0xff;
-       intreq |= 0x0800; /* Set RBF flag (Receive Buffer full) */
+       if ((serial_read ((char *)&z)) == 1) {
+               waitqueue = 1;
+               serdat = 0x4100; /* RBF and STP set! */
+               serdat |= ((unsigned int)z) & 0xff;
+               intreq |= 0x0800; /* Set RBF flag (Receive Buffer full) */
 
 #if SERIALDEBUG > 1
-       write_log ("SERDATS: received 0x%02x --> serdat==0x%04x\n",
-                (unsigned int)z, (unsigned int)serdat);
+               write_log ("SERDATS: received 0x%02x --> serdat==0x%04x\n",
+                       (unsigned int)z, (unsigned int)serdat);
 #endif
-       return 1;
-    }
-    return 0;
+               return 1;
+       }
+       return 0;
 }
 
 void serial_dtr_on(void)
 {
 #if SERIALDEBUG > 0
-    write_log ("DTR on.\n");
+       write_log ("DTR on.\n");
 #endif
-    dtr=1;
+       dtr=1;
 
-    if (currprefs.serial_demand)
-       serial_open ();
+       if (currprefs.serial_demand)
+               serial_open ();
 }
 
 void serial_dtr_off(void)
 {
 #if SERIALDEBUG > 0
-    write_log ("DTR off.\n");
+       write_log ("DTR off.\n");
 #endif
-    dtr=0;
-    if (currprefs.serial_demand)
-       serial_close ();
+       dtr=0;
+       if (currprefs.serial_demand)
+               serial_close ();
 }
 
 static int serial_read (char *buffer)
 {
-    if (inptr < inlast) {
-       *buffer = inbuf[inptr++];
-       return 1;
-    }
-
-    if (serdev == 1) {
-       inlast = read (sd, inbuf, sizeof inbuf);
-       inptr = 0;
        if (inptr < inlast) {
-           *buffer = inbuf[inptr++];
-           return 1;
+               *buffer = inbuf[inptr++];
+               return 1;
+       }
+
+       if (serdev == 1) {
+               inlast = read (sd, inbuf, sizeof inbuf);
+               inptr = 0;
+               if (inptr < inlast) {
+                       *buffer = inbuf[inptr++];
+                       return 1;
+               }
        }
-    }
 
-    return 0;
+       return 0;
 }
 
 void serial_flush_buffer(void)
 {
-    if (serdev == 1) {
-       if (outlast) {
-           if (sd != 0) {
-               write (sd, outbuf, outlast);
-           }
+       if (serdev == 1) {
+               if (outlast) {
+                       if (sd != 0) {
+                               write (sd, outbuf, outlast);
+                       }
+               }
+               outlast = 0;
+       } else {
+         outlast = 0;
+         inptr = 0;
+         inlast = 0;
        }
-       outlast = 0;
-    } else {
-      outlast = 0;
-      inptr = 0;
-      inlast = 0;
-    }
 }
 
-int serial_readstatus(void)
+uae_u8 serial_readstatus(void)
 {
-    int status = 0;
+       int status = 0;
 
 #ifdef POSIX_SERIAL
-    ioctl (sd, TIOCMGET, &status);
+       ioctl (sd, TIOCMGET, &status);
 
-    if (status & TIOCM_CAR) {
-       if (!carrier) {
-           ciabpra |= 0x20; /* Push up Carrier Detect line */
-           carrier = 1;
+       if (status & TIOCM_CAR) {
+               if (!carrier) {
+                       ciabpra |= 0x20; /* Push up Carrier Detect line */
+                       carrier = 1;
 #if SERIALDEBUG > 0
-           write_log ("Carrier detect.\n");
+                       write_log ("Carrier detect.\n");
 #endif
-       }
-    } else {
-       if (carrier) {
-           ciabpra &= ~0x20;
-           carrier = 0;
+               }
+       } else {
+               if (carrier) {
+                       ciabpra &= ~0x20;
+                       carrier = 0;
 #if SERIALDEBUG > 0
-           write_log ("Carrier lost.\n");
+                       write_log ("Carrier lost.\n");
 #endif
+               }
        }
-    }
 
-    if (status & TIOCM_DSR) {
-       if (!dsr) {
-           ciabpra |= 0x08; /* DSR ON */
-           dsr = 1;
-       }
-    } else {
-       if (dsr) {
-           ciabpra &= ~0x08;
-           dsr = 0;
+       if (status & TIOCM_DSR) {
+               if (!dsr) {
+                       ciabpra |= 0x08; /* DSR ON */
+                       dsr = 1;
+               }
+       } else {
+               if (dsr) {
+                       ciabpra &= ~0x08;
+                       dsr = 0;
+               }
        }
-    }
 #endif
-    return status;
+       return status;
 }
 
-uae_u16 serial_writestatus (int old, int nw)
+uae_u8 serial_writestatus (int old, int nw)
 {
-    if ((old & 0x80) == 0x80 && (nw & 0x80) == 0x00)
-       serial_dtr_on();
-    if ((old & 0x80) == 0x00 && (nw & 0x80) == 0x80)
-       serial_dtr_off();
+       if ((old & 0x80) == 0x80 && (nw & 0x80) == 0x00)
+               serial_dtr_on();
+       if ((old & 0x80) == 0x00 && (nw & 0x80) == 0x80)
+               serial_dtr_off();
 
-    if ((old & 0x40) != (nw & 0x40))
-       write_log ("RTS %s.\n", ((nw & 0x40) == 0x40) ? "set" : "cleared");
+       if ((old & 0x40) != (nw & 0x40))
+               write_log ("RTS %s.\n", ((nw & 0x40) == 0x40) ? "set" : "cleared");
 
-    if ((old & 0x10) != (nw & 0x10))
-       write_log ("CTS %s.\n", ((nw & 0x10) == 0x10) ? "set" : "cleared");
+       if ((old & 0x10) != (nw & 0x10))
+               write_log ("CTS %s.\n", ((nw & 0x10) == 0x10) ? "set" : "cleared");
 
-    return nw; /* This value could also be changed here */
+       return nw; /* This value could also be changed here */
 }
 
 void serial_open(void)
 {
-    if (serdev == 1)
-       return;
+       if (serdev == 1)
+               return;
 
-    if ((sd = open (currprefs.sername, O_RDWR|O_NONBLOCK|O_BINARY, 0)) < 0) {
-       write_log ("Error: Could not open Device %s\n", currprefs.sername);
-       return;
-    }
+       if ((sd = open (currprefs.sername, O_RDWR|O_NONBLOCK|O_BINARY, 0)) < 0) {
+               write_log ("Error: Could not open Device %s\n", currprefs.sername);
+               return;
+       }
 
-    serdev = 1;
+       serdev = 1;
 
 #ifdef POSIX_SERIAL
-    if (tcgetattr (sd, &tios) < 0) {           /* Initialize Serial tty */
-       write_log ("Serial: TCGETATTR failed\n");
-       return;
-    }
-    cfmakeraw (&tios);
+       if (tcgetattr (sd, &tios) < 0) {                /* Initialize Serial tty */
+               write_log ("Serial: TCGETATTR failed\n");
+               return;
+       }
+       cfmakeraw (&tios);
 
 #ifndef MODEMTEST
-    tios.c_cflag &= ~CRTSCTS; /* Disable RTS/CTS */
+       tios.c_cflag &= ~CRTSCTS; /* Disable RTS/CTS */
 #else
-    tios.c_cflag |= CRTSCTS; /* Enabled for testing modems */
+       tios.c_cflag |= CRTSCTS; /* Enabled for testing modems */
 #endif
 
-    if (tcsetattr (sd, TCSADRAIN, &tios) < 0) {
-       write_log ("Serial: TCSETATTR failed\n");
-       return;
-    }
+       if (tcsetattr (sd, TCSADRAIN, &tios) < 0) {
+               write_log ("Serial: TCSETATTR failed\n");
+               return;
+       }
 #endif
 }
 
 void serial_close (void)
 {
-    if (sd >= 0)
-       close (sd);
-    serdev = 0;
+       if (sd >= 0)
+               close (sd);
+       serdev = 0;
 }
 
 void serial_init (void)
 {
-    if (!currprefs.use_serial)
-       return;
+       if (!currprefs.use_serial)
+               return;
 
-    if (!currprefs.serial_demand)
-       serial_open ();
+       if (!currprefs.serial_demand)
+               serial_open ();
 
-    serdat = 0x2000;
-    return;
+       serdat = 0x2000;
+       return;
 }
 
 void serial_exit (void)
 {
-    serial_close ();   /* serial_close can always be called because it */
-    dtr = 0;           /* just closes *opened* filehandles which is ok */
-    return;            /* when exiting.                                */
+       serial_close ();        /* serial_close can always be called because it */
+       dtr = 0;                /* just closes *opened* filehandles which is ok */
+       return;         /* when exiting.                                */
 }
index cd1194382b843dbbcba2c47048cec1b780b9123e..96a8e2b3842a38cbd67c73290ab109db6402b947 100644 (file)
@@ -371,8 +371,10 @@ static uae_u32 REGPARAM2 uaelib_demux2 (TrapContext *context)
 #define ARG4 (get_long (m68k_areg (regs, 7) + 20))
 #define ARG5 (get_long (m68k_areg (regs, 7) + 24))
 
+#ifdef PICASSO96
        if (ARG0 >= 16 && ARG0 <= 39)
                return picasso_demux (ARG0, context);
+#endif
 
        switch (ARG0)
        {
index 7d4e94ea0b869e7ded792da1d94bb99261cd24b7..b18ae016e9d2b4d51fa3bc3712e114ccb49071f2 100644 (file)
--- a/zfile.cpp
+++ b/zfile.cpp
@@ -508,7 +508,7 @@ static struct zfile *vhd (struct zfile *z)
        z->dataseek = 1;
        z->userdata = zvhd;
        z->zfileread = vhd_fread;
-       write_log (_T("%s is VHD %s image, virtual size=%dK\n"),
+       write_log (_T("%s is VHD %s image, virtual size=%lldK\n"),
                zfile_getname (z),
                zvhd->vhd_type == 2 ? _T("fixed") : _T("dynamic"),
                zvhd->virtsize / 1024);
@@ -1002,6 +1002,7 @@ end:
 }
 #endif
 
+#ifdef A_LZX
 static struct zfile *dsq (struct zfile *z, int lzx, int *retcode)
 {
        struct zfile *zi = NULL;
@@ -1092,7 +1093,9 @@ static struct zfile *dsq (struct zfile *z, int lzx, int *retcode)
                zfile_fclose (zi);
        return z;
 }
+#endif
 
+#ifdef A_WRP
 static struct zfile *wrp (struct zfile *z, int *retcode)
 {
        if (zfile_needwrite (z)) {
@@ -1102,10 +1105,12 @@ static struct zfile *wrp (struct zfile *z, int *retcode)
        }
        return unwarp (z);
 }
+#endif
 
-#include "7z/xz.h"
-#include "7z/lzmadec.h"
-#include "7z/7zcrc.h"
+#ifdef A_7Z
+#include "7z/Xz.h"
+#include "7z/Lzmadec.h"
+#include "7z/7zCrc.h"
 
 static void *SzAlloc (void *p, size_t size)
 {
@@ -1183,7 +1188,9 @@ static struct zfile *xz (struct zfile *z, int *retcode)
        XzUnpacker_Free (&cx);
        return zo;
 }
+#endif
 
+#ifdef A_DMS
 static struct zfile *dms (struct zfile *z, int index, int *retcode)
 {
        int ret;
@@ -1254,6 +1261,7 @@ end:
                zfile_fclose (zextra[i]);
        return zo;
 }
+#endif
 
 const TCHAR *uae_ignoreextensions[] =
 { _T(".gif"), _T(".jpg"), _T(".png"), _T(".xml"), _T(".pdf"), _T(".txt"), 0 };
@@ -1436,13 +1444,19 @@ struct zfile *zuncompress (struct znode *parent, struct zfile *z, int dodefault,
                                        return zfile_gunzip (z, retcode);
                                if (strcasecmp (ext, _T("hdz")) == 0)
                                        return zfile_gunzip (z, retcode);
+#ifdef A_WRP
                                if (strcasecmp (ext, _T("wrp")) == 0)
                                        return wrp (z, retcode);
+#endif
+#ifdef A_7Z
                                if (strcasecmp (ext, _T("xz")) == 0)
                                        return xz (z, retcode);
+#endif
                        }
+#ifdef A_DMS
                        if (strcasecmp (ext, _T("dms")) == 0)
                                return dms (z, index, retcode);
+#endif
                }
                if (mask & ZFD_RAWDISK) {
 #ifdef CAPS
@@ -1476,13 +1490,19 @@ struct zfile *zuncompress (struct znode *parent, struct zfile *z, int dodefault,
                if (index == 0) {
                        if (header[0] == 0x1f && header[1] == 0x8b)
                                return zfile_gunzip (z, retcode);
+#ifdef A_LZX
                        if (header[0] == 'P' && header[1] == 'K' && header[2] == 'D')
                                return dsq (z, 0, retcode);
+#endif
+#ifdef A_7Z
                        if (header[0] == 0xfd && header[1] == 0x37 && header[2] == 0x7a && header[3] == 0x58 && header[4] == 0x5a && header[5] == 0)
                                return xz (z, retcode);
+#endif
                }
+#ifdef A_DMS
                if (header[0] == 'D' && header[1] == 'M' && header[2] == 'S' && header[3] == '!')
                        return dms (z, index, retcode);
+#endif
        }
        if (mask & ZFD_RAWDISK) {
 #ifdef CAPS
@@ -1517,8 +1537,10 @@ struct zfile *zuncompress (struct znode *parent, struct zfile *z, int dodefault,
 
        if (ext) {
                if (mask & ZFD_UNPACK) {
+#ifdef A_LZX
                        if (strcasecmp (ext, _T("dsq")) == 0)
                                return dsq (z, 1, retcode);
+#endif
                }
                if (mask & ZFD_ADF) {
                        if (strcasecmp (ext, _T("adf")) == 0 && !memcmp (header, "DOS", 3))
@@ -2037,7 +2059,7 @@ struct zfile *zfile_fopen_data (const TCHAR *name, uae_u64 size, const uae_u8 *d
        struct zfile *l;
 
        l = zfile_create (NULL);
-       l->name = name ? my_strdup (name) : _T("");
+       l->name = my_strdup (name ? name : _T(""));
        l->data = xmalloc (uae_u8, size);
        l->size = size;
        l->datasize = size;
@@ -2173,7 +2195,7 @@ size_t zfile_fread  (void *b, size_t l1, size_t l2, struct zfile *z)
        return fread (b, l1, l2, z->f);
 }
 
-size_t zfile_fwrite (void *b, size_t l1, size_t l2, struct zfile *z)
+size_t zfile_fwrite (const void *b, size_t l1, size_t l2, struct zfile *z)
 {
        if (z->archiveparent)
                return 0;
@@ -2625,16 +2647,26 @@ static struct zvolume *zfile_fopen_archive_ext (struct znode *parent, struct zfi
        if (ext != NULL) {
                ext++;
                if (flags & ZFD_ARCHIVE) {
+#ifdef A_LHA
                        if (strcasecmp (ext, _T("lha")) == 0 || strcasecmp (ext, _T("lzh")) == 0)
                                zv = archive_directory_lha (zf);
+#endif
+#ifdef A_ZIP
                        if (strcasecmp (ext, _T("zip")) == 0)
                                zv = archive_directory_zip (zf);
+#endif
+#ifdef A_7Z
                        if (strcasecmp (ext, _T("7z")) == 0)
                                zv = archive_directory_7z (zf);
+#endif
+#ifdef A_LZX
                        if (strcasecmp (ext, _T("lzx")) == 0)
                                zv = archive_directory_lzx (zf);
+#endif
+#ifdef A_RAR
                        if (strcasecmp (ext, _T("rar")) == 0)
                                zv = archive_directory_rar (zf);
+#endif
                        if (strcasecmp (ext, _T("tar")) == 0)
                                zv = archive_directory_tar (zf);
                }
@@ -2664,14 +2696,22 @@ static struct zvolume *zfile_fopen_archive_data (struct znode *parent, struct zf
        zfile_fread (header, sizeof (header), 1, zf);
        zfile_fseek (zf, 0, SEEK_SET);
        if (flags & ZFD_ARCHIVE) {
+#ifdef A_ZIP
                if (header[0] == 'P' && header[1] == 'K')
                        zv = archive_directory_zip (zf);
+#endif
+#ifdef A_RAR
                if (header[0] == 'R' && header[1] == 'a' && header[2] == 'r' && header[3] == '!')
                        zv = archive_directory_rar (zf);
+#endif
+#ifdef A_LZX
                if (header[0] == 'L' && header[1] == 'Z' && header[2] == 'X')
                        zv = archive_directory_lzx (zf);
+#endif
+#ifdef A_LHA
                if (header[2] == '-' && header[3] == 'l' && header[4] == 'h' && header[6] == '-')
                        zv = archive_directory_lha (zf);
+#endif
        }
        if (flags & ZFD_ADF) {
                if (header[0] == 'D' && header[1] == 'O' && header[2] == 'S' && (header[3] >= 0 && header[3] <= 7))
@@ -2970,7 +3010,7 @@ struct zvolume *zfile_fopen_directory (const TCHAR *dirname)
                if (!_tcscmp (fname, _T(".")) || !_tcscmp (fname, _T("..")))
                        continue;
                _tcscpy (fullname, dirname);
-               _tcscat (fullname, _T("\\"));
+               _tcscat (fullname, FSDB_DIR_SEPARATOR_S);
                _tcscat (fullname, fname);
                if (stat (fullname, &statbuf) == -1)
                        continue;
@@ -3218,7 +3258,7 @@ int zfile_readdir_archive (struct zdirectory *zd, TCHAR *out, bool fullpath)
                return zd->cnt;
        if (fullpath) {
                _tcscpy (out, zd->parentpath);
-               _tcscat (out, _T("\\"));
+               _tcscat (out, FSDB_DIR_SEPARATOR_S);
        }
        _tcscat (out, zd->filenames[zd->offset]);
        zd->offset++;
index b5006caa74cf6fd35e0b9764513142a8f97df8cf..20f00172000b2ebf8da5b093e07902094e970ac0 100644 (file)
@@ -53,21 +53,31 @@ static struct zvolume *getzvolume (struct znode *parent, struct zfile *zf, unsig
 
        switch (id)
        {
+#ifdef A_ZIP
        case ArchiveFormatZIP:
                zv = archive_directory_zip (zf);
                break;
+#endif
+#ifdef A_7Z
        case ArchiveFormat7Zip:
                zv = archive_directory_7z (zf);
                break;
+#endif
+#ifdef A_RAR
        case ArchiveFormatRAR:
                zv = archive_directory_rar (zf);
                break;
+#endif
+#ifdef A_LHA
        case ArchiveFormatLHA:
                zv = archive_directory_lha (zf);
                break;
+#endif
+#ifdef A_LZX
        case ArchiveFormatLZX:
                zv = archive_directory_lzx (zf);
                break;
+#endif
        case ArchiveFormatPLAIN:
                zv = archive_directory_plain (zf);
                break;
@@ -84,8 +94,10 @@ static struct zvolume *getzvolume (struct znode *parent, struct zfile *zf, unsig
                zv = archive_directory_fat (zf);
                break;
        }
+#ifdef ARCHIVEACCESS
        if (!zv)
                zv = archive_directory_arcacc (zf, id);
+#endif
        return zv;
 }
 
@@ -328,6 +340,7 @@ struct zfile *archive_access_tar (struct znode *zn)
 }
 
 /* ZIP */
+#ifdef A_ZIP
 
 static void archive_close_zip (void *handle)
 {
@@ -469,7 +482,9 @@ static struct zfile *archive_unpack_zip (struct zfile *zf)
 {
        return archive_do_zip (NULL, zf, 0);
 }
+#endif
 
+#ifdef A_7Z
 /* 7Z */
 
 #include "7z/7z.h"
@@ -625,10 +640,10 @@ static struct zfile *archive_access_7z (struct znode *zn)
        }
        return z;
 }
+#endif
 
 /* RAR */
-
-
+#ifdef A_RAR
 
 /* copy and paste job? you are only imagining it! */
 static struct zfile *rarunpackzf; /* stupid unrar.dll */
@@ -783,6 +798,8 @@ end:
        pRARCloseArchive(rc->hArcData);
        return zf;
 }
+#endif
+
 
 /* ArchiveAccess */
 
@@ -1629,7 +1646,7 @@ static TCHAR *tochar (uae_u8 *s, int len)
        for (i = 0; i < len; i++) {
                uae_char c = *s++;
                if (c >= 0 && c <= 9) {
-                       tmp[j++] = '\\';
+                       tmp[j++] = FSDB_DIR_SEPARATOR;
                        tmp[j++] = '0' + c;
                } else if (c < ' ' || c > 'z') {
                        tmp[j++] = '.';
@@ -2039,17 +2056,25 @@ void archive_access_close (void *handle, unsigned int id)
 {
        switch (id)
        {
+#ifdef A_ZIP
        case ArchiveFormatZIP:
                archive_close_zip (handle);
                break;
+#endif
+#ifdef A_7Z
        case ArchiveFormat7Zip:
                archive_close_7z (handle);
                break;
+#endif
+#ifdef A_RAR
        case ArchiveFormatRAR:
                archive_close_rar (handle);
                break;
+#endif
+#ifdef A_LHA
        case ArchiveFormatLHA:
                break;
+#endif
        case ArchiveFormatADF:
                archive_close_adf (handle);
                break;
@@ -2074,9 +2099,11 @@ struct zfile *archive_unpackzfile (struct zfile *zf)
        zf->datasize = zf->size;
        switch (zf->archiveid)
        {
+#ifdef A_ZIP
        case ArchiveFormatZIP:
                zout = archive_unpack_zip (zf);
                break;
+#endif
        }
        zfile_fclose (zf->archiveparent);
        zf->archiveparent = NULL;
@@ -2090,21 +2117,31 @@ struct zfile *archive_getzfile (struct znode *zn, unsigned int id, int flags)
 
        switch (id)
        {
+#ifdef A_ZIP
        case ArchiveFormatZIP:
                zf = archive_access_zip (zn, flags);
                break;
+#endif
+#ifdef A_7Z
        case ArchiveFormat7Zip:
                zf = archive_access_7z (zn);
                break;
+#endif
+#ifdef A_RAR
        case ArchiveFormatRAR:
                zf = archive_access_rar (zn);
                break;
+#endif
+#ifdef A_LHA
        case ArchiveFormatLHA:
                zf = archive_access_lha (zn);
                break;
+#endif
+#ifdef A_LZX
        case ArchiveFormatLZX:
                zf = archive_access_lzx (zn);
                break;
+#endif
        case ArchiveFormatPLAIN:
                zf = archive_access_plain (zn);
                break;