| 512 |
* Read from channel |
* Read from channel |
| 513 |
*/ |
*/ |
| 514 |
|
|
| 515 |
uint8 FSDrive::Read(int channel, uint8 *byte) |
uint8 FSDrive::Read(int channel, uint8 &byte) |
| 516 |
{ |
{ |
| 517 |
int c; |
int c; |
| 518 |
|
|
| 519 |
// Channel 15: Error channel |
// Channel 15: Error channel |
| 520 |
if (channel == 15) { |
if (channel == 15) { |
| 521 |
*byte = *error_ptr++; |
byte = *error_ptr++; |
| 522 |
|
|
| 523 |
if (*byte != '\r') |
if (byte != '\r') |
| 524 |
return ST_OK; |
return ST_OK; |
| 525 |
else { // End of message |
else { // End of message |
| 526 |
set_error(ERR_OK); |
set_error(ERR_OK); |
| 531 |
if (!file[channel]) return ST_READ_TIMEOUT; |
if (!file[channel]) return ST_READ_TIMEOUT; |
| 532 |
|
|
| 533 |
// Read one byte |
// Read one byte |
| 534 |
*byte = read_char[channel]; |
byte = read_char[channel]; |
| 535 |
c = fgetc(file[channel]); |
c = fgetc(file[channel]); |
| 536 |
if (c == EOF) |
if (c == EOF) |
| 537 |
return ST_EOF; |
return ST_EOF; |