Releases: LeoRiether/FPGRARS
FPGRARS v2.4
Changelog
- Display better error messages when there's an out-of-bounds memory access
FPGRARS v2.3
Changelog
- Fixed the implementation of a bunch of instructions (thanks to the new automated tests in tests/riscv-tests!)
- Fixed
lbu
andlhu
parsing - When using the Exit ecall, the value of
a0
will determine FPGRARS's exit code. - Project-wide configuration with
fpgrars.toml
(see #38)
Also, if you didn't see the changes made in v2.0 and v2.1, I highly recommend it!
Run with ./fpgrars your_riscv_file.s
or ./fpgrars --help
to see options.
If you have cargo
installed, you can also install FPGRARS by running cargo install fpgrars
, or cargo install -F unb fpgrars
if you're a UnB student.
UnB students should get the --unb
version
FPGRARS v2.2
Changelog
- Fixed the
fmv.s
instruction
Also, if you didn't see the changes made in v2.0 and v2.1, I highly recommend it!
Run with ./fpgrars your_riscv_file.s
or ./fpgrars --help
to see options.
If you have cargo
installed, you can also install FPGRARS by running cargo install fpgrars
, or cargo install -F unb fpgrars
if you're a UnB student.
UnB students should get the --unb
version
FPGRARS v2.1.0
Changelog
- Implement the
.align
directive correctly- Previously,
.align
was (wrongly) an alias to.space
, now.align N
will align the data toN
bits, whist.space N
will allocateN
bytes.
- Previously,
- Implement the
.ascii
and.asciz
directives correctly..ascii
will not append a null byte to the end of the string, but.asciz
will. - Added suffix labels inside macro invocations with
_M#
(see #18) - Added support for the
.globl
/.global
directive - Added configurable width, height and pixel scale to the bitmap display (see
fpgrars --help
) - Improved performance by about ~32%
Also, if you didn't see the changes made in v2.0, I highly recommend it!
Run with ./fpgrars your_riscv_file.s
or ./fpgrars --help
to see options.
If you have cargo
installed, you can also install FPGRARS by running cargo install fpgrars
, or cargo install -F unb fpgrars
if you're a UnB student.
UnB students should get the --unb
version
v2.0.1
I'm just testing the new worflow, this is the same as v2.0.0 :)
FPGRARS v2.0.0
A new major version!
Run with ./fpgrars your_riscv_file.s
or ./fpgrars --help
to see the options.
You may also find the new docs site useful!
Changelog
- A completely new parser. Error messages now should look more like this
and less like this
although not every error message is as clear as the above. If you find an error that could be improved, please create an issue exemplifying it! - Added some command-line flags for debugging purposes:
--print-instructions
and--print-state
(see--help
for more info). - Fixed lexer issues, such as #6
- The new docs website
Caveats
- FPGRARS v2 is not as battle tested as v1, so there may be bugs v1 didn't have, or features I forgot to implement. If that happens, please create an issue to warn me about it!
- MACROSv21.s does not work anymore without removing the spaces from the following hexadecimals:
.eqv IrDA_CTRL 0xFF20 0500 .eqv IrDA_RX 0xFF20 0504 .eqv IrDA_TX 0xFF20 0508
UnB students should get the --unb
version
v1.13.1
v1.13.0
Run with ./fpgrars your_riscv_file.s
or ./fpgrars --help
to see the options.
UnB students should get the 8 bit version
- Implemented a new control bit for the Keyboard MMIO! Now the byte at
0xFF210000
is set to 1 when there's a key down/pressed, and 0 otherwise.0xFF210004
is a duplicate of0xFF200004
, to make switching from RARS or FPGA-compatible code easier. The previous method of getting input from the keyboard, which used positions0xFF200000
and0xFF200004
, is still supported and left unchanged.
v1.12.1
Run with ./fpgrars your_riscv_file.s
or ./fpgrars --help
to see the options.
UnB students should get the 8 bit version
"Read file" ecall is now a lot faster (and less buggy than v1.12.0)
v1.12.0
Run with ./fpgrars your_riscv_file.s
or ./fpgrars --help
to see the options.
UnB students should get the 8 bit version
- "Read file" ecall is now a lot faster