



									 Working report
									 **************



--------------------------------------------------------------------------------

To: 		Craig

From:		Jian

Subject:	Jobs I have done during the last two weeks 

Date:		Apr 2, 93

--------------------------------------------------------------------------------




1.	Evaluated the SyQuest 88MB drive for Richard Miller, and try to find out if

	it's the Falcon hardware problem or the software problem, but the Falcon 
	
	can't read from or write to the it, but the TT can do so. The AHDI.PRG can
	
	not recognize the drive, and the HDX.PRG can't format or partition it 
	
	neither on the Falcon. 


2.	Later I found it was a software problem in AHDI.PRG -- The timing problem 

	between the DMA controller and the drive when handshaking after the Command
	
	or Status or Data transfer. When this kind of DMA method transfer occur,
	
	first the controller send 6 bytes of the command blocks, then do some hand-

	shaking, one of the handshaking is get the status byte, but when reading

	the status byte, have to check and wait for the REQ to come, then read the

	status byte, and the rest DMA transfer can go on to finish. For the AHDI6.03

	and HDX5.01, they didn't check and waiting for the REQ to come, then they do

	the rest of DMA transfer, for some drives if their REQ come very quick, then

	AHDI6.03 and HDX5.01 won't have the timing problem, so they can work out

	fine with those kind of drives. But for some drives if their REQ come very

	slowly, like the SyQuest 88MB and IBM OEM 0663E15 1.2GM drives, then the 

	AHDI6.03 and HDX5.01 will have the timing problem which makes the AHDI6.03

	can't recognize these kind of dirves, and can't read or write the drives.


3.	Now, the AHDI6.03a and HDX5.01a have fixed this kind of timing problem, I 

	wrote some codes to check the REQ before continueing to do the rest of DMA
	
	transfer in SPSCSI.S of AHDI6.03 and in HDX5.01 too. So they can work well 
	
	for SyQuest 88MB and IBM OEM 0663E15 drive.


4.	Also the AHDI6.03 has another problem when it scans the drives in the train,

	it can't recognize those drive with a slow reset to the ready state inside 
	
	the drive, for example, the IBM OEM drive. After the AHDI6.03 makes the 
	
	'inquiry()' call to request the informations of this drive, AHDI right away
	
	to read the Root sector within 1 second, but IBM OEM drive is still not 
	
	read to be read after the 'inquiry()' call, it takes about 5 second to reset

	and get the drive ready to be read, so the 'hread()' get the non zero return

	code which is the drive is still busy code, but the AHDI6.03 doesn't check

	this case, so AHDI treat non zero return will mean no drive in that slot, so

	the AHDI6.03 can't recognize this kind of drive. Now I add some codes in the

	'install.s' to check to see if the drive is busy, if so just loop to try to

	read it again, or time out. So the AHDI6.03a fixed this bug too.
	


5.	Now I'm working for the INSITE I235VM Floptical Drive for Falcon SCSI 2, 

	because the AHDI6.03a and HDX5.01a still can't work for this drive, it may
	
	have another kind of timing problems when doing the DMA transfer, or this
	
	kind of drive needs send a special command before read or write it. Now I

	just waiting for the comprehensive menu from the manufacture.



6.	Fix another bug in the 'rescan()' of HDX5.01. If a floptical drive in the

	system, the HDX will think it is a removable drive, then ingnores to check 

	if it's also a SCSI drive, on the other words, forgets to set a bit in the

	'typedev' flag, which later will tell the HDX how to do the format and 

	partition. This bug exist because HDX5.01 thinks removable drive only in the
	
	ACSI train, which is not true in today. 
	


7.	Evaluated the MAXTOR 7080SCS in the Falcon for Ricard Miller, and found it

	Work fine with the AHDI6.03a and HDX5.01a, but the AHDI6.03 and HDX5.01., 

	and I trace it and found it was also a timing problem which was same as

	the SyQuest 88MB.
