diff --git a/src/components/drive.c b/src/components/drive.c index 24d92c3..fd5efb8 100644 --- a/src/components/drive.c +++ b/src/components/drive.c @@ -60,7 +60,7 @@ void nn_drive_writeSector(nn_drive *drive, void *_, nn_component *component, nn_ int sector = nn_toInt(sectorValue); size_t sector_size = drive->getSectorSize(component, drive->userdata); nn_value bufValue = nn_getArgument(computer, 1); - char *buf = nn_toString(bufValue, §or_size); + const char *buf = nn_toString(bufValue, §or_size); drive->writeSector(component, drive->userdata, sector, buf); } void nn_drive_readByte(nn_drive *drive, void *_, nn_component *component, nn_computer *computer) { @@ -71,7 +71,7 @@ void nn_drive_readByte(nn_drive *drive, void *_, nn_component *component, nn_com size_t sector_offset = disk_offset % sector_size; char buf[sector_size]; - drive->readSector(component, drive->userdata, sector, &buf); + drive->readSector(component, drive->userdata, sector, buf); nn_return(computer, nn_values_integer(buf[sector_offset])); } @@ -85,7 +85,7 @@ void nn_drive_writeByte(nn_drive *drive, void *_, nn_component *component, nn_co size_t sector_offset = disk_offset % sector_size; char buf[sector_size]; - drive->readSector(component, drive->userdata, sector, &buf); + drive->readSector(component, drive->userdata, sector, buf); buf[sector_offset] = write; diff --git a/src/emulator.c b/src/emulator.c index 2aa40bf..4474d79 100644 --- a/src/emulator.c +++ b/src/emulator.c @@ -51,6 +51,10 @@ const char *ne_location(nn_address address) { size_t ne_eeprom_get(nn_component *component, void *_, char *buf) { FILE *f = fopen(ne_location(nn_getComponentAddress(component)), "rb"); + if (f == NULL) { + printf("couldn't read eeprom"); + exit(1); + } fseek(f, 0, SEEK_END); size_t len = ftell(f); fseek(f, 0, SEEK_SET); @@ -61,6 +65,10 @@ size_t ne_eeprom_get(nn_component *component, void *_, char *buf) { void ne_eeprom_set(nn_component *component, void *_, const char *buf, size_t len) { FILE *f = fopen(ne_location(nn_getComponentAddress(component)), "wb"); + if (f == NULL) { + printf("couldn't write eeprom"); + exit(1); + } fwrite(buf, sizeof(char), len, f); fclose(f); }