From 58668a8612836089fe17274134a1c42d2ca95a30 Mon Sep 17 00:00:00 2001 From: waltje Date: Tue, 27 Mar 2018 23:53:26 -0400 Subject: [PATCH] Several warnings fixed, but still many to go. --- src/cpu/cpu.h | 6 +-- src/disk/hdc_esdi_at.c | 8 ++-- src/disk/hdc_esdi_mca.c | 21 ++++----- src/disk/hdc_ide.c | 16 +++---- src/disk/hdc_ide.h | 85 +++++++++++++++++++----------------- src/disk/hdc_mfm_at.c | 8 ++-- src/disk/hdc_mfm_xt.c | 8 ++-- src/disk/hdd_image.c | 8 ++-- src/disk/zip.c | 6 +-- src/floppy/fdd_86f.c | 6 ++- src/floppy/lzf/lzf_c.c | 8 ++-- src/game/gameport.c | 4 +- src/intel.c | 4 +- src/machine/m_amstrad.c | 4 +- src/machine/m_at_scat.c | 30 ++++++------- src/machine/m_europc_hdc.c | 8 ++-- src/machine/m_olivetti_m24.c | 4 +- src/machine/m_pcjr.c | 6 +-- src/machine/m_ps1.c | 4 +- src/machine/m_xt_laserxt.c | 6 +-- src/mem.c | 78 ++++++++++++++++----------------- src/pc.c | 11 ++--- src/scsi/scsi_buslogic.c | 4 +- src/scsi/scsi_disk.c | 10 ++--- src/video/video.h | 4 +- src/win/mingw/Makefile.MinGW | 18 ++++---- src/win/msvc/Makefile.VC | 2 +- src/win/win_settings.c | 4 +- 28 files changed, 194 insertions(+), 187 deletions(-) diff --git a/src/cpu/cpu.h b/src/cpu/cpu.h index f15738e..4e658ac 100644 --- a/src/cpu/cpu.h +++ b/src/cpu/cpu.h @@ -8,7 +8,7 @@ * * CPU type handler. * - * Version: @(#)cpu.h 1.0.5 2018/03/12 + * Version: @(#)cpu.h 1.0.6 2018/03/27 * * Authors: Sarah Walker, * leilei, @@ -91,7 +91,7 @@ typedef struct { const char *name; int cpu_type; int speed; - int rspeed; + uint32_t rspeed; int multi; int pci_speed; uint32_t edx_reset; @@ -447,7 +447,7 @@ extern void cpu_CPUID(void); extern void cpu_RDMSR(void); extern void cpu_WRMSR(void); -extern int checkio(uint32_t port); +extern int checkio(uint32_t port); extern void codegen_block_end(void); extern void codegen_reset(void); extern void cpu_set_edx(void); diff --git a/src/disk/hdc_esdi_at.c b/src/disk/hdc_esdi_at.c index 2b3f19b..b31a934 100644 --- a/src/disk/hdc_esdi_at.c +++ b/src/disk/hdc_esdi_at.c @@ -8,7 +8,7 @@ * * Driver for the ESDI controller (WD1007-vse1) for PC/AT. * - * Version: @(#)hdc_esdi_at.c 1.0.3 2018/03/15 + * Version: @(#)hdc_esdi_at.c 1.0.4 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -779,9 +779,9 @@ loadhd(esdi_t *esdi, int hdd_num, int d, const wchar_t *fn) return; } - drive->cfg_spt = drive->real_spt = hdd[d].spt; - drive->cfg_hpc = drive->real_hpc = hdd[d].hpc; - drive->real_tracks = hdd[d].tracks; + drive->cfg_spt = drive->real_spt = (uint8_t)hdd[d].spt; + drive->cfg_hpc = drive->real_hpc = (uint8_t)hdd[d].hpc; + drive->real_tracks = (uint8_t)hdd[d].tracks; drive->hdd_num = d; drive->present = 1; } diff --git a/src/disk/hdc_esdi_mca.c b/src/disk/hdc_esdi_mca.c index 408f325..1aad2fc 100644 --- a/src/disk/hdc_esdi_mca.c +++ b/src/disk/hdc_esdi_mca.c @@ -52,7 +52,7 @@ * however, are auto-configured by the system software as * shown above. * - * Version: @(#)hdc_esdi_mca.c 1.0.2 2018/03/15 + * Version: @(#)hdc_esdi_mca.c 1.0.3 2018/03/27 * * Authors: Fred N. van Kempen, * Sarah Walker, @@ -111,11 +111,12 @@ typedef struct esdi_drive { - int spt, hpc; - int tracks; - int sectors; - int present; - int hdd_num; + uint8_t spt, + hpc; + uint16_t tracks; + uint32_t sectors; + int8_t present; + int8_t hdd_num; } drive_t; typedef struct esdi { @@ -1095,10 +1096,10 @@ esdi_init(const device_t *info) } /* OK, so fill in geometry info. */ - drive->spt = hdd[i].spt; - drive->hpc = hdd[i].hpc; - drive->tracks = hdd[i].tracks; - drive->sectors = hdd[i].spt*hdd[i].hpc*hdd[i].tracks; + drive->spt = (uint8_t)hdd[i].spt; + drive->hpc = (uint8_t)hdd[i].hpc; + drive->tracks = (uint16_t)hdd[i].tracks; + drive->sectors = (uint32_t)(hdd[i].spt*hdd[i].hpc*hdd[i].tracks); drive->hdd_num = i; /* Mark drive as present. */ diff --git a/src/disk/hdc_ide.c b/src/disk/hdc_ide.c index cefd1b7..e7c0273 100644 --- a/src/disk/hdc_ide.c +++ b/src/disk/hdc_ide.c @@ -8,7 +8,7 @@ * * Emulation of hard disk, CD-ROM and ZIP IDE/ATAPI devices. * - * Version: @(#)hdc_ide.c 1.0.12 2018/03/20 + * Version: @(#)hdc_ide.c 1.0.13 2018/03/27 * * Authors: Miran Grca, * Sarah Walker, @@ -600,8 +600,8 @@ static off64_t ide_get_sector(IDE *ide) } else { - uint32_t heads = ide->t_hpc; - uint32_t sectors = ide->t_spt; + uint32_t heads = (uint32_t)ide->t_hpc; + uint32_t sectors = (uint32_t)ide->t_spt; return ((((off64_t) ide->cylinder * heads) + ide->head) * sectors) + (ide->sector - 1) + ide->skip512; @@ -640,8 +640,8 @@ static void loadhd(IDE *ide, int d, const wchar_t *fn) return; } - ide->spt = hdd[d].spt; - ide->hpc = hdd[d].hpc; + ide->spt = (uint8_t)hdd[d].spt; + ide->hpc = (uint8_t)hdd[d].hpc; ide->tracks = hdd[d].tracks; ide->type = IDE_HDD; ide->hdd_num = d; @@ -808,9 +808,9 @@ void ide_set_sector(IDE *ide, int sector_num) { cyl = sector_num / (hdd[ide->hdd_num].hpc * hdd[ide->hdd_num].spt); r = sector_num % (hdd[ide->hdd_num].hpc * hdd[ide->hdd_num].spt); - ide->cylinder = cyl; + ide->cylinder = (int)cyl; ide->head = ((r / hdd[ide->hdd_num].spt) & 0x0f); - ide->sector = (r % hdd[ide->hdd_num].spt) + 1; + ide->sector = (int)(r % hdd[ide->hdd_num].spt) + 1; } } @@ -2525,7 +2525,7 @@ void callbackide(int ide_board) snum = hdd[ide->hdd_num].spt; snum *= hdd[ide->hdd_num].hpc; snum *= hdd[ide->hdd_num].tracks; - ide_set_sector(ide, snum - 1); + ide_set_sector(ide, (int)(snum - 1)); ide->atastat = READY_STAT | DSC_STAT; ide_irq_raise(ide); return; diff --git a/src/disk/hdc_ide.h b/src/disk/hdc_ide.h index f0ee337..f5d0dae 100644 --- a/src/disk/hdc_ide.h +++ b/src/disk/hdc_ide.h @@ -8,7 +8,7 @@ * * Definitions for the IDE module. * - * Version: @(#)hdc_ide.h 1.0.3 2018/03/20 + * Version: @(#)hdc_ide.h 1.0.4 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -41,47 +41,54 @@ typedef struct { - int type; - int board; - uint8_t atastat; - uint8_t error; - int secount,sector,cylinder,head,drive,cylprecomp; - uint8_t command; - uint8_t fdisk; - int pos; - int packlen; - uint64_t spt,hpc; - uint64_t t_spt,t_hpc; - uint64_t tracks; - int packetstatus; - uint8_t asc; - int reset; - uint16_t *buffer; - int irqstat; - int service; - int lba; - int channel; - uint32_t lba_addr; - int skip512; - int blocksize, blockcount; - uint16_t dma_identify_data[3]; - int hdi,base; - int hdd_num; - uint8_t specify_success; - int mdma_mode; - uint8_t *sector_buffer; - int do_initial_read; - int sector_pos; + int8_t type; + int8_t board; + uint8_t atastat; + uint8_t error; + int secount, + sector, + cylinder, + head, + drive, + cylprecomp; + uint8_t command; + uint8_t fdisk; + int pos; + int packlen; + uint8_t spt, + hpc; + uint64_t t_spt, + t_hpc; + uint64_t tracks; + int packetstatus; + uint8_t asc; + int reset; + uint16_t *buffer; + int irqstat; + int service; + int lba; + int channel; + uint32_t lba_addr; + int skip512; + int blocksize, + blockcount; + uint16_t dma_identify_data[3]; + int hdi, + base; + int hdd_num; + uint8_t specify_success; + int mdma_mode; + uint8_t *sector_buffer; + int do_initial_read; + int sector_pos; } IDE; -extern int ideboard; - -extern int ide_enable[5]; -extern int ide_irq[5]; - -extern IDE ide_drives[IDE_NUM + XTIDE_NUM]; -extern int64_t idecallback[5]; +extern int ideboard; +extern int ide_enable[5]; +extern int ide_irq[5]; +extern IDE ide_drives[IDE_NUM + XTIDE_NUM]; +extern int64_t idecallback[5]; extern void ide_irq_raise(IDE *ide); diff --git a/src/disk/hdc_mfm_at.c b/src/disk/hdc_mfm_at.c index de0c24e..a5572b3 100644 --- a/src/disk/hdc_mfm_at.c +++ b/src/disk/hdc_mfm_at.c @@ -12,7 +12,7 @@ * based design. Most cards were WD1003-WA2 or -WAH, where the * -WA2 cards had a floppy controller as well (to save space.) * - * Version: @(#)hdc_mfm_at.c 1.0.2 2018/03/15 + * Version: @(#)hdc_mfm_at.c 1.0.3 2018/03/27 * * Authors: Fred N. van Kempen, * Sarah Walker, @@ -716,9 +716,9 @@ loadhd(mfm_t *mfm, int c, int d, const wchar_t *fn) return; } - drive->spt = hdd[d].spt; - drive->hpc = hdd[d].hpc; - drive->tracks = hdd[d].tracks; + drive->spt = (uint8_t)hdd[d].spt; + drive->hpc = (uint8_t)hdd[d].hpc; + drive->tracks = (uint8_t)hdd[d].tracks; drive->hdd_num = d; drive->present = 1; } diff --git a/src/disk/hdc_mfm_xt.c b/src/disk/hdc_mfm_xt.c index 0ddac3c..2478f87 100644 --- a/src/disk/hdc_mfm_xt.c +++ b/src/disk/hdc_mfm_xt.c @@ -41,7 +41,7 @@ * Since all controllers (including the ones made by DTC) use * (mostly) the same API, we keep them all in this module. * - * Version: @(#)hdc_mfm_xt.c 1.0.2 2018/03/15 + * Version: @(#)hdc_mfm_xt.c 1.0.3 2018/03/27 * * Authors: Fred N. van Kempen, * Sarah Walker, @@ -780,9 +780,9 @@ loadhd(mfm_t *mfm, int c, int d, const wchar_t *fn) return; } - drive->spt = hdd[c].spt; - drive->hpc = hdd[c].hpc; - drive->tracks = hdd[c].tracks; + drive->spt = (uint8_t)hdd[c].spt; + drive->hpc = (uint8_t)hdd[c].hpc; + drive->tracks = (uint8_t)hdd[c].tracks; drive->hdd_num = c; drive->present = 1; } diff --git a/src/disk/hdd_image.c b/src/disk/hdd_image.c index 2a53b7f..74da7db 100644 --- a/src/disk/hdd_image.c +++ b/src/disk/hdd_image.c @@ -8,7 +8,7 @@ * * Handling of hard disk image files. * - * Version: @(#)hdd_image.c 1.0.1 2018/02/14 + * Version: @(#)hdd_image.c 1.0.2 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -303,7 +303,7 @@ int hdd_image_load(int id) } fseeko64(hdd_images[id].file, 0, SEEK_END); - if (ftello64(hdd_images[id].file) < (full_size + hdd_images[id].base)) { + if (ftello64(hdd_images[id].file) < (int64_t)(full_size + hdd_images[id].base)) { s = (full_size + hdd_images[id].base) - ftello64(hdd_images[id].file); prepare_new_hard_disk: s >>= 9; @@ -398,7 +398,7 @@ int hdd_image_write_ex(uint8_t id, uint32_t sector, uint32_t count, uint8_t *buf void hdd_image_zero(uint8_t id, uint32_t sector, uint32_t count) { - int i = 0; + uint32_t i; fseeko64(hdd_images[id].file, ((uint64_t)sector * 512) + hdd_images[id].base, SEEK_SET); for (i = 0; i < count; i++) @@ -407,7 +407,7 @@ void hdd_image_zero(uint8_t id, uint32_t sector, uint32_t count) int hdd_image_zero_ex(uint8_t id, uint32_t sector, uint32_t count) { - int i = 0; + uint32_t i; uint32_t transfer_sectors = count; uint32_t sectors = hdd_sectors(id); diff --git a/src/disk/zip.c b/src/disk/zip.c index 113ec68..3ad9841 100644 --- a/src/disk/zip.c +++ b/src/disk/zip.c @@ -9,7 +9,7 @@ * Implementation of the Iomega ZIP drive with SCSI(-like) * commands, for both ATAPI and SCSI usage. * - * Version: @(#)zip.c 1.0.8 2018/03/21 + * Version: @(#)zip.c 1.0.9 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -1392,7 +1392,7 @@ void zip_set_buf_len(uint8_t id, int32_t *BufLen, uint32_t *src_len) if (*BufLen == -1) *BufLen = *src_len; else { - *BufLen = MIN(*src_len, *BufLen); + *BufLen = MIN(*src_len, (uint32_t)*BufLen); *src_len = *BufLen; } zip_log("ZIP %i: Actual transfer length: %i\n", id, *BufLen); @@ -2573,7 +2573,7 @@ void zip_write(uint8_t channel, uint32_t val, int length) } return; } else if (zip[id].packet_status == ZIP_PHASE_IDLE) { - if (zip[id].pos >= zip[id].cdb_len) { + if (zip[id].pos >= (uint32_t)zip[id].cdb_len) { zip[id].pos=0; zip[id].status = BUSY_STAT; zip[id].packet_status = ZIP_PHASE_COMMAND; diff --git a/src/floppy/fdd_86f.c b/src/floppy/fdd_86f.c index c09003a..2b2d309 100644 --- a/src/floppy/fdd_86f.c +++ b/src/floppy/fdd_86f.c @@ -1635,7 +1635,8 @@ d86f_write_sector_data(int drive, int side, int mfm, uint16_t am) /* We're in the data field of the sector, read byte from FDC and request new byte. */ dev->current_byte[side] = d86f_get_data(drive, 1); if (! fdc_get_diswr(d86f_fdc)) - d86f_handler[drive].write_data(drive, side, dev->data_find.bytes_obtained - 1, dev->current_byte[side]); + /* FIXME: Kotori, is this right?? */ + d86f_handler[drive].write_data(drive, side, (uint16_t)((dev->data_find.bytes_obtained - 1)&0xffff), (uint8_t)(dev->current_byte[side] & 0xff)); } else { /* We're in the data field of the sector, use a CRC byte. */ dev->current_byte[side] = dev->calc_crc.bytes[(dev->data_find.bytes_obtained & 1)]; @@ -1662,7 +1663,8 @@ d86f_write_sector_data(int drive, int side, int mfm, uint16_t am) if (! dev->data_find.bytes_obtained) { fdd_calccrc(decodefm(drive, am), &(dev->calc_crc)); } else { - fdd_calccrc(dev->current_byte[side], &(dev->calc_crc)); + /*FIXME: Kotori, is this right? */ + fdd_calccrc((uint8_t)(dev->current_byte[side]&0xff), &(dev->calc_crc)); } } } diff --git a/src/floppy/lzf/lzf_c.c b/src/floppy/lzf/lzf_c.c index 8ba4d0b..8d9db00 100644 --- a/src/floppy/lzf/lzf_c.c +++ b/src/floppy/lzf/lzf_c.c @@ -210,15 +210,15 @@ lzf_compress (const void *const in_data, unsigned int in_len, if (len < 7) { - *op++ = (off >> 8) + (len << 5); + *op++ = (u8) ((off >> 8) + (len << 5)); } else { - *op++ = (off >> 8) + ( 7 << 5); - *op++ = len - 7; + *op++ = (u8)((off >> 8) + ( 7 << 5)); + *op++ = (u8) (len - 7); } - *op++ = off; + *op++ = (u8)off; lit = 0; op++; /* start run */ diff --git a/src/game/gameport.c b/src/game/gameport.c index c609b8d..8c312a1 100644 --- a/src/game/gameport.c +++ b/src/game/gameport.c @@ -8,7 +8,7 @@ * * Implementation of a generic Game Port. * - * Version: @(#)gameport.c 1.0.4 2018/03/19 + * Version: @(#)gameport.c 1.0.5 2018/03/27 * * Authors: Miran Grca, * Sarah Walker, @@ -162,7 +162,7 @@ gameport_time(int axis) axis = (axis * 100) / 65; /*Axis now in ohms*/ axis = (axis * 11) / 1000; - return(TIMER_USEC * (axis + 24)); /*max = 11.115 ms*/ + return((int)(TIMER_USEC * (axis + 24))); /*max = 11.115 ms*/ } diff --git a/src/intel.c b/src/intel.c index d7a30a1..5fad663 100644 --- a/src/intel.c +++ b/src/intel.c @@ -8,7 +8,7 @@ * * Implementation of Intel mainboards. * - * Version: @(#)intel.c 1.0.1 2018/02/14 + * Version: @(#)intel.c 1.0.2 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -93,7 +93,7 @@ static uint8_t batman_timer_read(uint16_t addr, void *p) if (batman_timer < 0) return 0; - batman_timer_latch = batman_timer / TIMER_USEC; + batman_timer_latch = (uint16_t)(batman_timer / TIMER_USEC); if (addr & 1) return batman_timer_latch >> 8; diff --git a/src/machine/m_amstrad.c b/src/machine/m_amstrad.c index 6c5f34e..5e7cfd7 100644 --- a/src/machine/m_amstrad.c +++ b/src/machine/m_amstrad.c @@ -32,7 +32,7 @@ * BIOSES: I need to re-do the bios.txt format so we can load non-BIOS * ROM files for a given machine, such as font roms here.. * - * Version: @(#)m_amstrad.c 1.0.7 2018/03/21 + * Version: @(#)m_amstrad.c 1.0.8 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -935,7 +935,7 @@ ms_poll(int x, int y, int z, int b, void *priv) static void kbd_adddata(uint16_t val) { - key_queue[key_queue_end] = val; + key_queue[key_queue_end] = (uint8_t)(val&0xff); #if ENABLE_KEYBOARD_LOG pclog("keyboard_amstrad : %02X added to key queue at %i\n", val, key_queue_end); diff --git a/src/machine/m_at_scat.c b/src/machine/m_at_scat.c index 38da83d..9d7de44 100644 --- a/src/machine/m_at_scat.c +++ b/src/machine/m_at_scat.c @@ -10,7 +10,7 @@ * * Re-worked version based on the 82C235 datasheet and errata. * - * Version: @(#)m_at_scat.c 1.0.5 2018/03/21 + * Version: @(#)m_at_scat.c 1.0.6 2018/03/27 * * Authors: Fred N. van Kempen, * Original by GreatPsycho for PCem. @@ -229,7 +229,7 @@ scat_set_xms_bound(uint8_t val) pclog("SCAT: set XMS bound(%02X) = %06X(%dKbytes for EMS access)\n", val, scat_xms_bound, ((mem_size << 10) - scat_xms_bound) >> 10); if (scat_xms_bound > 0x100000) mem_set_mem_state(0x100000, scat_xms_bound - 0x100000, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL); - if (scat_xms_bound < (mem_size << 10)) + if (scat_xms_bound < ((uint32_t)mem_size << 10)) mem_set_mem_state(scat_xms_bound, (mem_size << 10) - scat_xms_bound, MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL); } } @@ -246,12 +246,12 @@ get_scat_addr(uint32_t addr, scat_t *p) addr = (addr & ~0x780000) | ((addr & 0x600000) >> 2); else if((scat_regs[SCAT_DRAM_CONFIGURATION] & 0x0F) < 8 && (scat_regs[SCAT_EXTENDED_BOUNDARY] & 0x40) == 0) { addr &= ~0x600000; - if(mem_size > 2048 || (mem_size == 2048 && (scat_regs[SCAT_DRAM_CONFIGURATION] & 0x0F) < 6)) + if(mem_size > 2048 || ((uint32_t)mem_size == 2048 && (scat_regs[SCAT_DRAM_CONFIGURATION] & 0x0F) < 6)) addr |= (addr & 0x180000) << 2; } if ((scat_regs[SCAT_EXTENDED_BOUNDARY] & 0x40) == 0 && (scat_regs[SCAT_DRAM_CONFIGURATION] & 0x0F) == 3 && (addr & ~0x600000) >= 0x100000 && (addr & ~0x600000) < 0x160000) - addr ^= mem_size < 2048 ? 0x1F0000 : 0x670000; + addr ^= (uint32_t)mem_size < 2048 ? 0x1F0000 : 0x670000; } else { if ((scat_regs[SCAT_DRAM_CONFIGURATION] & 0x1F) == 3 && (addr & ~0x600000) >= 0x100000 && (addr & ~0x600000) < 0x160000) addr ^= 0x1F0000; @@ -269,14 +269,14 @@ scat_memmap_state_update(void) for(i=16;i<24;i++) { addr = get_scat_addr(0x40000 + (i << 14), NULL); - mem_mapping_set_exec(&scat_4000_9FFF_mapping[i], addr < (mem_size << 10) ? ram + addr : NULL); + mem_mapping_set_exec(&scat_4000_9FFF_mapping[i], addr < ((uint32_t)mem_size << 10) ? ram + addr : NULL); } addr = get_scat_addr(0xA0000, NULL); - mem_mapping_set_exec(&scat_A000_BFFF_mapping, addr < (mem_size << 10) ? ram + addr : NULL); + mem_mapping_set_exec(&scat_A000_BFFF_mapping, addr < ((uint32_t)mem_size << 10) ? ram + addr : NULL); for (i=0;i<6;i++) { addr = get_scat_addr(0x100000 + (i << 16), NULL); - mem_mapping_set_exec(&scat_shadowram_mapping[i], addr < (mem_size << 10) ? ram + addr : NULL); + mem_mapping_set_exec(&scat_shadowram_mapping[i], addr < ((uint32_t)mem_size << 10) ? ram + addr : NULL); } flushmmucache(); @@ -297,7 +297,7 @@ scat_set_global_EMS_state(int state) virt_addr = get_scat_addr(base_addr, &scat_stat[i]); if (i < 24) mem_mapping_disable(&scat_4000_9FFF_mapping[i]); mem_mapping_enable(&scat_mapping[i]); - if (virt_addr < (mem_size << 10)) + if (virt_addr < ((uint32_t)mem_size << 10)) mem_mapping_set_exec(&scat_mapping[i], ram+virt_addr); else mem_mapping_set_exec(&scat_mapping[i], NULL); @@ -358,20 +358,20 @@ scat_write(uint16_t port, uint8_t val, void *priv) case SCAT_DRAM_CONFIGURATION: if ((((scat_regs[SCAT_VERSION] & 0xF0) == 0) && (scat_regs[SCAT_EXTENDED_BOUNDARY] & 0x40) == 0) || ((scat_regs[SCAT_VERSION] & 0xF0) != 0)) { if ((((scat_regs[SCAT_VERSION] & 0xF0) == 0) && (val & 0x0F) == 3) || (((scat_regs[SCAT_VERSION] & 0xF0) != 0) && (val & 0x1F) == 3)) { - if (mem_size > 1024) + if ((uint32_t)mem_size > 1024) mem_mapping_disable(&ram_high_mapping); for (index=0;index<6;index++) mem_mapping_enable(&scat_shadowram_mapping[index]); } else { for (index=0;index<6;index++) mem_mapping_disable(&scat_shadowram_mapping[index]); - if (mem_size > 1024) + if ((uint32_t)mem_size > 1024) mem_mapping_enable(&ram_high_mapping); } } else { for (index=0;index<6;index++) mem_mapping_disable(&scat_shadowram_mapping[index]); - if (mem_size > 1024) + if ((uint32_t)mem_size > 1024) mem_mapping_enable(&ram_high_mapping); } scat_map_update = 1; @@ -460,7 +460,7 @@ scat_write(uint16_t port, uint8_t val, void *priv) if ((scat_regs[SCAT_EMS_CONTROL] & 0x80) && (scat_stat[index].regs_2x9 & 0x80)) { virt_addr = get_scat_addr(base_addr, &scat_stat[index]); - if (virt_addr < (mem_size << 10)) + if (virt_addr < ((uint32_t)mem_size << 10)) mem_mapping_set_exec(&scat_mapping[index], ram + virt_addr); else mem_mapping_set_exec(&scat_mapping[index], NULL); @@ -487,7 +487,7 @@ scat_write(uint16_t port, uint8_t val, void *priv) virt_addr = get_scat_addr(base_addr, &scat_stat[index]); if (index < 24) mem_mapping_disable(&scat_4000_9FFF_mapping[index]); - if (virt_addr < (mem_size << 10)) + if (virt_addr < ((uint32_t)mem_size << 10)) mem_mapping_set_exec(&scat_mapping[index], ram + virt_addr); else mem_mapping_set_exec(&scat_mapping[index], NULL); @@ -597,7 +597,7 @@ mem_read_scatems(uint32_t addr, void *priv) uint8_t val = 0xff; addr = get_scat_addr(addr, stat); - if (addr < (mem_size << 10)) + if (addr < ((uint32_t)mem_size << 10)) val = mem_read_ram(addr, priv); return val; @@ -610,7 +610,7 @@ mem_write_scatems(uint32_t addr, uint8_t val, void *priv) scat_t *stat = (scat_t *)priv; addr = get_scat_addr(addr, stat); - if (addr < (mem_size << 10)) + if (addr < ((uint32_t)mem_size << 10)) mem_write_ram(addr, val, priv); } diff --git a/src/machine/m_europc_hdc.c b/src/machine/m_europc_hdc.c index 471e648..ce00f1a 100644 --- a/src/machine/m_europc_hdc.c +++ b/src/machine/m_europc_hdc.c @@ -22,7 +22,7 @@ * * Based on the original "xebec.c" from Sarah Walker. * - * Version: @(#)m_europc_hdc.c 1.0.3 2018/03/15 + * Version: @(#)m_europc_hdc.c 1.0.4 2018/03/27 * * Authors: Fred N. van Kempen, * Sarah Walker, @@ -926,9 +926,9 @@ hd20_init(const device_t *info) } /* These are the "hardware" parameters (from the image.) */ - drive->spt = hdd[i].spt; - drive->hpc = hdd[i].hpc; - drive->tracks = hdd[i].tracks; + drive->spt = (uint8_t)(hdd[i].spt & 0xff); + drive->hpc = (uint8_t)(hdd[i].hpc & 0xff); + drive->tracks = (uint8_t)(hdd[i].tracks & 0xff); /* Use them as "configured" parameters until overwritten. */ drive->cfg_spt = drive->spt; diff --git a/src/machine/m_olivetti_m24.c b/src/machine/m_olivetti_m24.c index af0a0e4..5d1fdcc 100644 --- a/src/machine/m_olivetti_m24.c +++ b/src/machine/m_olivetti_m24.c @@ -8,7 +8,7 @@ * * Emulation of the Olivetti M24. * - * Version: @(#)m_olivetti_m24.c 1.0.5 2018/03/21 + * Version: @(#)m_olivetti_m24.c 1.0.6 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -568,7 +568,7 @@ kbd_poll(void *priv) static void kbd_adddata(uint16_t val) { - key_queue[key_queue_end] = val; + key_queue[key_queue_end] = (uint8_t)(val&0xff); key_queue_end = (key_queue_end + 1) & 0xf; } diff --git a/src/machine/m_pcjr.c b/src/machine/m_pcjr.c index 69b4286..fce1995 100644 --- a/src/machine/m_pcjr.c +++ b/src/machine/m_pcjr.c @@ -8,7 +8,7 @@ * * Emulation of the IBM PCjr. * - * Version: @(#)m_pcjr.c 1.0.3 2018/03/21 + * Version: @(#)m_pcjr.c 1.0.4 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -689,7 +689,7 @@ kbd_poll(void *priv) static void kbd_adddata(uint16_t val) { - key_queue[key_queue_end] = val; + key_queue[key_queue_end] = (uint8_t)(val&0xff); key_queue_end = (key_queue_end + 1) & 0xf; } @@ -697,7 +697,7 @@ kbd_adddata(uint16_t val) static void kbd_adddata_ex(uint16_t val) { - kbd_adddata_process(val, kbd_adddata); + kbd_adddata_process(val, kbd_adddata); } diff --git a/src/machine/m_ps1.c b/src/machine/m_ps1.c index 8d43b18..2fbbb0c 100644 --- a/src/machine/m_ps1.c +++ b/src/machine/m_ps1.c @@ -28,7 +28,7 @@ * boot. Sometimes, they do, and then it shows an "Incorrect * DOS" error message?? --FvK * - * Version: @(#)m_ps1.c 1.0.6 2018/03/21 + * Version: @(#)m_ps1.c 1.0.7 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -162,7 +162,7 @@ snd_read(uint16_t port, void *priv) * thecurrent value, but the PS/1 BIOS and Stunt Island * expect it not to change. */ - ret = snd->timer_latch; + ret = (uint8_t)(snd->timer_latch & 0xff); break; case 4: diff --git a/src/machine/m_xt_laserxt.c b/src/machine/m_xt_laserxt.c index 1366f84..b5dee94 100644 --- a/src/machine/m_xt_laserxt.c +++ b/src/machine/m_xt_laserxt.c @@ -8,7 +8,7 @@ * * Emulation of the Laser XT series of machines. * - * Version: @(#)m_xt_laserxt.c 1.0.3 2018/03/21 + * Version: @(#)m_xt_laserxt.c 1.0.4 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -138,7 +138,7 @@ mem_write_ems(uint32_t addr, uint8_t val, void *priv) { addr = get_ems_addr(addr); - if (addr < (mem_size << 10)) + if (addr < ((uint32_t)mem_size << 10)) ram[addr] = val; } @@ -150,7 +150,7 @@ mem_read_ems(uint32_t addr, void *priv) addr = get_ems_addr(addr); - if (addr < (mem_size << 10)) + if (addr < ((uint32_t)mem_size << 10)) val = ram[addr]; return val; diff --git a/src/mem.c b/src/mem.c index f64840a..3b775bd 100644 --- a/src/mem.c +++ b/src/mem.c @@ -12,7 +12,7 @@ * the DYNAMIC_TABLES=1 enables this. Will eventually go * away, either way... * - * Version: @(#)mem.c 1.0.9 2018/03/18 + * Version: @(#)mem.c 1.0.10 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -498,7 +498,7 @@ readmembl(uint32_t addr) if (addr < 0x100000 && ram_mapped_addr[addr >> 14]) { addr = (ram_mapped_addr[addr >> 14] & MEM_MAP_TO_SHADOW_RAM_MASK) ? addr : (ram_mapped_addr[addr >> 14] & ~0x3fff) + (addr & 0x3fff); - if(addr < mem_size * 1024) return ram[addr]; + if (addr < (uint32_t)(1024UL * mem_size)) return ram[addr]; return 0xff; } @@ -522,12 +522,12 @@ writemembl(uint32_t addr, uint8_t val) if (addr < 0x100000 && ram_mapped_addr[addr >> 14]) { addr = (ram_mapped_addr[addr >> 14] & MEM_MAP_TO_SHADOW_RAM_MASK) ? addr : (ram_mapped_addr[addr >> 14] & ~0x3fff) + (addr & 0x3fff); - if (addr < mem_size * 1024) + if (addr < (uint32_t)(1024UL * mem_size)) ram[addr] = val; return; } - if (page_lookup[addr>>12]) { + if (page_lookup[addr>>12]) { page_lookup[addr>>12]->write_b(addr, val, page_lookup[addr>>12]); return; @@ -556,7 +556,7 @@ readmemb386l(uint32_t seg, uint32_t addr) mem_logical_addr = addr = addr + seg; if (addr < 0x100000 && ram_mapped_addr[addr >> 14]) { addr = (ram_mapped_addr[addr >> 14] & MEM_MAP_TO_SHADOW_RAM_MASK) ? addr : (ram_mapped_addr[addr >> 14] & ~0x3fff) + (addr & 0x3fff); - if (addr < mem_size * 1024) + if (addr < (uint32_t)(1024UL * mem_size)) return ram[addr]; return 0xff; } @@ -587,7 +587,7 @@ writememb386l(uint32_t seg, uint32_t addr, uint8_t val) mem_logical_addr = addr = addr + seg; if (addr < 0x100000 && ram_mapped_addr[addr >> 14]) { addr = (ram_mapped_addr[addr >> 14] & MEM_MAP_TO_SHADOW_RAM_MASK) ? addr : (ram_mapped_addr[addr >> 14] & ~0x3fff) + (addr & 0x3fff); - if (addr < mem_size * 1024) + if (addr < (uint32_t)(1024UL * mem_size)) ram[addr] = val; return; } @@ -637,7 +637,7 @@ readmemwl(uint32_t seg, uint32_t addr) if (addr2 < 0x100000 && ram_mapped_addr[addr2 >> 14]) { addr = (ram_mapped_addr[addr2 >> 14] & MEM_MAP_TO_SHADOW_RAM_MASK) ? addr2 : (ram_mapped_addr[addr2 >> 14] & ~0x3fff) + (addr2 & 0x3fff); - if (addr < mem_size * 1024) + if (addr < (uint32_t)(1024UL * mem_size)) return *((uint16_t *)&ram[addr]); return 0xffff; } @@ -676,7 +676,7 @@ writememwl(uint32_t seg, uint32_t addr, uint16_t val) if (addr2 < 0x100000 && ram_mapped_addr[addr2 >> 14]) { addr = (ram_mapped_addr[addr2 >> 14] & MEM_MAP_TO_SHADOW_RAM_MASK) ? addr2 : (ram_mapped_addr[addr2 >> 14] & ~0x3fff) + (addr2 & 0x3fff); - if (addr < mem_size * 1024) + if (addr < (uint32_t)(1024UL * mem_size)) *((uint16_t *)&ram[addr]) = val; return; } @@ -690,11 +690,11 @@ writememwl(uint32_t seg, uint32_t addr, uint16_t val) if (mmutranslate_write(addr2+1) == 0xffffffff) return; } if (is386) { - writememb386l(seg,addr,val); - writememb386l(seg,addr+1,val>>8); + writememb386l(seg,addr,(uint8_t)(val&0xff)); + writememb386l(seg,addr+1,(uint8_t)(val>>8)); } else { - writemembl(seg+addr,val); - writemembl(seg+addr+1,val>>8); + writemembl(seg+addr,(uint8_t)(val&0xff)); + writemembl(seg+addr+1,(uint8_t)(val>>8)); } return; } else if (writelookup2[addr2 >> 12] != -1) { @@ -726,8 +726,8 @@ writememwl(uint32_t seg, uint32_t addr, uint16_t val) } if (_mem_write_b[addr2 >> 14]) { - _mem_write_b[addr2 >> 14](addr2, val, _mem_priv_w[addr2 >> 14]); - _mem_write_b[(addr2 + 1) >> 14](addr2 + 1, val >> 8, _mem_priv_w[addr2 >> 14]); + _mem_write_b[addr2 >> 14](addr2, (uint8_t)(val&0xff), _mem_priv_w[addr2 >> 14]); + _mem_write_b[(addr2 + 1) >> 14](addr2 + 1, (uint8_t)(val>>8), _mem_priv_w[addr2 >> 14]); return; } } @@ -745,7 +745,7 @@ readmemll(uint32_t seg, uint32_t addr) if (addr2 < 0x100000 && ram_mapped_addr[addr2 >> 14]) { addr = (ram_mapped_addr[addr2 >> 14] & MEM_MAP_TO_SHADOW_RAM_MASK) ? addr2 : (ram_mapped_addr[addr2 >> 14] & ~0x3fff) + (addr2 & 0x3fff); - if (addr < mem_size * 1024) + if (addr < (uint32_t)(1024UL * mem_size)) return *((uint32_t *)&ram[addr]); return 0xffffffff; } @@ -796,7 +796,7 @@ writememll(uint32_t seg, uint32_t addr, uint32_t val) if (addr2 < 0x100000 && ram_mapped_addr[addr2 >> 14]) { addr = (ram_mapped_addr[addr2 >> 14] & MEM_MAP_TO_SHADOW_RAM_MASK) ? addr2 : (ram_mapped_addr[addr2 >> 14] & ~0x3fff) + (addr2 & 0x3fff); - if (addr < mem_size * 1024) + if (addr < (uint32_t)(1024UL * mem_size)) *((uint32_t *)&ram[addr]) = val; return; } @@ -861,7 +861,7 @@ readmemql(uint32_t seg, uint32_t addr) if (addr2 < 0x100000 && ram_mapped_addr[addr2 >> 14]) { addr = (ram_mapped_addr[addr2 >> 14] & MEM_MAP_TO_SHADOW_RAM_MASK) ? addr2 : (ram_mapped_addr[addr2 >> 14] & ~0x3fff) + (addr2 & 0x3fff); - if (addr < mem_size * 1024) + if (addr < (uint32_t)(1024UL * mem_size)) return *((uint64_t *)&ram[addr]); return -1; } @@ -906,7 +906,7 @@ writememql(uint32_t seg, uint32_t addr, uint64_t val) if (addr2 < 0x100000 && ram_mapped_addr[addr2 >> 14]) { addr = (ram_mapped_addr[addr2 >> 14] & MEM_MAP_TO_SHADOW_RAM_MASK) ? addr2 : (ram_mapped_addr[addr2 >> 14] & ~0x3fff) + (addr2 & 0x3fff); - if (addr < mem_size * 1024) + if (addr < (uint32_t)(1024UL * mem_size)) *((uint64_t *)&ram[addr]) = val; return; } @@ -918,8 +918,8 @@ writememql(uint32_t seg, uint32_t addr, uint64_t val) if (mmutranslate_write(addr2) == 0xffffffff) return; if (mmutranslate_write(addr2+7) == 0xffffffff) return; } - writememll(seg, addr, val); - writememll(seg, addr+4, val >> 32); + writememll(seg, addr, (uint32_t)(val&0xffffffff)); + writememll(seg, addr+4, (uint32_t)(val>>32)); return; } else if (writelookup2[addr2 >> 12] != -1) { *(uint64_t *)(writelookup2[addr2 >> 12] + addr2) = val; @@ -928,8 +928,8 @@ writememql(uint32_t seg, uint32_t addr, uint64_t val) } if (page_lookup[addr2>>12]) { - page_lookup[addr2>>12]->write_l(addr2, val, page_lookup[addr2>>12]); - page_lookup[addr2>>12]->write_l(addr2 + 4, val >> 32, page_lookup[addr2>>12]); + page_lookup[addr2>>12]->write_l(addr2, (uint32_t)(val&0xffffffff), page_lookup[addr2>>12]); + page_lookup[addr2>>12]->write_l(addr2 + 4, (uint32_t)(val>>32), page_lookup[addr2>>12]); return; } @@ -941,26 +941,26 @@ writememql(uint32_t seg, uint32_t addr, uint64_t val) addr2 &= rammask; if (_mem_write_l[addr2 >> 14]) { - _mem_write_l[addr2 >> 14](addr2, val, _mem_priv_w[addr2 >> 14]); - _mem_write_l[addr2 >> 14](addr2+4, val >> 32, _mem_priv_w[addr2 >> 14]); + _mem_write_l[addr2 >> 14](addr2, (uint32_t)(val&0xffffffff), _mem_priv_w[addr2 >> 14]); + _mem_write_l[addr2 >> 14](addr2+4, (uint32_t)(val>>32), _mem_priv_w[addr2 >> 14]); return; } if (_mem_write_w[addr2 >> 14]) { - _mem_write_w[addr2 >> 14](addr2, val, _mem_priv_w[addr2 >> 14]); - _mem_write_w[addr2 >> 14](addr2 + 2, val >> 16, _mem_priv_w[addr2 >> 14]); - _mem_write_w[addr2 >> 14](addr2 + 4, val >> 32, _mem_priv_w[addr2 >> 14]); - _mem_write_w[addr2 >> 14](addr2 + 6, val >> 48, _mem_priv_w[addr2 >> 14]); + _mem_write_w[addr2 >> 14](addr2, (uint16_t)(val&0xffff), _mem_priv_w[addr2 >> 14]); + _mem_write_w[addr2 >> 14](addr2+2, (uint16_t)(val>>16), _mem_priv_w[addr2 >> 14]); + _mem_write_w[addr2 >> 14](addr2+4, (uint16_t)(val>>32), _mem_priv_w[addr2 >> 14]); + _mem_write_w[addr2 >> 14](addr2+6, (uint16_t)(val>>48), _mem_priv_w[addr2 >> 14]); return; } if (_mem_write_b[addr2 >> 14]) { - _mem_write_b[addr2 >> 14](addr2, val, _mem_priv_w[addr2 >> 14]); - _mem_write_b[addr2 >> 14](addr2 + 1, val >> 8, _mem_priv_w[addr2 >> 14]); - _mem_write_b[addr2 >> 14](addr2 + 2, val >> 16, _mem_priv_w[addr2 >> 14]); - _mem_write_b[addr2 >> 14](addr2 + 3, val >> 24, _mem_priv_w[addr2 >> 14]); - _mem_write_b[addr2 >> 14](addr2 + 4, val >> 32, _mem_priv_w[addr2 >> 14]); - _mem_write_b[addr2 >> 14](addr2 + 5, val >> 40, _mem_priv_w[addr2 >> 14]); - _mem_write_b[addr2 >> 14](addr2 + 6, val >> 48, _mem_priv_w[addr2 >> 14]); - _mem_write_b[addr2 >> 14](addr2 + 7, val >> 56, _mem_priv_w[addr2 >> 14]); + _mem_write_b[addr2 >> 14](addr2, (uint8_t)(val&0xff), _mem_priv_w[addr2 >> 14]); + _mem_write_b[addr2 >> 14](addr2+1, (uint8_t)(val>>8), _mem_priv_w[addr2 >> 14]); + _mem_write_b[addr2 >> 14](addr2+2, (uint8_t)(val>>16), _mem_priv_w[addr2 >> 14]); + _mem_write_b[addr2 >> 14](addr2+3, (uint8_t)(val>>24), _mem_priv_w[addr2 >> 14]); + _mem_write_b[addr2 >> 14](addr2+4, (uint8_t)(val>>32), _mem_priv_w[addr2 >> 14]); + _mem_write_b[addr2 >> 14](addr2+5, (uint8_t)(val>>40), _mem_priv_w[addr2 >> 14]); + _mem_write_b[addr2 >> 14](addr2+6, (uint8_t)(val>>48), _mem_priv_w[addr2 >> 14]); + _mem_write_b[addr2 >> 14](addr2+7, (uint8_t)(val>>56), _mem_priv_w[addr2 >> 14]); return; } } @@ -1597,7 +1597,7 @@ mem_reset(void) } else { /* 80386+; maximum address space is 4GB. */ m = (mem_size + 384) >> 2; - if ((m << 2) < (mem_size + 384)) + if ((m << 2) < ((uint32_t)mem_size + 384)) m++; if (m < 4096) m = 4096; @@ -1648,7 +1648,7 @@ pclog("MEM: reset: new pages=%08lx, pages_sz=%i\n", pages, pages_sz); resetreadlookup(); memset(isram, 0x00, sizeof(isram)); - for (c = 0; c < (mem_size / 64); c++) { + for (c = 0; c < ((uint32_t)mem_size / 64); c++) { isram[c] = 1; if ((c >= 0xa && c <= 0xf) || (cpu_16bitbus && c >= 0xfe && c <= 0xff)) @@ -1759,7 +1759,7 @@ mem_init(void) static void mem_remap_top(int max_size) { - int c; + uint32_t c; if (mem_size > 640) { uint32_t start = (mem_size >= 1024) ? mem_size : 1024; diff --git a/src/pc.c b/src/pc.c index 9755fb0..beebf07 100644 --- a/src/pc.c +++ b/src/pc.c @@ -8,7 +8,7 @@ * * Main emulator module where most things are controlled. * - * Version: @(#)pc.c 1.0.14 2018/03/20 + * Version: @(#)pc.c 1.0.16 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -578,7 +578,7 @@ pc_full_speed(void) if (! atfullspeed) { pclog("Set fullspeed - %i %i %i\n", is386, AT, cpuspeed2); if (AT) - setpitclock(machines[machine].cpu[cpu_manufacturer].cpus[cpu_effective].rspeed); + setpitclock((float)machines[machine].cpu[cpu_manufacturer].cpus[cpu_effective].rspeed); else setpitclock(14318184.0); } @@ -590,7 +590,7 @@ void pc_speed_changed(void) { if (AT) - setpitclock(machines[machine].cpu[cpu_manufacturer].cpus[cpu_effective].rspeed); + setpitclock((float)machines[machine].cpu[cpu_manufacturer].cpus[cpu_effective].rspeed); else setpitclock(14318184.0); } @@ -806,10 +806,7 @@ pc_reset_hard_init(void) serial_reset(); lpt_devices_init(); - /* Reset keyboard and/or mouse. */ - // FIXME: do we really have to reset the *AT* keyboard?? --FvK shadowbios = 0; - keyboard_at_reset(); /* * This has to be after the serial initialization so that @@ -869,7 +866,7 @@ pc_reset_hard_init(void) cpu_cache_int_enabled = cpu_cache_ext_enabled = 0; if (AT) - setpitclock(machines[machine].cpu[cpu_manufacturer].cpus[cpu_effective].rspeed); + setpitclock((float)machines[machine].cpu[cpu_manufacturer].cpus[cpu_effective].rspeed); else setpitclock(14318184.0); } diff --git a/src/scsi/scsi_buslogic.c b/src/scsi/scsi_buslogic.c index ff6fc8c..e5f09f9 100644 --- a/src/scsi/scsi_buslogic.c +++ b/src/scsi/scsi_buslogic.c @@ -13,7 +13,7 @@ * 1 - BT-545S ISA; * 2 - BT-958D PCI * - * Version: @(#)scsi_buslogic.c 1.0.6 2018/03/15 + * Version: @(#)scsi_buslogic.c 1.0.7 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -586,7 +586,7 @@ BuslogicSCSIBIOSDMATransfer(ESCMD *ESCSICmd, uint8_t TargetID, uint8_t LUN, int checking its length, so do this procedure for both read/write commands. */ if ((DataLength > 0) && (SCSIDevices[TargetID][LUN].BufferLength > 0)) { Address = DataPointer; - TransferLength = MIN(DataLength, SCSIDevices[TargetID][LUN].BufferLength); + TransferLength = MIN(DataLength, (uint32_t)SCSIDevices[TargetID][LUN].BufferLength); if (dir && ((ESCSICmd->DataDirection == CCB_DATA_XFER_OUT) || (ESCSICmd->DataDirection == 0x00))) { buslogic_log("BusLogic BIOS DMA: Reading %i bytes from %08X\n", TransferLength, Address); diff --git a/src/scsi/scsi_disk.c b/src/scsi/scsi_disk.c index 8422941..1931d33 100644 --- a/src/scsi/scsi_disk.c +++ b/src/scsi/scsi_disk.c @@ -8,7 +8,7 @@ * * Emulation of SCSI fixed and removable disks. * - * Version: @(#)scsi_disk.c 1.0.4 2018/03/19 + * Version: @(#)scsi_disk.c 1.0.5 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -1417,7 +1417,7 @@ scsi_hd_phase_data_in(uint8_t id) case GPCMD_READ_10: case GPCMD_READ_12: if ((shdc[id].requested_blocks > 0) && (*BufLen > 0)) { - if (shdc[id].packet_len > *BufLen) { + if (shdc[id].packet_len > (uint32_t)*BufLen) { hdd_image_read(id, shdc[id].sector_pos, *BufLen >> 9, hdbufferb); } else { hdd_image_read(id, shdc[id].sector_pos, shdc[id].requested_blocks, hdbufferb); @@ -1479,7 +1479,7 @@ scsi_hd_phase_data_out(uint8_t id) case GPCMD_WRITE_12: case GPCMD_WRITE_AND_VERIFY_12: if ((shdc[id].requested_blocks > 0) && (*BufLen > 0)) { - if (shdc[id].packet_len > *BufLen) { + if (shdc[id].packet_len > (uint32_t)*BufLen) { hdd_image_write(id, shdc[id].sector_pos, *BufLen >> 9, hdbufferb); } else { hdd_image_write(id, shdc[id].sector_pos, shdc[id].requested_blocks, hdbufferb); @@ -1500,8 +1500,8 @@ scsi_hd_phase_data_out(uint8_t id) hdbufferb[3] = i & 0xff; } else if (shdc[id].current_cdb[1] & 4) { s = (i % hdd[id].spt); - h = ((i - s) / hdd[id].spt) % hdd[id].hpc; - c = ((i - s) / hdd[id].spt) / hdd[id].hpc; + h = (uint32_t)(((i - s) / hdd[id].spt) % hdd[id].hpc); + c = (uint32_t)(((i - s) / hdd[id].spt) / hdd[id].hpc); hdbufferb[0] = (c >> 16) & 0xff; hdbufferb[1] = (c >> 8) & 0xff; hdbufferb[2] = c & 0xff; diff --git a/src/video/video.h b/src/video/video.h index bfcbd74..6b9da8f 100644 --- a/src/video/video.h +++ b/src/video/video.h @@ -8,7 +8,7 @@ * * Definitions for the video controller module. * - * Version: @(#)video.h 1.0.10 2018/03/20 + * Version: @(#)video.h 1.0.11 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -160,7 +160,7 @@ typedef struct { typedef struct { int w, h; uint8_t *dat; - uint8_t *line[]; + uint8_t **line; } bitmap_t; typedef struct { diff --git a/src/win/mingw/Makefile.MinGW b/src/win/mingw/Makefile.MinGW index 30bd7ff..a0241c9 100644 --- a/src/win/mingw/Makefile.MinGW +++ b/src/win/mingw/Makefile.MinGW @@ -8,7 +8,7 @@ # # Makefile for Windows systems using the MinGW32 environment. # -# Version: @(#)Makefile.mingw 1.0.16 2018/03/25 +# Version: @(#)Makefile.mingw 1.0.17 2018/03/27 # # Author: Fred N. van Kempen, # @@ -691,22 +691,22 @@ endif clean: @echo Cleaning objects.. - @-rm -f *.o 2>NUL - @-rm -f *.res 2>NUL + @-rm -f *.o + @-rm -f *.res clobber: clean @echo Cleaning executables.. - @-rm -f *.d 2>NUL - @-rm -f *.exe 2>NUL + @-rm -f *.d + @-rm -f *.exe ifeq ($(PROFILER), y) - @-rm -f *.map 2>NUL + @-rm -f *.map endif - @-rm -f win/*.manifest 2>NUL -# @-rm -f $(DEPFILE) 2>NUL + @-rm -f win/*.manifest +# @-rm -f $(DEPFILE) ifneq ($(AUTODEP), y) depclean: - @-rm -f $(DEPFILE) 2>NUL + @-rm -f $(DEPFILE) @echo Creating dependencies.. @echo # Run "make depends" to re-create this file. >$(DEPFILE) diff --git a/src/win/msvc/Makefile.VC b/src/win/msvc/Makefile.VC index adab5cf..9248505 100644 --- a/src/win/msvc/Makefile.VC +++ b/src/win/msvc/Makefile.VC @@ -8,7 +8,7 @@ # # Makefile for Windows using Visual Studio 2015. # -# Version: @(#)Makefile.VC 1.0.2 2018/03/26 +# Version: @(#)Makefile.VC 1.0.3 2018/03/27 # # Author: Fred N. van Kempen, # diff --git a/src/win/win_settings.c b/src/win/win_settings.c index 99d47cc..f925f3b 100644 --- a/src/win/win_settings.c +++ b/src/win/win_settings.c @@ -8,7 +8,7 @@ * * Implementation of the Settings dialog. * - * Version: @(#)win_settings.c 1.0.13 2018/03/20 + * Version: @(#)win_settings.c 1.0.14 2018/03/27 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -5107,7 +5107,7 @@ cdrom_bus_skip: rd_ignore_change = 1; h = GetDlgItem(hdlg, IDC_COMBO_CD_SPEED); - temp_cdrom_drives[cdlv_current_sel].speed_idx = SendMessage(h, CB_GETCURSEL, 0, 0); + temp_cdrom_drives[cdlv_current_sel].speed_idx = (uint8_t)SendMessage(h, CB_GETCURSEL, 0, 0); h = GetDlgItem(hdlg, IDC_LIST_CDROM_DRIVES); win_settings_cdrom_drives_update_item(h, cdlv_current_sel); rd_ignore_change = 0;