diff --git a/src/lib/v4/Oberon.Mod b/src/lib/v4/Oberon.Mod new file mode 100644 index 00000000..710e91e4 --- /dev/null +++ b/src/lib/v4/Oberon.Mod @@ -0,0 +1,61 @@ +MODULE Oberon; + +(* this version should not have dependency on graphics -- noch *) + + IMPORT Kernel, Texts, Args; + + TYPE + + ParList* = POINTER TO ParRec; + + ParRec* = RECORD + (* vwr*: Viewers.Viewer; + frame*: Display.Frame;*) + text*: Texts.Text; + pos*: LONGINT + END; + + VAR + + Log*: Texts.Text; + Par*: ParList; (*actual parameters*) + W : Texts.Writer; + (*clocks*) + + PROCEDURE GetClock* (VAR t, d: LONGINT); + BEGIN Kernel.GetClock(t, d) + END GetClock; + + PROCEDURE Time* (): LONGINT; + BEGIN + RETURN Kernel.Time() + END Time; + + PROCEDURE PopulateParams; + VAR W : Texts.Writer; + i : INTEGER; + str : ARRAY 32 OF CHAR; + BEGIN + + i := 1; (* skip program name *) + Texts.OpenWriter(W); + + REPEAT + IF i < Args.argc THEN + Args.Get(i, str); + Texts.WriteString(W, str); + Texts.WriteString(W, " "); + END; + INC(i) + UNTIL i >= Args.argc; + + Texts.Append (Par^.text, W.buf); + + END PopulateParams; + +BEGIN + NEW(Par); + NEW(Par.text); + Texts.Open(Par.text, ""); + PopulateParams; +END Oberon. diff --git a/voc b/voc index ea3eeab6..3709b2b5 100755 Binary files a/voc and b/voc differ