Skip to content

Releases: TricksterGuy/complx

4.20.0 ¬_¬ ¬_¬ ¬_¬

06 Aug 02:29
9c5dffc
Compare
Choose a tag to compare

Shhhh I was really hoping I wouldn't have to name a release 4.20, but here we are! Mostly backports and fixing glaring issues since complx-tools isn't ready yet.

pyLC3

Fix #143 which caused mayhem, a hole that made code act different in test vs simulator. It is now an error to call any fill/set functions before the code is loaded.
Replay strings can now be compressed.

liblc3

Fix plugins OnWrite being called multiple times if it was mapped to any address >= xFE00

4.19.1 The -real- final release version

28 Feb 00:41
Compare
Choose a tag to compare

This is the -real- final release of complx. Development is now over at complx-tools. New development repo which will be a cross-platform version of complx, built from the ground up, already runnable as a demo which can load and run assembly programs.

complx

  • Touched up error messages.

liblc3

  • Error / Warning IDs are now exposed in error/warning messages. Documentation reflected to reference the error/warning messages for easy lookup.

lc3_replay

  • More security in regards to replay strings. Replay strings now include more error checking code.
    • Size verification and crc verification to avoid attempting to load an invalid replay string.
    • Versioned replay strings to avoid loading replay strings from previous versions of pyLC3.

pyLC3

  • Ability to customize assertion names.

Version 4.19.0 The final release

12 Jan 08:06
Compare
Choose a tag to compare

This is the final release of complx. Development is now over at complx-tools. New development repo which will be a cross-platform version of complx, built from the ground up, already runnable as a demo which can load and run assembly programs.

complx

  • Various UI improvements when ran in CS2110's docker setup
    • Activate events are not generated in docker (since students are switching between apps usually). The reload assembly option will now work under a timer.
    • Touch up the default column sizes.
  • Fix the subroutine dialog popping up unexpectedly if .fill x4000 was present in the code.
  • Show NonZero removed as it was buggy.
  • Call Stack now shows the initial subroutine call if Simulate Subroutine Call was used.
  • Setup Replay String now shows what the replay string does before loading. Describe Replay String was removed.
  • Removed the Help > ISA option as it pointed to an outdated version of the lc3 isa
  • Recommended text editors in the welcome message.
  • Fix column sizes resetting on loading a new file

liblc3

  • New warning for executing the data in TVT/IVT

pyLC3

  • Python 3 support.
  • Can no longer use two setXXX operations on a label. It is confusing and being misused by autograders. For instance using a label to dump a value out in memory where fillXXX could be used instead.
  • Customizable JSON output.
  • Can no longer modify memory after the code has ran. This makes the replay string not match with the initial environment of the test and also doesn't make sense.

Version 4.18.3 The "incomplete" release version

12 May 08:40
Compare
Choose a tag to compare

It'll be completed with a DLC release coming soon

complx

  • Menu option File > Clean Load removed since students were using it and wondering why tests were failing. (Zeroed out memory/registers can still be achieved through File > Advanced Load).
  • Simulate Subroutine Call dialog reworked, now doesn't require a stack label or a halt statement in the program. Also now supports Subroutines written using pass by registers.
  • New Menu option Start Replay String Server which allows complx to retrieve a replay string from host (when running in CS2110's Docker setup).

as2obj

  • Can now output a file with each memory address in all representations

pylc3

  • Soft Assertions - By default almost all assertXXX functions are soft, meaning they don't immediately end the test.
  • pyLC3 now outputs a JSON file with the test results (and assertions) in addition to the unittest text output.
  • pyLC3 now generates a verification string when a test fails. (Unfortunately complx can't use these yet, coming soon)
  • New functions fillString, fillArray to place a string or array at a specific address.
  • New function fillNode for writing an arbitrary "node" type with arbitrary data in memory
  • New function fillData for writing an arbitrary datastructure/struct/record out in memory
  • Assertion functions for the above types assertValueAt, assertStringAt, assertArrayAt, assertNodeAt, assertDataAt for checking structures beginning at a specific memory address.
  • assertAddress renamed to assertValueAt to conform to the new style of assertions.
  • callSubroutine / expectSubroutineCall now have a pass by registers mode to call a subroutine.
  • Fixed negative parameters for expectXXXCall acted weirdly.
  • Fixed output for assertReturned if a HALT statement was encountered before a RET statement.
  • Fixed expectSubroutineCall assertion output always displaying the params as unsigned numbers.
  • Changed pyLC3 now displays a note to students to post the full output from the grader.

liblc3

  • New warning when an invalid value is written to the PSR
  • Fixed broken R6 when backstepping when true traps was set.

Minor Console Changes.

22 Oct 02:09
Compare
Choose a tag to compare

complx

  • LC-3 Console now respects \r and \b. The first moving the cursor back to the beginning of the line and \b deleting the last input char.

liblc3

\b will no longer generate an invalid char warning.

LC3 2019 support

06 Oct 04:58
Compare
Choose a tag to compare

complx

Refresh title bar when a replay string was used.

Trace files - output a file with all of the instructions + state of registers while the program is running.

pylc3

Added function setLC3Version which switches which version of the lc3 to use. By default it uses the original LC3. A future release will default to the current version of LC3.

Add function to load assembler output from the assembler in Patt's textbook.

liblc3

Partial support for the new LC3 revision. Only the following things from the new ISA are supported at this time

  • LEA no longer sets condition codes
  • PSR is a device register at address xFFFC
  • TRAPs now work like interrupts, pushing the PSR,PC on the stack and now instead of RET you use RTI to return from one. The original traps were re-implemented to work with this.

The following things are not supported at this time:

  • Binary literals with binary numbers prefixed with a b.
  • Reading/Writing to privileged memory in non privileged mode causes an Access Control Violation firing interrupt vector x02.

Note that by default the original LC-3 is used when running programs. The only way to enable the lc3 revision is via a comment in the assembly file ";@Version 1". A future update will default the lc3 to the new revision.

Add disassembled instruction in warning messages.

Remove printing out characters in assembler error messages, as a non printable character caused wxWidgets to wig out and print out (null) instead of the error message produced by the assembler.

Fix RTI being treated as a malformed exception.

Add keyboard interrupt delay and fix keyboard interrupts in non GUI environments.

as2obj

Ability for the assembler to output text based files with hexadecimal and binary (machine language code).

Version 4.18.0 Release the snakes REDUX

27 Sep 09:18
Compare
Choose a tag to compare

complx

Add support for loading replay strings. These strings are produced from the pylc3 unittest framework and includes the information to replay the test in the simulators. This replaces the old Setup Test / Replay test menu options that were previously removed.

pylc3

Various small fixes and more unit tests.

Version 4.17.0 Release the snakes

24 Sep 10:48
Compare
Choose a tag to compare

lc3 test

lc3_test binary is now gone, replaced in favor of a new python based test framework for assembly code. It is feature parity with the old xml files with the exception of "read-answer" for lc3 calling convention checker gone due to being broken. A new addition also allows you to check for traps called.

lc3_runner

This binary is also gone the replacement is the python based cli simulator.

comp

This binary is now gone, but relives as a python based lc3 simulator based on pylc3.

Pylc3

pylc3 has been expanded with a lot more functions.

complx

Complx is now smart enough to determine if a assembly file has been modified and asks the user if they would like to reload it.

Version 4.16.6 Booleans are hard Edition

03 Mar 23:30
Compare
Choose a tag to compare

complx

  • Fix Setup Test dialog forcing the state to be "in lc3test mode" preventing users from backstepping.
  • Fix Setup Test console input not working after using the option.
  • Fix Setup Test dialog resetting the undo stack size to -1.

Version 4.16.5 Alright Alright... Edition

23 Feb 05:11
Compare
Choose a tag to compare

lc3test

  • String output is now escaped. It is now much easier to see if you omitted a newline or something else.