X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ffloppy.h;h=fd3c06e96f6e518dcfe8b68fa3df313225a72404;hb=c0001155bc0909da61f6c849c0be9b16e9b7f4b6;hp=d0207ca8fb3d26ee66ad7a26418b8215bb361182;hpb=ce9f31494277a11aa9cfcbdb5fe5c303627e626e;p=apple2 diff --git a/src/floppy.h b/src/floppy.h index d0207ca..fd3c06e 100755 --- a/src/floppy.h +++ b/src/floppy.h @@ -12,7 +12,7 @@ #else #include // for MAX_PATH on MinGW/Darwin #endif -#include "types.h" +#include enum { DT_UNKNOWN, DT_DOS33, DT_PRODOS, DT_NYBBLE }; @@ -22,48 +22,55 @@ class FloppyDrive FloppyDrive(); ~FloppyDrive(); - bool LoadImage(const char * filename, uint8 driveNum = 0); - bool SaveImage(uint8 driveNum = 0); - bool SaveImageAs(const char * filename, uint8 driveNum = 0); - void CreateBlankImage(uint8 driveNum = 0); + bool LoadImage(const char * filename, uint8_t driveNum = 0); + bool SaveImage(uint8_t driveNum = 0); + bool SaveImageAs(const char * filename, uint8_t driveNum = 0); + void CreateBlankImage(uint8_t driveNum = 0); void SwapImages(void); + const char * GetImageName(uint8_t driveNum = 0); + void EjectImage(uint8_t driveNum = 0); + bool DriveIsEmpty(uint8_t driveNum = 0); + bool DiskIsWriteProtected(uint8_t driveNum = 0); + void SetWriteProtect(bool, uint8_t driveNum = 0); // I/O functions ($C0Ex accesses) - void ControlStepper(uint8 addr); - void ControlMotor(uint8 addr); - void DriveEnable(uint8 addr); - uint8 ReadWrite(void); - uint8 GetLatchValue(void); - void SetLatchValue(uint8 value); + void ControlStepper(uint8_t addr); + void ControlMotor(uint8_t addr); + void DriveEnable(uint8_t addr); + uint8_t ReadWrite(void); + uint8_t GetLatchValue(void); + void SetLatchValue(uint8_t value); void SetReadMode(void); void SetWriteMode(void); protected: - void DetectImageType(const char * filename, uint8 driveNum); - void NybblizeImage(uint8 driveNum); - void DenybblizeImage(uint8 driveNum); + void DetectImageType(const char * filename, uint8_t driveNum); + void NybblizeImage(uint8_t driveNum); + void DenybblizeImage(uint8_t driveNum); private: char imageName[2][MAX_PATH]; - uint8 * disk[2]; - uint32 diskSize[2]; - uint8 diskType[2]; + uint8_t * disk[2]; + uint32_t diskSize[2]; + uint8_t diskType[2]; bool imageDirty[2]; - uint8 motorOn; - uint8 activeDrive; - uint8 ioMode; - uint8 latchValue; - uint8 phase; - uint8 track; + bool writeProtected[2]; + uint8_t motorOn; + uint8_t activeDrive; + uint8_t ioMode; + uint8_t latchValue; + uint8_t phase; + uint8_t track; - uint8 nybblizedImage[2][232960]; - uint32 currentPos; + uint8_t nybblizedImage[2][232960]; + uint32_t currentPos; // And here are some private class variables (to reduce function redundancy): - static uint8 header[21]; - static uint8 doSector[16]; - static uint8 poSector[16]; + static uint8_t header[21]; + static uint8_t doSector[16]; + static uint8_t poSector[16]; + static char nameBuf[MAX_PATH]; }; #endif // __FLOPPY_H__