예제 #1
0
파일: disc_fdi.c 프로젝트: Nado15/86Box
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);
}
예제 #2
0
static int get_bitcell_period()
{
        return (disc_sector_data[disc_sector_drive][disc_sector_side][cur_sector].rate * 300) / fdd_getrpm(disc_sector_drive);
}