Skip to content

Commit b47db5b

Browse files
committed
Advances
1 parent 573784c commit b47db5b

22 files changed

Lines changed: 772 additions & 26 deletions

File tree

639 Bytes
Loading

ZXBStudio/Assets/ramdiskFile.png

578 Bytes
Loading

ZXBStudio/BuildSystem/ZXProgram.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Text;
55
using System.Threading.Tasks;
66
using ZXBasicStudio.Classes;
7+
using ZXBasicStudio.DocumentEditors.ZXRamDisk.Classes;
78

89
namespace ZXBasicStudio.BuildSystem
910
{
@@ -14,6 +15,7 @@ public class ZXProgram
1415
public ZXMemoryMap? ProgramMap { get; set; }
1516
public ZXMemoryMap? DisassemblyMap { get; set; }
1617
public ZXVariableMap? Variables { get; set; }
18+
public List<ZXRamDisk> RamDisks { get; } = new List<ZXRamDisk>();
1719
public byte[] Binary { get; set; }
1820
public ushort Org { get; set; }
1921
public bool Debug { get; set; }

ZXBStudio/BuildSystem/ZXProjectBuilder.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,7 @@ private static bool PreBuild(bool debug, string path, TextWriter outLog)
624624

625625
foreach (var builder in builders)
626626
{
627-
if (!builder.Build(path, debug ? DocumentModel.Enums.ZXBuildType.Debug : DocumentModel.Enums.ZXBuildType.Release, null, outLog))
627+
if (!builder.Build(path, DocumentModel.Enums.ZXBuildStage.PreBuild, debug ? DocumentModel.Enums.ZXBuildType.Debug : DocumentModel.Enums.ZXBuildType.Release, null, outLog))
628628
{
629629
outLog.WriteLine("Error on pre-build stage, aborting...");
630630
return false;
@@ -642,7 +642,7 @@ private static bool PostBuild(bool debug, string path, ZXProgram CompiledProgram
642642

643643
foreach (var builder in builders)
644644
{
645-
if (!builder.Build(path, debug ? DocumentModel.Enums.ZXBuildType.Debug : DocumentModel.Enums.ZXBuildType.Release, CompiledProgram, outLog))
645+
if (!builder.Build(path, DocumentModel.Enums.ZXBuildStage.PostBuild, debug ? DocumentModel.Enums.ZXBuildType.Debug : DocumentModel.Enums.ZXBuildType.Release, CompiledProgram, outLog))
646646
{
647647
outLog.WriteLine("Error on post-build stage, aborting...");
648648
return false;

ZXBStudio/DocumentEditors/NextDows/log/ExportManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public bool Initialize(FileTypes fileType)
2929
}
3030

3131

32-
public bool Build(string BuildPath, ZXBuildType BuildType, ZXProgram? program, TextWriter OutputLog)
32+
public bool Build(string BuildPath, ZXBuildStage Stage, ZXBuildType BuildType, ZXProgram? program, TextWriter OutputLog)
3333
{
3434
if (!ServiceLayer.Initialized)
3535
{

ZXBStudio/DocumentEditors/ZXGraphics/log/ExportManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public bool Initialize(FileTypes fileType)
3232
}
3333

3434

35-
public bool Build(string BuildPath, ZXBuildType BuildType, ZXProgram? program, TextWriter OutputLog)
35+
public bool Build(string BuildPath, ZXBuildStage Stage, ZXBuildType BuildType, ZXProgram? program, TextWriter OutputLog)
3636
{
3737
if (!ServiceLayer.Initialized)
3838
{
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.ComponentModel.DataAnnotations;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace ZXBasicStudio.DocumentEditors.ZXRamDisk.Classes
9+
{
10+
public class ZXRamDiskFile
11+
{
12+
public required string DiskName { get; set; }
13+
public RamDiskBank Bank { get; set; }
14+
public List<ZXRamDiskContainedFile> Files { get; set; } = new List<ZXRamDiskContainedFile>();
15+
}
16+
17+
public class ZXRamDisk
18+
{
19+
public RamDiskBank Bank { get; set; }
20+
public required byte[] Data { get; set; }
21+
}
22+
23+
public class ZXRamDiskContainedFile
24+
{
25+
public required string Name { get; set; }
26+
public required string SourcePath { get; set; }
27+
public required byte[] Content { get; set; }
28+
public int Size => Content?.Length ?? 0;
29+
}
30+
31+
public enum RamDiskBank
32+
{
33+
Bank1 = 1,
34+
Bank3 = 3,
35+
Bank4 = 4,
36+
Bank6 = 6,
37+
Bank7 = 7
38+
}
39+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<UserControl xmlns="https://github.com/avaloniaui"
2+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
4+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5+
mc:Ignorable="d" d:DesignWidth="680" d:DesignHeight="450"
6+
x:Class="ZXBasicStudio.DocumentEditors.ZXRamDisk.Controls.ZXRamDiskEditor">
7+
<Grid RowDefinitions="90,*,40">
8+
<Border Margin="5,14,5,5" BorderBrush="White" BorderThickness="1" CornerRadius="5">
9+
<Grid RowDefinitions="5,*" ColumnDefinitions="96,*,64,160">
10+
<TextBlock Grid.Row="1" Classes="dialog" VerticalAlignment="Center" HorizontalAlignment="Right">Disk name:</TextBlock>
11+
<TextBox Grid.Row="1" Grid.Column="1" Classes="dialog" HorizontalAlignment="Stretch" MaxWidth="Infinity" Margin="5,5,15,5" Name="txtDiskName"></TextBox>
12+
<TextBlock Grid.Row="1" Grid.Column="2" Classes="dialog" VerticalAlignment="Center" HorizontalAlignment="Right">Target bank:</TextBlock>
13+
<ComboBox Classes="dialog" Grid.Row="1" Grid.Column="3" Name="cbBank" Width="110" SelectedIndex="0" FontSize="10">
14+
<ComboBoxItem>Bank 4</ComboBoxItem>
15+
<ComboBoxItem>Bank 6</ComboBoxItem>
16+
<ComboBoxItem>Bank 1</ComboBoxItem>
17+
<ComboBoxItem>Bank 3</ComboBoxItem>
18+
<ComboBoxItem>Bank 7</ComboBoxItem>
19+
</ComboBox>
20+
</Grid>
21+
</Border>
22+
<Border Grid.Row="1" Margin="5,14,5,5" BorderBrush="White" BorderThickness="1" CornerRadius="5">
23+
<Grid RowDefinitions="5,24,*" ColumnDefinitions="320,*">
24+
<TextBlock Grid.Row="1" Classes="dialog" HorizontalAlignment="Center" VerticalAlignment="Center">Add file</TextBlock>
25+
<TextBlock Grid.Row="1" Grid.Column="1" Classes="dialog" HorizontalAlignment="Center" VerticalAlignment="Center">File list</TextBlock>
26+
<ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Auto" Margin="10">
27+
<Grid ColumnDefinitions="56,*,32" RowDefinitions="Auto,Auto,Auto,Auto,16,*">
28+
<TextBlock Classes="dialog" HorizontalAlignment="Right" VerticalAlignment="Center">File:</TextBlock>
29+
<TextBox Grid.Column="1" Classes="dialog" HorizontalAlignment="Stretch" MaxWidth="Infinity" Margin="5,5,0,5" Name="txtFilePath"></TextBox>
30+
<Button Grid.Column="2" Classes="dialog" Margin="10,5,10,5" Width="32" Height="32" Name="btnSelectFile">...</Button>
31+
<TextBlock Grid.Row="1" Classes="dialog" HorizontalAlignment="Right" VerticalAlignment="Center">Name:</TextBlock>
32+
<TextBox Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" Classes="dialog" HorizontalAlignment="Stretch" MaxWidth="Infinity" Margin="5,5,10,5" MaxLength="10" Name="txtFileName"></TextBox>
33+
34+
<Button Grid.Row="5" Grid.ColumnSpan="3" Classes="dialog" Margin="10,5,10,5" Height="32" Name="btnAddFile" VerticalAlignment="Bottom">Add file</Button>
35+
</Grid>
36+
</ScrollViewer>
37+
<Grid Grid.Row="2" Grid.Column="1" ColumnDefinitions="*,*,*,48" RowDefinitions="24,28,*,48">
38+
<Border Background="#202020" BorderBrush="White" BorderThickness="1">
39+
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">File name</TextBlock>
40+
</Border>
41+
<Border Grid.Column="1" Background="#202020" BorderBrush="White" BorderThickness="1">
42+
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">Path</TextBlock>
43+
</Border>
44+
<Border Grid.Column="2" Background="#202020" BorderBrush="White" BorderThickness="1">
45+
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">Size</TextBlock>
46+
</Border>
47+
<ListBox Grid.Row="1" Grid.RowSpan="3" Grid.ColumnSpan="3" Margin="0,0,0,15" ItemsSource="{Binding Files}" Name="lstFiles">
48+
<ListBox.ItemTemplate>
49+
<DataTemplate>
50+
<Grid ColumnDefinitions="*,*,*">
51+
<TextBlock HorizontalAlignment="Left" Classes="dialog" TextTrimming="CharacterEllipsis" Text="{Binding Name}">asas</TextBlock>
52+
<TextBlock Grid.Column="1" HorizontalAlignment="Left" Classes="dialog" TextTrimming="CharacterEllipsis" Text="{Binding SourcePath}"></TextBlock>
53+
<TextBlock Grid.Column="2" HorizontalAlignment="Left" Classes="dialog" TextTrimming="CharacterEllipsis" Text="{Binding Size}"></TextBlock>
54+
</Grid>
55+
</DataTemplate>
56+
</ListBox.ItemTemplate>
57+
</ListBox>
58+
<Button Classes="dialog" Grid.Column="3" Grid.Row="1" Grid.RowSpan="3" VerticalAlignment="Stretch" Margin="10,5,10,15" Name="btnRemoveFile">
59+
<Svg Path="/Svg/White/minus-solid.svg"></Svg>
60+
</Button>
61+
</Grid>
62+
</Grid>
63+
</Border>
64+
<TextBlock Grid.Row="1" Margin="15,0,0,0" Padding="5" Background="#202020" HorizontalAlignment="Left" VerticalAlignment="Top">Files</TextBlock>
65+
<Grid ColumnDefinitions="*,*" Grid.Row="2">
66+
<Button Classes="dialog" Name="btnSave">Save changes</Button>
67+
<Button Classes="dialog" Grid.Column="1" Name="btnDiscard">Discard changes</Button>
68+
</Grid>
69+
</Grid>
70+
</UserControl>

0 commit comments

Comments
 (0)