mirror of
https://github.com/dkgrizzly/GreenSCSI.git
synced 2024-11-25 09:31:07 +00:00
61 lines
2.1 KiB
C++
Executable File
61 lines
2.1 KiB
C++
Executable File
#include "config.h"
|
|
#include "scsi_defs.h"
|
|
|
|
#if SUPPORT_SASI
|
|
|
|
/*
|
|
* dtc510b_setDriveparameter
|
|
*/
|
|
#define PACKED __attribute__((packed))
|
|
typedef struct PACKED dtc500_cmd_c2_param_struct
|
|
{
|
|
uint8_t StepPlusWidth; // Default is 13.6usec (11)
|
|
uint8_t StepPeriod; // Default is 3 msec.(60)
|
|
uint8_t StepMode; // Default is Bufferd (0)
|
|
uint8_t MaximumHeadAdress; // Default is 4 heads (3)
|
|
uint8_t HighCylinderAddressuint8_t; // Default set to 0 (0)
|
|
uint8_t LowCylinderAddressuint8_t; // Default is 153 cylinders (152)
|
|
uint8_t ReduceWrietCurrent; // Default is above Cylinder 128 (127)
|
|
uint8_t DriveType_SeekCompleteOption;// (0)
|
|
uint8_t Reserved8; // (0)
|
|
uint8_t Reserved9; // (0)
|
|
} DTC510_CMD_C2_PARAM;
|
|
|
|
static void logStrHex(const char *msg,uint32_t num)
|
|
{
|
|
LOG(msg);
|
|
LOGHEX6N(num);
|
|
}
|
|
|
|
void DTCsetDriveParameterCommandHandler() {
|
|
LOGN("[DTC510B setDriveParameter]");
|
|
|
|
DTC510_CMD_C2_PARAM DriveParameter;
|
|
uint16_t maxCylinder;
|
|
uint16_t numLAD;
|
|
//uint32_t stepPulseUsec;
|
|
int StepPeriodMsec;
|
|
|
|
// receive paramter
|
|
writeDataPhase(sizeof(DriveParameter),(uint8_t *)(&DriveParameter));
|
|
|
|
maxCylinder =
|
|
(((uint16_t)DriveParameter.HighCylinderAddressuint8_t)<<8) |
|
|
(DriveParameter.LowCylinderAddressuint8_t);
|
|
numLAD = maxCylinder * (DriveParameter.MaximumHeadAdress+1);
|
|
//stepPulseUsec = calcStepPulseUsec(DriveParameter.StepPlusWidth);
|
|
StepPeriodMsec = DriveParameter.StepPeriod*50;
|
|
logStrHex (" StepPlusWidth : ",DriveParameter.StepPlusWidth);
|
|
logStrHex (" StepPeriod : ",DriveParameter.StepPeriod );
|
|
logStrHex (" StepMode : ",DriveParameter.StepMode );
|
|
logStrHex (" MaximumHeadAdress : ",DriveParameter.MaximumHeadAdress);
|
|
logStrHex (" CylinderAddress : ",maxCylinder);
|
|
logStrHex (" ReduceWrietCurrent : ",DriveParameter.ReduceWrietCurrent);
|
|
logStrHex (" DriveType/SeekCompleteOption : ",DriveParameter.DriveType_SeekCompleteOption);
|
|
logStrHex (" Maximum LAD : ",numLAD-1);
|
|
m_sts = 0;
|
|
m_phase = PHASE_STATUSIN;
|
|
}
|
|
|
|
#endif
|