X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ffloppy.h;h=12b5e98453d9d925d2f3556b0540252a523a3696;hb=f36d026c7b8b398b88765ec5b67a3c767fe5fbad;hp=7fe310f2a4951bc5d01f34990d8a37907bb8c701;hpb=6ad6896385a2068046fb779db2f8f27f537d71f4;p=apple2 diff --git a/src/floppy.h b/src/floppy.h old mode 100755 new mode 100644 index 7fe310f..12b5e98 --- a/src/floppy.h +++ b/src/floppy.h @@ -12,9 +12,9 @@ #else #include // for MAX_PATH on MinGW/Darwin #endif -#include "types.h" +#include -enum { DT_UNKNOWN, DT_DOS33, DT_PRODOS, DT_NYBBLE }; +enum { DT_UNKNOWN, DT_DOS33, DT_DOS33_HDR, DT_PRODOS, DT_NYBBLE }; class FloppyDrive { @@ -22,51 +22,54 @@ 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 driveNum = 0); - void EjectImage(uint8 driveNum = 0); - bool DriveIsEmpty(uint8 driveNum = 0); + 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]; };