parent
a7a1402a01
commit
1c6093d85e
2 changed files with 8 additions and 6 deletions
|
@ -72,7 +72,7 @@ static const unsigned short SECTOR_LENGTH_WITH_CHECKSUM = 260;
|
||||||
static const unsigned char GCR_SYNC_BYTE = 0xff;
|
static const unsigned char GCR_SYNC_BYTE = 0xff;
|
||||||
static const unsigned char GCR_GAP_BYTE = 0x55;
|
static const unsigned char GCR_GAP_BYTE = 0x55;
|
||||||
static const int SECTOR_HEADER_LENGTH = 8;
|
static const int SECTOR_HEADER_LENGTH = 8;
|
||||||
static const unsigned MAX_D64_SIZE = 0x30000;
|
static const unsigned MAX_D64_SIZE = 0x32200 + 768;
|
||||||
static const unsigned MAX_D71_SIZE = 0x55600 + 1366;
|
static const unsigned MAX_D71_SIZE = 0x55600 + 1366;
|
||||||
static const unsigned MAX_D81_SIZE = 822400;
|
static const unsigned MAX_D81_SIZE = 822400;
|
||||||
|
|
||||||
|
@ -141,6 +141,7 @@ DiskImage::DiskImage()
|
||||||
, fileInfo(0)
|
, fileInfo(0)
|
||||||
{
|
{
|
||||||
memset(tracks, 0x55, sizeof(tracks));
|
memset(tracks, 0x55, sizeof(tracks));
|
||||||
|
memset(trackUsed, 0, sizeof(trackUsed));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiskImage::Close()
|
void DiskImage::Close()
|
||||||
|
@ -180,6 +181,7 @@ void DiskImage::Close()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
memset(trackLengths, 0, sizeof(trackLengths));
|
memset(trackLengths, 0, sizeof(trackLengths));
|
||||||
|
memset(trackUsed, 0, sizeof(trackUsed));
|
||||||
diskType = NONE;
|
diskType = NONE;
|
||||||
fileInfo = 0;
|
fileInfo = 0;
|
||||||
hash = 0;
|
hash = 0;
|
||||||
|
@ -204,7 +206,7 @@ void DiskImage::DumpTrack(unsigned track)
|
||||||
bool DiskImage::OpenD64(const FILINFO* fileInfo, unsigned char* diskImage, unsigned size)
|
bool DiskImage::OpenD64(const FILINFO* fileInfo, unsigned char* diskImage, unsigned size)
|
||||||
{
|
{
|
||||||
unsigned char errorinfo[MAXBLOCKSONDISK];
|
unsigned char errorinfo[MAXBLOCKSONDISK];
|
||||||
unsigned last_track = MAXBLOCKSONDISK;
|
unsigned last_track;
|
||||||
unsigned sector_ref;
|
unsigned sector_ref;
|
||||||
unsigned char error;
|
unsigned char error;
|
||||||
|
|
||||||
|
@ -314,11 +316,11 @@ bool DiskImage::WriteD64(char* name)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
d64ptr = d64data;
|
d64ptr = d64data;
|
||||||
for (track = 0; track <= 40 * 2; track += 2)
|
for (track = 0; track < HALF_TRACK_COUNT; track += 2)
|
||||||
{
|
{
|
||||||
if (trackUsed[track])
|
if (trackUsed[track])
|
||||||
{
|
{
|
||||||
//printf("Track %d\n", track);
|
//printf("Track %d\r\n", track);
|
||||||
|
|
||||||
for (sector = 0; sector < SectorsPerTrack[track / 2]; sector++)
|
for (sector = 0; sector < SectorsPerTrack[track / 2]; sector++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,8 +27,8 @@
|
||||||
#define MAX_HALFTRACKS_1571 (MAX_TRACKS_1571 * 2)
|
#define MAX_HALFTRACKS_1571 (MAX_TRACKS_1571 * 2)
|
||||||
|
|
||||||
/* D64 constants */
|
/* D64 constants */
|
||||||
#define BLOCKSONDISK 683
|
#define BLOCKSONDISK (17*21 + 7*19 + 6*18 + 5*17)
|
||||||
#define BLOCKSEXTRA 85
|
#define BLOCKSEXTRA (5*17)
|
||||||
#define MAXBLOCKSONDISK (BLOCKSONDISK+BLOCKSEXTRA)
|
#define MAXBLOCKSONDISK (BLOCKSONDISK+BLOCKSEXTRA)
|
||||||
#define MAX_TRACK_D64 40
|
#define MAX_TRACK_D64 40
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue