static floperr_t d88_write_sector(floppy_image_legacy *floppy, int head, int track, int sector, const void *buffer, size_t buflen, int ddam) { uint64_t offset; uint32_t sector_length; offset = d88_get_sector_offset(floppy,head,track,sector); if(d88_get_sector_length(floppy,head,track,sector,§or_length) != FLOPPY_ERROR_SUCCESS) return FLOPPY_ERROR_SEEKERROR; if(offset == 0) return FLOPPY_ERROR_SEEKERROR; if(buflen > sector_length) return FLOPPY_ERROR_INTERNAL; floppy_image_write(floppy,buffer,offset,sector_length); return FLOPPY_ERROR_SUCCESS; }
static floperr_t d88_read_sector(floppy_image_legacy *floppy, int head, int track, int sector, void *buffer, size_t buflen) { UINT64 offset; UINT32 sector_length; offset = d88_get_sector_offset(floppy,head,track,sector); if(d88_get_sector_length(floppy,head,track,sector,§or_length) != FLOPPY_ERROR_SUCCESS) return FLOPPY_ERROR_SEEKERROR; if(offset == 0) return FLOPPY_ERROR_SEEKERROR; if(buflen > sector_length) return FLOPPY_ERROR_INTERNAL; floppy_image_read(floppy,buffer,offset,sector_length); return FLOPPY_ERROR_SUCCESS; }