Releases: PaperFanz/laser
Various bugfixes
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
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
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
This is the final 1.x.x release of laser, and includes updates to a few things:
- Much of
parse.chas been cleaned up and is much more readable. - Unused label warnings now work properly.
- Several unused functions have been removed to reduce compiled binary size.
- Added configuration option to include header comments in list file.
And several other less noteworthy changes.
Assembler Verbosity Options
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
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
laser will now warn you if you have declared labels or aliases that have not been used.
Math Library Dependency Removed
TIL about the left bitshift operator and its many uses. Consider me humbled.
Initial Release
Supported Features
- Assembling
.asmfiles and generating associated.sym,.bin,.hex,.lst, and.objfiles - Batch assembling with
*.asmshortcut - Cleaning directory of files generated by assembling
ALIASpseudo-op to replace all instances of a word: see README for details
See README.md for usage instructions