[Oberon] Large displays in Emulated RISC Oberon

Charles Perkins chuck at kuracali.com
Mon Jun 16 01:16:31 CEST 2014

On Jun 15, 2014, at 4:19 AM, Michael Schierl <schierlm at gmx.de> wrote:

> Am 14.06.2014 01:05, schrieb Charles Perkins:
>> I wished to be able to use the full resolution of my laptop
>> (1440x900) from within the emulated Oberon system, so I have created
>> patches for Peter de Wachter's oberon-risc-emu program which will
>> (after patches are applied) create a new frame buffer in higher
>> memory.
> Which basically means that now more than 20 bits are used for
> addressing. Your hack (assuming that everything below 2MB is what you
> mean, and everything above is wrapped at 1MB) seems to work in practice,
> and I like it a lot better to what IBM did with the A20 gate to the x86
> architecture. You should be aware that it theoretically can break
> existing applications that assume they can address all memory without
> caring of the upper 12 bits of the address, since whenever you hit
> something between 1MB and 2MB it will fail. But I guess, as in practice
> there is not much software for RISC Oberon (yet), it should not matter.

Yes, what I did is most definitely a hack but it was the least invasive
one I could think of. I essentially turned a 1MB system into a 1.5 MB system.
I hope to turn it (at least the emulated version) into a 4GB system and I'm sure
some more things will break. But that's one reason I like the RISCV5 Oberon --
There's not much to it so it shouldn't be hard to fix whatever breaks! 

>> Smaller screens still work the way they did before and I think that
>> Oberon looks awesome at full screen and high resolution on my MacBook
>> Air!
> If you want to use larger screens and more colors, you can use my
> emulator written in Java, which looks even more awesome :)
> I did not update my binaries yet, but since there are no binaries for
> the updated C emulator either, it should not matter :)
> https://github.com/schierlm/OberonEmulator/tree/master/Java

I have installed your Java emulator and taken the ethz flash image for a spin.
Works great. No color in that of course.

> (I went a different route and made the framebuffer "scrollable" inside
> the upper part of the 1MB memory, by writing the scroll base address to
> a memory-mapped IO address. That way I can address more than 1MB of
> framebuffer (which I need if I have large resolutions and 256 colors)
> but still adhere to the 1MB address space.)
>> I have also modified Display.Mod and made a one-line change to
>> Input.Mod to allow Oberon to use that new frame buffer when
>> resolutions are greater than 1024 horizontal or 768 vertical.
> The changes for my approach were more (but I already posted them here on
> the mailing list) since I did not only need to remove the mouse pointer
> range restriction, but also some hard-coded colors. Since my primary
> motivation was to get more colors and getting larger displays was more
> of a by-product of my changes (the notebook I work most of the time has
> 1366x768 resolution, where a 1024x640 window with Oberon inside does not
> waste too much space).
>> I have tested resolutions as high as 1920x1080 on an external
>> monitor, it should work all the way up to 2048x2048. I have not
>> tested on platforms other than the Mac.
>> The changes can be found at: https://github.com/charlesap/io
> I suggest that you create a pull request against Peter's repository - he
> will probably merge it pretty quickly. And if not, everybody who follows
> his repository on GitHub (and does not follow this mailing list) will
> see it too :)

Will do. I hope my changes can be useful.

> Regards,
> Michael
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon

More information about the Oberon mailing list