[Oberon] Keyboard input in ETH Oberon.

Hellwig Geisse hellwig.geisse at mni.thm.de
Wed Aug 4 11:57:31 CEST 2021

Hi Peter,

On Sa, 2021-07-31 at 21:25 -0700, peter at easthope.ca wrote:
> ETH Oberon Input.Mod of is visible in the screenshot at 
> http://easthope.ca/ETHO.Input.Mod.png . The Oberon is running on QEMU 
> on Linux Debian.
> Questions
> (1) What is achieved by "POP EAX ... RET"?

this is a small function with a nasty little trick in it.
CALL L1 (with the label L1 directly following the call) pushes
the return address onto the stack, in this case the numerical
value of L1. POP EAX gets this address back into register EAX.
ADD EAX,8 computes the address 8 bytes ahead, i.e. the address
of the translation table, which is returned in register EAX.

> (2) What is DB?

The assembler directive to deposit the following bytes into

> (3) The syntax is explained as,   table = { scancode unshifted-code 
> shifted-code flags } 0FFX .
> Therefore scan code 1EX represents "a"; 1EX + shift represents "A"?


> (4) 4X represents bit 04, flag 2?  Caps Lock effect?


> (5) The first two characters under "Oberon accents" appear to be auml 
> and Auml. Hex shows 83 and 80 whereas the ASCII Latin-1 Supplement 
> encodes auml and Auml as E4 and C4. How does that work?

I don't know.

> (6) Why is 0FFX necessary?

This is the typical end-of-table marker, used by the
translation program.


More information about the Oberon mailing list