├── OricExplorer ├── Forms │ ├── StopWatch.cs │ ├── frmAboutBox.Designer.cs │ ├── frmMainForm.Designer.cs │ ├── frmCreateNewDisk.cs │ ├── frmDataViewer.cs │ ├── frmAboutBox.cs │ ├── frmDataViewer.Designer.cs │ ├── frmProgramInfo.Designer.cs │ ├── frmFileScan.cs │ ├── frmDataViewer.resx │ ├── frmDiskData.resx │ ├── frmProgramInfo.resx │ ├── frmImportAtmosBasicFile.resx │ ├── frmDiskInfoViewer.resx │ └── ImageViewerForm.resx ├── Resources │ ├── apply.png │ ├── cancel.png │ ├── copy.png │ ├── delete.png │ ├── disk.png │ ├── images.png │ ├── rename.png │ ├── tape.png │ ├── view.png │ ├── OpCodes.dat │ ├── PrintHS.png │ ├── emulator.png │ ├── refresh.png │ ├── 1downarrow1.png │ ├── 1uparrow1.png │ ├── Folder-icon.png │ ├── information.png │ ├── OricExplorer.ico │ ├── PrintSetupHS.png │ ├── picture_save.png │ ├── Folder-Open-icon.png │ ├── OricExplorerLogo.png │ ├── PrintPreviewHS.png │ ├── button_cancel1.png │ ├── control_end_blue.png │ ├── source-code-icon.png │ ├── CharacterSetViewer.bmp │ ├── control_pause_blue.png │ ├── control_play_blue.png │ ├── control_start_blue.png │ ├── control_stop_blue.png │ ├── magnifier_zoom_in.png │ ├── OricExplorerLogoNew.ico │ ├── control_repeat_blue.png │ ├── control_rewind_blue.png │ ├── document-binary-icon.png │ ├── OricExplorerLogo (Rotated).png │ ├── UpdatedCharacterSetViewer.bmp │ ├── control_fastforward_blue.png │ ├── OricExplorerLogo (Transparent).png │ ├── OricExplorerLogo (Transparent2).png │ ├── OricExplorerLogo (Black on White).png │ ├── OricExplorerLogo (Black on White Shadow).png │ ├── OricExplorerLogo Rotated (Black on White).png │ ├── OricExplorerLogo (Black on White Shadow Rotated).png │ ├── StdCharSet.dat │ └── OricExplorerLogo (Black on White).svg ├── Classes │ ├── OricProgram.cs │ ├── RomInfo.cs │ ├── Extensions.cs │ ├── NativeMethods.cs │ ├── TapeInfo.cs │ ├── OtherFileInfo.cs │ ├── OpCodes.cs │ ├── TeleassTokens.cs │ ├── BasicTokens.cs │ ├── OricFileInfo.cs │ └── ConstantsAndEnums.cs ├── Documents │ ├── SedOric and OricDos Sector Descriptions.pdf │ └── Context Menus.rtf ├── Packager │ ├── create_archive.ps1 │ └── update_app_version.ps1 ├── packages.config ├── User Controls │ ├── ctlTextBoxPlus.cs │ ├── GradientPanel.Designer.cs │ ├── ctlCaptureViewer.cs │ ├── ctlProgressBar.Designer.cs │ ├── ShadowLabel.resx │ ├── ctlTextBoxPlus.designer.cs │ ├── ShadowLabel.cs │ ├── GradientPanel.cs │ ├── ctlSequentialFileViewer.Designer.cs │ ├── ctlProgressBar.cs │ ├── SoftShadowLabel.cs │ ├── SoftShadowLabel.resx │ ├── OutlineShadowLabel.resx │ ├── ctlCaptureViewer.designer.cs │ ├── ctlProgressBar.resx │ ├── ctlCaptureViewer.resx │ ├── ctlDataFileViewer.resx │ ├── ctlSequentialFileViewer.resx │ ├── DiskInfoViewer.resx │ ├── ctlCharacterSetViewer.resx │ └── SectorViewer.resx ├── Settings.cs ├── Properties │ ├── AssemblyInfo.cs │ └── Settings.settings ├── Program.cs └── Installer │ └── OricExplorer.iss ├── -NET SDKs for Visual Studio.url ├── dist ├── OricExplorer_v2.5.0.0.exe ├── OricExplorer_v2.5.0.0.zip └── app_version.xml ├── packages ├── FCTB.2.16.24 │ ├── .signature.p7s │ ├── FCTB.2.16.24.nupkg │ └── lib │ │ └── FastColoredTextBox.dll ├── ZipStorer.3.6.0 │ ├── .signature.p7s │ ├── ZipStorer.3.6.0.nupkg │ └── lib │ │ ├── net20 │ │ └── ZipStorer.dll │ │ ├── net452 │ │ └── ZipStorer.dll │ │ └── netstandard2.0 │ │ └── ZipStorer.dll ├── DockPanelSuite.3.0.6 │ ├── .signature.p7s │ ├── DockPanelSuite.3.0.6.nupkg │ └── lib │ │ ├── net40 │ │ └── WeifenLuo.WinFormsUI.Docking.dll │ │ └── net35-client │ │ └── WeifenLuo.WinFormsUI.Docking.dll └── DockPanelSuite.2.11.0-beta2 │ ├── DockPanelSuite.2.11.0-beta2.nupkg │ └── lib │ ├── net40 │ └── WeifenLuo.WinFormsUI.Docking.dll │ └── net35-client │ └── WeifenLuo.WinFormsUI.Docking.dll ├── OricExplorer-LICENCE-CC-BY-NC-SA-4.0.txt ├── .gitignore ├── doc ├── packaging.md ├── bugs.md ├── application-settings.md └── user-guide.md ├── OricExplorer.sln └── AuthorsNotes.md /OricExplorer/Forms/StopWatch.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /-NET SDKs for Visual Studio.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://www.microsoft.com/net/download/visual-studio-sdks 3 | -------------------------------------------------------------------------------- /dist/OricExplorer_v2.5.0.0.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/dist/OricExplorer_v2.5.0.0.exe -------------------------------------------------------------------------------- /dist/OricExplorer_v2.5.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/dist/OricExplorer_v2.5.0.0.zip -------------------------------------------------------------------------------- /OricExplorer/Resources/apply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/apply.png -------------------------------------------------------------------------------- /OricExplorer/Resources/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/cancel.png -------------------------------------------------------------------------------- /OricExplorer/Resources/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/copy.png -------------------------------------------------------------------------------- /OricExplorer/Resources/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/delete.png -------------------------------------------------------------------------------- /OricExplorer/Resources/disk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/disk.png -------------------------------------------------------------------------------- /OricExplorer/Resources/images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/images.png -------------------------------------------------------------------------------- /OricExplorer/Resources/rename.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/rename.png -------------------------------------------------------------------------------- /OricExplorer/Resources/tape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/tape.png -------------------------------------------------------------------------------- /OricExplorer/Resources/view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/view.png -------------------------------------------------------------------------------- /OricExplorer/Classes/OricProgram.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Classes/OricProgram.cs -------------------------------------------------------------------------------- /OricExplorer/Resources/OpCodes.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OpCodes.dat -------------------------------------------------------------------------------- /OricExplorer/Resources/PrintHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/PrintHS.png -------------------------------------------------------------------------------- /OricExplorer/Resources/emulator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/emulator.png -------------------------------------------------------------------------------- /OricExplorer/Resources/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/refresh.png -------------------------------------------------------------------------------- /OricExplorer/Resources/1downarrow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/1downarrow1.png -------------------------------------------------------------------------------- /OricExplorer/Resources/1uparrow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/1uparrow1.png -------------------------------------------------------------------------------- /OricExplorer/Resources/Folder-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/Folder-icon.png -------------------------------------------------------------------------------- /OricExplorer/Resources/information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/information.png -------------------------------------------------------------------------------- /packages/FCTB.2.16.24/.signature.p7s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/FCTB.2.16.24/.signature.p7s -------------------------------------------------------------------------------- /OricExplorer-LICENCE-CC-BY-NC-SA-4.0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer-LICENCE-CC-BY-NC-SA-4.0.txt -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorer.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OricExplorer.ico -------------------------------------------------------------------------------- /OricExplorer/Resources/PrintSetupHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/PrintSetupHS.png -------------------------------------------------------------------------------- /OricExplorer/Resources/picture_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/picture_save.png -------------------------------------------------------------------------------- /packages/FCTB.2.16.24/FCTB.2.16.24.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/FCTB.2.16.24/FCTB.2.16.24.nupkg -------------------------------------------------------------------------------- /packages/ZipStorer.3.6.0/.signature.p7s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/ZipStorer.3.6.0/.signature.p7s -------------------------------------------------------------------------------- /OricExplorer/Forms/frmAboutBox.Designer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Forms/frmAboutBox.Designer.cs -------------------------------------------------------------------------------- /OricExplorer/Forms/frmMainForm.Designer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Forms/frmMainForm.Designer.cs -------------------------------------------------------------------------------- /OricExplorer/Resources/Folder-Open-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/Folder-Open-icon.png -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorerLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OricExplorerLogo.png -------------------------------------------------------------------------------- /OricExplorer/Resources/PrintPreviewHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/PrintPreviewHS.png -------------------------------------------------------------------------------- /OricExplorer/Resources/button_cancel1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/button_cancel1.png -------------------------------------------------------------------------------- /OricExplorer/Resources/control_end_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/control_end_blue.png -------------------------------------------------------------------------------- /OricExplorer/Resources/source-code-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/source-code-icon.png -------------------------------------------------------------------------------- /OricExplorer/Resources/CharacterSetViewer.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/CharacterSetViewer.bmp -------------------------------------------------------------------------------- /OricExplorer/Resources/control_pause_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/control_pause_blue.png -------------------------------------------------------------------------------- /OricExplorer/Resources/control_play_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/control_play_blue.png -------------------------------------------------------------------------------- /OricExplorer/Resources/control_start_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/control_start_blue.png -------------------------------------------------------------------------------- /OricExplorer/Resources/control_stop_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/control_stop_blue.png -------------------------------------------------------------------------------- /OricExplorer/Resources/magnifier_zoom_in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/magnifier_zoom_in.png -------------------------------------------------------------------------------- /packages/DockPanelSuite.3.0.6/.signature.p7s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/DockPanelSuite.3.0.6/.signature.p7s -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorerLogoNew.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OricExplorerLogoNew.ico -------------------------------------------------------------------------------- /OricExplorer/Resources/control_repeat_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/control_repeat_blue.png -------------------------------------------------------------------------------- /OricExplorer/Resources/control_rewind_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/control_rewind_blue.png -------------------------------------------------------------------------------- /OricExplorer/Resources/document-binary-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/document-binary-icon.png -------------------------------------------------------------------------------- /packages/FCTB.2.16.24/lib/FastColoredTextBox.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/FCTB.2.16.24/lib/FastColoredTextBox.dll -------------------------------------------------------------------------------- /packages/ZipStorer.3.6.0/ZipStorer.3.6.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/ZipStorer.3.6.0/ZipStorer.3.6.0.nupkg -------------------------------------------------------------------------------- /packages/ZipStorer.3.6.0/lib/net20/ZipStorer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/ZipStorer.3.6.0/lib/net20/ZipStorer.dll -------------------------------------------------------------------------------- /packages/ZipStorer.3.6.0/lib/net452/ZipStorer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/ZipStorer.3.6.0/lib/net452/ZipStorer.dll -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorerLogo (Rotated).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OricExplorerLogo (Rotated).png -------------------------------------------------------------------------------- /OricExplorer/Resources/UpdatedCharacterSetViewer.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/UpdatedCharacterSetViewer.bmp -------------------------------------------------------------------------------- /OricExplorer/Resources/control_fastforward_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/control_fastforward_blue.png -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorerLogo (Transparent).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OricExplorerLogo (Transparent).png -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorerLogo (Transparent2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OricExplorerLogo (Transparent2).png -------------------------------------------------------------------------------- /packages/DockPanelSuite.3.0.6/DockPanelSuite.3.0.6.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/DockPanelSuite.3.0.6/DockPanelSuite.3.0.6.nupkg -------------------------------------------------------------------------------- /packages/ZipStorer.3.6.0/lib/netstandard2.0/ZipStorer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/ZipStorer.3.6.0/lib/netstandard2.0/ZipStorer.dll -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorerLogo (Black on White).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OricExplorerLogo (Black on White).png -------------------------------------------------------------------------------- /OricExplorer/Documents/SedOric and OricDos Sector Descriptions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Documents/SedOric and OricDos Sector Descriptions.pdf -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorerLogo (Black on White Shadow).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OricExplorerLogo (Black on White Shadow).png -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorerLogo Rotated (Black on White).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OricExplorerLogo Rotated (Black on White).png -------------------------------------------------------------------------------- /packages/DockPanelSuite.2.11.0-beta2/DockPanelSuite.2.11.0-beta2.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/DockPanelSuite.2.11.0-beta2/DockPanelSuite.2.11.0-beta2.nupkg -------------------------------------------------------------------------------- /packages/DockPanelSuite.3.0.6/lib/net40/WeifenLuo.WinFormsUI.Docking.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/DockPanelSuite.3.0.6/lib/net40/WeifenLuo.WinFormsUI.Docking.dll -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorerLogo (Black on White Shadow Rotated).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/OricExplorer/Resources/OricExplorerLogo (Black on White Shadow Rotated).png -------------------------------------------------------------------------------- /dist/app_version.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.5.0.0 4 | https://github.com/oric-software/OricExplorer/blob/master/dist 5 | 6 | -------------------------------------------------------------------------------- /packages/DockPanelSuite.2.11.0-beta2/lib/net40/WeifenLuo.WinFormsUI.Docking.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/DockPanelSuite.2.11.0-beta2/lib/net40/WeifenLuo.WinFormsUI.Docking.dll -------------------------------------------------------------------------------- /packages/DockPanelSuite.3.0.6/lib/net35-client/WeifenLuo.WinFormsUI.Docking.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/DockPanelSuite.3.0.6/lib/net35-client/WeifenLuo.WinFormsUI.Docking.dll -------------------------------------------------------------------------------- /packages/DockPanelSuite.2.11.0-beta2/lib/net35-client/WeifenLuo.WinFormsUI.Docking.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oric-software/OricExplorer/HEAD/packages/DockPanelSuite.2.11.0-beta2/lib/net35-client/WeifenLuo.WinFormsUI.Docking.dll -------------------------------------------------------------------------------- /OricExplorer/Forms/frmCreateNewDisk.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer.Forms 2 | { 3 | using System.Windows.Forms; 4 | 5 | public partial class frmCreateNewDisk : Form 6 | { 7 | public frmCreateNewDisk() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /OricExplorer/Packager/create_archive.ps1: -------------------------------------------------------------------------------- 1 | $version = [System.Diagnostics.FileVersionInfo]::GetVersionInfo("$PSScriptRoot\..\bin\release\OricExplorer.exe").FileVersion 2 | 3 | Compress-Archive "$PSScriptRoot\..\bin\release\*.dll", "$PSScriptRoot\..\bin\release\*.exe" "$PSScriptRoot\..\..\dist\OricExplorer_v$version.zip" -------------------------------------------------------------------------------- /OricExplorer/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /OricExplorer/Packager/update_app_version.ps1: -------------------------------------------------------------------------------- 1 | $version = [System.Diagnostics.FileVersionInfo]::GetVersionInfo("$PSScriptRoot\..\bin\release\OricExplorer.exe").FileVersion 2 | 3 | $xml = @" 4 | 5 | 6 | $version 7 | https://github.com/oric-software/OricExplorer/blob/master/dist 8 | 9 | "@ 10 | 11 | $xml.Replace("`r`n","`n") | Out-File -Encoding utf8 -FilePath "$PSScriptRoot\..\..\dist\app_version.xml" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore Windows and MacOS junk files 2 | [Tt]humbs.db 3 | *.DS_Store 4 | # Ignore Visual Studio work/generated files 5 | # (from https://stackoverflow.com/questions/8527597/how-do-i-ignore-files-in-a-directory-in-git) 6 | .vs/ 7 | *.user 8 | *.aps 9 | *.pch 10 | *.vspscc 11 | *.vssscc 12 | *_i.c 13 | *_p.c 14 | *.ncb 15 | *.suo 16 | *.tlb 17 | *.tlh 18 | *.bak 19 | *.[Cc]ache 20 | *.ilk 21 | *.log 22 | *.lib 23 | *.sbr 24 | *.sdf 25 | ipch/ 26 | [Bb]in/ 27 | [Dd]ebug*/ 28 | [Rr]elease*/ 29 | [Oo]bj/ 30 | -------------------------------------------------------------------------------- /OricExplorer/Resources/StdCharSet.dat: -------------------------------------------------------------------------------- 1 | >>( 2 | <02&((*$ **>> "&*2"">> " $>> <"  <"">"""""" >>""*., "">""<""<""<" "<"""""<> < >> <  &"""">"""""$(0($" >"6**"""""2*&"""""""<""< """*$<""<($"" ">""""""""""""""**6"""""""> > <<*<> -))- " <"""< """">  <"" <"""" $ "$8$"6***"<"""""""<""< "".0  << """&"""""**6""""">>08  8****???????? -------------------------------------------------------------------------------- /OricExplorer/Classes/RomInfo.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System; 4 | using System.IO; 5 | 6 | public class RomInfo 7 | { 8 | public RomInfo(string fullName) 9 | { 10 | this.FullName = fullName; 11 | 12 | FileInfo fileInfo = new FileInfo(fullName); 13 | this.Length = (ushort)fileInfo.Length; 14 | 15 | // Get file timestamps 16 | this.CreationTime = fileInfo.CreationTime; 17 | this.AccessedTime = fileInfo.LastAccessTime; 18 | this.WrittenTime = fileInfo.LastWriteTime; 19 | } 20 | 21 | public string FullName { get; set; } = ""; 22 | 23 | public ushort Length { get; set; } = 0; 24 | 25 | public DateTime CreationTime { get; set; } 26 | 27 | public DateTime AccessedTime { get; set; } 28 | 29 | public DateTime WrittenTime { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /OricExplorer/Forms/frmDataViewer.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer.Forms 2 | { 3 | using System; 4 | using System.Drawing; 5 | using System.IO; 6 | using System.Windows.Forms; 7 | 8 | public partial class frmDataViewer : Form 9 | { 10 | ctlDataViewerControl dataViewerControl; 11 | 12 | public frmDataViewer(OricFileInfo fileInfo, OricProgram programData) 13 | { 14 | InitializeComponent(); 15 | 16 | dataViewerControl = new ctlDataViewerControl(); 17 | dataViewerControl.ProgramInfo = fileInfo; 18 | dataViewerControl.ProgramData = programData; 19 | dataViewerControl.InitialiseView(); 20 | 21 | this.Controls.Add(dataViewerControl); 22 | this.Size = new Size(dataViewerControl.Width + 15, dataViewerControl.Height + 40); 23 | 24 | this.Text = string.Format("Data Viewer - {0} ({1})", fileInfo.ProgramName, Path.GetFileName(fileInfo.ParentName)); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /doc/packaging.md: -------------------------------------------------------------------------------- 1 | # Oric Explorer packaging information 2 | 3 | Generating the project in "release" mode automatically triggers several post-compile actions: 4 | * the deletion of the * .zip and * .exe files located in the "\dist" folder 5 | * the copy of the new executable in the "\dist" folder, renamed to .bin (used for the automatic update) 6 | * the execution of the script "OricExplorer\Packager\update_app_version.ps1" which updates the file "dist\app_version.xml" (used for the automatic update) according to the version number extracted from the generated executable 7 | * the execution of the script "OricExplorer\Packager\create_archive.ps1" which creates the archive by placing the binaries in it. 8 | 9 | However, the generation of the installer package *is not automatic*. It must be done manually by opening the "OricExplorer\Installer\OricExplorer.iss" file in the *InnoSetup* software which should have been installed beforehand. The generation of the installer will then be done automatically in the "\dist" folder. -------------------------------------------------------------------------------- /OricExplorer/Classes/Extensions.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System.Drawing; 4 | using System.Linq; 5 | 6 | public static class Extensions 7 | { 8 | public static bool In(this T @object, params T[] values) 9 | { 10 | return values.ToList().Contains(@object); 11 | } 12 | 13 | internal static bool Same(this Image image1, Image image2) 14 | { 15 | if (!image1.Size.Equals(image2.Size)) return false; 16 | 17 | Bitmap bmp1 = new Bitmap(image1); 18 | Bitmap bmp2 = new Bitmap(image2); 19 | 20 | for (int y = 0; y < bmp1.Height; y++) 21 | { 22 | for (int x = 0; x < bmp1.Width; x++) 23 | { 24 | if (bmp1.GetPixel(x, y) != bmp2.GetPixel(x, y)) 25 | { 26 | return false; 27 | } 28 | } 29 | } 30 | 31 | return true; 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /OricExplorer/Classes/NativeMethods.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer.Class 2 | { 3 | using System; 4 | using System.Runtime.InteropServices; 5 | using static OricExplorer.Class.NativeMethods; 6 | 7 | internal static class NativeMethods 8 | { 9 | [DllImport("user32.dll")] 10 | internal static extern IntPtr GetWindowRect(IntPtr hWnd, ref Rect rect); 11 | 12 | [StructLayout(LayoutKind.Sequential)] 13 | internal struct Rect 14 | { 15 | public int Left; 16 | public int Top; 17 | public int Right; 18 | public int Bottom; 19 | } 20 | 21 | [DllImport("user32.dll", SetLastError = true)] 22 | [return: MarshalAs(UnmanagedType.Bool)] 23 | internal static extern bool PrintWindow(IntPtr hwnd, IntPtr hDC, uint nFlags); 24 | 25 | [DllImport("gdi32.dll")] 26 | internal static extern IntPtr CreateRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect); 27 | 28 | [DllImport("user32.dll")] 29 | internal static extern int GetWindowRgn(IntPtr hWnd, IntPtr hRgn); 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /doc/bugs.md: -------------------------------------------------------------------------------- 1 | ## Known Bugs 2 | 3 | - Bugs in code handling DSK format 4 | 5 | - DSK create / write feature: the DSK creation feature is currently broken and needs to be fixed. 6 | - The code that reads .dsk files does have problems with some disks: it either doesn't recognize them or isn't able to determine all the values correctly such as space used or free space in some cases. However for the most part it does handle correctly most disks it was tested with. 7 | 8 | 9 | 10 | ## Unqualified Bugs 11 | 12 | Here is a quick list of unqualified/unverified bugs in the current version of Oric Explorer (feel free to add to the list): 13 | 14 | - I was unable to have the programme show me the BASIC source for the disk version of the *"Detective Story*" game. Mind you, this disk seems slightly bugged anyway so maybe this explains why (looks like the DSK version was created from a faulty TAP file, as there are graphics bugs and also bogus characters in the Basic code that cause runtime errors and are symptomatic of a faulty transfer). Nevertheless, it seems that the BASIC code viewer may have some bugs/difficulties displaying some programs. 15 | 16 | -------------------------------------------------------------------------------- /OricExplorer/Classes/TapeInfo.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System; 4 | using System.IO; 5 | 6 | public class TapeInfo 7 | { 8 | public TapeInfo (string fullName) 9 | { 10 | this.FullName = fullName; 11 | 12 | FileInfo fileInfo = new FileInfo(fullName); 13 | this.Length = (ushort)fileInfo.Length; 14 | 15 | // Get file timestamps 16 | this.CreationTime = fileInfo.CreationTime; 17 | this.AccessedTime = fileInfo.LastAccessTime; 18 | this.WrittenTime = fileInfo.LastWriteTime; 19 | } 20 | 21 | public void UpdateFullName(string fullName) 22 | { 23 | this.FullName = fullName; 24 | } 25 | 26 | public string FullName { get; private set; } = ""; 27 | 28 | public ushort FileCount { get; set; } = 0; 29 | 30 | public ushort Length { get; private set; } = 0; 31 | 32 | public DateTime CreationTime { get; private set; } 33 | 34 | public DateTime AccessedTime { get; private set; } 35 | 36 | public DateTime WrittenTime { get; private set; } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlTextBoxPlus.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System; 4 | using System.Drawing; 5 | using System.Windows.Forms; 6 | 7 | public partial class TextBoxPlus : TextBox 8 | { 9 | public TextBoxPlus() 10 | { 11 | InitializeComponent(); 12 | 13 | this.ClearButton = false; 14 | 15 | this.Resize += TextBoxPlus_Resize; 16 | } 17 | 18 | public bool ClearButton { get { return picClear.Visible; } set { picClear.Visible = value; } } 19 | 20 | private void TextBoxPlus_Resize(object sender, EventArgs e) 21 | { 22 | picClear.Location = new Point(this.Width - picClear.Width - picClear.Margin.Right - 3, (this.Height - picClear.Height - 3) / 2); 23 | } 24 | 25 | private void picClear_MouseEnter(object sender, EventArgs e) 26 | { 27 | picClear.Image = picClear.ErrorImage; 28 | } 29 | private void picClear_MouseLeave(object sender, EventArgs e) 30 | { 31 | picClear.Image = picClear.InitialImage; 32 | } 33 | private void picClear_Click(object sender, EventArgs e) 34 | { 35 | this.Text = string.Empty; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/GradientPanel.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace GradientPanel 2 | { 3 | partial class GradientPanel 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Component Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.SuspendLayout(); 32 | // 33 | // GradientPanel 34 | // 35 | this.ResumeLayout(false); 36 | 37 | } 38 | 39 | #endregion 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /OricExplorer/Settings.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer.Properties { 2 | 3 | 4 | // This class allows you to handle specific events on the settings class: 5 | // The SettingChanging event is raised before a setting's value is changed. 6 | // The PropertyChanged event is raised after a setting's value is changed. 7 | // The SettingsLoaded event is raised after the setting values are loaded. 8 | // The SettingsSaving event is raised before the setting values are saved. 9 | internal sealed partial class Settings { 10 | 11 | public Settings() { 12 | // // To add event handlers for saving and changing settings, uncomment the lines below: 13 | // 14 | // this.SettingChanging += this.SettingChangingEventHandler; 15 | // 16 | // this.SettingsSaving += this.SettingsSavingEventHandler; 17 | // 18 | } 19 | 20 | private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) { 21 | // Add code to handle the SettingChangingEvent event here. 22 | } 23 | 24 | private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) { 25 | // Add code to handle the SettingsSaving event here. 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /doc/application-settings.md: -------------------------------------------------------------------------------- 1 | # Oric Explorer Application Settings 2 | 3 | 4 | 5 | Since v2.1 there is only one configuration file. It is called **OricExplorer.json** and is located in the application folder. This folder must therefore be *writable*, which is why it is preferable to *avoid* placing it in the "Program Files" or "Program Files (x86)" tree. 6 | 7 | 8 | ## Appendix - information about settings in old version of Oric Explorer 9 | 10 | In OricExplorer v2.0, there were several configuration files: 11 | - **OricExplorer.cfg** (in the application folder) contained the default settings, used when the application was launched for the first time 12 | - **Layout.xml** (in the application folder) contained the interface settings (location and sizes of the different frames) 13 | - **user.config** (in "%appdata%\Scott_davies\OricExplorer.exe_Url_AAAAAA\v2.0.0.0" folder, where AAAAA is an encrypted string representing the path to the executable) contained the user-defined parameters 14 | 15 | In version 0.70 of Oric Explorer, user settings can be found at the following location: 16 | 17 | **HKEY_CURRENT_USER\Software\OricExplorer** 18 | 19 | Within this registry key there is a Folders key that stores the different locations defined for folders used by the application: 20 | 21 | - DirectoryListing (REG_SZ) - default: C:\OricFiles.txt) 22 | - Disks (REG_SZ) 23 | - Emulator (REG_SZ) 24 | - ROMs (REG_SZ) 25 | - Tapes (REG_SZ) 26 | -------------------------------------------------------------------------------- /OricExplorer/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using System.Resources; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("OricExplorer")] 9 | [assembly: AssemblyDescription("Oric Disk & Tape Management")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Scott Davies feat. damien")] 12 | [assembly: AssemblyProduct("Oric Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © 2022 Scott Davies")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("dbc80324-ed8b-4d2e-8df1-fa73180a79ef")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | [assembly: NeutralResourcesLanguage("en-GB")] 33 | [assembly: AssemblyVersion("2.5.0.0")] 34 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlCaptureViewer.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer.User_Controls 2 | { 3 | using System; 4 | using System.Drawing; 5 | using System.Windows.Forms; 6 | 7 | public partial class ctlCaptureViewer : UserControl 8 | { 9 | public ctlCaptureViewer() 10 | { 11 | InitializeComponent(); 12 | } 13 | public ctlCaptureViewer(Image image, string text) 14 | { 15 | InitializeComponent(); 16 | 17 | this.Image = image; 18 | this.Text = text; 19 | } 20 | 21 | public Image Image 22 | { 23 | get 24 | { 25 | return picImage.Image; 26 | } 27 | set 28 | { 29 | picImage.Image = value; 30 | } 31 | } 32 | public override string Text 33 | { 34 | get 35 | { 36 | return chkSélection.Text; 37 | } 38 | set 39 | { 40 | chkSélection.Text = value; 41 | } 42 | } 43 | public bool Checked 44 | { 45 | get 46 | { 47 | return chkSélection.Checked; 48 | } 49 | set 50 | { 51 | chkSélection.Checked = value; 52 | } 53 | } 54 | 55 | public event EventHandler CheckChanged; 56 | 57 | private void chkSélection_Click(object sender, System.EventArgs e) 58 | { 59 | this.CheckChanged?.Invoke(this, e); 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlProgressBar.Designer.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace OricExplorer.User_Controls 3 | { 4 | partial class ctlProgressBar 5 | { 6 | /// 7 | /// Required designer variable. 8 | /// 9 | private System.ComponentModel.IContainer components = null; 10 | 11 | /// 12 | /// Clean up any resources being used. 13 | /// 14 | /// true if managed resources should be disposed; otherwise, false. 15 | protected override void Dispose(bool disposing) 16 | { 17 | if (disposing && (components != null)) 18 | { 19 | components.Dispose(); 20 | } 21 | base.Dispose(disposing); 22 | } 23 | 24 | #region Component Designer generated code 25 | 26 | /// 27 | /// Required method for Designer support - do not modify 28 | /// the contents of this method with the code editor. 29 | /// 30 | private void InitializeComponent() 31 | { 32 | this.SuspendLayout(); 33 | // 34 | // ctlProgressBar 35 | // 36 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 37 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 38 | this.Name = "ctlProgressBar"; 39 | this.Paint += new System.Windows.Forms.PaintEventHandler(this.ctlProgressBar_Paint); 40 | this.ResumeLayout(false); 41 | 42 | } 43 | 44 | #endregion 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /OricExplorer/Forms/frmAboutBox.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System; 4 | using System.Diagnostics; 5 | using System.Windows.Forms; 6 | 7 | partial class frmAboutBox : Form 8 | { 9 | public frmAboutBox() 10 | { 11 | InitializeComponent(); 12 | } 13 | 14 | private void frmAboutBox_Load(object sender, EventArgs e) 15 | { 16 | // Add a link to the LinkLabel. 17 | LinkLabel.Link link = new LinkLabel.Link(); 18 | link.LinkData = "http://web.archive.org/web/20190609120811/http://oric.mrandmrsdavies.com/"; 19 | lklWebsite.Links.Add(link); 20 | 21 | // Add a link to the LinkLabel. 22 | link = new LinkLabel.Link(); 23 | link.LinkData = "https://github.com/oric-software/OricExplorer"; 24 | lklRepository.Links.Add(link); 25 | } 26 | 27 | private void btnOK_Click(object sender, EventArgs e) 28 | { 29 | // Close the About box 30 | Close(); 31 | } 32 | 33 | private void lklWebsiteAndRepository_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 34 | { 35 | // Send the URL to the operating system. 36 | Process.Start(e.Link.LinkData as string); 37 | } 38 | 39 | private void rtbContributors_LinkClicked(object sender, LinkClickedEventArgs e) 40 | { 41 | Process.Start(e.LinkText); 42 | } 43 | 44 | private void rtbContributors_Enter(object sender, EventArgs e) 45 | { 46 | btnOK.Focus(); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /OricExplorer/Documents/Context Menus.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fnil\fcharset0 Calibri;}} 2 | {\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sl240\slmult1\qc\lang9\ul\b\f0\fs32 Oric Explorer V2.0\par 3 | \b0 Context Menus\par 4 | \pard\sl240\slmult1\ulnone\fs22\par 5 | \par 6 | \b Tape Context Menu\par 7 | \b0\par 8 | \pard\sl240\slmult1\tx3408 Expand\tab Switch between Expand and Collapse\par 9 | -----\par 10 | Add to Disk...\tab Add all or selected programs to an existing disk\par 11 | Convert to Disk...\tab Create a new disk from all or selected programs\par 12 | -----\par 13 | Copy\tab Crate a copy of the tape\par 14 | Delete\tab Delete tape with a confirmation message\par 15 | Rename\tab Rename tape (windows filename)\par 16 | ----\par 17 | Output Directory\tab Output to text, PDF etc.\par 18 | ----\par 19 | Run in Emulator\tab Load tape into Oricutron emulator\par 20 | ----\par 21 | Refresh\tab Re-read the tape and update tree\par 22 | ----\par 23 | Properties\tab Not sure what we could display so may no longer be needed\par 24 | \pard\sl240\slmult1\par 25 | \par 26 | \par 27 | \b Program Context Menu\par 28 | \b0\par 29 | \pard\sl240\slmult1\tx3408 View file\tab Same action as double clicking\par 30 | ----\par 31 | Open DataViewer...\tab Manually open the data viewer\par 32 | Open Hex Editor...\tab Is this still needed?\par 33 | Open BASIC Editor...\tab Is this still needed? (Could use Oric Developer)\par 34 | -----\par 35 | Copy\tab Create a copy of the program\par 36 | Delete\tab Delete program from Disk/Tape\par 37 | Rename\tab Rename the program (actual Oric program name)\par 38 | -----\par 39 | Save as TAP file...\tab Save individual programs as tapes\par 40 | ----\par 41 | Properties...\tab Not required, relevant info displayed with double click\par 42 | \par 43 | \pard\sl240\slmult1\par 44 | } 45 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ShadowLabel.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | text/microsoft-resx 32 | 33 | 34 | 1.0.0.0 35 | 36 | 37 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 38 | 39 | 40 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 41 | 42 | 43 | -------------------------------------------------------------------------------- /OricExplorer.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29806.167 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OricExplorer", "OricExplorer\OricExplorer.csproj", "{252A5A36-BFC7-4033-98BC-10B16BA7C246}" 7 | EndProject 8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1811F99D-A379-4F60-A779-9CDDD886540A}" 9 | EndProject 10 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "doc", "doc", "{EE53230C-FB7B-4CC7-9B02-ADD210C1B016}" 11 | ProjectSection(SolutionItems) = preProject 12 | doc\application-settings.md = doc\application-settings.md 13 | doc\bugs.md = doc\bugs.md 14 | doc\changelog.md = doc\changelog.md 15 | doc\packaging.md = doc\packaging.md 16 | doc\user-guide.md = doc\user-guide.md 17 | EndProjectSection 18 | EndProject 19 | Global 20 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 21 | Debug|Any CPU = Debug|Any CPU 22 | Release|Any CPU = Release|Any CPU 23 | EndGlobalSection 24 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 25 | {252A5A36-BFC7-4033-98BC-10B16BA7C246}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 26 | {252A5A36-BFC7-4033-98BC-10B16BA7C246}.Debug|Any CPU.Build.0 = Debug|Any CPU 27 | {252A5A36-BFC7-4033-98BC-10B16BA7C246}.Release|Any CPU.ActiveCfg = Release|Any CPU 28 | {252A5A36-BFC7-4033-98BC-10B16BA7C246}.Release|Any CPU.Build.0 = Release|Any CPU 29 | EndGlobalSection 30 | GlobalSection(SolutionProperties) = preSolution 31 | HideSolutionNode = FALSE 32 | EndGlobalSection 33 | GlobalSection(NestedProjects) = preSolution 34 | {EE53230C-FB7B-4CC7-9B02-ADD210C1B016} = {1811F99D-A379-4F60-A779-9CDDD886540A} 35 | EndGlobalSection 36 | GlobalSection(ExtensibilityGlobals) = postSolution 37 | SolutionGuid = {3F22A4F2-D440-45C7-9E96-2509EDD152A2} 38 | EndGlobalSection 39 | EndGlobal 40 | -------------------------------------------------------------------------------- /OricExplorer/Forms/frmDataViewer.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer.Forms 2 | { 3 | partial class frmDataViewer 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.SuspendLayout(); 32 | // 33 | // DataViewerForm 34 | // 35 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 36 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 37 | this.ClientSize = new System.Drawing.Size(284, 261); 38 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 39 | this.MaximizeBox = false; 40 | this.MinimizeBox = false; 41 | this.Name = "DataViewerForm"; 42 | this.ShowIcon = false; 43 | this.ShowInTaskbar = false; 44 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; 45 | this.Text = "Data Viewer"; 46 | this.ResumeLayout(false); 47 | 48 | } 49 | 50 | #endregion 51 | } 52 | } -------------------------------------------------------------------------------- /OricExplorer/Program.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System; 4 | using System.IO; 5 | using System.Windows.Forms; 6 | 7 | public static class Program 8 | { 9 | /// 10 | /// The main entry point for the application. 11 | /// 12 | [STAThread] 13 | static void Main() 14 | { 15 | // iteration over each file to update of the app folder, these files having been created by the app update procedure due to the presence of locked files 16 | string strExeFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 17 | bool boolError = false; 18 | foreach (string strFile in Directory.GetFiles(strExeFolder, $"*{ConstantsAndEnums.UPDATE_EXTENSION}")) 19 | { 20 | string strNewFile = Path.Combine(strExeFolder, strFile); 21 | string strOldFile = Path.GetFileNameWithoutExtension(strNewFile); 22 | 23 | try 24 | { 25 | // delete previous file 26 | File.Delete(strOldFile); 27 | 28 | // rename the file by removing the update extension 29 | File.Move(strNewFile, strOldFile); 30 | } 31 | catch (Exception) 32 | { 33 | boolError = true; 34 | } 35 | } 36 | if (boolError) 37 | { 38 | MessageBox.Show($"An error was encountered while finalizing the update: one or more '{ConstantsAndEnums.UPDATE_EXTENSION}' files could not be renamed.\r\n\r\nThe app may not work properly.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning); 39 | } 40 | 41 | 42 | Configuration.Init(); 43 | 44 | Application.EnableVisualStyles(); 45 | Application.SetCompatibleTextRenderingDefault(false); 46 | Application.Run(new frmMainForm()); 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /doc/user-guide.md: -------------------------------------------------------------------------------- 1 | # Oric Explorer User guide 2 | 3 | 4 | 5 | ## Presentation 6 | 7 | Oric Explorer is a Windows utility aimed at facilitating management of Oric software on tape and disk file images (.TAP and .DSK files). 8 | 9 | It provides facilities to view the files contained in tape and disk images, and to view the contents of individual files. It has specialised data viewers for BASIC code, HIRES images, and more: 10 | 11 | 1. BASIC source code with syntax highlighting 12 | 2. HYPERBASIC source code with syntax highlighting 13 | 3. TELEASS source code with syntax highlighting 14 | 4. Assembly source code viewer 15 | 5. Data dump in hexadecimal format 16 | 6. Display TEXT screen data (screens in TEXT, LORES 0 and LORES 1 modes) with a built-in zoom feature. 17 | 7. Display screen masks (with built-in zoom feature) 18 | 8. Display high-resolution screen data (HIRES), with built-in zoom feature 19 | 9. Display random access file data (listing each individual records and individual record details) 20 | 10. Display sequential access file data 21 | 11. Display character font data (graphical representation, byte data and addresses) 22 | 12. Launch .dsk and .tap medias in Oricutron emulator 23 | 13. Help to make screenshots of Oricutron (Windows only) 24 | 25 | 26 | ## Initial configuration 27 | 28 | After first launching the programme, you will need to edit the settings to configure locations of your tape/disk image collections. 29 | 30 | New in Oric Explorer 2.0, you can define as many folder locations as you want for tape and disk collections. 31 | 32 | You can also define the location of the Oric emulator you want to use (Euphoric or Oricutron). 33 | 34 | After modifying the folder locations and validating the modifications, a scan of the specified directories will be automatically performed to display their contents in the tree. 35 | 36 | 37 | 38 | ***Note**: all the settings are saved in the **OricExplorer.json** file located in the application directory. See the application-application-settings.md file for more information.* 39 | 40 | -------------------------------------------------------------------------------- /OricExplorer/Classes/OtherFileInfo.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System; 4 | using System.IO; 5 | using System.Linq; 6 | 7 | public class OtherFileInfo 8 | { 9 | private readonly byte[] ORIX_SIGNATURE = new byte[] { 0x01, 0x00, 0x6f, 0x72, 0x69 }; 10 | public const byte ORIX_HEADER_LENGTH = 20; 11 | private const byte ORIX_START_ADDRESS_HIGHT = 15; 12 | private const byte ORIX_START_ADDRESS_LOW = 14; 13 | 14 | public OtherFileInfo(string fullName) 15 | { 16 | this.FullName = fullName; 17 | 18 | FileInfo fileInfo = new FileInfo(fullName); 19 | this.Length = (ushort)fileInfo.Length; 20 | 21 | if (fileInfo.Length > ORIX_HEADER_LENGTH) 22 | { 23 | byte[] data = File.ReadAllBytes(fullName); 24 | 25 | // oric header? 26 | if (Enumerable.Range(0, 5).All(w => data[w] == ORIX_SIGNATURE[w])) 27 | { 28 | this.StartAddress = (ushort)((data[ORIX_START_ADDRESS_LOW] + (data[ORIX_START_ADDRESS_HIGHT] * 256)) - ORIX_HEADER_LENGTH); 29 | this.Length -= ORIX_HEADER_LENGTH; 30 | this.Format = OricProgram.ProgramFormat.OrixProgram; 31 | } 32 | 33 | data = null; 34 | } 35 | 36 | // Get file timestamps 37 | this.CreationTime = fileInfo.CreationTime; 38 | this.AccessedTime = fileInfo.LastAccessTime; 39 | this.WrittenTime = fileInfo.LastWriteTime; 40 | } 41 | 42 | public string FullName { get; set; } = ""; 43 | 44 | public OricProgram.ProgramFormat Format { get; set; } = OricProgram.ProgramFormat.BinaryFile; 45 | 46 | public ushort StartAddress { get; set; } = 0; 47 | 48 | public ushort Length { get; set; } = 0; 49 | 50 | public DateTime CreationTime { get; set; } 51 | 52 | public DateTime AccessedTime { get; set; } 53 | 54 | public DateTime WrittenTime { get; set; } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /OricExplorer/Classes/OpCodes.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System; 4 | using System.Collections; 5 | 6 | public class OpCodes 7 | { 8 | public struct sOpCode 9 | { 10 | public string strOpMne; 11 | public byte bOpMode; 12 | public byte bOpBytes; 13 | }; 14 | 15 | private byte[] m_opCodesBuffer; 16 | private SortedList opCodesList; 17 | 18 | public OpCodes() 19 | { 20 | int iBufferLen = Properties.Resources.OpCodes.Length; 21 | 22 | m_opCodesBuffer = new byte[iBufferLen]; 23 | 24 | Properties.Resources.OpCodes.CopyTo(m_opCodesBuffer, 0); 25 | 26 | // Create an array to hold the list of Basic tokens 27 | opCodesList = new SortedList(); 28 | 29 | ushort siIndex = 0; 30 | 31 | while(siIndex < iBufferLen) 32 | { 33 | byte bKey = Convert.ToByte(m_opCodesBuffer[siIndex]); 34 | 35 | siIndex++; 36 | 37 | sOpCode sTmpStruct = new sOpCode(); 38 | 39 | sTmpStruct.strOpMne = string.Format("{0}{1}{2}", 40 | Convert.ToChar(m_opCodesBuffer[siIndex]), 41 | Convert.ToChar(m_opCodesBuffer[siIndex+1]), 42 | Convert.ToChar(m_opCodesBuffer[siIndex+2])); 43 | 44 | siIndex += 3; 45 | 46 | sTmpStruct.bOpMode = m_opCodesBuffer[siIndex]; 47 | siIndex++; 48 | 49 | sTmpStruct.bOpBytes = m_opCodesBuffer[siIndex]; 50 | siIndex++; 51 | 52 | opCodesList.Add(bKey, (sOpCode)sTmpStruct); 53 | } 54 | } 55 | 56 | public sOpCode FindOpInfo(byte bOpCode) 57 | { 58 | sOpCode sRtnStruct = new sOpCode(); 59 | 60 | if (opCodesList.ContainsKey(bOpCode)) 61 | { 62 | sRtnStruct = (sOpCode)opCodesList[bOpCode]; 63 | } 64 | else 65 | { 66 | sRtnStruct.strOpMne = "???"; 67 | sRtnStruct.bOpMode = 0; 68 | sRtnStruct.bOpBytes = 1; 69 | } 70 | 71 | return sRtnStruct; 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /AuthorsNotes.md: -------------------------------------------------------------------------------- 1 | # Original Author's Notes on the status of Oric Explorer 2 | 3 | ## Email from Scott Davies on 23 April 2018 4 | 5 | > Hi Laurent, 6 | > 7 | > Thank-you for your enquiry regarding Oric Explorer. I've had a number of enquires this year of the same nature so it's probably time I let people know the current situation regarding any new versions. 8 | > 9 | > The version that was online was uploaded by mistake and was probably more of a V1.5 than a V2.0. I took it down once I realized that it was available however by that time some people had downloaded it. 10 | > 11 | > The development of Oric Explorer V2.0 has been on hold for sometime now, due to family and work commitments I just don't have the time to do any development other than little bits here and there. Because of this I've been thinking for some time now about releasing the source code to the Oric community to see if anyone would like to take on development so your enquiry has finally made that decision for me. 12 | > 13 | > I'm more that happy to email you the full project source code along with an executable for V2.0 as it stands at the moment or upload it somewhere. This would prevent the development of Oric Explorer coming to a complete halt if someone was to carry on development. 14 | > 15 | > There are a number of things to note. 16 | > 17 | > - The code has been developed in C# using Visual Studio 2015/2017. 18 | > - It requires the .Net V4.5.2 framework to be installed. 19 | > - The code is not the best code in the world so may be difficult to follow in some areas. 20 | > - Likewise some areas are not extensively commented other areas are not commented at all. 21 | > - The project includes an installation script that uses the NullSoft installation application (not fully tested). 22 | > - The code is far from complete and therefore will certainly contain bugs as well as incomplete features. 23 | > - The main thing that is missing is code to write to .dsk files. 24 | > - The 'FormsControlLibrary.dll' is a one that I have written (source code available on request), all the other dll's are third-party ones. 25 | > - There is currently no readme file or help text but installation can be done simply by copying the bin/Release directory to wherever you want it. 26 | > 27 | > I think that's it for now, there is one thing I would ask, if anyone does decide to take on development, that they could make a reference to myself as the original author in the About information, if that's okay. 28 | > 29 | > If you could let me know where I could upload it too then I’ll do that asap. 30 | > 31 | > If you need any further information or details then please don't hesitate to get in touch and I will help as much as I can. 32 | > 33 | > Regards 34 | > 35 | > Scott Davies 36 | > 37 | > 38 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlTextBoxPlus.designer.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | partial class TextBoxPlus 4 | { 5 | /// 6 | /// Variable nécessaire au concepteur. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Nettoyage des ressources utilisées. 12 | /// 13 | /// true si les ressources managées doivent être supprimées ; sinon, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Code généré par le Concepteur de composants 24 | 25 | /// 26 | /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas 27 | /// le contenu de cette méthode avec l'éditeur de code. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TextBoxPlus)); 32 | this.picClear = new System.Windows.Forms.PictureBox(); 33 | ((System.ComponentModel.ISupportInitialize)(this.picClear)).BeginInit(); 34 | this.SuspendLayout(); 35 | // 36 | // picRAZ 37 | // 38 | this.picClear.Anchor = System.Windows.Forms.AnchorStyles.Right; 39 | this.picClear.Cursor = System.Windows.Forms.Cursors.Default; 40 | this.picClear.ErrorImage = ((System.Drawing.Image)(resources.GetObject("picRAZ.ErrorImage"))); 41 | this.picClear.Image = ((System.Drawing.Image)(resources.GetObject("picRAZ.Image"))); 42 | this.picClear.InitialImage = ((System.Drawing.Image)(resources.GetObject("picRAZ.InitialImage"))); 43 | this.picClear.Location = new System.Drawing.Point(80, 2); 44 | this.picClear.Name = "picRAZ"; 45 | this.picClear.Size = new System.Drawing.Size(13, 13); 46 | this.picClear.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; 47 | this.picClear.TabIndex = 5; 48 | this.picClear.TabStop = false; 49 | this.picClear.Click += new System.EventHandler(this.picClear_Click); 50 | this.picClear.MouseEnter += new System.EventHandler(this.picClear_MouseEnter); 51 | this.picClear.MouseLeave += new System.EventHandler(this.picClear_MouseLeave); 52 | // 53 | // DipiTextBox 54 | // 55 | this.Controls.Add(this.picClear); 56 | ((System.ComponentModel.ISupportInitialize)(this.picClear)).EndInit(); 57 | this.ResumeLayout(false); 58 | this.PerformLayout(); 59 | 60 | } 61 | 62 | #endregion 63 | 64 | private System.Windows.Forms.PictureBox picClear; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ShadowLabel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Collections; 4 | using System.Diagnostics; 5 | using System.Windows.Forms; 6 | using System.Drawing; 7 | using System.Drawing.Drawing2D; 8 | 9 | namespace ShadowLabel 10 | { 11 | /// 12 | /// Summary description for ShadowLabel. 13 | /// 14 | [ToolboxItem(true)] 15 | public partial class ShadowLabel : Label 16 | { 17 | /// 18 | /// Required designer variable. 19 | /// 20 | private float _yShadowOffset = 1; 21 | private float _xShadowOffset = 1; 22 | private Color _shadowColour = Color.Black; 23 | 24 | private System.ComponentModel.Container components = null; 25 | 26 | public ShadowLabel(System.ComponentModel.IContainer container) 27 | { 28 | /// 29 | /// Required for Windows.Forms Class Composition Designer support 30 | /// 31 | container.Add(this); 32 | InitializeComponent(); 33 | } 34 | 35 | public ShadowLabel() 36 | { 37 | /// 38 | /// Required for Windows.Forms Class Composition Designer support 39 | /// 40 | InitializeComponent(); 41 | } 42 | 43 | /// 44 | /// Clean up any resources being used. 45 | /// 46 | protected override void Dispose(bool disposing) 47 | { 48 | if(disposing) 49 | { 50 | if(components != null) 51 | { 52 | components.Dispose(); 53 | } 54 | } 55 | 56 | base.Dispose(disposing); 57 | } 58 | 59 | protected override void OnPaint(PaintEventArgs e) 60 | { 61 | //base.OnPaint(e); 62 | e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 63 | 64 | e.Graphics.DrawString(this.Text, this.Font, new SolidBrush(_shadowColour), _xShadowOffset, _yShadowOffset, StringFormat.GenericDefault); 65 | e.Graphics.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), 0, 0, StringFormat.GenericDefault); 66 | } 67 | 68 | [Category("Drop Shadow"), Description("The X Offset used to draw the shadow"), DefaultValue(1)] 69 | public float XOffset 70 | { 71 | get { return this._xShadowOffset; } 72 | set { this._xShadowOffset = value; this.Invalidate(); } 73 | } 74 | 75 | [Category("Drop Shadow"), Description("The Y Offset used to draw the shadow"), DefaultValue(1)] 76 | public float YOffset 77 | { 78 | get { return this._yShadowOffset; } 79 | set { this._yShadowOffset = value; this.Invalidate(); } 80 | } 81 | 82 | [Category("Drop Shadow"), Description("The colour used to draw the shadow"), DefaultValue(typeof(System.Drawing.Color), "Color.Black")] 83 | public Color ShadowColour 84 | { 85 | get { return this._shadowColour; } 86 | set { this._shadowColour = value; this.Invalidate(); } 87 | } 88 | 89 | #region Component Designer generated code 90 | /// 91 | /// Required method for Designer support - do not modify 92 | /// the contents of this method with the code editor. 93 | /// 94 | private void InitializeComponent() 95 | { 96 | components = new System.ComponentModel.Container(); 97 | this.ForeColor = Color.White; 98 | } 99 | #endregion 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /OricExplorer/Classes/TeleassTokens.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System.Collections; 4 | 5 | public class TeleassTokens 6 | { 7 | private readonly ArrayList m_tokenList = new ArrayList(); 8 | 9 | public TeleassTokens() 10 | { 11 | // Build the Teleass token list 12 | BuildTokenList(); 13 | } 14 | 15 | public int TokenCount 16 | { 17 | get { return m_tokenList.Count; } 18 | } 19 | 20 | public string GetTeleassToken(byte bToken) 21 | { 22 | return (bToken < m_tokenList.Count ? m_tokenList[bToken].ToString() : "???"); 23 | } 24 | 25 | private void BuildTokenList() 26 | { 27 | m_tokenList.Add("BRK");//128 28 | m_tokenList.Add("CLC");//129 29 | m_tokenList.Add("CLD");//130 30 | m_tokenList.Add("CLI");//131 31 | m_tokenList.Add("CLV");//132 32 | m_tokenList.Add("DEX");//133 33 | m_tokenList.Add("DEY");//134 34 | m_tokenList.Add("INX");//135 35 | m_tokenList.Add("INY");//136 36 | m_tokenList.Add("NOP");//137 37 | m_tokenList.Add("PHA");//138 38 | m_tokenList.Add("PHP");//139 39 | m_tokenList.Add("PLA");//140 40 | m_tokenList.Add("PLP");//141 41 | m_tokenList.Add("RTI");//142 42 | m_tokenList.Add("RTS");//143 43 | m_tokenList.Add("SEC");//144 44 | m_tokenList.Add("SED");//145 45 | m_tokenList.Add("SEI");//146 46 | m_tokenList.Add("TAX");//147 47 | m_tokenList.Add("TAY");//148 48 | m_tokenList.Add("TSX");//149 49 | m_tokenList.Add("TXA");//150 50 | m_tokenList.Add("TXS");//151 51 | m_tokenList.Add("TYA");//152 52 | m_tokenList.Add("BCC");//153 53 | m_tokenList.Add("BCS");//154 54 | m_tokenList.Add("BEQ");//155 55 | m_tokenList.Add("BNE");//156 56 | m_tokenList.Add("BMI");//157 57 | m_tokenList.Add("BPL");//158 58 | m_tokenList.Add("BVC");//159 59 | m_tokenList.Add("BVS");//160 60 | m_tokenList.Add("ADC");//161 61 | m_tokenList.Add("AND");//162 62 | m_tokenList.Add("ASL");//163 63 | m_tokenList.Add("BIT");//164 64 | m_tokenList.Add("CMP");//165 65 | m_tokenList.Add("CPX");//166 66 | m_tokenList.Add("CPY");//167 67 | m_tokenList.Add("DEC");//168 68 | m_tokenList.Add("EOR");//169 69 | m_tokenList.Add("INC");//170 70 | m_tokenList.Add("JMP");//171 71 | m_tokenList.Add("JSR");//172 72 | m_tokenList.Add("LDA");//173 73 | m_tokenList.Add("LDX");//174 74 | m_tokenList.Add("LDY");//175 75 | m_tokenList.Add("LSR");//176 76 | m_tokenList.Add("ORA");//177 77 | m_tokenList.Add("ROL");//178 78 | m_tokenList.Add("ROR");//179 79 | m_tokenList.Add("SBC");//180 80 | m_tokenList.Add("STA");//181 81 | m_tokenList.Add("STX");//182 82 | m_tokenList.Add("STY");//183 83 | m_tokenList.Add("BYT");//184 84 | m_tokenList.Add("EQU");//185 85 | m_tokenList.Add("DBT");//186 86 | m_tokenList.Add("RES");//187 87 | m_tokenList.Add("ORG");//188 88 | } 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /OricExplorer/Forms/frmProgramInfo.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer.Forms 2 | { 3 | partial class frmProgramInfo 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.flpInfo = new System.Windows.Forms.FlowLayoutPanel(); 32 | this.SuspendLayout(); 33 | // 34 | // flpInfo 35 | // 36 | this.flpInfo.AutoScroll = true; 37 | this.flpInfo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(48))))); 38 | this.flpInfo.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; 39 | this.flpInfo.Dock = System.Windows.Forms.DockStyle.Fill; 40 | this.flpInfo.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; 41 | this.flpInfo.Location = new System.Drawing.Point(0, 0); 42 | this.flpInfo.Name = "flpInfo"; 43 | this.flpInfo.Size = new System.Drawing.Size(184, 551); 44 | this.flpInfo.TabIndex = 0; 45 | this.flpInfo.WrapContents = false; 46 | // 47 | // frmProgramInfo 48 | // 49 | this.AllowEndUserDocking = false; 50 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 51 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 52 | this.AutoScroll = true; 53 | this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 54 | this.ClientSize = new System.Drawing.Size(184, 551); 55 | this.CloseButton = false; 56 | this.CloseButtonVisible = false; 57 | this.Controls.Add(this.flpInfo); 58 | this.DockAreas = ((WeifenLuo.WinFormsUI.Docking.DockAreas)(((WeifenLuo.WinFormsUI.Docking.DockAreas.Float | WeifenLuo.WinFormsUI.Docking.DockAreas.DockLeft) 59 | | WeifenLuo.WinFormsUI.Docking.DockAreas.DockRight))); 60 | this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 61 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 62 | this.MinimumSize = new System.Drawing.Size(200, 39); 63 | this.Name = "frmProgramInfo"; 64 | this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.DockRightAutoHide; 65 | this.Text = "Program Information"; 66 | this.ResumeLayout(false); 67 | 68 | } 69 | 70 | #endregion 71 | 72 | private System.Windows.Forms.FlowLayoutPanel flpInfo; 73 | } 74 | } -------------------------------------------------------------------------------- /OricExplorer/User Controls/GradientPanel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Drawing.Drawing2D; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace GradientPanel 11 | { 12 | public partial class GradientPanel : System.Windows.Forms.Panel 13 | { 14 | 15 | System.Drawing.Color m_startColor = Color.White; 16 | System.Drawing.Color m_endColor = Color.White; 17 | 18 | Boolean m_drawInnerBorder = true; 19 | 20 | System.Drawing.Drawing2D.LinearGradientMode m_gradientMode = LinearGradientMode.Horizontal; 21 | 22 | /// 23 | /// Gets or sets the starting color for the panels gradient. 24 | /// 25 | [DefaultValue(typeof(Color), "White"), Category("Panel"), Description("Gets or sets the starting color for the panels gradient.")] 26 | public Color PanelStartColor 27 | { 28 | get { return m_startColor; } 29 | set { m_startColor = value; Invalidate(); } 30 | } 31 | 32 | /// 33 | /// Gets or sets the ending color for the panels gradient. 34 | /// 35 | [DefaultValue(typeof(Color), "White"), Category("Panel"), Description("Gets or sets the ending color for the panels gradient.")] 36 | public Color PanelEndColor 37 | { 38 | get { return m_endColor; } 39 | set { m_endColor = value; Invalidate(); } 40 | } 41 | 42 | /// 43 | /// Gets or sets the direction in which the gradient is displayed. 44 | /// 45 | [DefaultValue(typeof(LinearGradientMode), "Horizontal"), Category("Panel"), Description("Gets or sets the direction in which the gradient is displayed.")] 46 | public LinearGradientMode GradientMode 47 | { 48 | get { return m_gradientMode; } 49 | set { m_gradientMode = value; Invalidate(); } 50 | } 51 | 52 | /// 53 | /// Gets or sets the visibility of the inner border. 54 | /// 55 | [DefaultValue(true), Category("Panel"), Description("Gets or sets the visibility of the inner border.")] 56 | public bool DrawInnerShadow 57 | { 58 | get { return m_drawInnerBorder; } 59 | set { m_drawInnerBorder = value; Invalidate(); } 60 | } 61 | 62 | public GradientPanel() 63 | { 64 | InitializeComponent(); 65 | } 66 | 67 | protected override void OnPaintBackground(PaintEventArgs e) 68 | { 69 | using (System.Drawing.Drawing2D.LinearGradientBrush filler = 70 | new System.Drawing.Drawing2D.LinearGradientBrush(this.ClientRectangle, PanelStartColor, PanelEndColor, GradientMode)) 71 | { 72 | e.Graphics.FillRectangle(filler, ClientRectangle); 73 | } 74 | } 75 | 76 | protected override void OnPaint(PaintEventArgs e) 77 | { 78 | base.OnPaint(e); 79 | 80 | if (m_drawInnerBorder) 81 | { 82 | // Draw inner border 83 | Rectangle innerRect = ClientRectangle; 84 | innerRect.X += 1; 85 | innerRect.Y += 1; 86 | 87 | innerRect.Width -= 3; 88 | innerRect.Height -= 3; 89 | 90 | e.Graphics.DrawRectangle(new Pen(Color.FromArgb(100, 100, 100)), innerRect); 91 | } 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /OricExplorer/Installer/OricExplorer.iss: -------------------------------------------------------------------------------- 1 | 2 | #define myAppName "OricExplorer" 3 | #define myAppShortVersion GetVersionNumbersString("..\bin\Release\OricExplorer.exe") 4 | #define myAppPublisher "Scott Davies feat. damien" 5 | 6 | [Setup] 7 | WizardStyle=modern 8 | DisableWelcomePage=no 9 | AppName="{#MyAppName}" 10 | AppVerName="{#myAppName} v{#myAppShortVersion}" 11 | AppPublisher="{#myAppPublisher}" 12 | AppVersion="{#myAppShortVersion}" 13 | VersionInfoVersion="{#myAppShortVersion}" 14 | AllowNoIcons=no 15 | DefaultGroupName="{#myAppName}" 16 | DefaultDirName="{autopf}\{#myAppName}" 17 | AppCopyright="{#myAppPublisher}" 18 | PrivilegesRequired=Lowest 19 | MinVersion=6.0 20 | OutputBaseFilename="{#myAppName}_v{#myAppShortVersion}" 21 | OutputDir="..\..\dist\" 22 | Compression=lzma2 23 | SolidCompression=yes 24 | AppMutex="{#MyAppName}" 25 | 26 | [Languages] 27 | Name: "en"; MessagesFile: "compiler:Default.isl" 28 | Name: "fr"; MessagesFile: "compiler:languages/French.isl" 29 | Name: "de"; MessagesFile: "compiler:languages/German.isl" 30 | Name: "es"; MessagesFile: "compiler:languages/Spanish.isl" 31 | Name: "it"; MessagesFile: "compiler:languages/Italian.isl" 32 | Name: "pt"; MessagesFile: "compiler:languages/Portuguese.isl" 33 | Name: "ru"; MessagesFile: "compiler:languages/Russian.isl" 34 | 35 | [CustomMessages] 36 | en.CreateIconOnDesktop=Create a desktop icon 37 | en.RemoveConfigFile=Delete the configuration file? 38 | 39 | fr.CreateIconOnDesktop=Créer un icône sur le bureau 40 | fr.RemoveConfigFile=Supprimer le fichier de configuration ? 41 | 42 | de.CreateIconOnDesktop=Symbol auf dem Desktop anlegen 43 | de.RemoveConfigFile=Konfigurationsdatei löschen? 44 | 45 | es.CreateIconOnDesktop=Crea un icono en el escritorio 46 | es.RemoveConfigFile=¿Eliminar el archivo de configuración? 47 | 48 | it.CreateIconOnDesktop=Crea un'icona sul desktop 49 | it.RemoveConfigFile=Eliminare il file di configurazione? 50 | 51 | pt.CreateIconOnDesktop=Criar ícone no ambiente de trabalho 52 | pt.RemoveConfigFile=Suprimir o ficheiro de configuração ? 53 | 54 | ru.CreateIconOnDesktop=Создайте иконку на рабочем столе 55 | ru.RemoveConfigFile=Удалить файл конфигурации? 56 | 57 | [Tasks] 58 | Name: "desktopicon"; Description: "{cm:CreateIconOnDesktop}" 59 | 60 | [Files] 61 | Source: "..\bin\Release\OricExplorer.exe"; DestDir: "{app}"; Flags: ignoreversion 62 | Source: "..\bin\Release\WeifenLuo.WinFormsUI.Docking.dll"; DestDir: "{app}"; Flags: ignoreversion 63 | Source: "..\bin\Release\FastColoredTextBox.dll"; DestDir: "{app}"; Flags: ignoreversion 64 | Source: "..\bin\Release\FormsControlLibrary.dll"; DestDir: "{app}"; Flags: ignoreversion 65 | Source: "..\bin\Release\TabStrip.dll"; DestDir: "{app}"; Flags: ignoreversion 66 | 67 | [Icons] 68 | Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppName}.exe"; WorkingDir: "{app}" 69 | Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppName}.exe"; WorkingDir: "{app}"; Tasks: "desktopicon" 70 | 71 | [Run] 72 | Filename: "{app}\{#MyAppName}.exe"; Description: "{cm:LaunchProgram,{#MyAppName}}"; Flags: nowait postinstall skipifsilent; WorkingDir: "{app}" 73 | 74 | [InstallDelete] 75 | Type: files; Name: "{group}\{#MyAppName}.lnk" 76 | 77 | [Code] 78 | procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); 79 | var 80 | ConfFile: String; 81 | begin 82 | case CurUninstallStep of 83 | usPostUninstall: 84 | begin 85 | ConfFile := ExpandConstant('{app}\{#MyAppName}.json'); 86 | 87 | if FileExists(ConfFile) then 88 | if MsgBox(ExpandConstant('{cm:RemoveConfigFile}'), mbConfirmation, MB_YESNO) = idYes then 89 | try 90 | DeleteFile(ConfFile); 91 | except 92 | end; 93 | end; 94 | 95 | usDone: 96 | begin 97 | try 98 | RemoveDir(ExpandConstant('{app}')); 99 | except 100 | end; 101 | end; 102 | end; 103 | end; 104 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlSequentialFileViewer.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer.User_Controls 2 | { 3 | partial class ctlSequentialFileViewer 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Component Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.lvwRecords = new System.Windows.Forms.ListView(); 32 | this.colCount = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 33 | this.colFormat = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 34 | this.colData = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 35 | this.SuspendLayout(); 36 | // 37 | // lvwRecords 38 | // 39 | this.lvwRecords.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 40 | this.colCount, 41 | this.colFormat, 42 | this.colData}); 43 | this.lvwRecords.Dock = System.Windows.Forms.DockStyle.Fill; 44 | this.lvwRecords.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 45 | this.lvwRecords.FullRowSelect = true; 46 | this.lvwRecords.GridLines = true; 47 | this.lvwRecords.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; 48 | this.lvwRecords.HideSelection = false; 49 | this.lvwRecords.Location = new System.Drawing.Point(0, 0); 50 | this.lvwRecords.MultiSelect = false; 51 | this.lvwRecords.Name = "lvwRecords"; 52 | this.lvwRecords.Size = new System.Drawing.Size(614, 452); 53 | this.lvwRecords.TabIndex = 0; 54 | this.lvwRecords.UseCompatibleStateImageBehavior = false; 55 | this.lvwRecords.View = System.Windows.Forms.View.Details; 56 | // 57 | // colCount 58 | // 59 | this.colCount.Text = "Record"; 60 | this.colCount.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; 61 | this.colCount.Width = 93; 62 | // 63 | // colFormat 64 | // 65 | this.colFormat.Text = "Format"; 66 | this.colFormat.Width = 97; 67 | // 68 | // colData 69 | // 70 | this.colData.Text = "Data"; 71 | this.colData.Width = 336; 72 | // 73 | // ctlSequentialFileViewer 74 | // 75 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 76 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 77 | this.Controls.Add(this.lvwRecords); 78 | this.Name = "ctlSequentialFileViewer"; 79 | this.Size = new System.Drawing.Size(614, 452); 80 | this.ResumeLayout(false); 81 | 82 | } 83 | 84 | #endregion 85 | 86 | private System.Windows.Forms.ListView lvwRecords; 87 | private System.Windows.Forms.ColumnHeader colFormat; 88 | private System.Windows.Forms.ColumnHeader colData; 89 | private System.Windows.Forms.ColumnHeader colCount; 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlProgressBar.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace OricExplorer.User_Controls 12 | { 13 | public partial class ctlProgressBar : UserControl 14 | { 15 | private StringAlignment infoHorizontalAlignment = StringAlignment.Center; 16 | 17 | private int percentageValue = 0; 18 | private Color percentageBarColour = Color.FromArgb(0, 255, 0); 19 | 20 | private String text = ""; 21 | 22 | /// 23 | /// Gets or sets the value of the Percentage bar. 24 | /// 25 | [DefaultValue(typeof(int), "0"), Category("ProgressBar"), Description("Gets or sets the value of the Percentage bar.")] 26 | public int PercentageValue 27 | { 28 | get { return percentageValue; } 29 | set { percentageValue = value; Invalidate(); } 30 | } 31 | 32 | /// 33 | /// Gets or sets the color for the percentage bar. 34 | /// 35 | [DefaultValue(typeof(Color), "Green"), Category("ProgressBar"), Description("Gets or sets the color for the percentage bar.")] 36 | public Color PercentageBarColour 37 | { 38 | get { return percentageBarColour; } 39 | set { percentageBarColour = value; Invalidate(); } 40 | } 41 | 42 | /// 43 | /// Gets or sets the controls text. 44 | /// 45 | [EditorAttribute("System.ComponentModel.Design.MultilineStringEditor, System.Design", "System.Drawing.Design.UITypeEditor")] 46 | [Browsable(true), EditorBrowsable(EditorBrowsableState.Always), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible), Bindable(true)] 47 | public override string Text 48 | { 49 | get { return text; } 50 | set { text = value; Invalidate(); } 51 | } 52 | 53 | /// 54 | /// Gets or sets the horizontal alignment of the controls text. 55 | /// 56 | [DefaultValue(typeof(StringAlignment), "Center"), Category("ProgressBar"), Description("Gets or sets the horizontal alignment of the controls text.")] 57 | public StringAlignment TextHorizontalAlignment 58 | { 59 | get { return infoHorizontalAlignment; } 60 | set { infoHorizontalAlignment = value; Invalidate(); } 61 | } 62 | 63 | public ctlProgressBar() 64 | { 65 | InitializeComponent(); 66 | this.DoubleBuffered = true; 67 | } 68 | 69 | private void ctlProgressBar_Paint(object sender, PaintEventArgs e) 70 | { 71 | SolidBrush b = new SolidBrush(percentageBarColour); 72 | 73 | if (percentageValue < 0) 74 | percentageValue = 0; 75 | 76 | if (percentageValue > 100) 77 | percentageValue = 100; 78 | 79 | float barWidth = ((float)percentageValue / 100) * ClientRectangle.Width; 80 | 81 | e.Graphics.FillRectangle(b, 0, 0, barWidth, ClientRectangle.Height); 82 | 83 | if (text.Length > 0) 84 | { 85 | // Create a StringFormat object with the each line of text, and the block of text centered on the page. 86 | StringFormat stringFormat = new StringFormat 87 | { 88 | Alignment = infoHorizontalAlignment, 89 | LineAlignment = StringAlignment.Center 90 | }; 91 | 92 | // Draw the text and the surrounding rectangle. 93 | Rectangle textRectangle = ClientRectangle; 94 | textRectangle.Inflate(-3, -3); 95 | e.Graphics.DrawString(text, this.Font, new SolidBrush(this.ForeColor), textRectangle, stringFormat); 96 | } 97 | 98 | b.Dispose(); 99 | } 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/SoftShadowLabel.cs: -------------------------------------------------------------------------------- 1 | namespace SoftShadowLabel { 2 | 3 | using System; 4 | using System.ComponentModel; 5 | using System.Drawing; 6 | using System.Drawing.Drawing2D; 7 | using System.Drawing.Imaging; 8 | using System.Drawing.Text; 9 | using System.Windows.Forms; 10 | 11 | 12 | class MoreRealisticShadowLabel : Label { 13 | 14 | private Color color; 15 | private int direction; 16 | private float softness; 17 | private int opacity; 18 | private int shadowDepth; 19 | 20 | public MoreRealisticShadowLabel() 21 | : base() { 22 | color = Color.Black; 23 | direction = 315; 24 | softness = 2f; 25 | opacity = 100; 26 | shadowDepth = 4; 27 | } 28 | 29 | [Category("Appearance")] 30 | [Description("Gets or sets the color of the shadow")] 31 | [DefaultValue(typeof(Color), "0x000000")] 32 | public Color Color { 33 | get { 34 | return color; 35 | } 36 | set { 37 | color = value; 38 | Invalidate(); 39 | } 40 | } 41 | 42 | [Category("Appearance")] 43 | [Description("Gets or sets the degree of opacity of the shadow")] 44 | [DefaultValue(100)] 45 | public int Opacity { 46 | get { 47 | return opacity; 48 | } 49 | set { 50 | if (value < 0 || value > 255) { 51 | throw new ArgumentOutOfRangeException("Opacity", 52 | "Opacity must be between 0 and 255"); 53 | } 54 | opacity = value; 55 | Invalidate(); 56 | } 57 | } 58 | 59 | [Category("Appearance")] 60 | [Description("Gets or sets how soft the shadow is")] 61 | [DefaultValue(2f)] 62 | public float Softness { 63 | get { 64 | return softness; 65 | } 66 | set { 67 | if (softness <= 0) { 68 | throw new ArgumentOutOfRangeException("Softness", 69 | "Softness must be greater than 0"); 70 | } 71 | softness = value; 72 | Invalidate(); 73 | } 74 | } 75 | 76 | [Category("Appearance")] 77 | [Description("Gets or sets the angle the shadow is cast")] 78 | [DefaultValue(315)] 79 | public int Direction { 80 | get { 81 | return direction; 82 | } 83 | set { 84 | if (value < 0 || value > 360) { 85 | throw new ArgumentOutOfRangeException("Direction", 86 | "Direction must be between 0 and 360"); 87 | } 88 | direction = value; 89 | Invalidate(); 90 | } 91 | } 92 | 93 | [Category("Appearance")] 94 | [Description("Gets or sets the distance between the plane " + 95 | "of the object casting the shadow and the shadow plane")] 96 | [DefaultValue(4)] 97 | public int ShadowDepth { 98 | get { 99 | return shadowDepth; 100 | } 101 | set { 102 | if (value < 0) { 103 | throw new ArgumentOutOfRangeException("ShadowDepth", 104 | "ShadowDepth must be greater than 0"); 105 | } 106 | shadowDepth = value; 107 | Invalidate(); 108 | } 109 | } 110 | 111 | protected override void OnPaint(PaintEventArgs e) { 112 | 113 | Graphics screenGraphics = e.Graphics; 114 | Bitmap shadowBitmap = new Bitmap(Math.Max((int)(Width / softness), 1), 115 | Math.Max((int)(Height / softness), 1)); 116 | using (Graphics imageGraphics = Graphics.FromImage(shadowBitmap)) { 117 | imageGraphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; 118 | Matrix transformMatrix = new Matrix(); 119 | transformMatrix.Scale(1 / softness, 1 / softness); 120 | transformMatrix.Translate((float)(shadowDepth * Math.Cos(direction)), 121 | (float)(shadowDepth * Math.Sin(direction))); 122 | imageGraphics.Transform = transformMatrix; 123 | imageGraphics.DrawString(Text, Font, 124 | new SolidBrush(Color.FromArgb(opacity, color)), 0, 0, 125 | StringFormat.GenericTypographic); 126 | } 127 | screenGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic; 128 | screenGraphics.DrawImage(shadowBitmap, ClientRectangle, 0, 0, 129 | shadowBitmap.Width, shadowBitmap.Height, GraphicsUnit.Pixel); 130 | screenGraphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; 131 | screenGraphics.DrawString(Text, Font, new SolidBrush(ForeColor), 0, 0, 132 | StringFormat.GenericTypographic); 133 | 134 | } 135 | 136 | } 137 | } -------------------------------------------------------------------------------- /OricExplorer/User Controls/SoftShadowLabel.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | text/microsoft-resx 91 | 92 | 93 | 1.3 94 | 95 | 96 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 97 | 98 | 99 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 100 | 101 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/OutlineShadowLabel.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | text/microsoft-resx 91 | 92 | 93 | 1.3 94 | 95 | 96 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 97 | 98 | 99 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 100 | 101 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlCaptureViewer.designer.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer.User_Controls 2 | { 3 | partial class ctlCaptureViewer 4 | { 5 | /// 6 | /// Variable nécessaire au concepteur. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Nettoyage des ressources utilisées. 12 | /// 13 | /// true si les ressources managées doivent être supprimées ; sinon, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Code généré par le Concepteur de composants 24 | 25 | /// 26 | /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas 27 | /// le contenu de cette méthode avec l'éditeur de code. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.tlp = new System.Windows.Forms.TableLayoutPanel(); 32 | this.picImage = new System.Windows.Forms.PictureBox(); 33 | this.chkSélection = new System.Windows.Forms.CheckBox(); 34 | this.tlp.SuspendLayout(); 35 | ((System.ComponentModel.ISupportInitialize)(this.picImage)).BeginInit(); 36 | this.SuspendLayout(); 37 | // 38 | // tlp 39 | // 40 | this.tlp.AutoSize = true; 41 | this.tlp.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 42 | this.tlp.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; 43 | this.tlp.ColumnCount = 1; 44 | this.tlp.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); 45 | this.tlp.Controls.Add(this.picImage, 0, 0); 46 | this.tlp.Controls.Add(this.chkSélection, 0, 1); 47 | this.tlp.Location = new System.Drawing.Point(0, 0); 48 | this.tlp.Margin = new System.Windows.Forms.Padding(0); 49 | this.tlp.Name = "tlp"; 50 | this.tlp.RowCount = 2; 51 | this.tlp.RowStyles.Add(new System.Windows.Forms.RowStyle()); 52 | this.tlp.RowStyles.Add(new System.Windows.Forms.RowStyle()); 53 | this.tlp.Size = new System.Drawing.Size(243, 248); 54 | this.tlp.TabIndex = 0; 55 | // 56 | // picImage 57 | // 58 | this.picImage.Anchor = System.Windows.Forms.AnchorStyles.None; 59 | this.picImage.Location = new System.Drawing.Point(1, 1); 60 | this.picImage.Margin = new System.Windows.Forms.Padding(0, 0, 1, 1); 61 | this.picImage.Name = "picImage"; 62 | this.picImage.Size = new System.Drawing.Size(240, 224); 63 | this.picImage.TabIndex = 0; 64 | this.picImage.TabStop = false; 65 | // 66 | // chkSélection 67 | // 68 | this.chkSélection.Anchor = System.Windows.Forms.AnchorStyles.None; 69 | this.chkSélection.AutoSize = true; 70 | this.chkSélection.Location = new System.Drawing.Point(114, 230); 71 | this.chkSélection.Name = "chkSélection"; 72 | this.chkSélection.Size = new System.Drawing.Size(15, 14); 73 | this.chkSélection.TabIndex = 1; 74 | this.chkSélection.UseVisualStyleBackColor = true; 75 | this.chkSélection.Click += new System.EventHandler(this.chkSélection_Click); 76 | // 77 | // ctlCaptureViewer 78 | // 79 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 80 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 81 | this.AutoSize = true; 82 | this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 83 | this.BackColor = System.Drawing.SystemColors.Control; 84 | this.Controls.Add(this.tlp); 85 | this.Name = "ctlCaptureViewer"; 86 | this.Size = new System.Drawing.Size(243, 248); 87 | this.tlp.ResumeLayout(false); 88 | this.tlp.PerformLayout(); 89 | ((System.ComponentModel.ISupportInitialize)(this.picImage)).EndInit(); 90 | this.ResumeLayout(false); 91 | this.PerformLayout(); 92 | 93 | } 94 | 95 | #endregion 96 | 97 | private System.Windows.Forms.TableLayoutPanel tlp; 98 | private System.Windows.Forms.PictureBox picImage; 99 | private System.Windows.Forms.CheckBox chkSélection; 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /OricExplorer/Resources/OricExplorerLogo (Black on White).svg: -------------------------------------------------------------------------------- 1 | 2 | 12 | 14 | 16 | 17 | 19 | image/svg+xml 20 | 22 | 23 | 24 | 25 | 26 | 29 | 33 | 37 | 42 | 47 | 52 | 59 | 60 | 64 | EXPLORER 74 | 75 | 76 | -------------------------------------------------------------------------------- /OricExplorer/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 2.0 7 | 8 | 9 | I:\Documents 10 | 11 | 12 | False 13 | 14 | 15 | I:\Development\Windows .NET\Oric Test Files\Oricutron\oricutron.exe 16 | 17 | 18 | White 19 | 20 | 21 | Regular 22 | 23 | 24 | White 25 | 26 | 27 | Bold 28 | 29 | 30 | <?xml version="1.0" encoding="utf-16"?> 31 | <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 32 | <string>I:\Development\Windows .NET\Oric Test Files\Tapes</string> 33 | </ArrayOfString> 34 | 35 | 36 | <?xml version="1.0" encoding="utf-16"?> 37 | <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 38 | <string>I:\Development\Windows .NET\Oric Test Files\Disks</string> 39 | <string>I:\Development\Windows .NET\Oric Test Files</string> 40 | </ArrayOfString> 41 | 42 | 43 | <?xml version="1.0" encoding="utf-16"?> 44 | <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 45 | <string>I:\Development\Windows .NET\Oric Test Files\ROMS</string> 46 | </ArrayOfString> 47 | 48 | 49 | White 50 | 51 | 52 | White 53 | 54 | 55 | White 56 | 57 | 58 | White 59 | 60 | 61 | White 62 | 63 | 64 | Regular 65 | 66 | 67 | Regular 68 | 69 | 70 | Regular 71 | 72 | 73 | Regular 74 | 75 | 76 | Regular 77 | 78 | 79 | Black 80 | 81 | 82 | White 83 | 84 | 85 | Regular 86 | 87 | 88 | Regular 89 | 90 | 91 | White 92 | 93 | 94 | -------------------------------------------------------------------------------- /OricExplorer/Forms/frmFileScan.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer.Forms 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.IO; 7 | using System.Windows.Forms; 8 | 9 | public partial class frmFileScan : Form 10 | { 11 | enum ScanType { Tape, Disk, ROM, Other }; 12 | 13 | readonly frmMainForm parent; 14 | 15 | Boolean cancelScan = false; 16 | 17 | public frmFileScan(frmMainForm mainForm) 18 | { 19 | InitializeComponent(); 20 | 21 | // Link back to the parent form 22 | parent = mainForm; 23 | } 24 | 25 | private void frmFileScan_Shown(object sender, EventArgs e) 26 | { 27 | Application.DoEvents(); 28 | 29 | // Display Wait cursor in case it takes a while 30 | Cursor.Current = Cursors.WaitCursor; 31 | 32 | // Scan folders for each file type 33 | GetListOfFiles(ScanType.Disk); 34 | 35 | if(!cancelScan) 36 | GetListOfFiles(ScanType.Tape); 37 | 38 | if(!cancelScan) 39 | GetListOfFiles(ScanType.ROM); 40 | 41 | if(!cancelScan) 42 | GetListOfFiles(ScanType.Other); 43 | 44 | // Switch back to default cursor 45 | Cursor.Current = Cursors.Default; 46 | 47 | lblInfo.Text = (cancelScan) ? "Scan cancelled by user" : "Scan completed"; 48 | lblFile.Text = ""; 49 | lblProgress.Text = ""; 50 | 51 | Application.DoEvents(); 52 | 53 | // Add a pause before closing the form 54 | System.Threading.Thread.Sleep(1500); 55 | Close(); 56 | } 57 | 58 | private void lblCancel_Click(object sender, EventArgs e) 59 | { 60 | if (MessageBox.Show("Are you sure you want to cancel the file scan?", "Cancel Scan", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) 61 | { 62 | cancelScan = true; 63 | Close(); 64 | } 65 | } 66 | 67 | private void GetListOfFiles(ScanType scanType) 68 | { 69 | String searchPattern = ""; 70 | int filesScanned = 0; 71 | 72 | List folderList = null; 73 | 74 | switch(scanType) 75 | { 76 | case ScanType.Tape: 77 | folderList = Configuration.Persistent.TapeFolders; 78 | searchPattern = "*.ta?"; 79 | break; 80 | 81 | case ScanType.Disk: 82 | folderList = Configuration.Persistent.DiskFolders; 83 | searchPattern = "*.dsk"; 84 | break; 85 | 86 | case ScanType.ROM: 87 | folderList = Configuration.Persistent.RomFolders; 88 | searchPattern = "*.rom"; 89 | break; 90 | 91 | case ScanType.Other: 92 | folderList = Configuration.Persistent.OtherFilesFolders; 93 | searchPattern = "*.*"; 94 | break; 95 | } 96 | 97 | lblInfo.Text = String.Format("Searching folders for {0} files...", scanType.ToString()); 98 | lblFile.Text = ""; 99 | lblProgress.Text = ""; 100 | 101 | ctlProgressBar.PercentageValue = 0; 102 | 103 | Application.DoEvents(); 104 | 105 | foreach (string directory in folderList) 106 | { 107 | DirectoryInfo directoryInfo = new DirectoryInfo(directory); 108 | 109 | if (directoryInfo.Exists) 110 | { 111 | FileInfo[] fileInfoList = directoryInfo.GetFiles(searchPattern, SearchOption.AllDirectories); 112 | 113 | if (fileInfoList != null) 114 | { 115 | lblInfo.Text = String.Format("Loading {0} files...", scanType.ToString()); 116 | Application.DoEvents(); 117 | 118 | foreach (FileInfo fileInfo in fileInfoList) 119 | { 120 | lblFile.Text = Path.GetFileNameWithoutExtension(fileInfo.FullName); 121 | 122 | AddFileToTree(scanType, fileInfo, directoryInfo.FullName); 123 | 124 | filesScanned++; 125 | 126 | float percentage = (100 / (float)fileInfoList.Length) * filesScanned; 127 | ctlProgressBar.PercentageValue = (int)percentage; 128 | 129 | lblProgress.Text = String.Format("{0:N0} of {1:N0} ({2:N1}%)", filesScanned, fileInfoList.Length, percentage); 130 | 131 | Application.DoEvents(); 132 | 133 | if (cancelScan) 134 | { 135 | break; 136 | } 137 | } 138 | } 139 | } 140 | } 141 | } 142 | 143 | private TreeNode AddFileToTree(ScanType scanType, FileInfo fileInfo, string fullname) 144 | { 145 | TreeNode newNode; 146 | 147 | switch (scanType) 148 | { 149 | case ScanType.Disk: 150 | newNode = parent.AddDiskToTree(fileInfo, fullname); 151 | break; 152 | 153 | case ScanType.Tape: 154 | newNode = parent.AddTapeToTree(fileInfo, fullname); 155 | break; 156 | 157 | case ScanType.ROM: 158 | newNode = parent.AddRomToTree(fileInfo, fullname); 159 | break; 160 | 161 | default: 162 | newNode = parent.AddOtherFileToTree(fileInfo, fullname); 163 | break; 164 | } 165 | 166 | return newNode; 167 | } 168 | } 169 | } -------------------------------------------------------------------------------- /OricExplorer/Classes/BasicTokens.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System.Collections; 4 | 5 | public class BasicTokens 6 | { 7 | public enum ROMVersion { V1_0, V1_1, Unknown }; 8 | 9 | private readonly ArrayList m_tokenList; 10 | private readonly ROMVersion m_romVers; 11 | 12 | public BasicTokens(ROMVersion RomVers) 13 | { 14 | m_romVers = RomVers; 15 | 16 | // Create an array to hold the list of Basic tokens 17 | m_tokenList = new ArrayList(); 18 | 19 | // Build the Basic token list 20 | BuildTokenList(); 21 | } 22 | 23 | public int TokenCount 24 | { 25 | get { return m_tokenList.Count; } 26 | } 27 | 28 | public string GetBasicToken(byte bToken) 29 | { 30 | return m_tokenList[bToken].ToString(); 31 | } 32 | 33 | private void BuildTokenList() 34 | { 35 | m_tokenList.Add("END"); 36 | m_tokenList.Add("EDIT"); 37 | 38 | if(m_romVers == ROMVersion.V1_1) 39 | { 40 | m_tokenList.Add("STORE"); 41 | m_tokenList.Add("RECALL"); 42 | } 43 | else 44 | { 45 | m_tokenList.Add("INVERSE"); 46 | m_tokenList.Add("NORMAL"); 47 | } 48 | 49 | m_tokenList.Add("TRON"); 50 | m_tokenList.Add("TROFF"); 51 | m_tokenList.Add("POP"); 52 | m_tokenList.Add("PLOT"); 53 | m_tokenList.Add("PULL"); 54 | m_tokenList.Add("LORES"); 55 | m_tokenList.Add("DOKE"); 56 | m_tokenList.Add("REPEAT"); 57 | m_tokenList.Add("UNTIL"); 58 | m_tokenList.Add("FOR"); 59 | m_tokenList.Add("LLIST"); 60 | m_tokenList.Add("LPRINT"); 61 | m_tokenList.Add("NEXT"); 62 | m_tokenList.Add("DATA"); 63 | m_tokenList.Add("INPUT"); 64 | m_tokenList.Add("DIM"); 65 | m_tokenList.Add("CLS"); 66 | m_tokenList.Add("READ"); 67 | m_tokenList.Add("LET"); 68 | m_tokenList.Add("GOTO"); 69 | m_tokenList.Add("RUN"); 70 | m_tokenList.Add("IF"); 71 | m_tokenList.Add("RESTORE"); 72 | m_tokenList.Add("GOSUB"); 73 | m_tokenList.Add("RETURN"); 74 | m_tokenList.Add("REM"); 75 | m_tokenList.Add("HIMEM"); 76 | m_tokenList.Add("GRAB"); 77 | m_tokenList.Add("RELEASE"); 78 | m_tokenList.Add("TEXT"); 79 | m_tokenList.Add("HIRES"); 80 | m_tokenList.Add("SHOOT"); 81 | m_tokenList.Add("EXPLODE"); 82 | m_tokenList.Add("ZAP"); 83 | m_tokenList.Add("PING"); 84 | m_tokenList.Add("SOUND"); 85 | m_tokenList.Add("MUSIC"); 86 | m_tokenList.Add("PLAY"); 87 | m_tokenList.Add("CURSET"); 88 | m_tokenList.Add("CURMOV"); 89 | m_tokenList.Add("DRAW"); 90 | m_tokenList.Add("CIRCLE"); 91 | m_tokenList.Add("PATTERN"); 92 | m_tokenList.Add("FILL"); 93 | m_tokenList.Add("CHAR"); 94 | m_tokenList.Add("PAPER"); 95 | m_tokenList.Add("INK"); 96 | m_tokenList.Add("STOP"); 97 | m_tokenList.Add("ON"); 98 | m_tokenList.Add("WAIT"); 99 | m_tokenList.Add("CLOAD"); 100 | m_tokenList.Add("CSAVE"); 101 | m_tokenList.Add("DEF"); 102 | m_tokenList.Add("POKE"); 103 | m_tokenList.Add("PRINT"); 104 | m_tokenList.Add("CONT"); 105 | m_tokenList.Add("LIST"); 106 | m_tokenList.Add("CLEAR"); 107 | m_tokenList.Add("GET"); 108 | m_tokenList.Add("CALL"); 109 | m_tokenList.Add("!"); 110 | m_tokenList.Add("NEW"); 111 | m_tokenList.Add("TAB("); 112 | m_tokenList.Add("TO"); 113 | m_tokenList.Add("FN"); 114 | m_tokenList.Add("SPC("); 115 | m_tokenList.Add("@"); 116 | m_tokenList.Add("AUTO"); 117 | m_tokenList.Add("ELSE"); 118 | m_tokenList.Add("THEN"); 119 | m_tokenList.Add("NOT"); 120 | m_tokenList.Add("STEP"); 121 | m_tokenList.Add("+"); 122 | m_tokenList.Add("-"); 123 | m_tokenList.Add("*"); 124 | m_tokenList.Add("/"); 125 | m_tokenList.Add("^"); 126 | m_tokenList.Add("AND"); 127 | m_tokenList.Add("OR"); 128 | m_tokenList.Add(">"); 129 | m_tokenList.Add("="); 130 | m_tokenList.Add("<"); 131 | m_tokenList.Add("SGN"); 132 | m_tokenList.Add("INT"); 133 | m_tokenList.Add("ABS"); 134 | m_tokenList.Add("USR"); 135 | m_tokenList.Add("FRE"); 136 | m_tokenList.Add("POS"); 137 | m_tokenList.Add("HEX$"); 138 | m_tokenList.Add("&"); 139 | m_tokenList.Add("SQR"); 140 | m_tokenList.Add("RND"); 141 | m_tokenList.Add("LN"); 142 | m_tokenList.Add("EXP"); 143 | m_tokenList.Add("COS"); 144 | m_tokenList.Add("SIN"); 145 | m_tokenList.Add("TAN"); 146 | m_tokenList.Add("ATN"); 147 | m_tokenList.Add("PEEK"); 148 | m_tokenList.Add("DEEK"); 149 | m_tokenList.Add("LOG"); 150 | m_tokenList.Add("LEN"); 151 | m_tokenList.Add("STR$"); 152 | m_tokenList.Add("VAL"); 153 | m_tokenList.Add("ASC"); 154 | m_tokenList.Add("CHR$"); 155 | m_tokenList.Add("PI"); 156 | m_tokenList.Add("TRUE"); 157 | m_tokenList.Add("FALSE"); 158 | m_tokenList.Add("KEY$"); 159 | m_tokenList.Add("SCRN"); 160 | m_tokenList.Add("POINT"); 161 | m_tokenList.Add("LEFT$"); 162 | m_tokenList.Add("RIGHT$"); 163 | m_tokenList.Add("MID$"); 164 | //m_tokenList.Add("Unknown"); 165 | } 166 | } 167 | } 168 | -------------------------------------------------------------------------------- /OricExplorer/Forms/frmDataViewer.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /OricExplorer/Forms/frmDiskData.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /OricExplorer/Forms/frmProgramInfo.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /OricExplorer/Forms/frmImportAtmosBasicFile.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlProgressBar.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlCaptureViewer.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlDataFileViewer.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlSequentialFileViewer.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /OricExplorer/Classes/OricFileInfo.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using System; 4 | using System.IO; 5 | 6 | public class OricFileInfo 7 | { 8 | public OricProgram LoadFile() 9 | { 10 | OricProgram oricProgram = new OricProgram(); 11 | oricProgram.New(); 12 | 13 | if (MediaType == ConstantsAndEnums.MediaType.TapeFile) 14 | { 15 | OricTape oricTape = new OricTape(); 16 | oricProgram = oricTape.Load(Path.Combine(Folder, ParentName), ProgramName, ProgramIndex); 17 | } 18 | else 19 | { 20 | OricDisk oricDisk = new OricDisk(); 21 | oricDisk.LoadDisk(ParentName); 22 | 23 | switch (oricDisk.DOSFormat()) 24 | { 25 | case OricDisk.DOSFormats.OricDOS: 26 | { 27 | OricDos oricDisc = new OricDos(); 28 | oricProgram = oricDisc.LoadFile(ParentName, this); 29 | } 30 | break; 31 | 32 | case OricDisk.DOSFormats.SedOric: 33 | { 34 | SedOric oricDisc = new SedOric(); 35 | oricProgram = oricDisc.LoadFile(ParentName, this); 36 | } 37 | break; 38 | 39 | case OricDisk.DOSFormats.StratSed: 40 | { 41 | StratSed oricDisc = new StratSed(); 42 | oricProgram = oricDisc.LoadFile(ParentName, this); 43 | } 44 | break; 45 | 46 | case OricDisk.DOSFormats.TDOS: 47 | { 48 | FTDos oricDisc = new FTDos(); 49 | oricProgram = oricDisc.LoadFile(ParentName, this); 50 | } 51 | break; 52 | 53 | default: 54 | break; 55 | } 56 | } 57 | 58 | return oricProgram; 59 | } 60 | 61 | //public ArrayList GetSectorList() 62 | //{ 63 | // ArrayList sectorList = new ArrayList(); 64 | 65 | // return sectorList; 66 | //} 67 | 68 | #region Getters and Setters 69 | public ConstantsAndEnums.MediaType MediaType { get; set; } 70 | 71 | public ushort DirectoryIndex { get; set; } 72 | 73 | public ushort EntryIndex { get; set; } 74 | 75 | public ushort StartAddress { get; set; } 76 | 77 | public ushort EndAddress { get; set; } 78 | 79 | public ushort ExeAddress { get; set; } 80 | 81 | public ushort LengthBytes 82 | { 83 | get {return Convert.ToUInt16((EndAddress - StartAddress) + 1);} 84 | } 85 | 86 | public ushort LengthSectors { get; set; } 87 | 88 | public OricProgram.AutoRunFlag AutoRun { get; set; } 89 | 90 | public OricProgram.ProgramFormat Format { get; set; } 91 | 92 | public byte DirTrack { get; set; } 93 | public byte DirSector { get; set; } 94 | public byte DirIndex { get; set; } 95 | 96 | // For SEDORIC Direct Access files (Filetype = 8) 97 | public ushort NoOfRecords { get; set; } 98 | public ushort RecordLength { get; set; } 99 | 100 | public string FormatToString() 101 | { 102 | string strFormat; 103 | 104 | switch(Format) 105 | { 106 | case OricProgram.ProgramFormat.BasicProgram: 107 | strFormat = "BASIC program"; 108 | break; 109 | 110 | case OricProgram.ProgramFormat.HyperbasicProgram: 111 | strFormat = "HYPERBASIC source"; 112 | break; 113 | 114 | case OricProgram.ProgramFormat.TeleassSource: 115 | strFormat = "TELEASS source"; 116 | break; 117 | 118 | case OricProgram.ProgramFormat.CharacterSet: 119 | strFormat = "Character set"; 120 | break; 121 | 122 | case OricProgram.ProgramFormat.BinaryFile: 123 | strFormat = "Code/Data file"; 124 | break; 125 | 126 | case OricProgram.ProgramFormat.DirectAccessFile: 127 | strFormat = "Direct Access file"; 128 | break; 129 | 130 | case OricProgram.ProgramFormat.SequentialFile: 131 | strFormat = "Sequential file"; 132 | break; 133 | 134 | case OricProgram.ProgramFormat.HiresScreen: 135 | strFormat = "HIRES screen"; 136 | break; 137 | 138 | case OricProgram.ProgramFormat.TextScreen: 139 | strFormat = "TEXT screen"; 140 | break; 141 | 142 | case OricProgram.ProgramFormat.WindowFile: 143 | strFormat = "Text window"; 144 | break; 145 | 146 | case OricProgram.ProgramFormat.HelpFile: 147 | strFormat = "Help file"; 148 | break; 149 | 150 | default: 151 | strFormat = "Unknown format"; 152 | break; 153 | } 154 | 155 | return strFormat; 156 | } 157 | 158 | public string ProgramName { get; set; } 159 | 160 | public string Name { get; set; } 161 | 162 | public string Extension { get; set; } 163 | 164 | public string Folder { get; set; } 165 | 166 | public string ParentName { get; set; } 167 | 168 | public OricProgram.ProtectionStatus Protection { get; set; } 169 | 170 | public ushort ProgramIndex { get; set; } 171 | 172 | public byte FirstSector { get; set; } 173 | 174 | public byte FirstTrack { get; set; } 175 | 176 | public byte LastSector { get; set; } 177 | 178 | public byte LastTrack { get; set; } 179 | #endregion 180 | } 181 | } 182 | -------------------------------------------------------------------------------- /OricExplorer/Forms/frmDiskInfoViewer.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 49 122 | 123 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/DiskInfoViewer.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 49 122 | 123 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/ctlCharacterSetViewer.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 51 122 | 123 | -------------------------------------------------------------------------------- /OricExplorer/Forms/ImageViewerForm.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | 124 | 39 125 | 126 | -------------------------------------------------------------------------------- /OricExplorer/User Controls/SectorViewer.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | 124 | 49 125 | 126 | -------------------------------------------------------------------------------- /OricExplorer/Classes/ConstantsAndEnums.cs: -------------------------------------------------------------------------------- 1 | namespace OricExplorer 2 | { 3 | using FastColoredTextBoxNS; 4 | using System.Drawing; 5 | 6 | public static class ConstantsAndEnums 7 | { 8 | public const string APP_VERSION_URL = "https://github.com/oric-software/OricExplorer/raw/master/dist/app_version.xml"; 9 | public const string UPDATE_EXTENSION = ".update"; 10 | 11 | public static readonly Color BACKGROUND = Color.FromArgb(30, 30, 30); 12 | 13 | public static readonly TextStyle DUMP_HEADER_STYLE = new TextStyle(Brushes.Teal, null, FontStyle.Regular); 14 | public static readonly TextStyle DUMP_HEX_STYLE = new TextStyle(Brushes.Gainsboro, null, FontStyle.Regular); 15 | public static readonly TextStyle DUMP_ASCII_STYLE = new TextStyle(Brushes.Gray, null, FontStyle.Regular); 16 | public static readonly TextStyle DUMP_MAIN_SELECTION_BACK_STYLE = new TextStyle(Brushes.Red, null, FontStyle.Regular); 17 | public static readonly TextStyle DUMP_MAIN_SELECTION_FRONT_STYLE = new TextStyle(Brushes.Yellow, null, FontStyle.Regular); 18 | public static readonly TextStyle DUMP_SECONDARY_SELECTION_BACK_STYLE = new TextStyle(Brushes.DarkBlue, null, FontStyle.Regular); 19 | 20 | public static readonly TextStyle ASSEMBLER_ADDRESS_STYLE = new TextStyle(Brushes.Teal, null, FontStyle.Regular); 21 | public static readonly TextStyle ASSEMBLER_HEX_STYLE = new TextStyle(Brushes.Gainsboro, null, FontStyle.Regular); 22 | public static readonly TextStyle ASSEMBLER_MNEMONIC_STYLE = new TextStyle(Brushes.Yellow, null, FontStyle.Regular); 23 | public static readonly TextStyle ASSEMBLER_OPERAND_STYLE = new TextStyle(Brushes.YellowGreen, null, FontStyle.Regular); 24 | public static readonly TextStyle ASSEMBLER_UNKNOWN_STYLE = new TextStyle(Brushes.Red, null, FontStyle.Regular); 25 | public static readonly TextStyle ASSEMBLER_ASCII_STYLE = new TextStyle(Brushes.Gray, null, FontStyle.Regular); 26 | 27 | public static readonly TextStyle BASIC_LINE_NUMBER_STYLE = new TextStyle(Brushes.Teal, null, FontStyle.Regular); 28 | public static readonly TextStyle BASIC_NUMBER_STYLE = new TextStyle(Brushes.Cyan, null, FontStyle.Regular); 29 | public static readonly TextStyle BASIC_STRING_STYLE = new TextStyle(Brushes.Tan, null, FontStyle.Regular); 30 | public static readonly TextStyle BASIC_LOOP_STYLE = new TextStyle(Brushes.Magenta, null, FontStyle.Regular); 31 | public static readonly TextStyle BASIC_BRANCHE_STYLE = new TextStyle(Brushes.Yellow, null, FontStyle.Regular); 32 | public static readonly TextStyle BASIC_KEYWORD_STYLE = new TextStyle(Brushes.Blue, null, FontStyle.Regular); 33 | public static readonly TextStyle BASIC_DATA_KEYWORD_STYLE = new TextStyle(Brushes.GreenYellow, null, FontStyle.Regular); 34 | public static readonly TextStyle BASIC_COMMENT_STYLE = new TextStyle(Brushes.Green, null, FontStyle.Regular); 35 | 36 | public static readonly TextStyle HYPERBASIC_ADDRESS_STYLE = new TextStyle(Brushes.Teal, null, FontStyle.Regular); 37 | public static readonly TextStyle HYPERBASIC_LABEL_STYLE = new TextStyle(Brushes.Orange, null, FontStyle.Regular); 38 | public static readonly TextStyle HYPERBASIC_NUMBER_STYLE = new TextStyle(Brushes.Cyan, null, FontStyle.Regular); 39 | public static readonly TextStyle HYPERBASIC_STRING_STYLE = new TextStyle(Brushes.Tan, null, FontStyle.Regular); 40 | public static readonly TextStyle HYPERBASIC_LOOP_STYLE = new TextStyle(Brushes.Magenta, null, FontStyle.Regular); 41 | public static readonly TextStyle HYPERBASIC_BRANCHE_STYLE = new TextStyle(Brushes.Yellow, null, FontStyle.Regular); 42 | public static readonly TextStyle HYPERBASIC_CODE_STYLE = new TextStyle(Brushes.Gainsboro, null, FontStyle.Regular); 43 | public static readonly TextStyle HYPERBASIC_COMMENT_STYLE = new TextStyle(Brushes.Green, null, FontStyle.Regular); 44 | 45 | public static readonly TextStyle TELEASS_ADDRESS_STYLE = new TextStyle(Brushes.Teal, null, FontStyle.Regular); 46 | public static readonly TextStyle TELEASS_LABEL_STYLE = new TextStyle(Brushes.Orange, null, FontStyle.Regular); 47 | public static readonly TextStyle TELEASS_MNEMONIC_STYLE = new TextStyle(Brushes.Yellow, null, FontStyle.Regular); 48 | public static readonly TextStyle TELEASS_OPERAND_STYLE = new TextStyle(Brushes.YellowGreen, null, FontStyle.Regular); 49 | public static readonly TextStyle TELEASS_COMMENT_STYLE = new TextStyle(Brushes.Green, null, FontStyle.Regular); 50 | 51 | 52 | public static readonly TextStyle[] SyntaxHighlightingDefaultValues = { DUMP_HEADER_STYLE, DUMP_HEX_STYLE, DUMP_ASCII_STYLE, DUMP_MAIN_SELECTION_BACK_STYLE, DUMP_MAIN_SELECTION_FRONT_STYLE, DUMP_SECONDARY_SELECTION_BACK_STYLE, ASSEMBLER_ADDRESS_STYLE, ASSEMBLER_HEX_STYLE, ASSEMBLER_MNEMONIC_STYLE, ASSEMBLER_OPERAND_STYLE, ASSEMBLER_ASCII_STYLE, ASSEMBLER_UNKNOWN_STYLE, BASIC_LINE_NUMBER_STYLE, BASIC_KEYWORD_STYLE, BASIC_BRANCHE_STYLE, BASIC_LOOP_STYLE, BASIC_STRING_STYLE, BASIC_NUMBER_STYLE, BASIC_DATA_KEYWORD_STYLE, BASIC_COMMENT_STYLE, HYPERBASIC_ADDRESS_STYLE, HYPERBASIC_LABEL_STYLE, HYPERBASIC_NUMBER_STYLE, HYPERBASIC_STRING_STYLE, HYPERBASIC_LOOP_STYLE, HYPERBASIC_BRANCHE_STYLE, HYPERBASIC_CODE_STYLE, HYPERBASIC_COMMENT_STYLE, TELEASS_ADDRESS_STYLE, TELEASS_LABEL_STYLE, TELEASS_MNEMONIC_STYLE, TELEASS_OPERAND_STYLE, TELEASS_COMMENT_STYLE }; 53 | 54 | public enum SyntaxHighlightingItems { DumpHeadersStyle, DumpHexStyle, DumpAsciiStyle, DumpMainSelectionBackStyle, DumpMainSelectionFrontStyle, DumpSecondarySelectionBackStyle, AssemblerAddressStyle, AssemblerHexStyle, AssemblerMnemonicStyle, AssemblerOperandStyle, AssemblerAsciiStyle, AssemblerUnknownStyle, BasicLineNumber, BasicKeyword, BasicBranches, BasicLoops, BasicString, BasicNumber, BasicDataKeyword, BasicComment, HyperbasicAddressStyle, HyperbasicLabelStyle, HyperbasicNumberStyle, HyperbasicStringStyle, HyperbasicLoopStyle, HyperbasicBrancheStyle, HyperbasicCodeStyle, HyperbasicCommentStyle, TeleassAddressStyle, TeleassLabelStyle, TeleassMnemonicStyle, TeleassOperandStyle, TeleassCommentStyle }; 55 | 56 | public enum SortMode { SORT_BY_NAME, SORT_BY_TYPE }; 57 | public enum Machine { Oric1, Atmos, Pravetz, Telestrat }; 58 | public enum MediaType { OricTape, TapeFile, OricDisk, DiskFile, ROMFile, UnknownMedia }; 59 | public enum UserControls { MainView, DataViewer, SectorViewer, ScreenViewer, CharacterSetViewer, DataFileViewer, SequentialFileViewer, None }; 60 | public enum ExportTo { Tape, Text, Raw }; 61 | 62 | public enum CaptureFormat { AnimatedGif, Bmp, Gif, Jpeg, Png, Tiff }; 63 | } 64 | } 65 | --------------------------------------------------------------------------------