Latest Microcomputer News
Release R8: Introducing... a new processor!
Nov 9, 2008
Good day my friends.
This week I designed and implemented a new breed of virtual processor to replace the overly minimalist previous model (you know, the one where everything was built from subtractions). The new instruction set, "Op4", is a close fit to the assembly language and very easy to interpret.
Or to compile. Indeed, I experimented a bit in the direction of JIT-compiling Op4 to Java bytecode, and behold, the tiny JIT compiler produced a working native Bubblesort. I was slightly disappointed though. The native code was certainly faster than the interpreted version, but only by a factor of 3 or so.
Speed is not an issue yet anyway.
Coming up with programs that actually do something useful is more of an issue at this point. =)
Release R7: First web page served from VM
Nov 1, 2008
The lack of releases in the past month or so does not mean that no work is done.
In fact, I work on IMC a lot, and I'm seeing daily progress.
IMC now features a usable socket-based VM server. Imagine an SQL server, just with a different language. The protocol is textual, so you can even telnet in.
The assembler language supports many new constructs, making programming ever more convenient. It's looking pretty much like BASIC now. Expect a lot of further improvement here in the next releases.
Some important kinds of bridges between VMs and the outside world are now available. Most notably, VMs can do sockets. As an example, I wrote a mini-webserver. It's rough, but it works.
Click here to connect to the MVM webserver!
Here's the assembler source.
Release R6: now with virtual keyboard
Oct 7, 2008
I'm too tired today to write much about the new release. As usual, the assembly language has grown and matured.
Virtual machines can now receive keyboard input. R6 includes a cute little example program called keyboard.asm demonstrating this feature. It talks to you!
Finally, I got around to some Linux field testing (screenshot). We're having minor font issues, but otherwise - perfecto.
Version R5 released
Sep 29, 2008
< click to watch a little video
(39 mb, best viewed fullscreen)
R5 is released and it's a major step ahead! Look at what kind of code the assembler understands now:
array txt_intro = ".GO_EAST STARTUP." showTxt_txt = &txt_intro showTxt_len = txt_intro.length call showTxt_function ' *** wait a few secs (assuming .1 MIPS) *** spinWait_count = 50000 call spinWait_function [...] ' ************************** function spinWait var spinWait_count spinWait_function: spinWait_count-- if spinWait_count >= 0 goto spinWait_function return
Yes, it's got function calls now, strings and a heap of other fun stuff. Did you spot the C-style decrement operator? Isn't that a--, I mean a++?
Back to the video. It will give you a quick impression of what the shiny new release can do. Including some of the bugs. It's alpha software, so I'm not ashamed. The most nasty bug right now causes virtual machines to freeze pretty quickly (sometimes after just a few seconds). It'll get fixed.