Skip to content

Latest commit

 

History

History
69 lines (40 loc) · 1.92 KB

basic.md

File metadata and controls

69 lines (40 loc) · 1.92 KB

RVCop64 BASIC extensions

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

Enter the RISC-V machine code monitor.