[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