[Oberon] Large displays in Emulated RISC Oberon

Michael Schierl schierlm at gmx.de
Sun Jun 15 13:19:34 CEST 2014


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.

> 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 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 :)


Regards,


Michael



More information about the Oberon mailing list