Commit graph

  • f4cccc8853 Simple build check Toby Jaffey 2025-12-10 10:44:19 +00:00
  • e07eeab043 Make yield a regular syscall taking an argument. Allows "wait for interrupt"/"wait for event" type operation where VM code blocks until the host has something for it. Toby Jaffey 2025-12-10 10:35:18 +00:00
  • d52baca7b2 Move example Toby Jaffey 2025-12-10 01:24:34 +00:00
  • 9baedb42e8 Add a stack canary, setup on boot Toby Jaffey 2025-12-10 01:00:36 +00:00
  • 9596838a4b Recursive maze demo, causes big stack usage Toby Jaffey 2025-12-09 23:29:16 +00:00
  • 428bd7cc6b Use signal, for linux Toby Jaffey 2025-12-09 22:20:11 +00:00
  • d5df056914 Improve arduino setup Toby Jaffey 2025-12-09 22:18:40 +00:00
  • ac554865a6 Make ROM const Toby Jaffey 2025-12-09 22:08:53 +00:00
  • 76fba39a21 Rework syscall ABI. Syscalls now accept two parameters, allowing for things like "int count = read(buf, len)" Rather than providing safe signatures for syscalls, the user is now given helper functions to safely parse incoming values, c-strings and slices. Toby Jaffey 2025-12-09 21:51:35 +00:00
  • f046a590c0 Memory setup Toby Jaffey 2025-12-09 14:50:23 +00:00
  • 8c11b45670 Move CPU core out of RAM. This limits possibilities for self-modifying code hacks, but is cleaner/safer. Toby Jaffey 2025-12-09 10:46:29 +00:00
  • 941cd141f4 Cleanup terminal on ctrl-c Toby Jaffey 2025-12-09 09:49:30 +00:00
  • 37a178aad7 Remove refs to old CSRs Toby Jaffey 2025-12-09 01:23:46 +00:00
  • 3cdc9ae0ca Default behaviour is to run to end of main Toby Jaffey 2025-12-09 01:19:09 +00:00
  • 7b7b08e626 Show cursor on exit Toby Jaffey 2025-12-09 01:18:14 +00:00
  • 2cafc6fd74 Cursor keys Toby Jaffey 2025-12-09 00:58:38 +00:00
  • d56f34dc4e Use cursors Toby Jaffey 2025-12-09 00:56:07 +00:00
  • 04e7aaef88 Exit on keypress Toby Jaffey 2025-12-09 00:54:22 +00:00
  • 71db6d1dea Reset terminal back to original state on exit Toby Jaffey 2025-12-09 00:50:30 +00:00
  • b6f271ca5a Add newlines Toby Jaffey 2025-12-09 00:31:41 +00:00
  • b34b144a8c Update example Toby Jaffey 2025-12-09 00:15:25 +00:00
  • 136f7a30bd Update with fib sketch Toby Jaffey 2025-12-09 00:13:38 +00:00
  • c37286cf01 Add "self", example of building uvm32 to run inside uvm32 mandelbrot app is embedded in host-mini, which is then compiled to a .bin Toby Jaffey 2025-12-08 23:54:14 +00:00
  • 9be9e056cd Use internal memcpy/memset Toby Jaffey 2025-12-08 23:48:50 +00:00
  • d7673eb0b9 Add common typedefs Toby Jaffey 2025-12-08 23:48:32 +00:00
  • 3db1d2433b Update to use mandel Toby Jaffey 2025-12-08 23:39:13 +00:00
  • 7e7cabeb24 Prettier, better terminal handling, more variation Toby Jaffey 2025-12-08 21:41:51 +00:00
  • 54f71f18c2 typo Toby Jaffey 2025-12-08 21:22:10 +00:00
  • ebb6518ec3 Lissajous, showing floating point arithmetic Toby Jaffey 2025-12-08 21:20:57 +00:00
  • de689bdeaf Resume after hang (with warning) Toby Jaffey 2025-12-08 21:19:59 +00:00
  • 41a94d0629 Fix putc() Toby Jaffey 2025-12-08 20:45:39 +00:00
  • ee2ba56423 Add cmdline option to host <file.bin> [max_instrs_to_run], to set instruction meter. Allow a host to continue after a hung error, if it wants to. Toby Jaffey 2025-12-08 20:36:00 +00:00
  • bbf5ccafb6 "critical" fix Toby Jaffey 2025-12-08 16:40:59 +00:00
  • 6735b159ac Make syscall names closer to libc Toby Jaffey 2025-12-08 16:28:00 +00:00
  • 1b868adf87 Fix link Toby Jaffey 2025-12-08 13:52:40 +00:00
  • 3efe58ac3c Non-working c3 example crt0.S comments are a problem and asm format is different c3lang Toby Jaffey 2025-12-08 13:17:26 +00:00
  • c691c3ebdf Fix overly long event name Toby Jaffey 2025-12-08 13:04:05 +00:00
  • 86f93be100 objdump info Toby Jaffey 2025-12-08 13:02:00 +00:00
  • 6a7178d31a SBI explanation Toby Jaffey 2025-12-08 12:55:53 +00:00
  • a3c8b7584d Remove debug Toby Jaffey 2025-12-08 12:54:30 +00:00
  • 9d6e6790e1 Cleanup syscall numbers Toby Jaffey 2025-12-08 12:53:33 +00:00
  • 61fe0e8647 Rename ioreq to syscall Toby Jaffey 2025-12-08 12:26:47 +00:00
  • b79a107a3d Remove single file Toby Jaffey 2025-12-08 12:18:54 +00:00
  • 441decc0a7 conio link Toby Jaffey 2025-12-08 10:55:26 +00:00
  • 274f347d90 Break console io example out into own app Toby Jaffey 2025-12-08 10:35:42 +00:00
  • 40e8795f3f Explain the hack better Toby Jaffey 2025-12-08 10:30:33 +00:00
  • 5b2c82b85e Fix for case sensitivity Toby Jaffey 2025-12-08 10:23:30 +00:00
  • 43bba100c1 Fix missing header on linux Toby Jaffey 2025-12-08 10:22:08 +00:00
  • a88f3a1690 Workaround for Rust having different system for templating constants to GNU as. Having a separate file is ugly, but it allows for a single source of truth for constants Works for C, asm, zig and rust. Toby Jaffey 2025-12-08 10:13:53 +00:00
  • 2ccd3ac7f4 Trying to find some way to share constants Toby Jaffey 2025-12-08 09:55:47 +00:00
  • f6cd790fcb ABI info Toby Jaffey 2025-12-08 07:31:21 +00:00
  • 7bf906f369 Rename .s to .S so preprocessor runs (https://stackoverflow.com/questions/33358825/gnu-assembler-preprocessor-define) Toby Jaffey 2025-12-08 02:45:38 +00:00
  • 751f068486 Rework host/target interface to use ecall and proper syscalls instead of CSRs Toby Jaffey 2025-12-08 02:44:38 +00:00
  • a305fce466 zigtris is > 16KB, so use 32KB for default host. Toby Jaffey 2025-12-07 21:12:48 +00:00
  • c0711213ae Add console tetris demo Toby Jaffey 2025-12-07 21:02:22 +00:00
  • cd95e63af5 Flush output regularly, don't wait for keyboard. Toby Jaffey 2025-12-07 20:58:32 +00:00
  • 9e6f6c5a67 Added IOREQ_MILLIS and IOREQ_GETC to get current time and poll keyboard. IOREQ_GETC implemented inefficiently, but is fine for demo purposes. Toby Jaffey 2025-12-07 20:29:10 +00:00
  • af3b48cb01 Fix comment, uvm32_reset() doesn't exist Toby Jaffey 2025-12-07 13:13:36 +00:00
  • c229170e3b Move samples Toby Jaffey 2025-12-07 10:46:09 +00:00
  • d8a2faf732 Minimal assembly example Toby Jaffey 2025-12-07 10:45:11 +00:00
  • 95333e06d8 More precompiled examples Toby Jaffey 2025-12-07 01:04:28 +00:00
  • 4610e8ddaf Doc updates Toby Jaffey 2025-12-07 01:01:11 +00:00
  • 30cf60561f Fibonacci sample Toby Jaffey 2025-12-07 01:00:52 +00:00
  • f235265e3f Set stack pointer to before core registers in RAM Toby Jaffey 2025-12-07 00:59:35 +00:00
  • 270fdb7cdc Add note about using official rust on mac Toby Jaffey 2025-12-06 22:54:49 +00:00
  • 3e4c87fa1d Rename emulator to host, for clarity Toby Jaffey 2025-12-06 22:37:10 +00:00
  • 6d12ce5a80 Add Arduino host sample. Tested on Arduino Uno (ATMega328P) Sketch uses 9950 bytes (30%) of program storage space. Maximum is 32256 bytes. Global variables use 1254 bytes (61%) of dynamic memory, leaving 794 bytes for local variables. Maximum is 2048 bytes. Toby Jaffey 2025-12-06 22:29:29 +00:00
  • 047c9e3853 Move error strings out of header, to prevent unused warning Toby Jaffey 2025-12-06 21:35:00 +00:00
  • 51494ec10d README style tweak Toby Jaffey 2025-12-06 16:45:23 +00:00
  • c9d30b6d28 uvm32 initial version Toby Jaffey 2025-12-06 16:44:23 +00:00