static void ReadTrack(const int iDrive) { if (! IsDriveValid( iDrive )) return; Disk_t *pFloppy = &g_aFloppyDisk[ iDrive ]; if (pFloppy->track >= ImageGetNumTracks(pFloppy->imagehandle)) { pFloppy->trackimagedata = 0; return; } if (! pFloppy->trackimage) AllocTrack( iDrive ); if (pFloppy->trackimage && pFloppy->imagehandle) { LOG_DISK("read track %2X%s\r", pFloppy->track, (pFloppy->phase & 1) ? ".5" : ""); ImageReadTrack( pFloppy->imagehandle, pFloppy->track, pFloppy->phase, pFloppy->trackimage, &pFloppy->nibbles); pFloppy->byte = 0; pFloppy->trackimagedata = (pFloppy->nibbles != 0); } }
//=========================================================================== static void ReadTrack (int iDrive) { if (! IsDriveValid( iDrive )) return; Disk_t *pFloppy = &g_aFloppyDisk[ iDrive ]; if (pFloppy->track >= TRACKS) { pFloppy->trackimagedata = 0; return; } if (! pFloppy->trackimage) AllocTrack( iDrive ); if (pFloppy->trackimage && pFloppy->imagehandle) { ImageReadTrack( pFloppy->imagehandle, pFloppy->track, pFloppy->phase, pFloppy->trackimage, &pFloppy->nibbles); pFloppy->byte = 0; pFloppy->trackimagedata = (pFloppy->nibbles != 0); } }
bool Disk2InterfaceCard::IsDiskImageWriteProtected(const int drive) { if (!IsDriveValid(drive)) return true; return ImageIsWriteProtected(m_floppyDrive[drive].m_disk.m_imagehandle); }
bool Disk2InterfaceCard::IsDriveEmpty(const int drive) { if (!IsDriveValid(drive)) return true; return m_floppyDrive[drive].m_disk.m_imagehandle == NULL; }
void Disk2InterfaceCard::SetProtect(const int drive, const bool bWriteProtect) { if (IsDriveValid( drive )) { m_floppyDrive[drive].m_disk.m_bWriteProtected = bWriteProtect; } }
void Disk2InterfaceCard::EjectDisk(const int drive) { if (IsDriveValid(drive)) { RemoveDisk(drive); } }
void Disk2InterfaceCard::ReadTrack(const int drive) { if (! IsDriveValid( drive )) return; FloppyDrive* pDrive = &m_floppyDrive[ drive ]; FloppyDisk* pFloppy = &pDrive->m_disk; if (pDrive->m_track >= ImageGetNumTracks(pFloppy->m_imagehandle)) { pFloppy->m_trackimagedata = false; return; } if (!pFloppy->m_trackimage) AllocTrack( drive ); if (pFloppy->m_trackimage && pFloppy->m_imagehandle) { #if LOG_DISK_TRACKS LOG_DISK("track $%02X%s read\r\n", pDrive->m_track, (pDrive->m_phase & 1) ? ".5" : " "); #endif ImageReadTrack( pFloppy->m_imagehandle, pDrive->m_track, pDrive->m_phase, pFloppy->m_trackimage, &pFloppy->m_nibbles, m_enhanceDisk); pFloppy->m_byte = 0; pFloppy->m_trackimagedata = (pFloppy->m_nibbles != 0); } }
bool Disk2InterfaceCard::GetProtect(const int drive) { if (IsDriveValid(drive)) { if (m_floppyDrive[drive].m_disk.m_bWriteProtected) return true; } return false; }
static Disk_Status_e GetDriveLightStatus(const int iDrive) { if (IsDriveValid( iDrive )) { Disk_t *pFloppy = & g_aFloppyDisk[ iDrive ]; if (pFloppy->spinning) { if (pFloppy->bWriteProtected) return DISK_STATUS_PROT; if (pFloppy->writelight) return DISK_STATUS_WRITE; else return DISK_STATUS_READ; } else return DISK_STATUS_OFF; } return DISK_STATUS_OFF; }
Disk_Status_e Disk2InterfaceCard::GetDriveLightStatus(const int drive) { if (IsDriveValid( drive )) { FloppyDrive* pDrive = &m_floppyDrive[ drive ]; if (pDrive->m_spinning) { if (pDrive->m_disk.m_bWriteProtected) return DISK_STATUS_PROT; if (pDrive->m_writelight) return DISK_STATUS_WRITE; else return DISK_STATUS_READ; } else { return DISK_STATUS_OFF; } } return DISK_STATUS_OFF; }