--- hatari/src/includes/fdc.h 2019/04/01 07:13:07 1.1.1.6 +++ hatari/src/includes/fdc.h 2019/04/01 07:15:29 1.1.1.9 @@ -23,7 +23,9 @@ enum FDCEMU_CMD_READSECTORS, FDCEMU_CMD_READMULTIPLESECTORS, FDCEMU_CMD_WRITESECTORS, - FDCEMU_CMD_WRITEMULTIPLESECTORS + FDCEMU_CMD_WRITEMULTIPLESECTORS, + /* Type III */ + FDCEMU_CMD_READADDRESS, }; /* FDC Emulation commands */ @@ -78,6 +80,19 @@ enum FDCEMU_RUN_WRITESECTORS_COMPLETE }; +/* FDC Running Read Address commands */ +enum +{ + FDCEMU_RUN_READADDRESS, + FDCEMU_RUN_READADDRESS_COMPLETE +}; + + +/* Commands are taking the equivalent of FDC_DELAY_CYCLES cpu cycles to execute */ +/* to try to simulate the speed of a real ST floppy drive */ +#define FDC_DELAY_CYCLES 92160 +//#define FDC_DELAY_CYCLES 1536 // 'Just Bugging Demo' by ACF requires a very fast delay (bug in the loader) + extern Sint16 FDCSectorCountRegister; extern Uint16 DiskControllerWord_ff8604wr; @@ -85,14 +100,14 @@ extern Uint16 DMAModeControl_ff8606wr; extern void FDC_Reset(void); -extern void FDC_MemorySnapShot_Capture(BOOL bSave); +extern void FDC_MemorySnapShot_Capture(bool bSave); extern void FDC_ResetDMAStatus(void); -extern void FDC_SetDMAStatus(BOOL bError); +extern void FDC_SetDMAStatus(bool bError); extern void FDC_DmaStatus_ReadWord(void); extern int FDC_FindFloppyDrive(void); extern void FDC_AcknowledgeInterrupt(void); extern void FDC_GpipRead(void); -extern void FDC_UpdateHBL(void); +extern void FDC_InterruptHandler_Update(void); extern void FDC_UpdateRestoreCmd(void); extern void FDC_UpdateSeekCmd(void); extern void FDC_UpdateStepCmd(void); @@ -100,14 +115,17 @@ extern void FDC_UpdateStepInCmd(void); extern void FDC_UpdateStepOutCmd(void); extern void FDC_UpdateReadSectorsCmd(void); extern void FDC_UpdateWriteSectorsCmd(void); +extern void FDC_UpdateReadAddressCmd(void); extern Uint32 FDC_ReadDMAAddress(void); extern void FDC_WriteDMAAddress(Uint32 Address); -extern BOOL FDC_ReadSectorFromFloppy(void); -extern BOOL FDC_WriteSectorFromFloppy(void); +extern bool FDC_ReadSectorFromFloppy(void); +extern bool FDC_WriteSectorFromFloppy(void); extern void FDC_DMADataFromFloppy(void); extern void FDC_DiskController_WriteWord(void); extern void FDC_DiskControllerStatus_ReadWord(void); extern void FDC_DmaModeControl_WriteWord(void); +extern void FDC_FloppyMode_WriteByte(void); +extern void FDC_FloppyMode_ReadByte(void); #endif /* ifndef HATARI_FDC_H */