|  | @@ -120,6 +120,35 @@ static const uint8_t RigidDiskDriveGeometry[] =
 | 
	
		
			
				|  |  |  0x00, 0x00 // Reserved
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +static const uint8_t FlexibleDiskDriveGeometry[] =
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +0x05, // Page code
 | 
	
		
			
				|  |  | +0x1E, // Page length
 | 
	
		
			
				|  |  | +0x01, 0xF4, // Transfer Rate (500kbits)
 | 
	
		
			
				|  |  | +0x01, // heads
 | 
	
		
			
				|  |  | +18, // sectors per track
 | 
	
		
			
				|  |  | +0x20,0x00, // bytes per sector
 | 
	
		
			
				|  |  | +0x00, 80, // Cylinders
 | 
	
		
			
				|  |  | +0x00, 0x80, // Write-precomp
 | 
	
		
			
				|  |  | +0x00, 0x80, // reduced current,
 | 
	
		
			
				|  |  | +0x00, 0x00, // Drive step rate
 | 
	
		
			
				|  |  | +0x00, // pulse width
 | 
	
		
			
				|  |  | +0x00, 0x00, // Head settle delay
 | 
	
		
			
				|  |  | +0x00, // motor on delay
 | 
	
		
			
				|  |  | +0x00,  // motor off delay
 | 
	
		
			
				|  |  | +0x00,
 | 
	
		
			
				|  |  | +0x00,
 | 
	
		
			
				|  |  | +0x00,
 | 
	
		
			
				|  |  | +0x00,
 | 
	
		
			
				|  |  | +0x00,
 | 
	
		
			
				|  |  | +0x00,
 | 
	
		
			
				|  |  | +0x00,
 | 
	
		
			
				|  |  | +0x00,
 | 
	
		
			
				|  |  | +0x00,
 | 
	
		
			
				|  |  | +0x00,
 | 
	
		
			
				|  |  | +0x00
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  static const uint8_t RigidDiskDriveGeometry_SCSI1[] =
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  0x04, // Page code
 | 
	
	
		
			
				|  | @@ -421,6 +450,13 @@ static void doModeSense(
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	if (pageCode == 0x05 || pageCode == 0x3F)
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		pageFound = 1;
 | 
	
		
			
				|  |  | +		pageIn(pc, idx, FlexibleDiskDriveGeometry, sizeof(FlexibleDiskDriveGeometry));
 | 
	
		
			
				|  |  | +		idx += sizeof(FlexibleDiskDriveGeometry);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	// DON'T output the following pages for SCSI1 hosts. They get upset when
 | 
	
		
			
				|  |  |  	// we have more data to send than the allocation length provided.
 | 
	
		
			
				|  |  |  	// (ie. Try not to output any more pages below this comment)
 |