Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PassA-Loader: Relocating Loader #38

Merged
merged 24 commits into from
Dec 2, 2022
Merged

PassA-Loader: Relocating Loader #38

merged 24 commits into from
Dec 2, 2022

Conversation

xTechon
Copy link
Collaborator

@xTechon xTechon commented Nov 29, 2021

This pull request implements a Relocating Loader.
Upon inputting assembly file, it will prompt the user if they wish to use the absolute or relocating loader to load their program into memory.
After the program is loaded into memory, it can be relocated again by going to:
file -> Relocate current program

We have also implemented a general template for unit tests, so that other groups in the future may be able to test their functions in unit tests easier.
The Unit test project can be found in the Solution Explorer by scrolling down to the bottom under "SICVM_UnitTests"

All new functions created by PassA-Loader have been documented in the code
This pull request was done by all group members:

  • Ben DeBruin
  • Ahmad Osmani
  • William D. Hiromoto

Ben-DeBruin and others added 20 commits November 11, 2021 17:27
… the intent of Relocation rather than being a duplicate loading option. Moved the logic to the construction of the dialogue box so that the relocating loader can be used elsewhere with less repeated code each time.

Added in extra dialogue box prompting the user for either Absolute loading or Relocating loading. Currently Relocation Loading defaults back to absolute loading and provides a dialogue box indicating success. This is a basis for calling the Relocating Loader once it is implemented.

Modified an existing dialogue box for Relocating. The values are now determined internally from the object lines rather than being calculated and passed in as arguments. Updated a note informing the user of the range available to them and repaired an input field to accept 6 characters of input instead of 4 to match standards.

Added in a Warning Dialogue box to relocation. If you attempt to relocate a program that is already in memory, you are copying that program. Within the dialogue instructions are provided for loading directly to a position as desired.
SICVM can now display mode records in the object file window. Uncomment line 494 in Assembler.cs to enable this functionality.
Warning: SICVM does not support relocation as of right now, as result uncommenting line 494 might break the program upon loading some sic programs.
…. Adjusted dialogue results to rely on two seperate string arrays instead of one.
… This allows standard functionality for absolute loading, while maintaining Mod records for relocated loading.
New code for the RelocateLoadObjectFile method.
added functionality for relocation, there is currently a bug where the program is loaded in both original and relocated locations in memory.
This was a collaborative effort by: Ben, Ahmad, Daniel
…og still present for testing before final commit.

Adjusted how strings were replaced.

Collaborative Commit: Ahmad and Ben
…being represented with less than 4 characters messing up alignment. This has been repaired)
Before fix, entering an invalid Hex value in the box asking for a Relocated Start Address would crash the program. It now gives an error message explaining that the value is an incorrect hex value
@xTechon xTechon added the enhancement New feature or request label Nov 29, 2021
@jakey-poo-42 jakey-poo-42 force-pushed the main branch 2 times, most recently from ecb8052 to d34831f Compare December 4, 2021 00:23
@ScottPiersall ScottPiersall merged commit 07701cf into main Dec 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants