[Oberon] RISC emulator

Peter De Wachter pdewacht at gmail.com
Sun Mar 23 21:04:50 CET 2014

On 20-03-14 09:28, Paul Reed wrote:
> This is awesome!  Thank you (and much respect!) for doing the heavy-lifting.
> Below I have some mods for your approval and/or comment:
> 1. add a "-fullscreen" option for screens which are only 768 pixels high
> (e.g. laptops)

Good idea. But simply forcing the window full screen will screw up the
aspect ratio on widescreen displays, so I implemented it in a different
way (sadly quite a bit more complicated).

I've also set up the F11 key (or Cmd-Shift-F for Macs) to toggle
fullscreen mode.

> 2. add a crude third-button emulation with the left Alt key (e.g. for
> trackpads)

I've added this, but to me it feels like this really belongs on the
Oberon side. Didn't other Oberon releases have something like this?

> 3. add the host side of the PCLink file transfer protocol

This is great! Thanks!

> With your permission, I'd like to link to your code, and provide binaries,
> on projectoberon.com.

That'd be great. I've already received requests for a Windows
executable, but I don't have a Windows system to create one.

By the way, I've been working the past few days on emulating the
floating point instructions and I *think* I've implemented them
correctly. But I'm completely confused by the instructions the Oberon
system executes. (I'm using the image from your website dated
15.2.2014). It looks like every floating point constant got compiled as

E.g. if you look at the disassembly of ORS.Tens, both x and e get
initialized to that number. And in Texts.WriteReal, that number is also
used instead of zero...

There's also something wrong with Texts.WriteInt, trying to print
80000000H results in a trap.

More information about the Oberon mailing list