|
52 | 52 | , lastSuccessfullCodec(Codec::MFM) {
|
53 | 53 | ::ZeroMemory( &capsImageInfo, sizeof(capsImageInfo) );
|
54 | 54 | ::ZeroMemory( internalTracks, sizeof(internalTracks) );
|
| 55 | + params.fortyTrackDrive&=properties->IsRealDevice(); |
55 | 56 | }
|
56 | 57 |
|
57 | 58 | CCapsBase::~CCapsBase(){
|
|
1193 | 1194 | #define INI_FLUX_DECODER _T("decod")
|
1194 | 1195 | #define INI_FLUX_DECODER_RESET _T("drst")
|
1195 | 1196 | #define INI_PRECISION _T("prec2")
|
| 1197 | + #define INI_40_TRACK_DRIVE _T("sd40") |
1196 | 1198 | #define INI_CALIBRATE_SECTOR_ERROR _T("clberr")
|
1197 | 1199 | #define INI_CALIBRATE_SECTOR_ERROR_KNOWN _T("clbknw")
|
1198 | 1200 | #define INI_CALIBRATE_FORMATTING _T("clbfmt")
|
|
1205 | 1207 | , precision( (TPrecision)app.GetProfileInt(iniSectionName,INI_PRECISION,TPrecision::BASIC) )
|
1206 | 1208 | , fluxDecoder( (TFluxDecoder)app.GetProfileInt(iniSectionName,INI_FLUX_DECODER,TFluxDecoder::KEIR_FRASER) )
|
1207 | 1209 | , resetFluxDecoderOnIndex( (TFluxDecoder)app.GetProfileInt(iniSectionName,INI_FLUX_DECODER_RESET,true)!=0 )
|
| 1210 | + , fortyTrackDrive( app.GetProfileInt(iniSectionName,INI_40_TRACK_DRIVE,0)!=0 ) |
1208 | 1211 | , calibrationAfterError( (TCalibrationAfterError)app.GetProfileInt(iniSectionName,INI_CALIBRATE_SECTOR_ERROR,TCalibrationAfterError::ONCE_PER_CYLINDER) )
|
1209 | 1212 | , calibrationAfterErrorOnlyForKnownSectors( app.GetProfileInt(iniSectionName,INI_CALIBRATE_SECTOR_ERROR_KNOWN,0)!=0 )
|
1210 | 1213 | , calibrationStepDuringFormatting( app.GetProfileInt(iniSectionName,INI_CALIBRATE_FORMATTING,0) )
|
1211 | 1214 | , corrections( iniSectionName )
|
1212 | 1215 | , verifyWrittenTracks( app.GetProfileInt(iniSectionName,INI_VERIFY_WRITTEN_TRACKS,true)!=0 )
|
1213 | 1216 | // - volatile (current session only)
|
1214 | 1217 | , flippyDisk(false) , userForcedFlippyDisk(false)
|
1215 |
| - , fortyTrackDrive(false) , userForcedFortyTrackDrive(false) |
1216 | 1218 | , doubleTrackStep(false) , userForcedDoubleTrackStep(false) { // True once the ID_40D80 button in Settings dialog is pressed
|
1217 | 1219 | }
|
1218 | 1220 |
|
|
1221 | 1223 | app.WriteProfileInt( iniSectionName, INI_PRECISION, precision );
|
1222 | 1224 | app.WriteProfileInt( iniSectionName, INI_FLUX_DECODER, fluxDecoder );
|
1223 | 1225 | app.WriteProfileInt( iniSectionName, INI_FLUX_DECODER_RESET, resetFluxDecoderOnIndex );
|
| 1226 | + app.WriteProfileInt( iniSectionName, INI_40_TRACK_DRIVE, fortyTrackDrive ); |
1224 | 1227 | app.WriteProfileInt( iniSectionName, INI_CALIBRATE_SECTOR_ERROR, calibrationAfterError );
|
1225 | 1228 | app.WriteProfileInt( iniSectionName, INI_CALIBRATE_SECTOR_ERROR_KNOWN, calibrationAfterErrorOnlyForKnownSectors );
|
1226 | 1229 | app.WriteProfileInt( iniSectionName, INI_CALIBRATE_FORMATTING, calibrationStepDuringFormatting );
|
|
1251 | 1254 | const bool initialEditing;
|
1252 | 1255 | CCapsBase &rcb;
|
1253 | 1256 | CPrecompensation tmpPrecomp;
|
1254 |
| - TCHAR flippyDiskTextOrg[40],fortyTrackDriveTextOrg[80],doubleTrackDistanceTextOrg[80]; |
| 1257 | + TCHAR flippyDiskTextOrg[40],doubleTrackDistanceTextOrg[80]; |
1255 | 1258 |
|
1256 | 1259 | bool IsFlippyDiskForcedByUser() const{
|
1257 | 1260 | // True <=> user has manually overrode FlippyDisk setting, otherwise False
|
1258 | 1261 | return ::lstrlen(flippyDiskTextOrg)!=GetDlgItemTextLength(ID_SIDE);
|
1259 | 1262 | }
|
1260 | 1263 |
|
1261 |
| - bool IsShugartDriveForcedByUser() const{ |
1262 |
| - // True <=> user has manually overrode ShugartDrive setting, otherwise False |
1263 |
| - return ::lstrlen(fortyTrackDriveTextOrg)!=GetDlgItemTextLength(ID_DRIVE); |
1264 |
| - } |
1265 |
| - |
1266 | 1264 | bool IsDoubleTrackDistanceForcedByUser() const{
|
1267 | 1265 | // True <=> user has manually overrode DoubleTrackDistance setting, otherwise False
|
1268 | 1266 | return ::lstrlen(doubleTrackDistanceTextOrg)!=GetDlgItemTextLength(ID_40D80);
|
|
1375 | 1373 | GetDlgItemText( ID_40D80, doubleTrackDistanceTextOrg, ARRAYSIZE(doubleTrackDistanceTextOrg) );
|
1376 | 1374 | if (rcb.params.userForcedDoubleTrackStep)
|
1377 | 1375 | SendMessage( WM_COMMAND, ID_40D80 );
|
1378 |
| - GetDlgItemText( ID_DRIVE, fortyTrackDriveTextOrg, ARRAYSIZE(fortyTrackDriveTextOrg) ); |
1379 |
| - if (rcb.params.userForcedFortyTrackDrive) |
1380 |
| - SendMessage( WM_COMMAND, ID_DRIVE ); |
1381 | 1376 | CheckAndEnableDlgItem( ID_40D80,
|
1382 | 1377 | rcb.params.doubleTrackStep,
|
1383 | 1378 | !CheckDlgItem( ID_DRIVE, rcb.params.fortyTrackDrive )
|
|
1487 | 1482 | if (initialEditing){ // if no Tracks are yet formatted, then resetting the flag that user has overridden these settings
|
1488 | 1483 | CheckDlgItem( ID_DRIVE, CheckDlgItem(ID_SIDE,false) );
|
1489 | 1484 | SetDlgItemText( ID_SIDE, flippyDiskTextOrg );
|
1490 |
| - SetDlgItemText( ID_DRIVE, fortyTrackDriveTextOrg ); |
1491 | 1485 | SetDlgItemText( ID_40D80, doubleTrackDistanceTextOrg );
|
1492 | 1486 | }
|
1493 | 1487 | RefreshMediumInformation();
|
|
1498 | 1492 | break;
|
1499 | 1493 | case ID_DRIVE:
|
1500 | 1494 | // drive physical track range changed manually
|
1501 |
| - SetDlgItemFormattedText( ID_DRIVE, _T("%s (user forced)"), fortyTrackDriveTextOrg ); |
1502 | 1495 | CheckAndEnableDlgItem( ID_40D80, false, !IsDlgItemChecked(ID_DRIVE) );
|
1503 | 1496 | //fallthrough
|
1504 | 1497 | case ID_40D80:
|
|
1524 | 1517 | params.flippyDisk=IsDlgItemChecked(ID_SIDE);
|
1525 | 1518 | params.userForcedFlippyDisk=IsFlippyDiskForcedByUser();
|
1526 | 1519 | params.fortyTrackDrive=IsDlgItemChecked(ID_DRIVE);
|
1527 |
| - params.userForcedFortyTrackDrive=IsShugartDriveForcedByUser(); |
1528 | 1520 | params.doubleTrackStep=IsDlgItemChecked(ID_40D80);
|
1529 | 1521 | params.userForcedDoubleTrackStep=IsDoubleTrackDistanceForcedByUser();
|
1530 | 1522 | break;
|
|
0 commit comments