rewrite, its now a vm for a shitty subset of assembly
This commit is contained in:
+24
-5
@@ -5,12 +5,31 @@ using System.Text;
|
||||
|
||||
namespace Core
|
||||
{
|
||||
// instruction set framework
|
||||
public enum ComponentType
|
||||
{
|
||||
EQ_ADD,
|
||||
EQ_SUB,
|
||||
EQ_DIV,
|
||||
EQ_MUL,
|
||||
QZ_VAR
|
||||
NVAR, // Sets a variable and its value
|
||||
RVAR, // Removes a variable
|
||||
SVAR, // Sets a variables value
|
||||
LDA, // Loads a memory value into ram
|
||||
STA, // Seeks to a memory value into the accumulator
|
||||
LDX, // Loads accumulator into X
|
||||
LDY, // Loads accumulator into Y
|
||||
STX, // Stores X into accumulator
|
||||
STY, // Stores Y into accumulator
|
||||
SEA, // Sets accumulator
|
||||
ADD, // Adds X + Y then stores in Accumulator
|
||||
SUB, // Subtracts X - Y then stores in Accumulator
|
||||
MUL, // Multiplies X * Y then stores in Accumulator
|
||||
DIV, // Divides X / Y then stores in Accumulator
|
||||
JZE, // Jumps to a pointer in the program on zero flag
|
||||
JMP, // Jumps to a pointer in the program
|
||||
SFG, // Sets a flag to true
|
||||
RFG, // Sets a flag to false
|
||||
PRA, // Prints accumulator
|
||||
PRX, // Prints X
|
||||
PRY, // Prints Y
|
||||
PRM, // Prints value of memory address
|
||||
HLT // Halts execution
|
||||
}
|
||||
}
|
||||
|
||||
+11
-1
@@ -34,6 +34,9 @@
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="SDL2-CS, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ppy.SDL2-CS.1.0.82\lib\netstandard2.0\SDL2-CS.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
@@ -44,11 +47,18 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ComponentType.cs" />
|
||||
<Compile Include="IEquationComponent.cs" />
|
||||
<Compile Include="DebugDumper.cs" />
|
||||
<Compile Include="Operations.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Registrate.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Doc.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
public class DebugDumper
|
||||
{
|
||||
public static void GenerateDumpFile(string asmCode, string outputPath)
|
||||
{
|
||||
string[] lines = asmCode.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
|
||||
StringBuilder dump = new StringBuilder();
|
||||
Dictionary<string, int> variables = new Dictionary<string, int>();
|
||||
int accumulator = 0;
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
|
||||
for (int i = 0; i < lines.Length; i++)
|
||||
{
|
||||
string line = lines[i].Trim();
|
||||
if (string.IsNullOrEmpty(line) || line.StartsWith("::"))
|
||||
{
|
||||
dump.AppendLine($"[{i}] {line}");
|
||||
continue;
|
||||
}
|
||||
|
||||
string[] tokens = line.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
if (tokens.Length == 0) continue;
|
||||
|
||||
string command = tokens[0].ToUpper();
|
||||
string comment = "";
|
||||
int ResolveValue(string val)
|
||||
{
|
||||
if (variables.ContainsKey(val)) return variables[val];
|
||||
if (int.TryParse(val, out int num)) return num;
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (command)
|
||||
{
|
||||
// Variables
|
||||
case "NVAR":
|
||||
string newVar = tokens[1];
|
||||
int newVal = ResolveValue(tokens[2]);
|
||||
variables[newVar] = newVal;
|
||||
comment = $"Create '{newVar}' with value of '{newVal}'";
|
||||
break;
|
||||
case "SVAR":
|
||||
string setVar = tokens[1];
|
||||
int setVal = ResolveValue(tokens[2]);
|
||||
variables[setVar] = setVal;
|
||||
comment = $"Set variable '{setVar}' to '{setVal}'";
|
||||
break;
|
||||
case "RVAR":
|
||||
variables.Remove(tokens[1]);
|
||||
comment = $"Remove variable '{tokens[1]}'";
|
||||
break;
|
||||
|
||||
// Memory / Registers
|
||||
case "LDA":
|
||||
comment = $"Load memory address {tokens[1]} into Accumulator";
|
||||
break;
|
||||
case "STA":
|
||||
comment = $"Store the Accumulator ({accumulator}) into Memory address {tokens[1]}";
|
||||
break;
|
||||
case "LDX":
|
||||
x = accumulator;
|
||||
comment = $"Load Accumulator ({accumulator}) into X";
|
||||
break;
|
||||
case "LDY":
|
||||
y = accumulator;
|
||||
comment = $"Load Accumulator ({accumulator}) into Y";
|
||||
break;
|
||||
case "STX":
|
||||
accumulator = x;
|
||||
comment = $"Store X ({x}) into Accumulator";
|
||||
break;
|
||||
case "STY":
|
||||
accumulator = y;
|
||||
comment = $"Store Y ({y}) into Accumulator";
|
||||
break;
|
||||
case "SEA":
|
||||
int seaVal = ResolveValue(tokens[1]);
|
||||
accumulator = seaVal;
|
||||
// If they passed a variable name, show both the name and the value
|
||||
if (variables.ContainsKey(tokens[1]))
|
||||
comment = $"Set Accumulator to '{tokens[1]}' ({seaVal})";
|
||||
else
|
||||
comment = $"Set Accumulator to {seaVal}";
|
||||
break;
|
||||
|
||||
// Arithmetic
|
||||
case "ADD":
|
||||
accumulator = x + y;
|
||||
comment = $"Add X ({x}) and Y ({y}) and store into the Accumulator ({accumulator})";
|
||||
break;
|
||||
case "SUB":
|
||||
accumulator = x - y;
|
||||
comment = $"Subtract Y ({y}) from X ({x}) and store into the Accumulator ({accumulator})";
|
||||
break;
|
||||
case "MUL":
|
||||
accumulator = x * y;
|
||||
comment = $"Multiply X ({x}) and Y ({y}) and store into the Accumulator ({accumulator})";
|
||||
break;
|
||||
case "DIV":
|
||||
if (y != 0) accumulator = x / y;
|
||||
comment = $"Divide X ({x}) by Y ({y}) and store into the Accumulator ({accumulator})";
|
||||
break;
|
||||
|
||||
// Flow Control
|
||||
case "JZE":
|
||||
comment = $"Jump to line {tokens[1]} if Zero flag is true";
|
||||
break;
|
||||
case "JMP":
|
||||
comment = $"Jump to line {tokens[1]}";
|
||||
break;
|
||||
case "SFG":
|
||||
comment = $"Set flag '{tokens[1]}' to true";
|
||||
break;
|
||||
case "RFG":
|
||||
comment = $"Set flag '{tokens[1]}' to false";
|
||||
break;
|
||||
|
||||
// Debug
|
||||
case "PRA":
|
||||
comment = $"Print Accumulator ({accumulator})";
|
||||
break;
|
||||
case "PRX":
|
||||
comment = $"Print X ({x})";
|
||||
break;
|
||||
case "PRY":
|
||||
comment = $"Print Y ({y})";
|
||||
break;
|
||||
case "PRM":
|
||||
comment = $"Print value of memory address {tokens[1]}";
|
||||
break;
|
||||
case "HLT":
|
||||
comment = "Halt execution";
|
||||
break;
|
||||
|
||||
default:
|
||||
comment = "Unknown command";
|
||||
break;
|
||||
}
|
||||
dump.AppendLine($"[{i}] {line,-20} :: {comment}");
|
||||
}
|
||||
File.WriteAllText(outputPath, dump.ToString());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
:: Registers
|
||||
Accumulator (A-Register)
|
||||
X, Y registers
|
||||
Memory (8kb)
|
||||
:: Flags
|
||||
Z; Zero
|
||||
|
||||
:: Helpers
|
||||
NVAR <name>, <value>; Sets new a variable and its value
|
||||
RVAR <name>; Removes a variable
|
||||
SVAR <name>, <newval>; Sets a variables value
|
||||
|
||||
:: Commands (Memory)
|
||||
LDA <address>; Loads a memory value into ram
|
||||
STA <address>; Seeks to a memory value into the accumulator
|
||||
LDX; Loads accumulator into X
|
||||
LDY; Loads accumulator into Y
|
||||
STX; Stores X into accumulator
|
||||
STY; Stores Y into accumulator
|
||||
SEA <value>; Sets accumulator
|
||||
|
||||
:: Commands (Arithmetic)
|
||||
ADD; Adds X + Y then stores in Accumulator
|
||||
SUB; Subtracts X - Y then stores in Accumulator
|
||||
MUL; Multiplies X * Y then stores in Accumulator
|
||||
DIV; Divides X / Y then stores in Accumulator
|
||||
|
||||
:: Commands (flow control)
|
||||
JZE <pointer>; Jumps to a pointer in the program on zero flag
|
||||
JMP <pointer>; Jumps to a pointer in the program
|
||||
SFG <flag>; Sets a flag to true
|
||||
RFG <flag; Sets a flag to false
|
||||
|
||||
:: Commands (Debug)
|
||||
PRA; Prints accumulator
|
||||
PRX; Prints X
|
||||
PRY; Prints Y
|
||||
PRM <address>; Prints value of memory address
|
||||
@@ -1,15 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Core
|
||||
{
|
||||
interface IEquationComponent
|
||||
{
|
||||
ComponentType Type { get; set; }
|
||||
string Arg1 { get; set; }
|
||||
string Arg2 { get; set; }
|
||||
void Operate();
|
||||
}
|
||||
}
|
||||
+187
-67
@@ -2,99 +2,219 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SDL2;
|
||||
|
||||
namespace Core
|
||||
{
|
||||
public class Operations
|
||||
{
|
||||
public Dictionary<string, float> Variables = new Dictionary<string, float>();
|
||||
public Operations(int pixBufSize) => WindowSize = pixBufSize;
|
||||
public Dictionary<string, int> Variables = new Dictionary<string, int>();
|
||||
public static int WindowSize;
|
||||
public int Accumulator = 0;
|
||||
public int StackX = 0;
|
||||
public int StackY = 0;
|
||||
public int[] Memory = new int[256];
|
||||
public string Filename;
|
||||
public int pointer = 0;
|
||||
public int[] PixBufferR = new int[WindowSize];
|
||||
public int[] PixBufferG = new int[WindowSize];
|
||||
public int[] PixBufferB = new int[WindowSize];
|
||||
|
||||
private float ResolveValue(string value)
|
||||
|
||||
private int ResolveValue(string shite)
|
||||
{
|
||||
// Checks if the value contains any letters
|
||||
if (!value.Any(char.IsLetter))
|
||||
if (shite.Any(char.IsLetter))
|
||||
{
|
||||
float.TryParse(value, out float result);
|
||||
return result;
|
||||
switch (shite)
|
||||
{
|
||||
case "ACC":
|
||||
return Accumulator;
|
||||
case "RAX":
|
||||
return StackX;
|
||||
case "RAY":
|
||||
return StackY;
|
||||
}
|
||||
Variables.TryGetValue(shite, out int a);
|
||||
return a;
|
||||
}
|
||||
else
|
||||
{
|
||||
Variables.TryGetValue(value, out float result);
|
||||
return result;
|
||||
int.TryParse(shite, out int a);
|
||||
return a;
|
||||
}
|
||||
}
|
||||
public float ExecuteCommand(ComponentType type, string val1, string val2)
|
||||
|
||||
|
||||
public void ExecuteCommand(ComponentType type, string[] args)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
default: return 2;
|
||||
case ComponentType.EQ_ADD:
|
||||
float a = ResolveValue(val1);
|
||||
float b = ResolveValue(val2);
|
||||
return a + b;
|
||||
case ComponentType.EQ_SUB:
|
||||
float aS = ResolveValue(val1);
|
||||
float bS = ResolveValue(val2);
|
||||
return aS - bS;
|
||||
case ComponentType.EQ_MUL:
|
||||
float aM = ResolveValue(val1);
|
||||
float bM = ResolveValue(val2);
|
||||
return aM * bM;
|
||||
case ComponentType.EQ_DIV:
|
||||
float aD = ResolveValue(val1);
|
||||
float bD = ResolveValue(val2);
|
||||
return aD / bD;
|
||||
default: return;
|
||||
// Variables
|
||||
case ComponentType.NVAR:
|
||||
string name = args[1];
|
||||
int value = ResolveValue(args[2]);
|
||||
Variables.Add(name, value);
|
||||
return;
|
||||
case ComponentType.RVAR:
|
||||
string rname = args[1];
|
||||
Variables.Remove(rname);
|
||||
return;
|
||||
case ComponentType.SVAR:
|
||||
string sname = args[1];
|
||||
int svalue = ResolveValue(args[2]);
|
||||
Variables[sname] = svalue;
|
||||
return;
|
||||
|
||||
case ComponentType.QZ_VAR:
|
||||
float val = 0.0f;
|
||||
float.TryParse(val2, out val);
|
||||
if (Variables.ContainsKey(val1))
|
||||
{
|
||||
Variables[val1] = val;
|
||||
}
|
||||
else
|
||||
{
|
||||
Variables.Add(val1, val);
|
||||
}
|
||||
return val;
|
||||
|
||||
// Memory/stack shite
|
||||
case ComponentType.LDA:
|
||||
Accumulator = Memory[ResolveValue(args[1])];
|
||||
return;
|
||||
case ComponentType.STA:
|
||||
Memory[ResolveValue(args[1])] = Accumulator;
|
||||
return;
|
||||
case ComponentType.LDX:
|
||||
StackX = Accumulator;
|
||||
return;
|
||||
case ComponentType.LDY:
|
||||
StackY = Accumulator;
|
||||
return;
|
||||
case ComponentType.STX:
|
||||
Accumulator = StackX;
|
||||
return;
|
||||
case ComponentType.STY:
|
||||
Accumulator = StackY;
|
||||
return;
|
||||
case ComponentType.SEA:
|
||||
Accumulator = ResolveValue(args[1]);
|
||||
return;
|
||||
|
||||
|
||||
// flow control
|
||||
case ComponentType.JMP:
|
||||
pointer = ResolveValue(args[1]) - 1;
|
||||
return;
|
||||
|
||||
// math
|
||||
case ComponentType.ADD:
|
||||
Accumulator = StackX + StackY;
|
||||
return;
|
||||
case ComponentType.SUB:
|
||||
Accumulator = StackX - StackY;
|
||||
return;
|
||||
case ComponentType.MUL:
|
||||
Accumulator = StackX * StackY;
|
||||
return;
|
||||
case ComponentType.DIV:
|
||||
Accumulator = StackX / StackY;
|
||||
return;
|
||||
|
||||
|
||||
|
||||
// Debug commands
|
||||
case ComponentType.PRA:
|
||||
Console.WriteLine(Accumulator);
|
||||
return;
|
||||
case ComponentType.PRX:
|
||||
Console.WriteLine(StackX);
|
||||
return;
|
||||
case ComponentType.PRY:
|
||||
Console.WriteLine(StackY);
|
||||
return;
|
||||
case ComponentType.PRM:
|
||||
int.TryParse(args[1], out int valB);
|
||||
Console.WriteLine(Memory[valB]);
|
||||
return;
|
||||
case ComponentType.HLT:
|
||||
while (true) { }
|
||||
}
|
||||
}
|
||||
public float EquParserLoop(string equ)
|
||||
public void EquParserLoop(string equ)
|
||||
{
|
||||
if (equ != "")
|
||||
string[] lines = equ.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
|
||||
while (pointer < lines.Length)
|
||||
{
|
||||
string[] tokens = equ.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
if (tokens.Length >= 3)
|
||||
string[] tokens = lines[pointer].Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
string command = tokens[0];
|
||||
if (tokens.Length == 0)
|
||||
{
|
||||
string command = tokens[0]; // "ADD" or "VAR"
|
||||
string val1 = tokens[1]; // "X"
|
||||
string val2 = tokens[2]; // "0" or "10"
|
||||
|
||||
switch (command)
|
||||
{
|
||||
default: return 0;
|
||||
case "ADD":
|
||||
Console.WriteLine("[CommandParser] Executed command ADD");
|
||||
return ExecuteCommand(ComponentType.EQ_ADD, val1, val2);
|
||||
case "SUB":
|
||||
Console.WriteLine("[CommandParser] Executed command ADD");
|
||||
return ExecuteCommand(ComponentType.EQ_SUB, val1, val2);
|
||||
case "MUL":
|
||||
Console.WriteLine("[CommandParser] Executed command ADD");
|
||||
return ExecuteCommand(ComponentType.EQ_MUL, val1, val2);
|
||||
case "DIV":
|
||||
Console.WriteLine("[CommandParser] Executed command ADD");
|
||||
return ExecuteCommand(ComponentType.EQ_DIV, val1, val2);
|
||||
case "VAR":
|
||||
Console.WriteLine("[CommandParser] Executed command ADD");
|
||||
return ExecuteCommand(ComponentType.QZ_VAR, val1, val2);
|
||||
}
|
||||
pointer++;
|
||||
continue;
|
||||
}
|
||||
else { return 0; }
|
||||
|
||||
switch (command)
|
||||
{
|
||||
default: break;
|
||||
case "::":
|
||||
break;
|
||||
// variables
|
||||
case "NVAR":
|
||||
ExecuteCommand(ComponentType.NVAR, tokens);
|
||||
break;
|
||||
case "RVAR":
|
||||
ExecuteCommand(ComponentType.RVAR, tokens);
|
||||
break;
|
||||
case "SVAR":
|
||||
ExecuteCommand(ComponentType.SVAR, tokens);
|
||||
break;
|
||||
|
||||
// memory
|
||||
case "LDA":
|
||||
ExecuteCommand(ComponentType.LDA, tokens);
|
||||
break;
|
||||
case "STA":
|
||||
ExecuteCommand(ComponentType.STA, tokens);
|
||||
break;
|
||||
case "LDX":
|
||||
ExecuteCommand(ComponentType.LDX, tokens);
|
||||
break;
|
||||
case "LDY":
|
||||
ExecuteCommand(ComponentType.LDY, tokens);
|
||||
break;
|
||||
case "STX":
|
||||
ExecuteCommand(ComponentType.STX, tokens);
|
||||
break;
|
||||
case "STY":
|
||||
ExecuteCommand(ComponentType.STY, tokens);
|
||||
break;
|
||||
case "SEA":
|
||||
ExecuteCommand(ComponentType.SEA, tokens);
|
||||
break;
|
||||
|
||||
// flow control
|
||||
case "JMP":
|
||||
ExecuteCommand(ComponentType.JMP, tokens);
|
||||
break;
|
||||
|
||||
// math
|
||||
case "ADD":
|
||||
ExecuteCommand(ComponentType.ADD, tokens);
|
||||
break;
|
||||
|
||||
// debug
|
||||
case "PRA":
|
||||
ExecuteCommand(ComponentType.PRA, tokens);
|
||||
break;
|
||||
case "PRX":
|
||||
ExecuteCommand(ComponentType.PRX, tokens);
|
||||
break;
|
||||
case "PRY":
|
||||
ExecuteCommand(ComponentType.PRY, tokens);
|
||||
break;
|
||||
case "PRM":
|
||||
ExecuteCommand(ComponentType.PRM, tokens);
|
||||
break;
|
||||
|
||||
case "HLT":
|
||||
ExecuteCommand(ComponentType.HLT, tokens);
|
||||
break;
|
||||
}
|
||||
pointer++;
|
||||
}
|
||||
|
||||
else { return 0; }
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<dllmap dll="SDL2" os="windows" target="SDL2.dll"/>
|
||||
<dllmap dll="SDL2" os="osx" target="libSDL2.dylib"/>
|
||||
<dllmap dll="SDL2" os="linux" target="libSDL2-2.0.so.0"/>
|
||||
</configuration>
|
||||
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<dllmap dll="SDL2" os="windows" target="SDL2.dll"/>
|
||||
<dllmap dll="SDL2" os="osx" target="libSDL2.dylib"/>
|
||||
<dllmap dll="SDL2" os="linux" target="libSDL2-2.0.so.0"/>
|
||||
</configuration>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<dllmap dll="SDL2" os="windows" target="SDL2.dll"/>
|
||||
<dllmap dll="SDL2" os="osx" target="libSDL2.dylib"/>
|
||||
<dllmap dll="SDL2" os="linux" target="libSDL2-2.0.so.0"/>
|
||||
</configuration>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
3e45e6502454303d51fd05c670a9d135872dffc387ca9c06751f794b9bdd86b7
|
||||
7e4ab6ec30c119e58bb28285aaa45d2b6248630033dfbcb03f8acc446e1d573c
|
||||
|
||||
@@ -4,3 +4,12 @@ C:\Users\Administrator\MathApp\Core\obj\Debug\Core.csproj.AssemblyReference.cach
|
||||
C:\Users\Administrator\MathApp\Core\obj\Debug\Core.csproj.CoreCompileInputs.cache
|
||||
C:\Users\Administrator\MathApp\Core\obj\Debug\Core.dll
|
||||
C:\Users\Administrator\MathApp\Core\obj\Debug\Core.pdb
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\bin\Debug\Core.dll
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\bin\Debug\Core.pdb
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\obj\Debug\Core.csproj.AssemblyReference.cache
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\obj\Debug\Core.csproj.CoreCompileInputs.cache
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\obj\Debug\Core.dll
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\obj\Debug\Core.pdb
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\bin\Debug\Core.dll.config
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\bin\Debug\SDL2-CS.dll
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\obj\Debug\Core.csproj.Up2Date
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
dff978b31ee0f611c31473c94227ce5c3488cadf15419a0b16703dd84b7a2775
|
||||
@@ -0,0 +1,9 @@
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\bin\Release\Core.dll.config
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\bin\Release\Core.dll
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\bin\Release\Core.pdb
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\bin\Release\SDL2-CS.dll
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\obj\Release\Core.csproj.AssemblyReference.cache
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\obj\Release\Core.csproj.CoreCompileInputs.cache
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\obj\Release\Core.csproj.Up2Date
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\obj\Release\Core.dll
|
||||
C:\Users\Madeline McWhorter\MathApp\Core\obj\Release\Core.pdb
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="ppy.SDL2-CS" version="1.0.82" targetFramework="net48" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user