<div dir="ltr"><div><div><div>Well, thanks to CharTerm, I have made it work. However, in adding some error handling routines for the runtime I've run into a weird bug. <br><br></div>You can see the full code here: <a href="https://github.com/jarcane/MicroMini/blob/master/main.rkt">https://github.com/jarcane/MicroMini/blob/master/main.rkt</a><br>
<br></div>The relevant bit, however, is the (crash-handler) function. For some reason that utterly escapes my notice or discovery, the (format "~X" ...) call there does not actually spit out a hexadecimal number at runtime.<br>
<br></div><div>The weirdest part is: I can't repeat the bug anywhere but when actually running main.rkt. I've even tried hand-entering all the relevant bits into the commandline REPL and calling the crash-handler inside a (with-crashterm), and it doesn't do it there: It properly gives me a hexadecimal number. <br>
<br></div><div>Other than that it works great so far. Now I need to write at least a basic assembler.<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Aug 10, 2014 at 6:09 PM, Neil Van Dyke <span dir="ltr"><<a href="mailto:neil@neilvandyke.org" target="_blank">neil@neilvandyke.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If you haven't already, you can try the following to disable any port buffering within Racket, but that doesn't help you if the OS (Windows and Posix-ish console stuff it's doing from the console window) isn't giving Racket raw, unbuffered access to keyboard input through stdin:<br>

<br>
    (file-stream-buffer-mode my-port 'none)<br>
<br>
If you were using almost anything other than Windows, you could just use "<a href="http://www.neilvandyke.org/racket-charterm/" target="_blank">http://www.neilvandyke.org/<u></u>racket-charterm/</a>".<br>
<br>
Other than that, you or someone could make a portable Racket text-terminal package that does stuff like uses the console API on Windows and tty on almost everything else.<br>
<br>
BTW, you mention getting random bytes with variations on "read-bytes".  That simply shouldn't happen with "read-bytes", but, when using variations on "read-bytes-avail!", only the first N count bytes it says it read will be valid in the bytestring.<br>

<br>
Neil V.<br>
<br>
</blockquote></div><br></div>