int32_t fdi_extra_bit_cells(int drive, int side) { int density = 0; int raw_size = 0; int is_300_rpm = 0; density = fdi_density(); is_300_rpm = (fdd_getrpm(real_drive(drive)) == 300); switch (fdc_get_bit_rate()) { case 0: raw_size = is_300_rpm ? 200000 : 166666; break; case 1: raw_size = is_300_rpm ? 120000 : 100000; break; case 2: raw_size = is_300_rpm ? 100000 : 83333; case 3: case 5: raw_size = is_300_rpm ? 400000 : 333333; break; default: raw_size = is_300_rpm ? 100000 : 83333; } return (fdi[drive].tracklen[side][density] - raw_size); }
static int get_bitcell_period() { return (disc_sector_data[disc_sector_drive][disc_sector_side][cur_sector].rate * 300) / fdd_getrpm(disc_sector_drive); }