Hey Bruce, Thanks for the encouragement.
I’m not following the CGI idea. But the rest is in the direction I’m thinking of going.
The float was an appendix. I moved it up to see how it would work. It might work in a chapter/section on the F and D extensions. If I’m lucky I’ll find an editor that can help improve the fluidity once it nears some critical mass (you know any?)
Yeah the not a number thing is a big deal too. I usually lecture on that by using the word ‘context’ and asking students to tell me what a vertical bar and a circle that I write on the chalkboard represents. I usually get ten, two, negative 2, 0x31 0x32, but never 0x49 0x4f,… I always end it by pointing out that I was talking about the moon Io to drive home the need to always understand the context that within which things are interpreted!
A bottom-of-the line machine with a user-interface like the old CP/M ddt app with a simulated UART and some I/O bits is the sort of thing I would like to use to let the reader experiment with to get a VERY hands-on understanding of the instructions and observing the CPU state (which in this case is wonderfully simple.) spike might work, but the little I know of it so far suggests that it is being way too helpful with things like its byte-flipping when printing memory contents and I have not found anything on how to run stand-alone code in it. A newbie is likely to get very confused with helpful layers (I know I would!) And gdb… that is a universe in itself.
I suppose I could just write a RV32IM simulator that works like ddt. Barest of bare bones. No magic behind the scenes. I’d even skip the interactive assembler in lieu of using gas+objcopy to generate raw binary files that could be loaded. Maybe take it as far as gcc to drive home the linker and function calling conventions.
Boy this takes me back: http://www.gaby.de/cpm/manuals/archive/cpm22htm/ch4.htm
I’m thinking these commands: d, f, g, m, r, s, t, x… and I suppose l (ell) would be useful as well.
You know of a sim that runs at this level? Or do I kill a weekend creating one? …at least it will be fun!