[Oberon] Doubt on code generated with Oberon Simulator.

Srinivas Nayak sinu.nayak2001 at gmail.com
Tue Jul 12 17:36:26 CEST 2016


Dear All,

I use Peter De Wachter's Oberon Simulator on Linux.
I took the latest compiler code from www.projectoberon.com.
I compiled the latest compiler (ORS, ORB, ORG, ORP).
Using the latest compiler, I compiled latest Files.Mod.txt.
It gave Files.rsc.

Now I see, Files.Mod.txt has 8 calls to NEW().
[1st NEW at pos=3022, 2nd NEW at pos=3241, 3rd NEW at pos=3592, ...]

ORG.Mod.txt says,

   PROCEDURE New*(VAR x: Item);

   BEGIN loadAdr(x); loadTypTagAdr(x.type.base); Trap(7, 0); RH := 0; invalSB

   END New;


   PROCEDURE Trap(cond, num: LONGINT);

   BEGIN Put3(BLR, cond, ORS.Pos()*100H + num*10H + MT)

   END Trap;


It seems, from inside Trap(), compiler should generate the opcode
0xD70BCE0C (Pos*256+num*16+MT = 3022*256+0*16+12 = 0x0BCE0C)
0xD70CA90C (Pos*256+num*16+MT = 3241*256+0*16+12 = 0x0CA90C)
0xD70E080C (Pos*256+num*16+MT = 3592*256+0*16+12 = 0x0E080C)
...

However, Files.rsc contains only
0xD700000C
0xD700000C
0xD700000C
...

That means, Trap will not be able to report the position at run time!

I have no real Oberon hardware.
Kindly let me know if your latest Files.rsc contains only 0xD700000C corresponding to each NEW or not.
I shall be grateful, if I can get the latest Files.rsc from the latest native Oberon.
[By latest native Oberon, I mean FPGA Oberon update of 4 July 2016 running on real FPGA hardware.]



With thanks and best regards,

Yours sincerely,
Srinivas Nayak

Home: http://www.mathmeth.com/sn/
Blog: http://srinivas-nayak.blogspot.in/


More information about the Oberon mailing list