ibmpc, isys80xx, imds-225: Fix Coverity identified problems

This commit is contained in:
Bill Beech 2017-03-17 14:24:44 -07:00
parent b64f3cd1c7
commit 0f41c24cb8
8 changed files with 42 additions and 16 deletions

View file

@ -252,10 +252,6 @@ union {
#define CX (C.w)
#define DX (D.w)
/* macros for handling IP and SP */
#define INC_IP1 (++IP & ADDRMASK16) /* increment IP one byte */
#define INC_IP2 ((IP += 2) & ADDRMASK16) /* increment IP two bytes */
/* storage for the rest of the registers */
int32 DI; /* Source Index Register */
int32 SI; /* Destination Index Register */
@ -3201,7 +3197,8 @@ int32 fetch_byte(int32 flag)
break;
}
}
IP = INC_IP1; /* increment IP */
IP++; /* increment IP */
IP &= ADDRMASK16;
return val;
}
@ -3213,7 +3210,8 @@ int32 fetch_word(void)
val |= get_smbyte(SEG_CS, IP + 1) << 8; /* fetch high byte */
// if (i8088_dev.dctrl & DEBUG_asm)
// sim_printf("0%04XH", val);
IP = INC_IP2; /* increment IP */
IP += 2;; /* increment IP */
IP &= ADDRMASK16;
return val;
}
@ -3251,7 +3249,7 @@ void i86_intr_raise(uint8 num)
uint32 get_rbyte(uint32 reg)
{
uint32 val;
uint32 val = 0;
switch(reg) {
case 0: val = AL; break;
@ -3270,7 +3268,7 @@ uint32 get_rbyte(uint32 reg)
uint32 get_rword(uint32 reg)
{
uint32 val;
uint32 val = 0;
switch(reg) {
case 0: val = AX; break;
@ -3337,7 +3335,7 @@ void set_segreg(uint32 reg)
uint32 get_ea(uint32 mrr)
{
uint32 MOD, REG, RM, DISP, EA;
uint32 MOD, REG, RM, DISP, EA = 0;
get_mrr_dec(mrr, &MOD, &REG, &RM);
switch(MOD) {
@ -4759,7 +4757,7 @@ t_stat fprint_sym (FILE *of, t_addr addr, t_value *val,
if (strchr(opcode[inst], ' ') != NULL)
fprintf (of, ",");
else fprintf (of, " ");
fprintf (of, "%h", val[1]);
fprintf (of, "%x", val[1]);
}
if (oplen[inst] == 3) {
adr = val[1] & 0xFF;
@ -4767,7 +4765,7 @@ t_stat fprint_sym (FILE *of, t_addr addr, t_value *val,
if (strchr(opcode[inst], ' ') != NULL)
fprintf (of, ",");
else fprintf (of, " ");
fprintf (of, "%h", adr);
fprintf (of, "%x", adr);
}
return -(oplen[inst] - 1);
}

View file

@ -375,7 +375,7 @@ DEVICE i8237_dev = {
t_stat i8237_svc(UNIT *uptr)
{
sim_printf("uptr=%08X\n", uptr);
sim_printf("uptr=%08X\n", (long) uptr);
sim_activate (&i8237_unit[uptr->u6], i8237_unit[uptr->u6].wait);
return SCPE_OK;
}
@ -504,6 +504,7 @@ uint8 i8237_r0x(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_r1x(t_bool io, uint8 data)
@ -534,6 +535,7 @@ uint8 i8237_r1x(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_r2x(t_bool io, uint8 data)
@ -564,6 +566,7 @@ uint8 i8237_r2x(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_r3x(t_bool io, uint8 data)
@ -594,6 +597,7 @@ uint8 i8237_r3x(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_r4x(t_bool io, uint8 data)
@ -624,6 +628,7 @@ uint8 i8237_r4x(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_r5x(t_bool io, uint8 data)
@ -654,6 +659,7 @@ uint8 i8237_r5x(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_r6x(t_bool io, uint8 data)
@ -684,6 +690,7 @@ uint8 i8237_r6x(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_r7x(t_bool io, uint8 data)
@ -714,6 +721,7 @@ uint8 i8237_r7x(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_r8x(t_bool io, uint8 data)
@ -730,6 +738,7 @@ uint8 i8237_r8x(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_r9x(t_bool io, uint8 data)
@ -746,6 +755,7 @@ uint8 i8237_r9x(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_rAx(t_bool io, uint8 data)
@ -787,6 +797,7 @@ uint8 i8237_rAx(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_rBx(t_bool io, uint8 data)
@ -803,6 +814,7 @@ uint8 i8237_rBx(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_rCx(t_bool io, uint8 data)
@ -819,6 +831,7 @@ uint8 i8237_rCx(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_rDx(t_bool io, uint8 data)
@ -835,6 +848,7 @@ uint8 i8237_rDx(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_rEx(t_bool io, uint8 data)
@ -851,6 +865,7 @@ uint8 i8237_rEx(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
uint8 i8237_rFx(t_bool io, uint8 data)
@ -867,6 +882,7 @@ uint8 i8237_rFx(t_bool io, uint8 data)
return 0;
}
}
return 0;
}
/* end of i8237.c */

View file

@ -423,6 +423,7 @@ uint8 nulldev(t_bool flag, uint8 data)
port, flag, data);
if (flag == 0) /* if we got here, no valid I/O device */
return 0xFF;
return 0;
}
uint16 reg_dev(uint8 (*routine)(t_bool io, uint8 data), uint16 port)

View file

@ -100,6 +100,7 @@ uint8 dmapag0(t_bool io, uint8 data)
dmapagreg0 = data;
//sim_printf("dmapag0: dmapagreg0=%04X\n", data);
}
return 0;
}
uint8 dmapag1(t_bool io, uint8 data)
@ -110,6 +111,7 @@ uint8 dmapag1(t_bool io, uint8 data)
dmapagreg1 = data;
//sim_printf("dmapag1: dmapagreg1=%04X\n", data);
}
return 0;
}
uint8 dmapag2(t_bool io, uint8 data)
@ -120,6 +122,7 @@ uint8 dmapag2(t_bool io, uint8 data)
dmapagreg2 = data;
//sim_printf("dmapag2: dmapagreg2=%04X\n", data);
}
return 0;
}
uint8 dmapag3(t_bool io, uint8 data)
@ -131,6 +134,7 @@ uint8 dmapag3(t_bool io, uint8 data)
dmapagreg3 = data;
//sim_printf("dmapag3: dmapagreg3=%04X\n", data);
}
return 0;
}
uint8 enbnmi(t_bool io, uint8 data)
@ -146,6 +150,7 @@ uint8 enbnmi(t_bool io, uint8 data)
//sim_printf("enbnmi: NMI disabled\n");
}
}
return 0;
}
/* get a byte from memory - handle RAM, ROM, I/O, and Multibus memory */

View file

@ -391,12 +391,14 @@ t_stat isbc201_attach (UNIT *uptr, CONST char *cptr)
fseek(fp, 0, SEEK_SET);
if (flen == -1) {
sim_printf(" isbc201_attach: File error\n");
fclose(fp);
return SCPE_IOERR;
}
if (fdc201[fdcnum].fdd[fddnum].buf == NULL) { /* no buffer allocated */
fdc201[fdcnum].fdd[fddnum].buf = (uint8 *)malloc(flen);
if (fdc201[fdcnum].fdd[fddnum].buf == NULL) {
sim_printf(" isbc201_attach: Malloc error\n");
fclose(fp);
return SCPE_MEM;
}
}
@ -450,8 +452,7 @@ uint8 isbc201_get_dn(void)
{
int i;
// for (i=0; i<SBC201_NUM; i++)
for (i=0; i<=SBC201_NUM; i++)
for (i=0; i<SBC201_NUM; i++)
if (port >= fdc201[i].baseport && port <= fdc201[i].baseport + 7)
return i;
sim_printf("isbc201_get_dn: port %04X not in isbc202 device table\n", port);

View file

@ -405,12 +405,14 @@ t_stat isbc202_attach (UNIT *uptr, CONST char *cptr)
fseek(fp, 0, SEEK_SET);
if (flen == -1) {
sim_printf(" isbc202_attach: File error\n");
fclose(fp);
return SCPE_IOERR;
}
if (fdc202[fdcnum].fdd[fddnum].buf == NULL) { /* no buffer allocated */
fdc202[fdcnum].fdd[fddnum].buf = (uint8 *)malloc(flen);
if (fdc202[fdcnum].fdd[fddnum].buf == NULL) {
sim_printf(" isbc202_attach: Malloc error\n");
fclose(fp);
return SCPE_MEM;
}
}
@ -477,8 +479,7 @@ uint8 isbc202_get_dn(void)
{
int i;
// for (i=0; i<SBC202_NUM; i++)
for (i=0; i<=SBC202_NUM; i++)
for (i=0; i<SBC202_NUM; i++)
if (port >= fdc202[i].baseport && port <= fdc202[i].baseport + 7)
return i;
sim_printf("isbc202_get_dn: port %04X not in isbc202 device table\n", port);

View file

@ -1071,12 +1071,14 @@ t_stat isbc208_attach (UNIT *uptr, CONST char *cptr)
fseek(fp, 0, SEEK_SET);
if (flen == -1) {
sim_printf(" isbc208_attach: File error\n");
fclose(fp);
return SCPE_IOERR;
}
if (isbc208_buf[uptr->u6] == NULL) { /* no buffer allocated */
isbc208_buf[uptr->u6] = (uint8 *)malloc(flen);
if (isbc208_buf[uptr->u6] == NULL) {
sim_printf(" iSBC208_attach: Malloc error\n");
fclose(fp);
return SCPE_MEM;
}
}

View file

@ -420,12 +420,14 @@ t_stat zx200a_attach (UNIT *uptr, CONST char *cptr)
fseek(fp, 0, SEEK_SET);
if (flen == -1) {
sim_printf(" zx200a_attach: File error\n");
fclose(fp);
return SCPE_IOERR;
}
if (zx200a[fdcnum].fdd[fddnum].buf == NULL) { /* no buffer allocated */
zx200a[fdcnum].fdd[fddnum].buf = (uint8 *)malloc(flen);
if (zx200a[fdcnum].fdd[fddnum].buf == NULL) {
sim_printf(" zx200a_attach: Malloc error\n");
fclose(fp);
return SCPE_MEM;
}
}