L3 Disk Explorer is an application in order to access to files in a floppy disk image for retro computer and operating system.
Revision | bf0263cc404687c124f26bb234f12483fbe4c2df (tree) |
---|---|
Time | 2022-04-21 21:08:46 |
Author | Sasaji <sasaji@s-sa...> |
Commiter | Sasaji |
Version 0.4.5 Release
@@ -3,7 +3,7 @@ | ||
3 | 3 | # |
4 | 4 | CC=g++ |
5 | 5 | |
6 | -APPLICATION_VERSION=0.4.4 | |
6 | +APPLICATION_VERSION=0.4.5 | |
7 | 7 | |
8 | 8 | CDEFS= |
9 | 9 | DBG_CDEFS=-D_DEBUG -D_DEBUG_LOG |
@@ -1061,6 +1061,7 @@ | ||
1061 | 1061 | <Type>L3S1-2HD</Type> |
1062 | 1062 | <Type p="major">X1HU-2HD</Type> |
1063 | 1063 | <Type p="major">X1HU-2HD-2D</Type> |
1064 | + <Type>OS9-2HD</Type> | |
1064 | 1065 | </DiskBasicTypes> |
1065 | 1066 | <DensityName>2HD/8inch2D</DensityName> |
1066 | 1067 | <DensityName lang="ja">2HD/8インチ2D</DensityName> |
@@ -1092,6 +1093,7 @@ | ||
1092 | 1093 | <Interleave>2</Interleave> |
1093 | 1094 | <DiskBasicTypes> |
1094 | 1095 | <Type>N88-2HD</Type> |
1096 | + <Type>OS9-2HD</Type> | |
1095 | 1097 | </DiskBasicTypes> |
1096 | 1098 | <DensityName>2HD/8inch2D</DensityName> |
1097 | 1099 | <DensityName lang="ja">2HD/8インチ2D</DensityName> |
@@ -2,6 +2,14 @@ | ||
2 | 2 | 更新履歴 |
3 | 3 | ============================================================================== |
4 | 4 | |
5 | +2020-02-11 Version 0.4.5 | |
6 | +・ディスクリスト内のメニューにある「ディスク情報」のダイアログでOKを押すと | |
7 | + 異常終了する不具合を修正した。 | |
8 | +・ディスクリスト内のメニューにある「ディスク情報」で密度が正しく設定されて | |
9 | + いない不具合を修正した。 | |
10 | +・ディスク新規作成でパラメータを手動設定にした場合、密度を2DDや2HDに選択しても | |
11 | + それが作成後のディスクに反映されない不具合を修正した。 | |
12 | + | |
5 | 13 | 2019-12-14 Version 0.4.4 |
6 | 14 | ・FM用2HDディスクの新規作成でトラック0、サイド0を単密度で作成するように |
7 | 15 | パラメータを変更した。 |
@@ -1,8 +1,8 @@ | ||
1 | 1 | ============================================================================== |
2 | 2 | L3 Disk Explorer 仕様 |
3 | - Version 0.4.4 | |
3 | + Version 0.4.5 | |
4 | 4 | |
5 | - Copyright(C) Sasaji 2015-2019 All Rights Reserved. | |
5 | + Copyright(C) Sasaji 2015-2020 All Rights Reserved. | |
6 | 6 | ============================================================================== |
7 | 7 | |
8 | 8 | ●現在対応しているファイルシステム |
@@ -1,9 +1,9 @@ | ||
1 | 1 | ============================================================================== |
2 | 2 | L3 Disk Explorer |
3 | - Version 0.4.4 | |
4 | - 2019/12/14 | |
3 | + Version 0.4.5 | |
4 | + 2020/02/11 | |
5 | 5 | |
6 | - Copyright(C) Sasaji 2015-2019 All Rights Reserved. | |
6 | + Copyright(C) Sasaji 2015-2020 All Rights Reserved. | |
7 | 7 | ============================================================================== |
8 | 8 | |
9 | 9 | ● はじめに |
@@ -1052,7 +1052,7 @@ | ||
1052 | 1052 | ・CP/M Operating System Manual - DIGITAL RESERCH |
1053 | 1053 | ・THE PROGRAMMER'S CP/M HANDBOOK - Osborne/McGraw-Hill |
1054 | 1054 | ・Retro PC Gallery |
1055 | - (http://www.mindspring.com/~thasegaw/rpcg/index.html) | |
1055 | + (http://haserin09.la.coocan.jp/index.html) | |
1056 | 1056 | ・アルゴの記憶 |
1057 | 1057 | (http://www.geocities.co.jp/SiliconValley-Sunnyvale/2521/) |
1058 | 1058 | ・T.Fukui's Classic PC Web |
@@ -1,7 +1,7 @@ | ||
1 | 1 | ============================================================================== |
2 | 2 | L3 Disk Explorer |
3 | 3 | |
4 | - Copyright(C) Sasaji 2015-2019 All Rights Reserved. | |
4 | + Copyright(C) Sasaji 2015-2020 All Rights Reserved. | |
5 | 5 | ============================================================================== |
6 | 6 | |
7 | 7 | ファイル構成 |
@@ -285,18 +285,22 @@ bool DiskParamBox::ValidateAllParam() | ||
285 | 285 | int sec = GetSectorsPerTrack(); |
286 | 286 | int inl = GetInterleave(); |
287 | 287 | if (disk_params) { |
288 | - int i = comTemplate->GetSelection(); | |
289 | - if (i < ((int)disk_params->Count() - 1)) { | |
290 | - if (disk_params->Item(i) == NULL) { | |
291 | - return false; | |
288 | + if (comTemplate) { | |
289 | + int i = comTemplate->GetSelection(); | |
290 | + if (i < ((int)disk_params->Count() - 1)) { | |
291 | + if (disk_params->Item(i) == NULL) { | |
292 | + return false; | |
293 | + } | |
292 | 294 | } |
293 | 295 | } |
294 | 296 | } else { |
295 | - int i = comTemplate->GetSelection(); | |
296 | - int temp_pos = -1; | |
297 | - if (i >= 0) temp_pos = (int)(intptr_t)comTemplate->GetClientData((wxUint32)i); | |
298 | - if (temp_pos < 0) { | |
299 | - return false; | |
297 | + if (comTemplate) { | |
298 | + int i = comTemplate->GetSelection(); | |
299 | + int temp_pos = -1; | |
300 | + if (i >= 0) temp_pos = (int)(intptr_t)comTemplate->GetClientData((wxUint32)i); | |
301 | + if (temp_pos < 0) { | |
302 | + return false; | |
303 | + } | |
300 | 304 | } |
301 | 305 | } |
302 | 306 | if (trk * sid > DISKD88_MAX_TRACKS) { |
@@ -488,7 +492,7 @@ void DiskParamBox::SetParamFromDisk(const DiskD88Disk *disk) | ||
488 | 492 | SetParamToControl(disk); |
489 | 493 | if (txtDiskName) txtDiskName->SetValue(disk->GetName(true)); |
490 | 494 | if (chkWprotect) chkWprotect->SetValue(disk->IsWriteProtected()); |
491 | - if (comDensity) comDensity->SetSelection(disk->GetDensity()); | |
495 | + if (comDensity) comDensity->SetSelection(disk->FindDensity(disk->GetDensity())); | |
492 | 496 | |
493 | 497 | txtTracks->Enable(false); |
494 | 498 | txtSides->Enable(false); |
@@ -642,7 +646,7 @@ void DiskParamBox::GetParamForManual(DiskParam ¶m) | ||
642 | 646 | GetSectorsPerTrack(), |
643 | 647 | GetSectorSize(), |
644 | 648 | GetNumberingSector(), |
645 | - GetDensity(), | |
649 | + GetDensityValue(), | |
646 | 650 | GetInterleave(), |
647 | 651 | sd, |
648 | 652 | pt, |
@@ -726,13 +730,20 @@ wxString DiskParamBox::GetDiskName() const | ||
726 | 730 | return txtDiskName ? txtDiskName->GetValue() : wxT(""); |
727 | 731 | } |
728 | 732 | |
729 | -/// 密度を返す | |
733 | +/// 密度(セレクトボックスの位置)を返す | |
730 | 734 | /// @return 0:2D 1:2DD 2:2HD |
731 | 735 | int DiskParamBox::GetDensity() const |
732 | 736 | { |
733 | 737 | return comDensity ? comDensity->GetSelection() : 0; |
734 | 738 | } |
735 | 739 | |
740 | +/// 密度を表す値を返す | |
741 | +/// @return 0x00:2D 0x10:2DD 0x20:2HD | |
742 | +wxUint8 DiskParamBox::GetDensityValue() const | |
743 | +{ | |
744 | + return gDiskDensity[GetDensity()].val; | |
745 | +} | |
746 | + | |
736 | 747 | /// ディスク書き込み禁止か |
737 | 748 | bool DiskParamBox::IsWriteProtected() const |
738 | 749 | { |
@@ -128,6 +128,7 @@ public: | ||
128 | 128 | int GetNumberingSector() const; |
129 | 129 | wxString GetDiskName() const; |
130 | 130 | int GetDensity() const; |
131 | + wxUint8 GetDensityValue() const; | |
131 | 132 | bool IsWriteProtected() const; |
132 | 133 | int GetSingleNumber() const; |
133 | 134 | int GetSingleSectorsPerTrack() const; |
@@ -7,7 +7,7 @@ | ||
7 | 7 | <key>CFBundleExecutable</key> |
8 | 8 | <string>l3diskex</string> |
9 | 9 | <key>CFBundleGetInfoString</key> |
10 | - <string>L3DiskExplorer version APPLICATION_VERSION, (c) 2015-2019 Sasaji</string> | |
10 | + <string>L3DiskExplorer version APPLICATION_VERSION, (c) 2015-2020 Sasaji</string> | |
11 | 11 | <key>CFBundleIconFile</key> |
12 | 12 | <string>l3diskex.icns</string> |
13 | 13 | <key>CFBundleIdentifier</key> |
@@ -19,7 +19,7 @@ | ||
19 | 19 | <string>jp</string> |
20 | 20 | </array> |
21 | 21 | <key>CFBundleLongVersionString</key> |
22 | - <string>APPLICATION_VERSION, (c) 2015-2019 Sasaji</string> | |
22 | + <string>APPLICATION_VERSION, (c) 2015-2020 Sasaji</string> | |
23 | 23 | <key>CFBundleName</key> |
24 | 24 | <string>L3DiskExproler</string> |
25 | 25 | <key>CFBundlePackageType</key> |
@@ -37,6 +37,6 @@ | ||
37 | 37 | <key>LSRequiresCarbon</key> |
38 | 38 | <true/> |
39 | 39 | <key>NSHumanReadableCopyright</key> |
40 | - <string>Copyright 2015-2019 Sasaji</string> | |
40 | + <string>Copyright 2015-2020 Sasaji</string> | |
41 | 41 | </dict> |
42 | 42 | </plist> |
@@ -1081,7 +1081,7 @@ bool L3DiskList::InitializeDisk() | ||
1081 | 1081 | DiskParam param; |
1082 | 1082 | dlg.GetParam(param); |
1083 | 1083 | selected_disk->SetName(dlg.GetDiskName()); |
1084 | - selected_disk->SetDensity(dlg.GetDensity()); | |
1084 | + selected_disk->SetDensity(dlg.GetDensityValue()); | |
1085 | 1085 | selected_disk->SetWriteProtect(dlg.IsWriteProtected()); |
1086 | 1086 | selected_disk->GetFile()->SetBasicTypeHint(dlg.GetCategory()); |
1087 | 1087 | sts = selected_disk->Rebuild(param, selected_side); |
@@ -1232,7 +1232,7 @@ void L3DiskList::ShowDiskAttr() | ||
1232 | 1232 | DiskParam param; |
1233 | 1233 | dlg.GetParam(param); |
1234 | 1234 | selected_disk->SetName(dlg.GetDiskName()); |
1235 | - selected_disk->SetDensity(dlg.GetDensity()); | |
1235 | + selected_disk->SetDensity(dlg.GetDensityValue()); | |
1236 | 1236 | selected_disk->SetWriteProtect(dlg.IsWriteProtected()); |
1237 | 1237 | selected_disk->SetModify(); |
1238 | 1238 | // ディスク名をセット |
@@ -1,17 +1,17 @@ | ||
1 | 1 | /// @file version.h |
2 | 2 | /// |
3 | -/// @author Copyright (c) 2015-2019 Sasaji. All rights reserved. | |
3 | +/// @author Copyright (c) 2015-2020 Sasaji. All rights reserved. | |
4 | 4 | /// |
5 | 5 | |
6 | 6 | #ifndef _VERSION_H_ |
7 | 7 | #define _VERSION_H_ |
8 | 8 | |
9 | -#define APPLICATION_VERSION "0.4.4" | |
9 | +#define APPLICATION_VERSION "0.4.5" | |
10 | 10 | #define APP_VER_MAJOR 0 |
11 | 11 | #define APP_VER_MINOR 4 |
12 | -#define APP_VER_REV 4 | |
12 | +#define APP_VER_REV 5 | |
13 | 13 | #define APP_VER_BUILD 0 |
14 | -#define APP_COPYRIGHT "Copyright (C) 2015-2019 Sasaji" | |
14 | +#define APP_COPYRIGHT "Copyright (C) 2015-2020 Sasaji" | |
15 | 15 | |
16 | 16 | #if defined(__MINGW32__) |
17 | 17 | #if defined(x86_64) || defined(__x86_64) |