The following additional BASIC statements / functions are added by the EXROM:
RVHELP
Display a brief help screen
RVTERM
Enter an ANSI terminal emulator connected to the VUART of the RISC-V
processor. Press RUN/STOP+RESTORE
to exit.
RVPOKE
addr,byte,...
Write one or more bytes to the RISC-V processor memory space. Please note that CSRs (address $f0000000 and up) do not fully support byte writes -- any attempt to write a byte in a CSR will clear the other 3 bytes of that CSR.
RVPEEK
(addr)
Read a byte at the specified RISC-V processor memory space address.
RVSTASH
cnt,intsa,extsa
Transfer cnt bytes starting at address intsa in the internal
memory space of the C64 to the RISC-V processor memory space starting
at address extsa. The same caveat about CSRs as in RVPOKE
applies.
RVFETCH
cnt,intsa,extsa
Transfer cnt bytes starting at address extsa in the RISC-V processor memory space to the internal memory space of the C64 starting at address intsa.
RVSWAP
cnt,intsa,extsa
Exchange the contents of the cnt bytes in the internal memory space
of the C64 starting at intsa with the cnt bytes in the RISC-V processor
memory space starting at extsa. The same caveat about CSRs as in RVPOKE
applies.
RVSYS
addr,args...
Starts execution of the RISC-V processor at address addr. If it
was previously halted then execution is resumed. The caches are flushed
before the instruction at address addr is executed. If additional
arguments are provided after addr, they are passed in registers a0
through a7
(aka x10
through x17
). Please note that the return address
register (ra
/ x1
) is set to addr, so the called function should not
attempt to return. Instead it should execute the instruction EBREAK
when it is done.
RVMON