diff --git a/I1401/i1401_cd.c b/I1401/i1401_cd.c index 18fa3ec6..f20cb17b 100644 --- a/I1401/i1401_cd.c +++ b/I1401/i1401_cd.c @@ -423,9 +423,9 @@ if (ferror (cdr_unit.fileref)) { /* error? */ } cdr_unit.pos = ftell (cdr_unit.fileref); /* update position */ if (ssa) { /* if last cd on */ - getc (cdr_unit.fileref); /* see if more */ - if (feof (cdr_unit.fileref)) /* eof? set flag */ - ind[IN_LST] = 1; + if (getc (cdr_unit.fileref) == EOF) /* eof? */ + ind[IN_LST] = 1; /* set flag */ + clearerr (cdr_unit.fileref); fseek (cdr_unit.fileref, cdr_unit.pos, SEEK_SET); } return SCPE_OK; diff --git a/I1620/i1620_cd.c b/I1620/i1620_cd.c index 5f533831..d8713fa0 100644 --- a/I1620/i1620_cd.c +++ b/I1620/i1620_cd.c @@ -371,9 +371,9 @@ if ((i = strlen (cdr_buf)) > 0) { /* anything at all? */ } } cdr_unit.pos = ftell (cdr_unit.fileref); /* update position */ -getc (cdr_unit.fileref); /* see if more */ -if (feof (cdr_unit.fileref)) /* eof? set last */ - ind[IN_LAST] = 1; +if (getc (cdr_unit.fileref) == EOF) /* eof? */ + ind[IN_LST] = 1; /* set flag */ +clearerr (cdr_unit.fileref); fseek (cdr_unit.fileref, cdr_unit.pos, SEEK_SET); /* "backspace" */ return SCPE_OK; } diff --git a/I7094/i7094_cd.c b/I7094/i7094_cd.c index c03f32cb..ae3bbe6b 100644 --- a/I7094/i7094_cd.c +++ b/I7094/i7094_cd.c @@ -201,7 +201,7 @@ return SCPE_OK; t_stat cdr_svc (UNIT *uptr) { uint32 i, col, row, bufw, colbin; -char cdr_cbuf[(2 * CD_CHRLNT) + 2]; +char cdr_cbuf[(2 * CD_CHRLNT) + 2 + 1]; t_uint64 dat = 0; if ((uptr->flags & UNIT_ATT) == 0) /* not attached? */