Fixed several warnings.

Fixed some small issues, mostly NULL-ptr related.
This commit is contained in:
waltje
2018-10-20 02:38:37 -04:00
parent 4fb728541b
commit 4a445127d8
33 changed files with 747 additions and 783 deletions

View File

@@ -8,7 +8,7 @@
*
* Miscellaneous instructions.
*
* Version: @(#)codegen_ops_fpu.h 1.0.2 2018/09/04
* Version: @(#)codegen_ops_fpu.h 1.0.3 2018/10/19
*
* Authors: Sarah Walker, <tommowalker@tommowalker.co.uk>
* Miran Grca, <mgrca8@gmail.com>
@@ -655,15 +655,16 @@ static uint32_t ropFCHS(uint8_t opcode, uint32_t fetchdat, uint32_t op_32, uint3
return op_pc;
}
#define opFLDimm(name, v) \
static uint32_t ropFLD ## name(uint8_t opcode, uint32_t fetchdat, uint32_t op_32, uint32_t op_pc, codeblock_t *block) \
{ \
static double fp_imm = v; \
\
FP_ENTER(); \
FP_LOAD_IMM_Q(*(uint64_t *)&fp_imm); \
\
return op_pc; \
#define opFLDimm(name, v) \
static uint32_t ropFLD ## name(uint8_t opcode, uint32_t fetchdat, uint32_t op_32, uint32_t op_pc, codeblock_t *block) \
{ \
static double fp_imm = v; \
uint64_t *ptr = (uint64_t *)&fp_imm; \
\
FP_ENTER(); \
FP_LOAD_IMM_Q(*ptr); \
\
return op_pc; \
}
opFLDimm(1, (1.0))

View File

@@ -8,7 +8,7 @@
*
* Generic interface for CD-ROM/DVD/BD implementations.
*
* Version: @(#)cdrom.c 1.0.22 2018/10/18
* Version: @(#)cdrom.c 1.0.23 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -60,15 +60,13 @@
#ifdef ENABLE_CDROM_LOG
int cdrom_do_log = ENABLE_CDROM_LOG;
#endif
cdrom_t cdrom[CDROM_NUM];
#if defined(_LOGGING) && defined(ENABLE_CDROM_LOG)
void
cdrom_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_CDROM_LOG
va_list ap;
if (cdrom_do_log >= level) {
@@ -76,8 +74,8 @@ cdrom_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
int
@@ -347,7 +345,7 @@ cdrom_reset_bus(int bus)
for (i = 0; i < CDROM_NUM; i++) {
dev = &cdrom[i];
if (dev->bus_type == bus)
if ((dev->bus_type == bus) && dev->reset)
dev->reset(dev);
}
}

View File

@@ -8,7 +8,7 @@
*
* CD-ROM image support.
*
* Version: @(#)cdrom_image.cpp 1.0.15 2018/10/18
* Version: @(#)cdrom_image.cpp 1.0.16 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -58,10 +58,10 @@ int cdrom_image_do_log = ENABLE_CDROM_IMAGE_LOG;
#endif
#if defined(_LOGGING) && defined(ENABLE_CDROM_IMAGE_LOG)
void
cdrom_image_log(UNUSED(int level), UNUSED(const char *fmt), ...)
cdrom_image_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_CDROM_IMAGE_LOG
va_list ap;
if (cdrom_image_do_log >= level) {
@@ -69,8 +69,8 @@ cdrom_image_log(UNUSED(int level), UNUSED(const char *fmt), ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
#define CD_STATUS_EMPTY 0

View File

@@ -8,7 +8,7 @@
*
* Common code to handle all sorts of disk controllers.
*
* Version: @(#)hdc.c 1.0.14 2018/09/16
* Version: @(#)hdc.c 1.0.15 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -90,10 +90,10 @@ static const struct {
};
#if defined(_LOGGING) && defined(ENABLE_HDC_LOG)
void
hdc_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_HDC_LOG
va_list ap;
if (hdc_do_log >= level) {
@@ -101,8 +101,8 @@ hdc_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
/* Initialize the HDC module. */

View File

@@ -14,7 +14,7 @@
* Devices currently implemented are hard disk, CD-ROM and
* ZIP IDE/ATAPI devices.
*
* Version: @(#)hdc_ide_ata.c 1.0.25 2018/10/17
* Version: @(#)hdc_ide_ata.c 1.0.26 2018/10/19
*
* Authors: Miran Grca, <mgrca8@gmail.com>
* Sarah Walker, <tommowalker@tommowalker.co.uk>
@@ -1460,7 +1460,7 @@ static uint32_t
ide_read_data(ide_t *ide, int length)
{
scsi_device_data_t *atapi = (scsi_device_data_t *) ide->p;
uint32_t temp;
uint32_t temp = 0;
if (!ide->buffer) {
switch (length) {
@@ -1481,12 +1481,12 @@ ide_read_data(ide_t *ide, int length)
if (ide->command == WIN_PACKETCMD) {
ide->pos = 0;
if (!ide_drive_is_atapi(ide)) {
if (ide_drive_is_atapi(ide)) {
temp = ide->packet_read(ide->p, length);
} else {
DEBUG("Drive not ATAPI (position: %i)\n", ide->pos);
return 0;
}
if (ide_drive_is_atapi(ide))
temp = ide->packet_read(ide->p, length);
} else {
switch (length) {
case 1:

View File

@@ -8,7 +8,7 @@
*
* Common code to handle all sorts of hard disk images.
*
* Version: @(#)hdd.c 1.0.9 2018/09/16
* Version: @(#)hdd.c 1.0.10 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -53,10 +53,10 @@ int hdd_do_log = ENABLE_HDD_LOG;
#endif
#if defined(_LOGGING) && defined(ENABLE_HDD_LOG)
void
hdd_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_HDD_LOG
va_list ap;
if (hdd_do_log >= level) {
@@ -64,8 +64,8 @@ hdd_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
int

View File

@@ -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.18 2018/10/17
* Version: @(#)zip.c 1.0.19 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -71,6 +71,9 @@
#define zipbufferb dev->buffer
#ifdef ENABLE_ZIP_LOG
int zip_do_log = ENABLE_ZIP_LOG;
#endif
zip_t *zip[ZIP_NUM] = { NULL, NULL, NULL, NULL };
zip_drive_t zip_drives[ZIP_NUM];
@@ -476,15 +479,10 @@ static void zip_init(zip_t *dev);
static void zip_callback(void *p);
#ifdef ENABLE_ZIP_LOG
int zip_do_log = ENABLE_ZIP_LOG;
#endif
#if defined(_LOGGING) && defined(ENABLE_ZIP_LOG)
static void
zip_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_ZIP_LOG
va_list ap;
if (zip_do_log >= level) {
@@ -492,8 +490,8 @@ zip_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
int
@@ -2367,7 +2365,9 @@ static int
zip_read_from_dma(zip_t *dev)
{
scsi_device_t *sd = &scsi_devices[dev->drv->bus_id.scsi.id][dev->drv->bus_id.scsi.lun];
#ifdef _LOGGING
int32_t *BufLen = &sd->buffer_length;
#endif
int ret = 0;
if (dev->drv->bus_type == ZIP_BUS_SCSI)
@@ -2438,7 +2438,9 @@ static int
zip_write_to_dma(zip_t *dev)
{
scsi_device_t *sd = &scsi_devices[dev->drv->bus_id.scsi.id][dev->drv->bus_id.scsi.lun];
#ifdef _LOGGING
int32_t BufLen = sd->buffer_length;
#endif
int ret = 0;
if (dev->drv->bus_type == ZIP_BUS_SCSI) {

View File

@@ -9,7 +9,7 @@
* Implementation of the NEC uPD-765 and compatible floppy disk
* controller.
*
* Version: @(#)fdc.c 1.0.15 2018/09/22
* Version: @(#)fdc.c 1.0.16 2018/10/19
*
* Authors: Miran Grca, <mgrca8@gmail.com>
* Sarah Walker, <tommowalker@tommowalker.co.uk>
@@ -114,10 +114,10 @@ int floppyrate[FDD_NUM];
static void fdc_callback(void *priv);
void
#if defined(_LOGGING) && defined(ENABLE_FDC_LOG)
static void
fdc_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_FDC_LOG
va_list ap;
if (fdc_do_log >= level) {
@@ -125,8 +125,8 @@ fdc_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
uint8_t

View File

@@ -9,7 +9,7 @@
* Implementation of the NEC uPD-765 and compatible floppy disk
* controller.
*
* Version: @(#)fdc.h 1.0.4 2018/09/21
* Version: @(#)fdc.h 1.0.5 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -117,7 +117,6 @@ extern const device_t fdc_at_nsc_device;
#endif
extern void fdc_log(int level, const char *fmt, ...);
extern void fdc_remove(fdc_t *fdc);
extern void fdc_poll(fdc_t *fdc);
extern void fdc_abort(fdc_t *fdc);

View File

@@ -8,7 +8,7 @@
*
* Implementation of the floppy drive emulation.
*
* Version: @(#)fdd.c 1.0.15 2018/10/12
* Version: @(#)fdd.c 1.0.16 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -57,7 +57,7 @@
#include "fdc.h"
/* FIXME: these should be compined. */
/* FIXME: these should be combined. */
DRIVE drives[FDD_NUM];
wchar_t floppyfns[4][512];
int fdd_cur_track[FDD_NUM];
@@ -219,10 +219,10 @@ static const struct
};
#if defined(_LOGGING) && defined(ENABLE_FDD_LOG)
void
fdd_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_FDD_LOG
va_list ap;
if (fdd_do_log >= level) {
@@ -230,8 +230,8 @@ fdd_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
const char *fdd_getname(int type)

View File

@@ -8,7 +8,7 @@
*
* Definitions for the floppy drive emulation.
*
* Version: @(#)fdd.h 1.0.8 2018/09/19
* Version: @(#)fdd.h 1.0.9 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -78,8 +78,6 @@ extern int64_t floppytime;
extern int fdd_swap;
extern void d86f_log(int level, const char *fmt, ...);
extern void fdd_log(int level, const char *fmt, ...);
extern void fdd_do_seek(int drive, int track);

View File

@@ -10,7 +10,7 @@
* data in the form of FM/MFM-encoded transitions) which also
* forms the core of the emulator's floppy disk emulation.
*
* Version: @(#)fdd_86f.c 1.0.13 2018/10/05
* Version: @(#)fdd_86f.c 1.0.14 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -280,10 +280,10 @@ void d86f_poll_write_data(int drive, int side, uint16_t pos, uint8_t data);
int d86f_format_conditions(int drive);
void
#if defined(_LOGGING) && defined(ENABLE_D86F_LOG)
static void
d86f_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_D86F_LOG
va_list ap;
if (d86f_do_log >= level) {
@@ -291,8 +291,8 @@ d86f_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
static void

View File

@@ -8,7 +8,7 @@
*
* General keyboard driver interface.
*
* Version: @(#)keyboard.c 1.0.9 2018/10/06
* Version: @(#)keyboard.c 1.0.10 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -68,10 +68,10 @@ static uint8_t scroll_lock = 0;
static uint8_t shift = 0;
#if defined(_LOGGING) && defined(ENABLE_KEYBOARD_LOG)
void
kbd_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_KEYBOARD_LOG
va_list ap;
if (keyboard_do_log >= level) {
@@ -79,8 +79,8 @@ kbd_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
/* Reset the keyboard driver. */

View File

@@ -10,7 +10,7 @@
*
* TODO: Add the Genius bus- and serial mouse.
*
* Version: @(#)mouse.c 1.0.12 2018/10/05
* Version: @(#)mouse.c 1.0.13 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -113,10 +113,10 @@ static int mouse_nbut;
static device_t mouse_dev;
#if defined(_LOGGING) && defined(ENABLE_MOUSE_LOG)
void
mouse_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_MOUSE_LOG
va_list ap;
if (mouse_do_log >= level) {
@@ -124,8 +124,8 @@ mouse_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
/* Initialize the mouse module. */

View File

@@ -12,7 +12,7 @@
* it should be malloc'ed and then linked to the NETCARD def.
* Will be done later.
*
* Version: @(#)network.c 1.0.13 2018/10/16
* Version: @(#)network.c 1.0.14 2018/10/19
*
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
*
@@ -156,10 +156,10 @@ hexdump_p(char *ptr, uint8_t *bufp, int len)
#endif
#if defined(_LOGGING) && defined(ENABLE_NETWORK_LOG)
void
network_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_NETWORK_LOG
va_list ap;
if (network_do_log >= level) {
@@ -167,14 +167,14 @@ network_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
#if defined(_LOGGING) && defined(ENABLE_NETWORK_DEV_LOG)
void
network_card_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_NETWORK_DEV_LOG
va_list ap;
if (network_card_do_log >= level) {
@@ -182,8 +182,8 @@ network_card_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
void

View File

@@ -8,7 +8,7 @@
*
* Implementation of a generic Game Port.
*
* Version: @(#)game.c 1.0.16 2018/10/12
* Version: @(#)game.c 1.0.17 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Sarah Walker, <tommowalker@tommowalker.co.uk>
@@ -76,10 +76,10 @@ int game_do_log = ENABLE_GAME_LOG;
#endif
#if defined(_LOGGING) && defined(ENABLE_GAME_LOG)
void
game_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_GAME_LOG
va_list ap;
if (game_do_log >= level) {
@@ -87,8 +87,8 @@ game_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
static int

View File

@@ -8,7 +8,7 @@
*
* Implementation of the "LPT" style parallel ports.
*
* Version: @(#)parallel.c 1.0.11 2018/09/19
* Version: @(#)parallel.c 1.0.12 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -50,13 +50,6 @@
#include "parallel_dev.h"
static const uint16_t addr_list[] = { /* valid port addresses */
PARALLEL1_ADDR,
PARALLEL2_ADDR,
PARALLEL3_ADDR
};
typedef struct {
/* Standard port stuff. */
uint16_t base; /* port base address */
@@ -76,13 +69,18 @@ int parallel_do_log = ENABLE_PARALLEL_LOG;
#endif
static const uint16_t addr_list[] = { /* valid port addresses */
PARALLEL1_ADDR,
PARALLEL2_ADDR,
PARALLEL3_ADDR
};
static parallel_t ports[PARALLEL_MAX]; /* the ports */
#if defined(_LOGGING) && defined(ENABLE_PARALLEL_LOG)
void
parallel_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_PARALLEL_LOG
va_list ap;
if (parallel_do_log >= level) {
@@ -90,8 +88,8 @@ parallel_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
/* Write a value to a port (and/or its attached device.) */

View File

@@ -8,7 +8,7 @@
*
* Implementation of 8250-style serial port.
*
* Version: @(#)serial.c 1.0.8 2018/09/19
* Version: @(#)serial.c 1.0.9 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -78,10 +78,10 @@ static const struct {
static SERIAL ports[SERIAL_MAX]; /* the ports */
#if defined(_LOGGING) && defined(ENABLE_SERIAL_LOG)
void
serial_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_SERIAL_LOG
va_list ap;
if (serial_do_log >= level) {
@@ -89,8 +89,8 @@ serial_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
static void

View File

@@ -8,7 +8,7 @@
*
* Handling of the SCSI controllers.
*
* Version: @(#)scsi.c 1.0.13 2018/10/16
* Version: @(#)scsi.c 1.0.14 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -66,7 +66,7 @@ int scsi_card_do_log = ENABLE_SCSI_DEV_LOG;
#endif
static struct {
static const struct {
const char *internal_name;
const device_t *device;
} scsi_cards[] = {
@@ -147,10 +147,10 @@ scsi_card_has_config(int card)
}
#if defined(_LOGGING) && defined(ENABLE_SCSI_DEV_LOG)
void
scsi_card_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_SCSI_DEV_LOG
va_list ap;
if (scsi_card_do_log >= level) {
@@ -158,8 +158,8 @@ scsi_card_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
int

View File

@@ -8,7 +8,7 @@
*
* Emulation of SCSI (and ATAPI) CD-ROM drives.
*
* Version: @(#)scsi_cdrom.c 1.0.3 2018/10/18
* Version: @(#)scsi_cdrom.c 1.0.5 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -86,9 +86,7 @@ typedef struct {
uint16_t len;
uint8_t control;
} gesn_cdb_t;
#pragma pack(pop)
#pragma pack(push,1)
typedef struct {
uint16_t len;
uint8_t notification_class;
@@ -352,10 +350,10 @@ static void mode_sense_load(scsi_cdrom_t *dev);
static void scsi_cdrom_callback(void *p);
void
#if defined(_LOGGING) && defined(ENABLE_SCSI_CDROM_LOG)
static void
scsi_cdrom_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_SCSI_CDROM_LOG
va_list ap;
if (scsi_cdrom_do_log >= level) {
@@ -363,8 +361,8 @@ scsi_cdrom_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
static void
@@ -2730,7 +2728,9 @@ irq_raise(scsi_cdrom_t *dev)
static int
read_from_dma(scsi_cdrom_t *dev)
{
#ifdef _LOGGING
int32_t *BufLen = &scsi_devices[dev->drv->bus_id.scsi.id][dev->drv->bus_id.scsi.lun].buffer_length;
#endif
int ret = 0;
if (dev->drv->bus_type == CDROM_BUS_SCSI)
@@ -2801,8 +2801,10 @@ write_to_scsi_dma(uint8_t scsi_id, uint8_t scsi_lun)
static int
write_to_dma(scsi_cdrom_t *dev)
{
#ifdef _LOGGING
scsi_device_t *sd = &scsi_devices[dev->drv->bus_id.scsi.id][dev->drv->bus_id.scsi.lun];
int32_t *BufLen = &sd->buffer_length;
#endif
int ret = 0;
if (dev->drv->bus_type == CDROM_BUS_SCSI) {
@@ -3044,7 +3046,7 @@ scsi_cdrom_stop(void *priv)
{
scsi_cdrom_t *dev = (scsi_cdrom_t *)priv;
if (dev->drv->ops && dev->drv->ops->stop)
if (dev->drv && dev->drv->ops && dev->drv->ops->stop)
dev->drv->ops->stop(dev->drv);
}
@@ -3114,12 +3116,14 @@ static void
scsi_cdrom_identify(void *priv, int ide_has_dma)
{
ide_t *ide = (ide_t *)priv;
#ifdef _LOGGING
scsi_cdrom_t *dev;
char device_identify[9] = { 'E', 'M', 'U', '_', 'C', 'D', '0', '0', 0 };
dev = (scsi_cdrom_t *) ide->p;
device_identify[7] = dev->id + 0x30;
#endif
DEBUG("ATAPI Identify: %s\n", device_identify);
ide->buffer[0] = 0x8000 | (5<<8) | 0x80 | (2<<5); /* ATAPI device, CD-ROM drive, removable media, accelerated DRQ */

View File

@@ -8,7 +8,7 @@
*
* Definitions for the SCSI CD-ROM module.
*
* Version: @(#)scsi_cdrom.h 1.0.2 2018/10/17
* Version: @(#)scsi_cdrom.h 1.0.3 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -83,8 +83,6 @@ typedef struct {
#define scsi_cdrom_ascq dev->sense[13]
extern void scsi_cdrom_log(int level, const char *fmt, ...);
//extern void scsi_cdrom_reset(void *p);

View File

@@ -8,7 +8,7 @@
*
* The generic SCSI device command handler.
*
* Version: @(#)scsi_device.c 1.0.11 2018/10/16
* Version: @(#)scsi_device.c 1.0.12 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -60,7 +60,7 @@ static const uint8_t scsi_null_device_sense[18] = {
static uint8_t
scsi_device_target_command(scsi_device_t *dev, uint8_t *cdb)
target_command(scsi_device_t *dev, uint8_t *cdb)
{
if (dev->command && dev->err_stat_to_scsi) {
dev->command(dev->p, cdb);
@@ -72,7 +72,7 @@ scsi_device_target_command(scsi_device_t *dev, uint8_t *cdb)
static void
scsi_device_target_callback(scsi_device_t *dev)
target_callback(scsi_device_t *dev)
{
if (dev->callback)
dev->callback(dev->p);
@@ -80,7 +80,7 @@ scsi_device_target_callback(scsi_device_t *dev)
static int
scsi_device_target_err_stat_to_scsi(scsi_device_t *dev)
target_err_stat_to_scsi(scsi_device_t *dev)
{
if (dev->err_stat_to_scsi)
return dev->err_stat_to_scsi(dev->p);
@@ -168,13 +168,16 @@ scsi_device_command_phase0(scsi_device_t *dev, uint8_t *cdb)
return;
}
/* Finally, execute the SCSI command immediately and get the transfer length. */
/* Execute the SCSI command immediately and get the transfer length. */
dev->phase = SCSI_PHASE_COMMAND;
dev->status = scsi_device_target_command(dev, cdb);
dev->status = target_command(dev, cdb);
if (dev->phase == SCSI_PHASE_STATUS) {
/* Command completed (either OK or error) - call the phase callback to complete the command. */
scsi_device_target_callback(dev);
/*
* Command completed (either OK or error) -
* Call the phase callback to complete the command.
*/
target_callback(dev);
}
/* If the phase is DATA IN or DATA OUT, finish this here. */
}
@@ -187,11 +190,14 @@ scsi_device_command_phase1(scsi_device_t *dev)
return;
/* Call the second phase. */
scsi_device_target_callback(dev);
dev->status = scsi_device_target_err_stat_to_scsi(dev);
target_callback(dev);
dev->status = target_err_stat_to_scsi(dev);
/* Command second phase complete - call the callback to complete the command. */
scsi_device_target_callback(dev);
/*
* Command second phase complete -
* Call the callback to complete the command.
*/
target_callback(dev);
}
@@ -202,10 +208,10 @@ scsi_device_get_buf_len(scsi_device_t *dev)
}
#if defined(_LOGGING) && defined(ENABLE_SCSI_LOG)
void
scsi_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_SCSI_LOG
va_list ap;
if (scsi_do_log >= level) {
@@ -213,5 +219,5 @@ scsi_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif

View File

@@ -8,7 +8,7 @@
*
* Emulation of SCSI fixed disks.
*
* Version: @(#)scsi_disk.c 1.0.15 2018/10/16
* Version: @(#)scsi_disk.c 1.0.17 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -171,10 +171,10 @@ int scsi_disk_do_log = ENABLE_SCSI_DISK_LOG;
#endif
void
#if defined(_LOGGING) && defined(ENABLE_SCSI_DISK_LOG)
static void
scsi_disk_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_SCSI_DISK_LOG
va_list ap;
if (scsi_disk_do_log >= level) {
@@ -182,8 +182,8 @@ scsi_disk_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
/* Translates ATAPI status (ERR_STAT flag) to SCSI status. */
@@ -593,7 +593,9 @@ static void
scsi_disk_command(void *p, uint8_t *cdb)
{
scsi_disk_t *dev = (scsi_disk_t *)p;
#ifdef _LOGGING
uint8_t *hdbufferb;
#endif
int32_t *BufLen;
int32_t len, max_len, alloc_length;
int pos = 0;
@@ -604,7 +606,9 @@ scsi_disk_command(void *p, uint8_t *cdb)
char device_identify_ex[15] = { 'E', 'M', 'U', '_', 'H', 'D', '0', '0', ' ', 'v', '0'+EMU_VER_MAJOR, '.', '0'+EMU_VER_MINOR, '0'+EMU_VER_REV, 0 };
int block_desc = 0;
#ifdef _LOGGING
hdbufferb = scsi_devices[dev->drv->bus_id.scsi.id][dev->drv->bus_id.scsi.lun].cmd_buffer;
#endif
BufLen = &scsi_devices[dev->drv->bus_id.scsi.id][dev->drv->bus_id.scsi.lun].buffer_length;
last_sector = hdd_image_get_last_sector(dev->id);

View File

@@ -8,7 +8,7 @@
*
* Emulation of SCSI fixed and removable disks.
*
* Version: @(#)scsi_disk.h 1.0.4 2018/10/14
* Version: @(#)scsi_disk.h 1.0.5 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -76,7 +76,6 @@ extern void scsi_reloadhd(int id);
extern void scsi_unloadhd(int scsi_id, int scsi_lun, int id);
#endif
extern void scsi_disk_log(int level, const char *fmt, ...);
extern void scsi_disk_global_init(void);
extern void scsi_disk_hard_reset(void);
extern void scsi_disk_close(void);

View File

@@ -8,7 +8,7 @@
*
* MIDI support module, main file.
*
* Version: @(#)midi.c 1.0.8 2018/10/14
* Version: @(#)midi.c 1.0.9 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -84,8 +84,6 @@ int sound_midi_do_log = ENABLE_SOUND_MIDI_LOG;
#endif
static midi_t *midi = NULL;
static const uint8_t MIDI_evt_len[256] = {
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 0x00
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 0x10
@@ -108,7 +106,7 @@ static const uint8_t MIDI_evt_len[256] = {
0,2,3,2, 0,0,1,0, 1,0,1,1, 1,0,1,0 // 0xf0
};
static struct {
static const struct {
const char *internal_name;
const device_t *device;
} devices[] = {
@@ -123,6 +121,7 @@ static struct {
{SYSTEM_MIDI_INT, &system_midi_device },
{NULL, NULL }
};
static midi_t *midi = NULL;
int
@@ -185,10 +184,10 @@ midi_device_get_from_internal_name(const char *s)
}
#if defined(_LOGGING) && defined(ENABLE_SOUND_MIDI_LOG)
void
sound_midi_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_SOUND_MIDI_LOG
va_list ap;
if (sound_midi_do_log >= level) {
@@ -196,8 +195,8 @@ sound_midi_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
void

View File

@@ -8,7 +8,7 @@
*
* Sound emulation core.
*
* Version: @(#)sound.c 1.0.13 2018/10/14
* Version: @(#)sound.c 1.0.14 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -299,10 +299,10 @@ sound_poll(void *priv)
}
#if defined(_LOGGING) && defined(ENABLE_SOUND_LOG)
void
sound_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_SOUND_LOG
va_list ap;
if (sound_do_log >= level) {
@@ -310,8 +310,8 @@ sound_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
/* Reset the sound system. */

View File

@@ -8,7 +8,7 @@
*
* Sound devices support module.
*
* Version: @(#)sound_dev.c 1.0.8 2018/10/16
* Version: @(#)sound_dev.c 1.0.9 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -80,7 +80,7 @@ extern const device_t wss_device;
extern const device_t ncr_business_audio_device;
static struct {
static const struct {
const char *internal_name;
const device_t *device;
} sound_cards[] = {
@@ -115,10 +115,10 @@ static struct {
};
#if defined(_LOGGING) && defined(ENABLE_SOUND_DEV_LOG)
void
sound_card_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_SOUND_DEV_LOG
va_list ap;
if (sound_card_do_log >= level) {
@@ -126,14 +126,13 @@ sound_card_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
void
sound_card_reset(void)
{
pclog(0, "SOUND: dev_reset(%d)\n", sound_card);
if (sound_cards[sound_card].device != NULL)
device_add(sound_cards[sound_card].device);
}

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@
*
* SVGA renderers.
*
* Version: @(#)vid_svga_render.c 1.0.11 2018/09/19
* Version: @(#)vid_svga_render.c 1.0.12 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -441,9 +441,10 @@ void svga_render_4bpp_lowres(svga_t *svga)
for (x = 0; x <= svga->hdisp; x += 16)
{
uint8_t edat[4];
uint32_t *eptr = (uint32_t *)edat;
uint8_t dat;
*(uint32_t *)(&edat[0]) = *(uint32_t *)(&svga->vram[svga->ma]);
*eptr = *(uint32_t *)(&svga->vram[svga->ma]);
svga->ma += 4;
svga->ma &= svga->vram_display_mask;
@@ -488,9 +489,10 @@ void svga_render_4bpp_highres(svga_t *svga)
for (x = 0; x <= svga->hdisp; x += 8)
{
uint8_t edat[4];
uint32_t *eptr = (uint32_t *)edat;
uint8_t dat;
*(uint32_t *)(&edat[0]) = *(uint32_t *)(&svga->vram[svga->ma | ((svga->sc & ~svga->crtc[0x17] & 3)) * 0x8000]);
*eptr = *(uint32_t *)(&svga->vram[svga->ma | ((svga->sc & ~svga->crtc[0x17] & 3)) * 0x8000]);
svga->ma += 4;
svga->ma &= svga->vram_display_mask;

View File

@@ -40,7 +40,7 @@
* W = 3 bus clocks
* L = 4 bus clocks
*
* Version: @(#)video.c 1.0.18 2018/10/05
* Version: @(#)video.c 1.0.19 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -645,10 +645,10 @@ create_bitmap(int x, int y)
}
#if defined(_LOGGING) && defined(ENABLE_VIDEO_LOG)
void
video_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_VIDEO_LOG
va_list ap;
if (video_do_log >= level) {
@@ -656,8 +656,8 @@ video_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
void

View File

@@ -12,7 +12,7 @@
* "extern" reference to its device into the video.h file,
* and add an entry for it into the table here.
*
* Version: @(#)video_dev.c 1.0.23 2018/10/16
* Version: @(#)video_dev.c 1.0.24 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -160,10 +160,10 @@ static const struct {
};
#if defined(_LOGGING) && defined(ENABLE_VIDEO_DEV_LOG)
void
video_card_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_VIDEO_DEV_LOG
va_list ap;
if (video_card_do_log >= level) {
@@ -171,8 +171,8 @@ video_card_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
void

View File

@@ -8,7 +8,7 @@
*
* Common UI support functions for the Status Bar module.
*
* Version: @(#)ui_stbar.c 1.0.14 2018/10/18
* Version: @(#)ui_stbar.c 1.0.15 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -881,7 +881,8 @@ ui_sb_menu_command(int idm, uint8_t tag)
wcscpy(cdev->prev_image_path, str);
/* Close the current drive/pathname. */
cdev->ops->close(cdev);
if (cdev->ops && cdev->ops->close)
cdev->ops->close(cdev);
memset(cdev->image_path, 0, sizeof(cdev->image_path));
/* Now open new image. */
@@ -921,9 +922,8 @@ ui_sb_menu_command(int idm, uint8_t tag)
cdev = &cdrom[drive];
if (part == -1) break;
if (cdev->ops->medium_lock)
cdev->ops->medium_lock(cdev,
(idm == IDM_CDROM_LOCK) ? 1 : 0);
if (cdev->ops && cdev->ops->medium_lock)
cdev->ops->medium_lock(cdev, (idm == IDM_CDROM_LOCK) ? 1 : 0);
menu_cdrom_update(part, drive);
ui_sb_tip_update(SB_CDROM | drive);
break;
@@ -942,7 +942,8 @@ ui_sb_menu_command(int idm, uint8_t tag)
cdev->prev_host_drive = cdev->host_drive;
/* Close the current drive/pathname. */
cdev->ops->close(cdev);
if (cdev->ops && cdev->ops->close)
cdev->ops->close(cdev);
memset(cdev->image_path, 0, sizeof(cdev->image_path));
if ((cdev->host_drive >= 'A') && (cdev->host_drive <= 'Z'))
sb_menu_set_item(part, IDM_CDROM_HOST_DRIVE | drive |

View File

@@ -12,7 +12,7 @@
*
* FIXME: Not yet fully working! Getting there, though ;-)
*
* Version: @(#)win_cdrom.c 1.0.12 2018/10/18
* Version: @(#)win_cdrom.c 1.0.13 2018/10/19
*
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
* Miran Grca, <mgrca8@gmail.com>
@@ -105,10 +105,12 @@ int cdrom_host_do_log = ENABLE_CDROM_HOST_LOG;
#ifdef USE_HOST_CDROM
#if defined(_LOGGING) && defined(ENABLE_CDROM_HOST_LOG)
static void
cdrom_host_log(int level, const char *fmt, ...)
{
#ifdef ENABLE_CDROM_HOST_LOG
va_list ap;
if (cdrom_host_do_log >= level) {
@@ -116,8 +118,8 @@ cdrom_host_log(int level, const char *fmt, ...)
pclog_ex(fmt, ap);
va_end(ap);
}
#endif
}
#endif
uint8_t cdrom_host_drive_available_num = 0;