rbaker26 / sap1emu Goto Github PK
View Code? Open in Web Editor NEWAn Emulator for the SAP-1 Computer
Home Page: https://sap1emu.net
License: GNU General Public License v3.0
An Emulator for the SAP-1 Computer
Home Page: https://sap1emu.net
License: GNU General Public License v3.0
In the right column under Projects
The Engine is really slowed down because it needs to read from a file to decode the Instructions for the Frame.
It needs to be rewritten to be less resource-heavy.
Description:
If wee want to open up the API for others to use, wee need a way to issue and track API token to prevent spamming of the APi.
The GUI should also auth to the API for its requests
To-Do List
Possible Resources:
https://docs.microsoft.com/en-us/dotnet/architecture/microservices/secure-net-microservices-web-applications/
https://josef.codes/asp-net-core-protect-your-api-with-api-keys/
https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad
What part of the project is your feature request for?
Is your feature request related to a problem? Please describe.
See #19
If there is not HLT in the program, the parser should throw an error.
The error message should be more descriptive than the current message.
If there is no HLT, it tries to run the data section
Write Unit test for code file
LDA170_NoHLT.s
It needs to return with an error.
Description:
The Docs/API section of this project needs to link to the Swagger/OpenAPI Docs and needs to run through how to connect to this API using common languages.
To-Do List
Definition of Done
Description:
Dependabot can auto create PRs to update NuGet Packages.
To-Do List
Set up Dependabot Config File
Definition of Done
Screenshots (optional)
Where was the bug located
Describe the bug
Reported by George Eaton,
In the Emulator CLI, the ALU didn't contain the sum of the A and B registers.
To Reproduce
Run program and when updating A and B Registers in debug mode with and single step the program.
Expected behavior
Whenever the A or B Register update, regardless of the microcode, the ALU should also update.
Screenshots
None available.
Desktop (please complete the following information):
Additional context
My guess to the problem is the ALU needs to be registered in the Observerpattern after A and B this way it will run its update after both A and B update.
In the right column under Projects
The back and forward buttons sometimes need a double click to advance the frame.
This will require a refactor.
Description:
Does it make sense to save the Emulator Output as a file so a user can load it back in to run it?
I am leaning towards no.
The same input to a file may make some sense. The output of the GUI is currently a huge JSON array and would have to be parsed and formatted before being user-readable.
Talk with George to find out if this is really needed.
To-Do List
Definition of Done
Screenshots (optional)
Description:
Rename SAP1EMU.Engine-CLI to SAP1EMU.CLI
This will be to make sure the Project Names are the most reflective of their purpose.
To-Do List
Definition of Done
When SAP1EMU.Engine-CLI and its file resources are renamed to SAP1EMU.CLI
Screenshots (optional)
In the right column under Projects
The Instruction should be resolved by this point.
The issue is work in progress.
Description:
If you run the LDA170.s program from SAP1EMU.CLI.Test.sln, you should see 170 and -86
Currently you only see 170 170
To-Do List
What part of the projec is your feature request for?
Is your feature request related to a problem? Please describe.
Implement the Flag and Jump Register to further decouple the registers and components.
Describe the solution you'd like
The flags register would contain all of the Flag bools for the system.
The Jump Register would tell the PC when to jump.
Describe alternatives you've considered
n/a
Additional context
n/a
Description:
Currently Lib.Test has Unit Tests for the LIb and CI Test for the Engine.
The CI Engine Tests should be moved to a new project called Engine.Test
To-Do List
Definition of Done
When the above testing is in the correct project.
Screenshots (optional)
In the right column under Projects
The build tools on the gui-work branch are broken after the nugget update.
Needs to be investigated.
build tools in master are still working
In the right column under Projects
The RAM does not update on the WebApp
Description:
The Emulator Page will be zero-ed out when the user resubmits code to the API
Description:
To-Do List
Definition of Done
Screenshots (optional)
Description:
Currently, the testing is fractured across the Solution. Test should belong in the *.Test csproj that relates to what they are testing.
For example, AssemblerTest.cs needs to be migrated over to Assembler.Test instead of Lib.Test.
To-Do List
Definition of Done
Screenshots (optional)
In the right column under Projects
The command "dotnet build SAP1EMU-no-gui.sln" exited with 1.
1.62s$ dotnet test SAP1EMU-no-gui.sln
/usr/share/dotnet/sdk/3.1.302/NuGet.targets(282,5): error MSB3202: The project file "/home/travis/build/rbaker26/SAP1EMU/SAP1EMU.Assembler-CLI/SAP1EMU.Assembler-CLI.csproj" was not found. [/home/travis/build/rbaker26/SAP1EMU/SAP1EMU-no-gui.sln]
/usr/share/dotnet/sdk/3.1.302/NuGet.targets(282,5): error MSB3202: The project file "/home/travis/build/rbaker26/SAP1EMU/SAP1EMU.Sandbox/SAP1EMU.Sandbox.csproj" was not found. [/home/travis/build/rbaker26/SAP1EMU/SAP1EMU-no-gui.sln]
The command "dotnet test SAP1EMU-no-gui.sln" exited with 1.
What part of the projec is your feature request for?
Is your feature request related to a problem? Please describe.
If there is no HLT in the program, the program should endlessly loop over and over again.
Describe the solution you'd like
"
Describe alternatives you've considered
n/a
Additional context
n/a
The version numbers in the CLI do not match those of the release.
SAP1Emu.exe
see screenshot
see screenshot
When an operation that should trigger the underflow operation occurs, the overflow flag is also set.
What part of the project is your feature request for?
Is your feature request related to a problem? Please describe.
This project needs Aria support to increase accessibility. This will be a requirement if it is to be used by schools due to ADA.
Describe the solution you'd like
All controls and displays need to be audited for proper Aria Attributes
This will need to be broken into multiple tickets based off of component/page scope.
See Aria Docs
The release binaries contain all of the parent directories instead of just the relevant directory.
Download
Roll your own
git clone https://github.com/rbaker26/SAP1EMU.git
cd SAP1EMU/SAP1EMU.Engine-CLI/
make
The compressed outputs should be at:
SAP1EMU/SAP1EMU.Engine-CLI/bin/Release/netcoreapp3.1/publish/output
Note how the unzipped directory contains a bunch of parent directories instead of just the files at the target directory.
cd SAP1EMU/SAP1EMU.Engine-CLI/bin/Release/netcoreapp3.1/publish/output
tar -xf linux-x64.tar
cd SAP1EMU.Engine-CLI
ls -l
total 0
drwxrwxrwx 1 rbaker rbaker 4096 Apr 28 11:59 bin
cd bin
ls -l
total 0
drwxrwxrwx 1 rbaker rbaker 4096 Apr 28 11:59 Release
# etc etc
When unzipped, the resulting folder should only contain the contents of linux-x64.
For example:
tar -xf linux-x64.tar
cd linux-x64
ls -l
total 364
-rwxrwxrwx 1 rbaker rbaker 204800 Jan 1 19:01 CommandLine.dll
-rwxrwxrwx 1 rbaker rbaker 7168 Apr 22 10:19 SAP1EMU.Assembler.dll
-rwxrwxrwx 1 rbaker rbaker 1676 Apr 22 10:19 SAP1EMU.Assembler.pdb
-rwxrwxrwx 1 rbaker rbaker 6656 Apr 22 10:19 SAP1EMU.Engine.dll
-rwxrwxrwx 1 rbaker rbaker 1612 Apr 22 10:19 SAP1EMU.Engine.pdb
-rwxrwxrwx 1 rbaker rbaker 19456 Apr 22 10:19 SAP1EMU.Lib.dll
-rwxrwxrwx 1 rbaker rbaker 7932 Apr 22 10:19 SAP1EMU.Lib.pdb
-rwxrwxrwx 1 rbaker rbaker 86424 Apr 22 10:19 SAP1Emu
-rwxrwxrwx 1 rbaker rbaker 1950 Apr 22 10:19 SAP1Emu.deps.json
-rwxrwxrwx 1 rbaker rbaker 14336 Apr 22 10:19 SAP1Emu.dll
-rwxrwxrwx 1 rbaker rbaker 2952 Apr 22 10:19 SAP1Emu.pdb
-rwxrwxrwx 1 rbaker rbaker 146 Apr 22 10:19 SAP1Emu.runtimeconfig.json
Currently, the unzipped folder contains:
linux-x64/SAP1EMU.Engine-CLI/bin/Release/netcoreapp3.1/publish/linux-x64/the_target_files
instead of
linux-x64/the_target_files
The Makefile needs to be adjusted to ensure the extra directories do not get included.
This is a screenshot of the win10-x64, but it has the same nested directory behavior.
Note the URI box at the top of the window.
Creates unnecessary work for the user.
What part of the projec is your feature request for?
Is your feature request related to a problem? Please describe.
Assembly inputs, file and typing, should support comments.
Describe the solution you'd like
Input files should be able to contain comments like the following:
LDA 0xF # This is a comment
# Whole line comment
/* Also
a
Comment */
HLT /* I could also do this */
Describe alternatives you've considered
n/a
Additional context
Here is an example of the feature request.
Description:
It would be cool to save the user input into the emulator so we can analyze how people are using the site.
To-Do List
Description:
As a user, I want to be able to subscribe to updates about the site, so that I know when new features are released.
To-Do List
Definition of Done
A user can subscribe and receive emails regarding updates.
Screenshots (optional)
There are multiple Ipc Event Listerens on the open external links actions causing multiple windows to be opened.
One wiki tab should open
an extra tab is opened for every page navigation
remove extra EL's
\
Description:
As a user, I want to be able to submit a bug report or feature request without using GitHub, so that I can easily give feedback without having access to developer tools.
To-Do List
Definition of Done
When a user can submit a bug report or a feature request to GitHub without logging into GitHub from the WebApp.
Screenshots (optional)
Submitted on behalf of George Eaton
What part of the project is your feature request for?
Is your feature request related to a problem? Please describe.
No.
Describe the solution you'd like
The Frame ToString() should display the contents of RAM addressed by the MAR.
Describe alternatives you've considered
N/A
Additional context
Should display the RAM at 0000 in the Frame.ToString() function.
Jumps may be broken and Frame Decoding of instructions needs to be shifted to something like this
InstructionSet.instructions.Find(x => x.BinCode.Equals(ireg.ToString())).OpCode;
What part of the project is your feature request for?
Is your feature request related to a problem? Please describe.
When a comment or newline is above a syntax error, it will throw-off the the number of the error message.
Todo List
This will have to deal with the JavaScript passed to the CodeMirror Lib.
Description:
It is not obvious that the Emulator Output is for error messages, not the result of the run.
To-Do List
Change name
Definition of Done
Screenshots (optional)
Description:
Update Repo Docs to assist new developers who want to help with the project.
To-Do List
Definition of Done
A new Dev should be able to read the docs, build the project locally, make an update, and create a Pull Request.
Screenshots (optional)
Requested by George Eaton
What part of the projec is your feature request for?
Is your feature request related to a problem? Please describe.
To help students use the opcodes they learned in the Ben Eater videos, it would be nice to have a flag that supported Ben's codes, which are slightly different than Malvino's.
Describe the solution you'd like
-BE flag for Ben Eater's Opcodes
Describe alternatives you've considered
n/a
Additional context
There could be some issues with the Unit Test, Program Counter's Jump Register, and the Assembler.
A clever solution is necessary.
Description:
The Assembler Page in the GUI is feature-complete and is ready for stylizing.
To-Do List
Definition of Done
Screenshots (optional)
Below are two pictures of the Assembler Page (one with and without code)
Description:
Rename SAP1EMU.WebApp to SAP1EMU.GUI
This will be to make sure the Project Names are the most reflective of their purpose.
To-Do List
Definition of Done
When SAP1EMU.WebApp and its file resources are renamed to SAP1EMU.GUI
Screenshots (optional)
What part of the projec is your feature request for?
Is your feature request related to a problem? Please describe.
Add LDI support. Exists in Ben Eater, but not implemented.
Describe the solution you'd like
Write microcode for LDI
Describe alternatives you've considered
n/a
Additional context
Description:
This feature will allow code in the Docs Library to be opened up and run in the Emulator Page by pressing a button.
To-Do List
Definition of Done
Screenshots (optional)
Below each Code Box would be this button
This button would launch the Emulator with the code in the box.
Description:
When something is merged into master, GitHub actions should build, test, report, and publish the app to sap1emu.net
Requested by George Eaton
What part of the projec is your feature request for?
Is your feature request related to a problem? Please describe.
The -F flag generates too much information that is can be confusing.
Describe the solution you'd like
An -F6 Flag would only output the 6th Frame of each instruction providing a good mix between -f and -F.
If this could integrate with -d flag, that would be better.
For example " " could step by command and "enter" could step by TState.
Or something like that.
Describe alternatives you've considered
n/a
Additional context
Here is a screenshot of a possible output from a -F6 flag
In the right column under Projects
The RuntimeLog.txt file is getting locked and causing the webapp to not work.
Programs runs without error
RuntimeLog.txt get locked and the program doesn't run in the engine
RuntimeLog.txt should probably not be included in the webapp
Add this Ticket to the "Request Tracker" Project
In the right column under Projects
What part of the project is your feature request for?
Is your feature request related to a problem? Please describe.
I do not know how much longer is left in my program while it is running.
Describe the solution you'd like
A progress bar above the SAP1 display so I can estimate how long may program will run for.
Describe alternatives you've considered
Additional context
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.