1
0
mirror of https://github.com/rcornwell/sims.git synced 2026-01-13 15:27:04 +00:00

ICL1900: Fixed coverity errors.

This commit is contained in:
Richard Cornwell 2018-10-06 00:24:02 -04:00
parent 427a9abfcf
commit 1cc21db79b
9 changed files with 35 additions and 23 deletions

View File

@ -2408,7 +2408,7 @@ voluntary:
BCarry = BV = 0;
adrmask = M15;
if ((cpu_flags & SV) != 0) {
if ((RF & 070) == 140 || (RF & 170) == 0110)
if ((RF & 0170) == 0140 || (RF & 0170) == 0110)
XR[1] = RD+RX;
XR[2] = RB;
XR[3] = RF & 07;

View File

@ -630,6 +630,7 @@ eds8_attach(UNIT * uptr, CONST char *file)
uptr->CYL = 0;
uptr->CMD = EDS8_TERM;
chan_set_done(GET_UADDR(eds8_dev.flags));
return SCPE_OK;
}

View File

@ -272,7 +272,7 @@ t_stat lpr_svc (UNIT *uptr)
char buffer[200];
int i;
int len;
int eor;
int eor = 0;
/* Handle a disconnect request */
if (uptr->STATUS & DISC) {

View File

@ -319,7 +319,6 @@ t_stat mt_svc (UNIT *uptr)
sim_debug(DEBUG_DATA, dptr, "unit=%d write %08o\n", unit, word);
/* Put three chars in buffer */
word = 0;
for(i = 16; i >= 0; i-=8) {
mt_buffer[uptr->POS++] = (uint8)((word >> i) & 0xff);
}
@ -374,6 +373,7 @@ t_stat mt_svc (UNIT *uptr)
/* Grab three chars off buffer */
word = 0;
stop = 0;
for(i = 0; i <= 16; i+=8) {
word |= (uint32)mt_buffer[--uptr->POS] << i;
if (uptr->POS == 0) {

View File

@ -357,7 +357,6 @@ t_stat mta_svc (UNIT *uptr)
stop = 0;
if (uptr->flags & MTUF_9TR) {
/* Put three chars in buffer */
word = 0;
uptr->STATUS &= ~CMASK;
for(i = 16; i >= 0; i-=8) {
mta_buffer[uptr->POS++] = (uint8)((word >> i) & 0xff);
@ -375,7 +374,6 @@ t_stat mta_svc (UNIT *uptr)
}
} else {
/* Put four chars and generate parity */
word = 0;
mode = (uptr->CMD & BCD) ? 0 : 0100;
uptr->STATUS &= ~CMASK;
for(i = 18; i >= 0; i-=6) {
@ -445,6 +443,8 @@ t_stat mta_svc (UNIT *uptr)
uptr->hwmark = reclen;
sim_debug(DEBUG_DETAIL, dptr, "Block %d chars\n", reclen);
}
stop = 0;
if (uptr->flags & MTUF_9TR) {
/* Grab three chars off buffer */
word = 0;
@ -666,7 +666,6 @@ mta_attach(UNIT * uptr, CONST char *file)
if ((r = sim_tape_attach_ex(uptr, file, 0, 0)) != SCPE_OK)
return r;
uptr->STATUS &= ~OFFLINE;
uptr->STATUS = ACCEPT;
if (uptr->flags & UNIT_RO)
uptr->flags |= MTUF_WLK;

View File

@ -470,7 +470,7 @@ chan_output_word(int dev, uint32 *data, int eor) {
void
chan_set_done(int dev) {
if (dev < 22)
if (dev < 24)
SR64 |= B2 >> dev;
else
SR65 |= ((io_flags & EXT_IO) ? B1 : B2) >> (dev - 24);
@ -478,7 +478,7 @@ chan_set_done(int dev) {
void
chan_clr_done(int dev) {
if (dev < 22)
if (dev < 24)
SR64 &= ~(B2 >> dev);
else
SR65 &= ~(((io_flags & EXT_IO) ? B1 : B2) >> (dev - 24));

View File

@ -285,7 +285,7 @@ sim_load(FILE * fileref, CONST char *cptr, CONST char *fnam, int flag)
if ((buffer[j] & 0377) == 0243)
image[j] = 024;
else
image[j] = ascii_to_mem[buffer[j]];
image[j] = ascii_to_mem[buffer[j] & 0177];
if (image[j] < 0) {
fprintf(stderr, "Char %c: %s\n", buffer[j], buffer);
return SCPE_FMT;
@ -312,7 +312,7 @@ sim_load(FILE * fileref, CONST char *cptr, CONST char *fnam, int flag)
if ((buffer[j] & 0377) == 0243)
image[j] = 024;
else
image[j] = ascii_to_mem[buffer[j]];
image[j] = ascii_to_mem[buffer[j] & 0177];
if (image[j] < 0) {
fprintf(stderr, "Char %c: %s", buffer[j], buffer);
return SCPE_FMT;
@ -623,9 +623,9 @@ find_opcode(char *op, int *val)
if (v > 0177)
return -1;
}
if (op[i] == 0 && v <= 0177)
return v;
}
if (op[i] == 0 && v <= 0177)
return v;
for(i = 0; i <= 0177; i++) {
if (ops[i].name != '\0' && sim_strcasecmp(op, ops[i].name) == 0)
return i;

View File

@ -33,6 +33,7 @@
#define PP_V_MODE (UNIT_V_UF + 0)
#define PP_M_MODE (3 << PP_V_MODE)
#define PP_MODE(x) ((PP_V_MODE & (x)) >> PP_V_MODE)
#define UNIT_V_TYPE (UNIT_V_UF + 2)
#define UNIT_TYPE (0xf << UNIT_V_TYPE)
#define GET_TYPE(x) ((UNIT_TYPE & (x)) >> UNIT_V_TYPE)
@ -123,9 +124,9 @@ UNIT ptp_unit[] = {
MTAB ptp_mod[] = {
{ PP_M_MODE, PP_MODE_7B, "7b", "7B", NULL },
{ PP_M_MODE, PP_MODE_7P, "7p", "7P", NULL },
{ PP_M_MODE, PP_MODE_7X, "7x", "7X", NULL },
{ PP_M_MODE, PP_MODE_7B << PP_V_MODE, "7b", "7B", NULL },
{ PP_M_MODE, PP_MODE_7P << PP_V_MODE, "7p", "7P", NULL },
{ PP_M_MODE, PP_MODE_7X << PP_V_MODE, "7x", "7X", NULL },
{ UNIT_TYPE, SET_TYPE(T1925_1), "1925/1", "1925/1", NULL, NULL, "ICL 1925/1 NSI 300CPM punch."},
{ UNIT_TYPE, SET_TYPE(T1925_2), "1925/2", "1925/2", NULL, NULL, "ICL 1922/2 SI 300CPM punch."},
{ UNIT_TYPE, SET_TYPE(T1926_1), "1926/1", "1926/1", NULL, NULL, "ICL 1926/1 NSI 1000CPM punch."},
@ -403,13 +404,13 @@ t_stat ptp_svc (UNIT *uptr)
}
if (data != 0) {
/* Check parity is even */
if ((uptr->flags & PP_M_MODE) == PP_MODE_7P) {
if (PP_MODE(uptr->flags) == PP_MODE_7P) {
data &= 0177;
ch = data ^ (data << 4);
ch = ch ^ (ch << 2);
ch = ch ^ (ch << 1);
data |= ch;
} else if ((uptr->flags & PP_M_MODE) == PP_MODE_7X) {
} else if (PP_MODE(uptr->flags) == PP_MODE_7X) {
if (data == 044) {
data = 0243;
} else if (data == 0174) {

View File

@ -35,6 +35,7 @@
#define PP_V_MODE (UNIT_V_UF + 0)
#define PP_M_MODE (3 << PP_V_MODE)
#define PP_MODE(x) ((PP_M_MODE & (x)) >> PP_V_MODE)
#define UNIT_V_TYPE (UNIT_V_UF + 2)
#define UNIT_TYPE (0xf << UNIT_V_TYPE)
#define GET_TYPE(x) ((UNIT_TYPE & (x)) >> UNIT_V_TYPE)
@ -127,9 +128,9 @@ UNIT ptr_unit[] = {
MTAB ptr_mod[] = {
{ PP_M_MODE, PP_MODE_7B, "7b", "7B", NULL },
{ PP_M_MODE, PP_MODE_7P, "7p", "7P", NULL },
{ PP_M_MODE, PP_MODE_7X, "7x", "7X", NULL },
{ PP_M_MODE, PP_MODE_7B << PP_V_MODE, "7b", "7B", NULL },
{ PP_M_MODE, PP_MODE_7P << PP_V_MODE, "7p", "7P", NULL },
{ PP_M_MODE, PP_MODE_7X << PP_V_MODE, "7x", "7X", NULL },
{ UNIT_TYPE, SET_TYPE(T1915_1), "1915/1", "1915/1", NULL, NULL, "ICL 1915/1 NSI 300CPM reader."},
{ UNIT_TYPE, SET_TYPE(T1915_2), "1915/2", "1915/2", NULL, NULL, "ICL 1912/2 SI 300CPM reader."},
{ UNIT_TYPE, SET_TYPE(T1916_1), "1916/1", "1916/1", NULL, NULL, "ICL 1916/1 NSI 1000CPM reader."},
@ -379,14 +380,14 @@ t_stat ptr_svc (UNIT *uptr)
sim_debug(DEBUG_DATA, &ptr_dev, "data: %03o\n", data);
/* Check parity is even */
if ((uptr->flags & PP_M_MODE) == PP_MODE_7P) {
if (PP_MODE(uptr->flags) == PP_MODE_7P) {
ch = data ^ (data >> 4);
ch = ch ^ (ch >> 2);
ch = ch ^ (ch >> 1);
if (ch != 0)
uptr->STATUS = TERMINATE | ERROR;
chan_set_done(dev);
} else if ((uptr->flags & PP_M_MODE) == PP_MODE_7X) {
} else if (PP_MODE(uptr->flags) == PP_MODE_7X) {
if (data == 0243) {
data = 044;
} else if (data == 044) {
@ -399,6 +400,7 @@ t_stat ptr_svc (UNIT *uptr)
return SCPE_OK;
}
ch = 0;
if (uptr->CMD & BIN_MODE) {
switch (data & 0160) {
case 0000:
@ -430,31 +432,40 @@ t_stat ptr_svc (UNIT *uptr)
if ((uptr->CMD & STOP_CHAR) != 0 && data == 012)
uptr->STATUS |= TERMINATE;
shift = DELTA_SHIFT;
ch = (data & 017);
break;
case 0040:
ch = 020 | (data & 017);
break;
case 0060:
ch = 000 | (data & 017);
break;
case 0140:
if ((data & 017) > 013) {
shift = DELTA_SHIFT;
ch = 070 | (data & 03);
break;
}
/* Fall Through */
case 0100:
if ((uptr->CMD & 1) == BETA_MODE)
shift = ALPHA_SHIFT;
uptr->CMD |= ALPHA_MODE;
ch = 040 | (data & 037);
break;
case 0160:
if ((data & 017) > 013) {
shift = DELTA_SHIFT;
ch = 064 | (data & 03);
break;
}
/* Fall Through */
case 0120:
if ((uptr->CMD & 1) == ALPHA_MODE)
shift = BETA_SHIFT;
@ -466,7 +477,7 @@ t_stat ptr_svc (UNIT *uptr)
/* Check if error */
if (shift != 0) {
eor = chan_input_char(dev, &shift, 0);
if (eor) {
if (eor && ch != 0) {
uptr->STATUS |= TERMINATE;
chan_set_done(dev);
uptr->CMD &= 1;