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.

Run R6


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.