|  | @@ -278,10 +278,22 @@ static void process_DataOut()
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static const uint8_t CmdGroupBytes[8] = {6, 10, 10, 6, 6, 12, 6, 6};
 | 
	
		
			
				|  |  | +static const uint8_t CmdGroupBytes[] = {
 | 
	
		
			
				|  |  | +	6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
 | 
	
		
			
				|  |  | +	10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
 | 
	
		
			
				|  |  | +	10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
 | 
	
		
			
				|  |  | +	10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
 | 
	
		
			
				|  |  | +	10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
 | 
	
		
			
				|  |  | +	10,10,10,10,10,10,10,10,10,10,10,10,10,16,16,16,16,16,16,16,16,
 | 
	
		
			
				|  |  | +	16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
 | 
	
		
			
				|  |  | +	16,16,16,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
 | 
	
		
			
				|  |  | +	12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,10,10,10,10,10,10,
 | 
	
		
			
				|  |  | +	10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
 | 
	
		
			
				|  |  | +	10,10,10,10,10,10,10,10,10,10,10,10,10,10
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  static void process_Command()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	int group;
 | 
	
		
			
				|  |  |  	uint8_t command;
 | 
	
		
			
				|  |  |  	uint8_t control;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -291,8 +303,18 @@ static void process_Command()
 | 
	
		
			
				|  |  |  	int parityError = 0;
 | 
	
		
			
				|  |  |  	scsiRead(scsiDev.cdb, 6, &parityError);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	group = scsiDev.cdb[0] >> 5;
 | 
	
		
			
				|  |  | -	scsiDev.cdbLen = CmdGroupBytes[group];
 | 
	
		
			
				|  |  | +	// Handle Atari ST ICD extended commands
 | 
	
		
			
				|  |  | +	if (scsiDev.cdb[0] == 0x1F)
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		scsiDev.cdb[0] = scsiDev.cdb[1];
 | 
	
		
			
				|  |  | +		scsiDev.cdb[1] = scsiDev.cdb[2];
 | 
	
		
			
				|  |  | +		scsiDev.cdb[2] = scsiDev.cdb[3];
 | 
	
		
			
				|  |  | +		scsiDev.cdb[3] = scsiDev.cdb[4];
 | 
	
		
			
				|  |  | +		scsiDev.cdb[4] = scsiDev.cdb[5];
 | 
	
		
			
				|  |  | +		scsiDev.cdb[5] = scsiReadByte();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	scsiDev.cdbLen = CmdGroupBytes[scsiDev.cdb[0]];
 | 
	
		
			
				|  |  |  	if (parityError &&
 | 
	
		
			
				|  |  |  		(scsiDev.boardCfg.flags & S2S_CFG_ENABLE_PARITY))
 | 
	
		
			
				|  |  |  	{
 |