AltairZ80: Fix various static source scanning detected issues (Coverity Scan)
This commit is contained in:
parent
e49f06dcc3
commit
70a8921a7a
7 changed files with 31 additions and 12 deletions
|
@ -428,10 +428,10 @@ static int32 DAsm(char *S, const uint32 *val, const int32 useZ80Mnemonics, const
|
|||
R[T1 - T] = '\0';
|
||||
printHex2(H, val[B++]);
|
||||
strcat(R, H);
|
||||
strcat(R, T1 + 1);
|
||||
strcat(R, T1 + 1); /* ok, since T1 is a short sub-string coming from one of the tables */
|
||||
}
|
||||
else
|
||||
strcpy(R, T);
|
||||
strcpy(R, T); /* ok, since T is a short string coming from one of the tables */
|
||||
if ( (P = strchr(R, '%')) ) {
|
||||
*P = C;
|
||||
if ( (P = strchr(P + 1, '%')) )
|
||||
|
|
|
@ -137,6 +137,10 @@ static t_stat fw2_attach(UNIT *uptr, CONST char *cptr)
|
|||
}
|
||||
}
|
||||
|
||||
if (i == FW2_MAX_BOARDS) {
|
||||
return (SCPE_IERR);
|
||||
}
|
||||
|
||||
fw2_info[i] = (FW2_INFO *)calloc(1, sizeof(FW2_INFO));
|
||||
fw2_info[i]->uptr = uptr;
|
||||
fw2_info[i]->uptr->u3 = baseaddr;
|
||||
|
|
|
@ -781,11 +781,11 @@ uint8 I8272_Write(const uint32 Addr, uint8 cData)
|
|||
|
||||
if(i8272_info->fdc_phase == EXEC_PHASE) {
|
||||
switch(i8272_info->cmd[0] & 0x1F) {
|
||||
case I8272_READ_TRACK:
|
||||
case I8272_READ_TRACK: /* intentional fallthrough */
|
||||
sim_printf("I8272: " ADDRESS_FORMAT " Read a track (untested.)" NLP, PCX);
|
||||
i8272_info->fdc_sector = 1; /* Read entire track from sector 1...eot */
|
||||
case I8272_READ_DATA:
|
||||
case I8272_READ_DELETED_DATA:
|
||||
case I8272_READ_DATA: /* intentional fallthrough */
|
||||
case I8272_READ_DELETED_DATA: /* intentional fallthrough */
|
||||
disk_read = 1;
|
||||
case I8272_WRITE_DATA:
|
||||
case I8272_WRITE_DELETED_DATA:
|
||||
|
|
|
@ -3288,7 +3288,7 @@ unsigned int m68k_is_valid_instruction(unsigned int instruction, unsigned int cp
|
|||
if(g_instruction_table[instruction] == d68010_moves_32)
|
||||
return 0;
|
||||
if(g_instruction_table[instruction] == d68010_rtd)
|
||||
return 0;
|
||||
return 0; /* intentional fallthrough, older models have more invalid instructions */
|
||||
case M68K_CPU_TYPE_68010:
|
||||
if(g_instruction_table[instruction] == d68020_bcc_32)
|
||||
return 0;
|
||||
|
|
|
@ -1993,6 +1993,7 @@ static opcode_handler_struct m68k_opcode_handler_table[] =
|
|||
void m68ki_build_opcode_table(void)
|
||||
{
|
||||
opcode_handler_struct *ostruct;
|
||||
int cycle_cost;
|
||||
int instr;
|
||||
int i;
|
||||
int j;
|
||||
|
@ -2040,8 +2041,17 @@ void m68ki_build_opcode_table(void)
|
|||
m68ki_instruction_jump_table[instr] = ostruct->opcode_handler;
|
||||
for(k=0;k<NUM_CPU_TYPES;k++)
|
||||
m68ki_cycles[k][instr] = ostruct->cycles[k];
|
||||
// For all shift operations with known shift distance (encoded in instruction word), this is backported from MUSASHI Version 3.4
|
||||
if((instr & 0xf000) == 0xe000 && (!(instr & 0x20)))
|
||||
m68ki_cycles[0][instr] = m68ki_cycles[1][instr] = ostruct->cycles[k] + ((((j-1)&7)+1)<<1);
|
||||
{
|
||||
// On the 68000 and 68010 shift distance affect execution time.
|
||||
// Add the cycle cost of shifting; 2 times the shift distance
|
||||
cycle_cost = ((((i-1)&7)+1)<<1);
|
||||
m68ki_cycles[0][instr] += cycle_cost;
|
||||
m68ki_cycles[1][instr] += cycle_cost;
|
||||
// On the 68020 shift distance does not affect execution time
|
||||
m68ki_cycles[2][instr] += 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
ostruct++;
|
||||
|
|
|
@ -255,6 +255,9 @@ static t_stat mfdc_attach(UNIT *uptr, CONST char *cptr)
|
|||
}
|
||||
|
||||
i = find_unit_index(uptr);
|
||||
if (i == -1) {
|
||||
return (SCPE_IERR);
|
||||
}
|
||||
|
||||
/* Default for new file is DSK */
|
||||
uptr->u3 = IMAGE_TYPE_DSK;
|
||||
|
@ -474,8 +477,7 @@ static uint8 MFDC_Read(const uint32 Addr)
|
|||
case IMAGE_TYPE_DSK:
|
||||
if(pDrive->uptr->fileref == NULL) {
|
||||
sim_printf(".fileref is NULL!" NLP);
|
||||
} else {
|
||||
sim_fseek((pDrive->uptr)->fileref, sec_offset, SEEK_SET);
|
||||
} else if (sim_fseek((pDrive->uptr)->fileref, sec_offset, SEEK_SET) == 0) {
|
||||
#ifdef USE_VGI
|
||||
rtn = sim_fread(sdata.raw, 1, MFDC_SECTOR_LEN, (pDrive->uptr)->fileref);
|
||||
if (rtn != MFDC_SECTOR_LEN)
|
||||
|
@ -484,6 +486,8 @@ static uint8 MFDC_Read(const uint32 Addr)
|
|||
if (rtn != 256)
|
||||
#endif /* USE_VGI */
|
||||
sim_printf("%s: sim_fread error. Result = %d." NLP, __FUNCTION__, rtn);
|
||||
} else {
|
||||
sim_printf("%s: sim_fseek error." NLP, __FUNCTION__);
|
||||
}
|
||||
break;
|
||||
case IMAGE_TYPE_CPT:
|
||||
|
@ -601,13 +605,14 @@ static uint8 MFDC_Write(const uint32 Addr, uint8 cData)
|
|||
case IMAGE_TYPE_DSK:
|
||||
if(pDrive->uptr->fileref == NULL) {
|
||||
sim_printf(".fileref is NULL!" NLP);
|
||||
} else {
|
||||
sim_fseek((pDrive->uptr)->fileref, sec_offset, SEEK_SET);
|
||||
} else if (sim_fseek((pDrive->uptr)->fileref, sec_offset, SEEK_SET) == 0) {
|
||||
#ifdef USE_VGI
|
||||
sim_fwrite(sdata.raw, 1, MFDC_SECTOR_LEN, (pDrive->uptr)->fileref);
|
||||
#else
|
||||
sim_fwrite(sdata.u.data, 1, 256, (pDrive->uptr)->fileref);
|
||||
#endif /* USE_VGI */
|
||||
} else {
|
||||
sim_printf("%s: sim_fseek error." NLP, __FUNCTION__);
|
||||
}
|
||||
break;
|
||||
case IMAGE_TYPE_CPT:
|
||||
|
|
|
@ -260,7 +260,7 @@ typedef struct extop { /* extended operand */
|
|||
#define MAXPREFIX 4
|
||||
|
||||
typedef struct { /* an instruction itself */
|
||||
char *label; /* the label defined, or NULL */
|
||||
/* char *label; not needed */ /* the label defined, or NULL */
|
||||
int prefixes[MAXPREFIX]; /* instruction prefixes, if any */
|
||||
int nprefix; /* number of entries in above */
|
||||
int opcode; /* the opcode - not just the string */
|
||||
|
|
Loading…
Add table
Reference in a new issue