Skip to content

Commit

Permalink
GUI版の作成。
Browse files Browse the repository at this point in the history
  • Loading branch information
BouKiCHi committed Mar 22, 2021
1 parent 4c15da3 commit dd44b2d
Show file tree
Hide file tree
Showing 17 changed files with 920 additions and 31 deletions.
Binary file modified HuDisk.exe
Binary file not shown.
6 changes: 6 additions & 0 deletions HuDisk.sln
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HuDisk", "HuDisk\HuDisk.csp
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HuDiskTests", "HuDiskTests\HuDiskTests.csproj", "{CA77A25B-54CF-4EA3-9EDF-E43254356795}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HuDiskG", "HuDiskG\HuDiskG.csproj", "{B061D1DE-9DBF-49D7-9D6B-89B75310A1D8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -21,6 +23,10 @@ Global
{CA77A25B-54CF-4EA3-9EDF-E43254356795}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CA77A25B-54CF-4EA3-9EDF-E43254356795}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CA77A25B-54CF-4EA3-9EDF-E43254356795}.Release|Any CPU.Build.0 = Release|Any CPU
{B061D1DE-9DBF-49D7-9D6B-89B75310A1D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B061D1DE-9DBF-49D7-9D6B-89B75310A1D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B061D1DE-9DBF-49D7-9D6B-89B75310A1D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B061D1DE-9DBF-49D7-9D6B-89B75310A1D8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
12 changes: 6 additions & 6 deletions HuDisk/HuDisk.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -68,26 +68,26 @@
</None>
</ItemGroup>
<ItemGroup>
<Compile Include="src\HuBasic\Context.cs" />
<Compile Include="src\HuBasic\HuBasicDisk.cs" />
<Compile Include="src\HuBasic\HuBasicDiskEntry.cs" />
<Compile Include="src\HuBasic\HuBasicDiskImage.cs" />
<Compile Include="src\HuBasic\HuFileEntry.cs" />
<Compile Include="src\HuBasic\Setting.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="src\HuBasic\Context.cs" />
<Compile Include="src\Disk\DataController.cs" />
<Compile Include="src\Disk\DiskImage.cs" />
<Compile Include="src\Disk\DiskParameter.cs" />
<Compile Include="src\Disk\DiskType.cs" />
<Compile Include="src\HuBasic\HuBasicDisk.cs" />
<Compile Include="src\HuBasic\HuBasicDiskEntry.cs" />
<Compile Include="src\HuBasic\HuBasicDiskImage.cs" />
<Compile Include="src\Program.cs" />
<Compile Include="src\HuBasic\HuFileEntry.cs" />
<Compile Include="src\Utils\Log.cs" />
<Compile Include="src\Utils\MiniOption.cs" />
<Compile Include="src\Disk\SectorData.cs" />
<Compile Include="src\Disk\TrackFormat.cs" />
<Compile Include="src\HuBasic\Setting.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
Expand Down
62 changes: 41 additions & 21 deletions HuDisk/src/HuBasic/HuBasicDiskImage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,24 @@ public HuBasicDiskImage(Context context) {
}



/// <summary>
/// ファイル追加
/// </summary>
/// <param name="FilePathData">追加するファイルパス</param>
/// <param name="EntryName">追加するエントリ名</param>
/// <returns></returns>

public bool AddFile(IEnumerable<string> FilePathData, string EntryName = null) {

foreach (var s in FilePathData) {
if (!AddFile(s, EntryName)) return false;
}

WriteImage();
return true;
}

/// <summary>
/// ファイルの追加
/// </summary>
Expand Down Expand Up @@ -89,30 +107,26 @@ public void DeleteFile(IEnumerable<string> Files) {
}

/// <summary>
/// ファイルをすべて削除。イメージにも書き込む。
/// ファイル削除。イメージにも書き込む。
/// </summary>
public void DeleteAll() {
Delete("*");
/// <param name="Pattern"></param>
public void Delete(IEnumerable<HuFileEntry> EntryData) {
foreach (var Entry in EntryData) {
DiskEntry.Delete(Entry);
}
WriteImage();
}


/// <summary>
/// ファイル追加
/// ファイルをすべて削除。イメージにも書き込む。
/// </summary>
/// <param name="FilePathData">追加するファイルパス</param>
/// <param name="EntryName">追加するエントリ名</param>
/// <returns></returns>

public bool AddFile(IEnumerable<string> FilePathData, string EntryName = null) {

foreach (var s in FilePathData) {
if (!AddFile(s, EntryName)) return false;
}

public void DeleteAll() {
Delete("*");
WriteImage();
return true;
}


/// <summary>
/// イメージの書き出し
/// </summary>
Expand All @@ -136,15 +150,18 @@ private void ExtractFile(string OutputFilename, HuFileEntry fe) {
}

/// <summary>
/// ファイル展開
/// ファイルをディレクトリに展開する
/// </summary>
/// <param name="fs"></param>
/// <param name="StartCluster">開始クラスタ</param>
/// <param name="FileSize"></param>
public void Extract(Stream fs, int StartCluster, int FileSize) {
/// <param name="Directory"></param>
/// <param name="Files"></param>
public void ExtractToDirectory(string Directory, IEnumerable<HuFileEntry> Files) {
// 展開
foreach (var fe in Files) {
var OutputName = Path.Combine(Directory, fe.GetFilename());
ExtractFile(OutputName, fe);
}
}


/// <summary>
/// ファイルの追加
/// </summary>
Expand Down Expand Up @@ -227,6 +244,9 @@ private void ExtractPattern(string Name) {






private void DeletePattern(string Name) {
HuFileEntry[] MatchedFiles = GetMatchedFiles(Name);

Expand Down
12 changes: 8 additions & 4 deletions HuDisk/src/HuBasic/HuFileEntry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
using System.IO;

namespace Disk {
class HuFileEntry {
public class HuFileEntry {
public int FileMode;
public string Name;
public string Extension;
Expand All @@ -20,6 +20,10 @@ class HuFileEntry {
public byte[] DateTimeData = new byte[6];
internal bool IsIplEntry;

/// <summary>
/// ファイル名.拡張子のファイル名を得る
/// </summary>
/// <returns></returns>
public string GetFilename() {
if (Extension.Length == 0) return Name;
return Name + "." + Extension;
Expand All @@ -31,19 +35,19 @@ public string Description() {
string ExecuteAddressText = ExecuteAddress.ToString("X4");

string AddressText = $"Load:{LoadAddressText,-5} Exec:{ExecuteAddressText,-5}";
string BasicInfoText = $"{GetFilename(),-16} Type:{TypeText,4} Date:{GetFileDate()} Size:{Size,-5}";
string BasicInfoText = $"{GetFilename(),-16} Type:{TypeText,4} Date:{GetDateText()} Size:{Size,-5}";

return $"{BasicInfoText} {AddressText} Start:{StartCluster,5}";
}

private string GetTypeText() {
public string GetTypeText() {
if (IsDirectory) return "DIR";
if (IsAscii) return "ASC";
if (IsBinary) return "BIN";
return "FILE";
}

private string GetFileDate() {
public string GetDateText() {
int Year = ConvertFromBCD(DateTimeData[0]);
Year = Year < 80 ? 2000 + Year : 1900 + Year;
int Month = (DateTimeData[1] >> 4);
Expand Down
Binary file added HuDiskG.exe
Binary file not shown.
27 changes: 27 additions & 0 deletions HuDiskG/App.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="HuDiskG.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<userSettings>
<HuDiskG.Properties.Settings>
<setting name="ImagePath" serializeAs="String">
<value />
</setting>
<setting name="ShowExtractDirectory" serializeAs="String">
<value>True</value>
</setting>
<setting name="ForceAscii" serializeAs="String">
<value>False</value>
</setting>
<setting name="ForceBinary" serializeAs="String">
<value>False</value>
</setting>
</HuDiskG.Properties.Settings>
</userSettings>
</configuration>
9 changes: 9 additions & 0 deletions HuDiskG/App.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Application x:Class="HuDiskG.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:HuDiskG"
StartupUri="MainWindow.xaml">
<Application.Resources>

</Application.Resources>
</Application>
15 changes: 15 additions & 0 deletions HuDiskG/App.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;

namespace HuDiskG {
/// <summary>
/// App.xaml の相互作用ロジック
/// </summary>
public partial class App : Application {
}
}
Loading

0 comments on commit dd44b2d

Please sign in to comment.