135 for(
i = 0;
i < 5;
i++)
150 INFO_(FLOPPY,
"Send_Byte: timed out trying to write\n");
181 for(
i = 0;
i < 5;
i++)
196 INFO_(FLOPPY,
"Get_Byte: timed out trying to write\n");
305 TRACE_(FLOPPY,
"HwSenseDriveStatus called\n");
310 for(
i = 0;
i < 2;
i++)
313 WARN_(FLOPPY,
"HwSenseDriveStatus: failed to write FIFO\n");
328 UCHAR BytesPerSector,
372 Buffer[5] = BytesPerSector;
378 for(
i = 0;
i < 9;
i++)
380 INFO_(FLOPPY,
"HwReadWriteData: Sending a command byte to the FIFO: 0x%x\n",
Buffer[
i]);
384 WARN_(FLOPPY,
"HwReadWriteData: Unable to write to the FIFO\n");
417 WARN_(FLOPPY,
"HwRecalibrateResult: Unable to write the controller\n");
421 for(
i = 0;
i < 2;
i++)
424 WARN_(FLOPPY,
"HwRecalibrateResult: unable to read FIFO\n");
429 INFO_(FLOPPY,
"HwRecalibrateResult results: ST0: 0x%x PCN: 0x%x\n",
Buffer[0],
Buffer[1]);
439 WARN_(FLOPPY,
"HwRecalibrateResult: PCN not 0\n");
446 WARN_(FLOPPY,
"HwRecalibrateResult: Failed to complete the seek\n");
453 WARN_(FLOPPY,
"HwRecalibrateResult: Seeked to track 0 successfully, but EC is set; returning failure\n");
483 for(
i = 0;
i < 7;
i++)
486 WARN_(FLOPPY,
"HwReadWriteResult: unable to read fifo\n");
520 TRACE_(FLOPPY,
"HwRecalibrate called\n");
527 for(
i = 0;
i < 2;
i++)
530 WARN_(FLOPPY,
"HwRecalibrate: unable to write FIFO\n");
556 WARN_(FLOPPY,
"HwSenseInterruptStatus: failed to write controller\n");
560 for(
i = 0;
i < 2;
i++)
564 WARN_(FLOPPY,
"HwSenseInterruptStatus: failed to read controller\n");
569 INFO_(FLOPPY,
"HwSenseInterruptStatus returned 0x%x 0x%x\n",
Buffer[0],
Buffer[1]);
592 TRACE_(FLOPPY,
"HwReadId called\n");
599 for(
i = 0;
i < 2;
i++)
602 WARN_(FLOPPY,
"HwReadId: unable to send bytes to fifo\n");
614 UCHAR BytesPerSector,
636 TRACE_(FLOPPY,
"HwFormatTrack called\n");
642 Buffer[2] = BytesPerSector;
645 Buffer[5] = FillerPattern;
647 for(
i = 0;
i < 6;
i++)
650 WARN_(FLOPPY,
"HwFormatTrack: unable to send bytes to floppy\n");
676 TRACE_(FLOPPY,
"HwSeek called for cyl 0x%x\n", Cylinder);
684 for(
i = 0;
i < 3;
i++)
687 WARN_(FLOPPY,
"HwSeek: failed to write fifo\n");
728 TRACE_(FLOPPY,
"HwConfigure called\n");
737 for(
i = 0;
i < 4;
i++)
740 WARN_(FLOPPY,
"HwConfigure: failed to write the fifo\n");
769 WARN_(FLOPPY,
"HwGetVersion: unable to write fifo\n");
775 WARN_(FLOPPY,
"HwGetVersion: unable to write fifo\n");
779 INFO_(FLOPPY,
"HwGetVersion returning version 0x%x\n",
Buffer);
803 TRACE_(FLOPPY,
"HwDiskChanged: read 0x%x from DIR\n",
Buffer);
809 INFO_(FLOPPY,
"HdDiskChanged - Model30 - returning TRUE\n");
814 INFO_(FLOPPY,
"HdDiskChanged - Model30 - returning FALSE\n");
815 *DiskChanged =
FALSE;
822 INFO_(FLOPPY,
"HdDiskChanged - PS2 - returning TRUE\n");
827 INFO_(FLOPPY,
"HdDiskChanged - PS2 - returning FALSE\n");
828 *DiskChanged =
FALSE;
853 WARN_(FLOPPY,
"HwSenseDriveStatus: unable to read fifo\n");
857 TRACE_(FLOPPY,
"HwSenseDriveStatusResult: ST3: 0x%x\n", *
Status);
889 for(
i = 0;
i < 7;
i++)
892 WARN_(FLOPPY,
"ReadIdResult(): can't read from the controller\n");
903 WARN_(FLOPPY,
"ReadId didn't return last command success\n");
910 WARN_(FLOPPY,
"ReadId didn't find an address mark\n");
927 UCHAR HeadUnloadTime,
959 WARN_(FLOPPY,
"HWSPECIFY: FIXME - sending 0x3 0xd1 0x2 to FIFO\n");
961 for(
i = 0;
i < 3;
i++)
964 WARN_(FLOPPY,
"HwSpecify: unable to write to controller\n");
984 TRACE_(FLOPPY,
"HwReset called\n");
993 INFO_(FLOPPY,
"HwReset: Setting Enable bit\n");
999 WARN_(FLOPPY,
"HwReset: failed to set the DOR enable bit!\n");
1021 TRACE_(FLOPPY,
"HwPowerOff called on controller 0x%p\n", ControllerInfo);
1038 INFO_(FLOPPY,
"STATUS:\n");
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
struct _CONTROLLER_INFO * PCONTROLLER_INFO
NTSTATUS NTAPI HwReadWriteResult(PCONTROLLER_INFO ControllerInfo)
NTSTATUS NTAPI HwFormatTrack(PCONTROLLER_INFO ControllerInfo, UCHAR Unit, UCHAR Head, UCHAR BytesPerSector, UCHAR SectorsPerTrack, UCHAR Gap3Length, UCHAR FillerPattern)
NTSTATUS NTAPI HwRecalibrateResult(PCONTROLLER_INFO ControllerInfo)
NTSTATUS NTAPI HwTurnOnMotor(PDRIVE_INFO DriveInfo)
NTSTATUS NTAPI HwConfigure(PCONTROLLER_INFO ControllerInfo, BOOLEAN EIS, BOOLEAN EFIFO, BOOLEAN POLL, UCHAR FIFOTHR, UCHAR PRETRK)
NTSTATUS NTAPI HwGetVersion(PCONTROLLER_INFO ControllerInfo)
VOID NTAPI HwDumpRegisters(PCONTROLLER_INFO ControllerInfo)
static BOOLEAN NTAPI ReadyForRead(PCONTROLLER_INFO ControllerInfo)
NTSTATUS NTAPI HwSeek(PDRIVE_INFO DriveInfo, UCHAR Cylinder)
NTSTATUS NTAPI HwSetDataRate(PCONTROLLER_INFO ControllerInfo, UCHAR DataRate)
NTSTATUS NTAPI HwReset(PCONTROLLER_INFO ControllerInfo)
NTSTATUS NTAPI HwRecalibrate(PDRIVE_INFO DriveInfo)
static BOOLEAN NTAPI ReadyForWrite(PCONTROLLER_INFO ControllerInfo)
NTSTATUS NTAPI HwSpecify(PCONTROLLER_INFO ControllerInfo, UCHAR HeadLoadTime, UCHAR HeadUnloadTime, UCHAR StepRateTime, BOOLEAN NonDma)
NTSTATUS NTAPI HwReadId(PDRIVE_INFO DriveInfo, UCHAR Head)
NTSTATUS NTAPI HwReadWriteData(PCONTROLLER_INFO ControllerInfo, BOOLEAN Read, UCHAR Unit, UCHAR Cylinder, UCHAR Head, UCHAR Sector, UCHAR BytesPerSector, UCHAR EndOfTrack, UCHAR Gap3Length, UCHAR DataLength)
NTSTATUS NTAPI HwSenseInterruptStatus(PCONTROLLER_INFO ControllerInfo)
NTSTATUS NTAPI HwSenseDriveStatusResult(PCONTROLLER_INFO ControllerInfo, PUCHAR Status)
NTSTATUS NTAPI HwDiskChanged(PDRIVE_INFO DriveInfo, PBOOLEAN DiskChanged)
static NTSTATUS NTAPI Send_Byte(PCONTROLLER_INFO ControllerInfo, UCHAR Byte)
NTSTATUS NTAPI HwTurnOffMotor(PCONTROLLER_INFO ControllerInfo)
NTSTATUS NTAPI HwPowerOff(PCONTROLLER_INFO ControllerInfo)
NTSTATUS NTAPI HwSenseDriveStatus(PDRIVE_INFO DriveInfo)
static NTSTATUS NTAPI Get_Byte(PCONTROLLER_INFO ControllerInfo, PUCHAR Byte)
NTSTATUS NTAPI HwReadIdResult(PCONTROLLER_INFO ControllerInfo, PUCHAR CurCylinder, PUCHAR CurHead)
#define DIGITAL_INPUT_REGISTER
#define COMMAND_RECALIBRATE
#define DOR_FLOPPY_MOTOR_ON_A
#define DOR_FLOPPY_MOTOR_ON_D
#define DOR_FLOPPY_MOTOR_ON_C
#define COMMAND_SENSE_INTERRUPT_STATUS
#define DOR_FLOPPY_MOTOR_ON_B
#define STATUS_REGISTER_B
#define DOR_DMA_IO_INTERFACE_ENABLE
#define STATUS_REGISTER_A
#define COMMAND_FORMAT_TRACK
#define SR0_EQUIPMENT_CHECK
#define SR0_LAST_COMMAND_STATUS
#define DATA_RATE_SELECT_REGISTER
#define DIR_DISKETTE_CHANGE
#define MSR_DATA_REG_READY_FOR_IO
#define SR0_SEEK_COMPLETE
#define DIGITAL_OUTPUT_REGISTER
#define COMMAND_WRITE_DATA
#define COMMAND_HEAD_NUMBER_SHIFT
#define COMMAND_READ_DATA
#define SR1_CANNOT_FIND_ID_ADDRESS
#define MAIN_STATUS_REGISTER
#define COMMAND_SENSE_DRIVE_STATUS
#define COMMAND_CONFIGURE
#define KeDelayExecutionThread(mode, foo, t)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define KeStallExecutionProcessor(MicroSeconds)
#define UNREFERENCED_PARAMETER(P)
#define READ_PORT_UCHAR(p)
#define WRITE_PORT_UCHAR(p, d)
struct _CONTROLLER_INFO * ControllerInfo
CM_FLOPPY_DEVICE_DATA FloppyDeviceData
#define STATUS_UNSUCCESSFUL
_In_ ULONG _In_ ULONG SectorsPerTrack