Skip to content

Releases: PaperFanz/laser

Various bugfixes

15 Oct 05:40

Choose a tag to compare

This minor revision fixes issue #3 and #5

To summarize:
Assembling a file without a containing directory i.e. laser -a file.asm vs. laser -a somedirectory/file.asm would result in a segfault because of some undefined behavior with strrchr. In Windows, no segfault would be reported but terminal output would stop and unwritten files would be left behind as build artifacts.

Under Windows, fwrite writes an extra 0x0D whenever a 0x0A is written, resulting in BRnp's turning into BRnz's and the rest of the file becoming garbled as well. This issue has been resolved.

As before, I currently do not have access to a Mac so I've only posted the Windows installer (recommended) and the Windows executable. If someone could generate a Mac binary (or better yet, package laser for Mac), that would be awesome.

Thanks to everyone who's giving Laser a try, and I hope it makes programming for the LC3 just a little less painful.

Laser version 2.0.0

10 Oct 16:20
2c5cba8

Choose a tag to compare

Laser 2.x.x Update!

What's Different?

This is the first major revision of laser, the version 2.x.x release. This release adds the project assembly feature, which makes use of two new pseuodoops, .import and .export to share labels between files in the same project. This allows for much more complex program organization and will hopefully encourage good programming practices.

Bugfixes

  • multiple labels pointing to the same address are now properly highlighted as errors
  • mistyped trap shortcuts will no longer be silently ignored
  • assembly duration now shows up correctly
  • memory leaks fixed

Laser Version 2.0 Release Candidate 1

28 Aug 22:58

Choose a tag to compare

Pre-release

New feature: Project Assembly

`laser -p ./project/*.asm' where ./project is the folder containing the project. Of course, you can also optionally input each file path individually.

New Pseuodoops

Project assembly allows you to import and export labels from other files. This is achieved through the .IMPORT and .EXPORT pseuodoops.

As of now there is only a pre-compiled binary for Windows; a Mac version will be up shortly.

Final 1.x.x Release

28 Jan 21:51

Choose a tag to compare

This is the final 1.x.x release of laser, and includes updates to a few things:

  1. Much of parse.c has been cleaned up and is much more readable.
  2. Unused label warnings now work properly.
  3. Several unused functions have been removed to reduce compiled binary size.
  4. Added configuration option to include header comments in list file.

And several other less noteworthy changes.

Assembler Verbosity Options

14 Jan 04:10

Choose a tag to compare

You can now use laser in quiet and silent modes by passing-q or-s before passing -a <file>.

Quiet mode suppresses all warnings and will not give an error summary[1] if no errors are encountered.

Silent mode suppresses all printed messages unless an error is encountered, in which case only an error summary[1] is given.

Note that if both -q and -s are passed, the one passed later takes precedence.

[1] an error summary consists of the filename followed by the number of warnings and errors encountered

Error Logging

13 Jan 05:14

Choose a tag to compare

This minor release adds the option to enable error-logging in config.h . The pre-compiled Windows executable has this feature enabled. If you are on Windows and do not wish to have this feature enabled, consider building from source or using the executable attached to the v1.1.0 release.

Minor Feature Update

10 Jan 19:14

Choose a tag to compare

laser will now warn you if you have declared labels or aliases that have not been used.

Math Library Dependency Removed

09 Jan 04:53

Choose a tag to compare

TIL about the left bitshift operator and its many uses. Consider me humbled.

Initial Release

08 Jan 18:31

Choose a tag to compare

Supported Features

  1. Assembling .asm files and generating associated .sym, .bin , .hex, .lst, and .obj files
  2. Batch assembling with *.asm shortcut
  3. Cleaning directory of files generated by assembling
  4. ALIAS pseudo-op to replace all instances of a word: see README for details

See README.md for usage instructions