[Oberon] PO2013 - SD Image Tool
Tomas Kral
thomas.kral at email.cz
Wed May 20 18:38:13 CEST 2020
On Wed, 20 May 2020 13:11:14 +0100
Paul Reed <paulreed at paddedcell.com> wrote:
> maybe try loading System manually
Well, loading Oberon, looks as it starts the whole system.
Not in my build though :-)
Looking at Modules.Mod
MODULE Modules
...
PROCEDURE Init*;
BEGIN Files.Init; MTOrg := SYSTEM.REG(MT);
SYSTEM.GET(16, AllocPtr); SYSTEM.GET(20, root); SYSTEM.GET(24,
limit); DEC(limit, 8000H) END Init;
BEGIN Init; Load("Oberon", M);
LED(res); REPEAT UNTIL FALSE (*only if load fails*)
END Modules.
Linker.Link fills branch (B R0 absolute ???) to Modules.Init at code[0]
Files.Init => Kernel.Init => FileDir.Init
But is it really procedure Modules.Init() or Module's body BEGIN END, that linker fills???
Why limit is decremented by 8000H???
MODULE Oberon
...
(* I may be getting here, since screen is blanked *)
OpenDisplay(DW DIV 8 * 5, DW DIV 8 * 3, DH);
FocusViewer := Viewers.This(0, 0);
CurFnt := Fonts.Default; CurCol := Display.white; CurOff := 0;
ActCnt := 0; CurTask := NewTask(GC, 1000); Install(CurTask);
(* ... but never getting here *)
Modules.Load("System", Mod); Mod := NIL; Loop
END Oberon.
--
Tomas Kral <thomas.kral at email.cz>
More information about the Oberon
mailing list