Skip to content

Commit 9ac538b

Browse files
committedNov 15, 2023
[#65] Greaseweazle boards (Part 18: Physical range of tracks is a drive's property to be saved for next session)
1 parent 37f4930 commit 9ac538b

File tree

3 files changed

+7
-15
lines changed

3 files changed

+7
-15
lines changed
 

‎Main/src/CapsBase.cpp

+5-13
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
, lastSuccessfullCodec(Codec::MFM) {
5353
::ZeroMemory( &capsImageInfo, sizeof(capsImageInfo) );
5454
::ZeroMemory( internalTracks, sizeof(internalTracks) );
55+
params.fortyTrackDrive&=properties->IsRealDevice();
5556
}
5657

5758
CCapsBase::~CCapsBase(){
@@ -1193,6 +1194,7 @@
11931194
#define INI_FLUX_DECODER _T("decod")
11941195
#define INI_FLUX_DECODER_RESET _T("drst")
11951196
#define INI_PRECISION _T("prec2")
1197+
#define INI_40_TRACK_DRIVE _T("sd40")
11961198
#define INI_CALIBRATE_SECTOR_ERROR _T("clberr")
11971199
#define INI_CALIBRATE_SECTOR_ERROR_KNOWN _T("clbknw")
11981200
#define INI_CALIBRATE_FORMATTING _T("clbfmt")
@@ -1205,14 +1207,14 @@
12051207
, precision( (TPrecision)app.GetProfileInt(iniSectionName,INI_PRECISION,TPrecision::BASIC) )
12061208
, fluxDecoder( (TFluxDecoder)app.GetProfileInt(iniSectionName,INI_FLUX_DECODER,TFluxDecoder::KEIR_FRASER) )
12071209
, resetFluxDecoderOnIndex( (TFluxDecoder)app.GetProfileInt(iniSectionName,INI_FLUX_DECODER_RESET,true)!=0 )
1210+
, fortyTrackDrive( app.GetProfileInt(iniSectionName,INI_40_TRACK_DRIVE,0)!=0 )
12081211
, calibrationAfterError( (TCalibrationAfterError)app.GetProfileInt(iniSectionName,INI_CALIBRATE_SECTOR_ERROR,TCalibrationAfterError::ONCE_PER_CYLINDER) )
12091212
, calibrationAfterErrorOnlyForKnownSectors( app.GetProfileInt(iniSectionName,INI_CALIBRATE_SECTOR_ERROR_KNOWN,0)!=0 )
12101213
, calibrationStepDuringFormatting( app.GetProfileInt(iniSectionName,INI_CALIBRATE_FORMATTING,0) )
12111214
, corrections( iniSectionName )
12121215
, verifyWrittenTracks( app.GetProfileInt(iniSectionName,INI_VERIFY_WRITTEN_TRACKS,true)!=0 )
12131216
// - volatile (current session only)
12141217
, flippyDisk(false) , userForcedFlippyDisk(false)
1215-
, fortyTrackDrive(false) , userForcedFortyTrackDrive(false)
12161218
, doubleTrackStep(false) , userForcedDoubleTrackStep(false) { // True once the ID_40D80 button in Settings dialog is pressed
12171219
}
12181220

@@ -1221,6 +1223,7 @@
12211223
app.WriteProfileInt( iniSectionName, INI_PRECISION, precision );
12221224
app.WriteProfileInt( iniSectionName, INI_FLUX_DECODER, fluxDecoder );
12231225
app.WriteProfileInt( iniSectionName, INI_FLUX_DECODER_RESET, resetFluxDecoderOnIndex );
1226+
app.WriteProfileInt( iniSectionName, INI_40_TRACK_DRIVE, fortyTrackDrive );
12241227
app.WriteProfileInt( iniSectionName, INI_CALIBRATE_SECTOR_ERROR, calibrationAfterError );
12251228
app.WriteProfileInt( iniSectionName, INI_CALIBRATE_SECTOR_ERROR_KNOWN, calibrationAfterErrorOnlyForKnownSectors );
12261229
app.WriteProfileInt( iniSectionName, INI_CALIBRATE_FORMATTING, calibrationStepDuringFormatting );
@@ -1251,18 +1254,13 @@
12511254
const bool initialEditing;
12521255
CCapsBase &rcb;
12531256
CPrecompensation tmpPrecomp;
1254-
TCHAR flippyDiskTextOrg[40],fortyTrackDriveTextOrg[80],doubleTrackDistanceTextOrg[80];
1257+
TCHAR flippyDiskTextOrg[40],doubleTrackDistanceTextOrg[80];
12551258

12561259
bool IsFlippyDiskForcedByUser() const{
12571260
// True <=> user has manually overrode FlippyDisk setting, otherwise False
12581261
return ::lstrlen(flippyDiskTextOrg)!=GetDlgItemTextLength(ID_SIDE);
12591262
}
12601263

1261-
bool IsShugartDriveForcedByUser() const{
1262-
// True <=> user has manually overrode ShugartDrive setting, otherwise False
1263-
return ::lstrlen(fortyTrackDriveTextOrg)!=GetDlgItemTextLength(ID_DRIVE);
1264-
}
1265-
12661264
bool IsDoubleTrackDistanceForcedByUser() const{
12671265
// True <=> user has manually overrode DoubleTrackDistance setting, otherwise False
12681266
return ::lstrlen(doubleTrackDistanceTextOrg)!=GetDlgItemTextLength(ID_40D80);
@@ -1375,9 +1373,6 @@
13751373
GetDlgItemText( ID_40D80, doubleTrackDistanceTextOrg, ARRAYSIZE(doubleTrackDistanceTextOrg) );
13761374
if (rcb.params.userForcedDoubleTrackStep)
13771375
SendMessage( WM_COMMAND, ID_40D80 );
1378-
GetDlgItemText( ID_DRIVE, fortyTrackDriveTextOrg, ARRAYSIZE(fortyTrackDriveTextOrg) );
1379-
if (rcb.params.userForcedFortyTrackDrive)
1380-
SendMessage( WM_COMMAND, ID_DRIVE );
13811376
CheckAndEnableDlgItem( ID_40D80,
13821377
rcb.params.doubleTrackStep,
13831378
!CheckDlgItem( ID_DRIVE, rcb.params.fortyTrackDrive )
@@ -1487,7 +1482,6 @@
14871482
if (initialEditing){ // if no Tracks are yet formatted, then resetting the flag that user has overridden these settings
14881483
CheckDlgItem( ID_DRIVE, CheckDlgItem(ID_SIDE,false) );
14891484
SetDlgItemText( ID_SIDE, flippyDiskTextOrg );
1490-
SetDlgItemText( ID_DRIVE, fortyTrackDriveTextOrg );
14911485
SetDlgItemText( ID_40D80, doubleTrackDistanceTextOrg );
14921486
}
14931487
RefreshMediumInformation();
@@ -1498,7 +1492,6 @@
14981492
break;
14991493
case ID_DRIVE:
15001494
// drive physical track range changed manually
1501-
SetDlgItemFormattedText( ID_DRIVE, _T("%s (user forced)"), fortyTrackDriveTextOrg );
15021495
CheckAndEnableDlgItem( ID_40D80, false, !IsDlgItemChecked(ID_DRIVE) );
15031496
//fallthrough
15041497
case ID_40D80:
@@ -1524,7 +1517,6 @@
15241517
params.flippyDisk=IsDlgItemChecked(ID_SIDE);
15251518
params.userForcedFlippyDisk=IsFlippyDiskForcedByUser();
15261519
params.fortyTrackDrive=IsDlgItemChecked(ID_DRIVE);
1527-
params.userForcedFortyTrackDrive=IsShugartDriveForcedByUser();
15281520
params.doubleTrackStep=IsDlgItemChecked(ID_40D80);
15291521
params.userForcedDoubleTrackStep=IsDoubleTrackDistanceForcedByUser();
15301522
break;

‎Main/src/CapsBase.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@
148148
MARK_OGDEN
149149
} fluxDecoder;
150150
bool resetFluxDecoderOnIndex;
151+
bool fortyTrackDrive;
151152
enum TCalibrationAfterError{
152153
NONE =0,
153154
ONCE_PER_CYLINDER =1,
@@ -159,7 +160,6 @@
159160
bool verifyWrittenTracks;
160161
// volatile (current session only)
161162
bool flippyDisk, userForcedFlippyDisk;
162-
bool fortyTrackDrive, userForcedFortyTrackDrive;
163163
bool doubleTrackStep, userForcedDoubleTrackStep;
164164

165165
TParams(LPCTSTR iniSectionName);

‎Main/src/Greaseweazle.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@
147147
if (!ReadTrack(0,0))
148148
continue; // must be able to turn motor on, seek to a Cylinder and read a Track
149149
UnscanTrack(0,0);
150-
params.fortyTrackDrive=busType==BUS_SHUGART;
150+
params.fortyTrackDrive|=busType==BUS_SHUGART;
151151
break;
152152
}
153153
// - evaluating connection

0 commit comments

Comments
 (0)
Please sign in to comment.