Browse Source

.txt files converted to .odc

Alexander Shiryaev 12 years ago
parent
commit
ebaceb25e6

BIN
BlackBox/Cons/Mod/Interp.odc


+ 0 - 128
BlackBox/Cons/Mod/Interp.txt

@@ -1,128 +0,0 @@
-MODULE ConsInterp;
-
-	(*
-		A. V. Shiryaev, 2012.09
-	*)
-
-	IMPORT
-		Console,
-		Strings, Dialog,
-		DevCommanders, TextModels,
-		StdLog;
-
-	VAR
-		textR: TextModels.Reader;
-
-	PROCEDURE ShowStdLog;
-		VAR c: CHAR;
-	BEGIN
-		StdLog.text.Append(StdLog.buf);
-
-		textR.SetPos(0);
-		textR.ReadChar(c);
-		WHILE ~textR.eot DO
-			IF c = 0DX THEN
-				Console.WriteLn
-			ELSE
-				Console.WriteChar(c)
-			END;
-			textR.ReadChar(c)
-		END;
-		StdLog.text.Delete(0, StdLog.text.Length())
-	END ShowStdLog;
-
-	PROCEDURE Call1 (IN s: ARRAY OF CHAR; i: INTEGER): BOOLEAN;
-		VAR j: INTEGER;
-			res: INTEGER;
-			par: DevCommanders.Par;
-			m: TextModels.Model; w: TextModels.Writer;
-	BEGIN
-		(* ASSERT 0X in s[ i:LEN(s) ) *)
-		j := i;
-		WHILE s[j] # 0X DO INC(j) END;
-		IF j > i THEN
-			m := TextModels.dir.New();
-			w := m.NewWriter(NIL);
-			WHILE i < j DO
-				w.WriteChar(s[i]);
-				INC(i)
-			END;
-			NEW(par); par.text := m; par.beg := 0; par.end := m.Length() - 1;
-			DevCommanders.par := par
-		END;
-		Dialog.Call(s, " ", res);
-		DevCommanders.par := NIL;
-		ShowStdLog;
-	RETURN res = 0
-	END Call1;
-
-	PROCEDURE Call0 (VAR s: ARRAY OF CHAR): BOOLEAN;
-		VAR i: INTEGER;
-			res: BOOLEAN;
-			inStr: BOOLEAN;
-	BEGIN
-		(* ASSERT s is 0X terminated and not empty *)
-		i := 0;
-		WHILE (s[i] # 0X) & (s[i] # ' ') & (s[i] # '(') DO
-			INC(i)
-		END;
-		IF s[i] = 0X THEN
-			res := Call1(s, i)
-		ELSIF s[i] = ' ' THEN
-			s[i] := 0X;
-			res := Call1(s, i + 1)
-		ELSE (* s[i] = '(' *)
-			INC(i);
-			inStr := FALSE;
-			WHILE (s[i] # 0X) & ~(~inStr & (s[i] = ')')) DO
-				IF s[i] = "'" THEN inStr := ~inStr END;
-				INC(i)
-			END;
-			IF s[i] # 0X THEN
-				INC(i);
-				IF s[i] = 0X THEN
-					res := Call1(s, i)
-				ELSE
-					s[i] := 0X;
-					res := Call1(s, i + 1)
-				END
-			ELSE
-				res := FALSE
-			END
-		END;
-	RETURN res
-	END Call0;
-
-	PROCEDURE Call (VAR s: ARRAY OF CHAR): BOOLEAN;
-		VAR i: INTEGER;
-			res: BOOLEAN;
-	BEGIN
-		i := 0;
-		WHILE (i < LEN(s)) & (s[i] # 0AX) & (s[i] # 0DX) & (s[i] # 0X) DO
-			INC(i)
-		END;
-		IF (i < LEN(s)) & (s[i] # 0X) THEN
-			IF (i > 0) & (s[0] # '#') THEN
-				s[i] := 0X;
-				res := Call0(s)
-			ELSE (* skip empty strings and comments *)
-				res := TRUE
-			END
-		ELSE (* end of input *)
-			res := FALSE
-		END;
-	RETURN res
-	END Call;
-
-	PROCEDURE Run*;
-		VAR s: ARRAY 2048 OF CHAR;
-	BEGIN
-		Console.ReadLn(s);
-		WHILE Call(s) DO
-			Console.ReadLn(s)
-		END
-	END Run;
-
-BEGIN
-	textR := StdLog.text.NewReader(NIL)
-END ConsInterp.

BIN
BlackBox/Cons/Mod/Log.odc


+ 0 - 193
BlackBox/Cons/Mod/Log.txt

@@ -1,193 +0,0 @@
-MODULE ConsLog;
-
-	(*
-		A. V. Shiryaev, 2012.10
-
-		Log.Hook implementation
-		based on StdLog
-	*)
-
-	IMPORT
-		Log, Views, Dialog,
-		TextModels, TextMappers,
-		Console;
-
-	TYPE
-		LogHook = POINTER TO RECORD (Log.Hook) END;
-
-	VAR
-		logAlerts: BOOLEAN;
-		subOut: TextMappers.Formatter;
-
-		buf: TextModels.Model;
-		textR: TextModels.Reader;
-
-	(* Sub support *)
-
-	PROCEDURE* Guard (o: ANYPTR): BOOLEAN;
-	BEGIN
-		RETURN o # NIL
-	END Guard;
-
-	PROCEDURE* ClearBuf;
-		VAR subBuf: TextModels.Model;
-	BEGIN
-		subBuf := subOut.rider.Base(); subBuf.Delete(0, subBuf.Length())
-	END ClearBuf;
-
-	PROCEDURE* FlushBuf;
-		VAR c: CHAR;
-	BEGIN
-		IF buf.Length() > 0 THEN
-			textR.SetPos(0);
-			textR.ReadChar(c);
-			WHILE ~textR.eot DO
-				IF c = 0DX THEN
-					Console.WriteLn
-				ELSE
-					Console.WriteChar(c)
-				END;
-				textR.ReadChar(c)
-			END;
-			buf.Delete(0, buf.Length())
-		END
-	END FlushBuf;
-
-	PROCEDURE* SubFlush;
-	BEGIN
-		IF Log.synch THEN
-			FlushBuf;
-			(* IF Log.force THEN Views.RestoreDomain(text.Domain()) END *)
-		END;
-	END SubFlush;
-
-	PROCEDURE (log: LogHook) Guard* (o: ANYPTR): BOOLEAN;
-	BEGIN RETURN Guard(o)
-	END Guard;
-
-	PROCEDURE (log: LogHook) ClearBuf*;
-	BEGIN ClearBuf
-	END ClearBuf;
-
-	PROCEDURE (log: LogHook) FlushBuf*;
-	BEGIN FlushBuf
-	END FlushBuf;
-
-	PROCEDURE (log: LogHook) Beep*;
-	BEGIN Dialog.Beep
-	END Beep;
-
-	PROCEDURE (log: LogHook) Char* (ch: CHAR);
-	BEGIN
-		subOut.WriteChar(ch); SubFlush
-	END Char;
-
-	PROCEDURE (log: LogHook) Int* (n: INTEGER);
-	BEGIN
-		subOut.WriteChar(" "); subOut.WriteInt(n); SubFlush
-	END Int;
-
-	PROCEDURE (log: LogHook) Real* (x: REAL);
-	BEGIN
-		subOut.WriteChar(" "); subOut.WriteReal(x); SubFlush
-	END Real;
-
-	PROCEDURE (log: LogHook) String* (IN str: ARRAY OF CHAR);
-	BEGIN
-		subOut.WriteString(str); SubFlush
-	END String;
-
-	PROCEDURE (log: LogHook) Bool* (x: BOOLEAN);
-	BEGIN
-		subOut.WriteChar(" "); subOut.WriteBool(x); SubFlush
-	END Bool;
-
-	PROCEDURE (log: LogHook) Set* (x: SET);
-	BEGIN
-		subOut.WriteChar(" "); subOut.WriteSet(x); SubFlush
-	END Set;
-
-	PROCEDURE (log: LogHook) IntForm* (x: INTEGER; base, minWidth: INTEGER; fillCh: CHAR; showBase: BOOLEAN);
-	BEGIN
-		subOut.WriteIntForm(x, base, minWidth, fillCh, showBase); SubFlush
-	END IntForm;
-
-	PROCEDURE (log: LogHook) RealForm* (x: REAL; precision, minW, expW: INTEGER; fillCh: CHAR);
-	BEGIN
-		subOut.WriteRealForm(x, precision, minW, expW, fillCh); SubFlush
-	END RealForm;
-
-	PROCEDURE (log: LogHook) Tab*;
-	BEGIN
-		subOut.WriteTab; SubFlush
-	END Tab;
-
-	PROCEDURE (log: LogHook) Ln*;
-	BEGIN
-		subOut.WriteLn; SubFlush;
-		(* IF Log.synch THEN Views.RestoreDomain(text.Domain()) END *)
-	END Ln;
-
-	PROCEDURE (log: LogHook) Para*;
-	BEGIN
-		subOut.WritePara; SubFlush;
-		(* IF Log.synch THEN Views.RestoreDomain(text.Domain()) END *)
-	END Para;
-
-	PROCEDURE (log: LogHook) View* (v: ANYPTR);
-	BEGIN
-		IF (v # NIL) & (v IS Views.View) THEN
-			subOut.WriteView(v(Views.View)); SubFlush
-		END
-	END View;
-
-	PROCEDURE (log: LogHook) ViewForm* (v: ANYPTR; w, h: INTEGER);
-	BEGIN
-		ASSERT(v # NIL, 20);
-		IF (v # NIL) & (v IS Views.View) THEN
-			subOut.WriteViewForm(v(Views.View), w, h); SubFlush
-		END
-	END ViewForm;
-
-	PROCEDURE (log: LogHook) ParamMsg* (IN s, p0, p1, p2: ARRAY OF CHAR);
-		VAR msg: ARRAY 256 OF CHAR; i: INTEGER; ch: CHAR;
-	BEGIN
-		IF logAlerts THEN
-			(* IF Log.synch THEN Open END; *)
-			Dialog.MapParamString(s, p0, p1, p2, msg);
-			i := 0; ch := msg[0];
-			WHILE ch # 0X DO
-				IF ch = TextModels.line THEN subOut.WriteLn
-				ELSIF ch = TextModels.para THEN subOut.WritePara
-				ELSIF ch = TextModels.tab THEN subOut.WriteTab
-				ELSIF ch >= " " THEN subOut.WriteChar(ch)
-				END;
-				INC(i); ch := msg[i];
-			END;
-			subOut.WriteLn; SubFlush
-		(* ELSE
-			HostDialog.ShowParamMsg(s, p0, p1, p2) *)
-		END
-	END ParamMsg;
-
-
-	PROCEDURE AttachSubLog;
-		VAR h: LogHook;
-	BEGIN
-		subOut.ConnectTo(TextModels.dir.New());
-		buf := subOut.rider.Base();
-		textR := buf.NewReader(NIL);
-		NEW(h);
-		Log.SetHook(h);
-	END AttachSubLog;
-
-	PROCEDURE DetachSubLog;
-	BEGIN
-		Log.SetHook(NIL)
-	END DetachSubLog;
-
-BEGIN
-	AttachSubLog
-CLOSE
-	DetachSubLog;
-END ConsLog.

BIN
BlackBox/_Linux_/libBB.so


BIN
BlackBox/_Linux_/libBB0.so


BIN
BlackBox/_OpenBSD_/libBB.so


BIN
BlackBox/_OpenBSD_/libBB0.so


BIN
BlackBox/__Interp/Host/Mod/Dialog.odc


+ 0 - 52
BlackBox/__Interp/Host/Mod/Dialog.txt

@@ -1,52 +0,0 @@
-MODULE HostDialog;
-
-	(* for StdLog and Dialog.SetShowHook *)
-
-	IMPORT Dialog, Console;
-
-	TYPE
-		ShowHook = POINTER TO RECORD (Dialog.ShowHook) END;
-
-	PROCEDURE ShowParamMsg* (IN str, p0, p1, p2: ARRAY OF CHAR);
-		VAR st: ARRAY 512 OF CHAR;
-	BEGIN
-		ASSERT(str # "", 20);
-(*
-		IF Dialog.showsStatus THEN
-			ShowParamStatus(str, p0, p1, p2)
-		ELSE
-*)
-			Dialog.MapParamString(str, p0, p1, p2, st);
-			Console.WriteStr(st); Console.WriteLn
-(*
-		END
-*)
-	END ShowParamMsg;
-
-	PROCEDURE ShowParamStatus* (IN str, p0, p1, p2: ARRAY OF CHAR);
-		VAR st: ARRAY 513 OF CHAR;
-	BEGIN
-		Dialog.MapParamString(str, p0, p1, p2, st);
-		Console.WriteStr(st); Console.WriteLn
-	END ShowParamStatus;
-
-	PROCEDURE (h: ShowHook) ShowParamMsg (IN str, p0, p1, p2: ARRAY OF CHAR);
-	BEGIN
-		ShowParamMsg(str, p0, p1, p2)
-	END ShowParamMsg;
-
-	PROCEDURE (h: ShowHook) ShowParamStatus (IN str, p0, p1, p2: ARRAY OF CHAR);
-	BEGIN
-		ShowParamStatus(str, p0, p1, p2)
-	END ShowParamStatus;
-
-	PROCEDURE Init;
-		VAR
-			showHook: ShowHook;
-	BEGIN
-		NEW(showHook); Dialog.SetShowHook(showHook)
-	END Init;
-
-BEGIN
-	Init
-END HostDialog.

BIN
BlackBox/__Interp/Host/Mod/Fonts.odc


+ 0 - 75
BlackBox/__Interp/Host/Mod/Fonts.txt

@@ -1,75 +0,0 @@
-MODULE HostFonts;
-
-	(* for Texts, HostTextConv *)
-
-	IMPORT Fonts;
-
-	CONST
-		defTypeface = "*";
-		defSize = 12 * Fonts.point;
-		defW = 161925;
-		defAsc = 142875;
-		defDsc = 28575;
-
-	TYPE
-		Font = POINTER TO RECORD (Fonts.Font)
-			alias-: Fonts.Typeface;	(* alias # typeface & typeface # "*" == alien font *)
-		END;
-
-		Directory = POINTER TO RECORD (Fonts.Directory) END;
-
-	VAR
-		defFont-: Font; (* for HostTextConv *)
-		ti: Fonts.TypefaceInfo;
-		dir: Directory;
-
-	PROCEDURE (f: Font) GetBounds (OUT asc, dsc, w: INTEGER);
-	BEGIN
-		asc := defAsc;
-		dsc := defDsc;
-		w := defW
-	END GetBounds;
-
-	PROCEDURE (f: Font) StringWidth (IN s: ARRAY OF CHAR): INTEGER;
-	BEGIN
-		RETURN LEN(s$) * defW
-	END StringWidth;
-
-	PROCEDURE (f: Font) SStringWidth (IN s: ARRAY OF SHORTCHAR): INTEGER;
-	BEGIN
-		RETURN LEN(s$) * defW
-	END SStringWidth;
-
-	PROCEDURE (f: Font) IsAlien (): BOOLEAN;
-	BEGIN
-		RETURN TRUE
-	END IsAlien;
-
-	PROCEDURE (d: Directory) This (typeface: Fonts.Typeface; size: INTEGER; style: SET; weight: INTEGER): Font;
-	BEGIN
-		RETURN defFont
-	END This;
-
-	PROCEDURE (d: Directory) Default (): Font;
-	BEGIN
-		RETURN defFont
-	END Default;
-
-	PROCEDURE (d: Directory) TypefaceList (): Fonts.TypefaceInfo;
-	BEGIN
-		RETURN ti
-	END TypefaceList;
-
-	PROCEDURE Init;
-	BEGIN
-		NEW(defFont);
-		defFont.Init(defTypeface, defSize, {}, Fonts.normal);
-		defFont.alias := "Arial";
-		NEW(ti);
-		ti.typeface := defTypeface;
-		NEW(dir); Fonts.SetDir(dir)
-	END Init;
-
-BEGIN
-	Init
-END HostFonts.

BIN
BlackBox/__Interp/Host/Mod/Windows.odc


+ 0 - 143
BlackBox/__Interp/Host/Mod/Windows.txt

@@ -1,143 +0,0 @@
-MODULE HostWindows;
-
-	(* for Views *)
-
-	IMPORT Windows, Controllers, Views, Files, Converters, Documents, Ports;
-
-	TYPE
-		Window = POINTER TO EXTENSIBLE RECORD (Windows.Window)
-			next: Window;	(* window ring, to prevent garbage collection of windows *)
-		END;
-
-		Directory = POINTER TO EXTENSIBLE RECORD (Windows.Directory)
-		END;
-
-	VAR
-		dir: Directory;
-		winAnchor: Window;	(* list of all windows, from top to bottom, first is dumy header *)
-
-	(** Window **)
-
-	PROCEDURE (w: Window) ForwardCtrlMsg (VAR msg: Controllers.Message), EXTENSIBLE;
-	BEGIN
-		HALT(126)
-	END ForwardCtrlMsg;
-
-	PROCEDURE (w: Window) SetSize (width, height: INTEGER);
-	BEGIN
-		HALT(126)
-	END SetSize;
-
-	PROCEDURE (w: Window) SetTitle (title: Views.Title);
-	BEGIN
-		HALT(126)
-	END SetTitle;
-
-	PROCEDURE (w: Window) RefreshTitle;
-	BEGIN
-		HALT(126)
-	END RefreshTitle;
-
-	PROCEDURE (w: Window) GetTitle (OUT title: Views.Title);
-	BEGIN
-		HALT(126)
-	END GetTitle;
-
-	PROCEDURE (w: Window) SetSpec (loc: Files.Locator; name: Files.Name; conv: Converters.Converter);
-	BEGIN
-		HALT(126)
-	END SetSpec;
-
-	PROCEDURE (w: Window) MouseDown (x, y, time: INTEGER; modifiers: SET);
-	BEGIN
-		HALT(126)
-	END MouseDown;
-
-	PROCEDURE (w: Window) KeyDown (ch: CHAR; buttons: SET);
-	BEGIN
-		HALT(126)
-	END KeyDown;
-
-	PROCEDURE (w: Window) Close;
-	BEGIN
-		ASSERT(w.frame # NIL, 20);
-		HALT(126);
-		w.Close^;
-		ASSERT(w.frame = NIL, 60)
-	END Close;
-
-	(* Directory *)
-
-	PROCEDURE (d: Directory) Open (
-		w: Windows.Window; doc: Documents.Document; flags: SET; name: Views.Title;
-		loc: Files.Locator; fname: Files.Name; conv: Converters.Converter
-	);
-		VAR p: Ports.Port;
-	BEGIN
-		WITH w: Window DO
-		END
-	END Open;
-
-	PROCEDURE (d: Directory) First (): Window;
-	BEGIN
-		RETURN winAnchor.next
-	END First;
-
-	PROCEDURE (d: Directory) Next (w: Windows.Window): Window;
-	BEGIN
-		IF w # NIL THEN RETURN w(Window).next ELSE RETURN NIL END
-	END Next;
-
-	PROCEDURE (d: Directory) New (): Window, EXTENSIBLE;
-		VAR w: Window;
-	BEGIN
-		NEW(w); RETURN w
-	END New;
-
-	PROCEDURE (d: Directory) Focus (target: BOOLEAN): Window;
-	BEGIN
-		HALT(126);
-		RETURN NIL
-	END Focus;
-
-	PROCEDURE (d: Directory) Select (w: Windows.Window; lazy: BOOLEAN);
-	BEGIN
-		WITH w: Window DO
-			HALT(126)
-		END
-	END Select;
-
-	PROCEDURE (d: Directory) GetThisWindow (p: Ports.Port; px, py: INTEGER;
-																		OUT x, y: INTEGER; OUT w: Windows.Window);
-	BEGIN
-		w := NIL
-	END GetThisWindow;
-
-	PROCEDURE (d: Directory) Close (w: Windows.Window);
-		VAR v, u: Windows.Window; h: Window;
-	BEGIN
-		h := winAnchor; WHILE (h.next # NIL) & (h.next # w) DO h := h.next END;
-		IF h.next = w THEN
-			IF ~w.sub THEN
-				v := w.link;
-				WHILE v # w DO u := v.link; v.Close; v := u END
-			END;
-			w.Close
-		END
-	END Close;
-
-	PROCEDURE (d: Directory) GetBounds (OUT w, h: INTEGER);
-	BEGIN
-		HALT(126)
-	END GetBounds;
-
-	PROCEDURE Init;
-		VAR d: Directory;
-	BEGIN
-		NEW(d); d.l := -1; d.t := -1; d.r := -1; d.b := -1; dir := d; Windows.SetDir(d);
-		NEW(winAnchor); winAnchor.next := NIL;	(* dummy header *)
-	END Init;
-
-BEGIN
-	Init
-END HostWindows.

BIN
BlackBox/__Interp/System/Mod/Init.odc


+ 0 - 28
BlackBox/__Interp/System/Mod/Init.txt

@@ -1,28 +0,0 @@
-MODULE Init;
-
-	IMPORT
-		HostConsole, (* Console.SetHook *)
-
-		HostFonts (* Fonts.SetHook; required for Texts *),
-		HostWindows (* Windows.SetHook *),
-		HostDates (* Dates.SetHook *),
-		HostDialog (* Dialog.SetShowHook *),
-		StdInterpreter, (* Dialog.SetCallHook *)
-		StdDialog (* Views.SetViewHook *),
-
-		StdLog, ConsLog, (* Log.Hook *)
-
-		Converters (* .odc *),
-		Dialog;
-
-	PROCEDURE Init;
-		VAR res: INTEGER;
-	BEGIN
-		Converters.Register("Documents.ImportDocument", "Documents.ExportDocument", "", "odc", {});
-		Dialog.Call("Config.Setup", " ", res);
-		Dialog.Call("ConsInterp.Run", " ", res)
-	END Init;
-
-BEGIN
-	Init
-END Init.

+ 5 - 7
BlackBox/build

@@ -26,11 +26,11 @@ DevCompiler.CompileThis StdLoader
 DevCompiler.CompileThis Kernel_so_init
 DevCompiler.CompileThis Kernel_so_init
 
 
 # before StdLog
 # before StdLog
-ConsCompiler.Compile('Host/Mod', 'Dialog.txt')
+DevCompiler.CompileThis HostDialog
 
 
 DevCompiler.CompileThis StdLog
 DevCompiler.CompileThis StdLog
 DevCompiler.CompileThis Out
 DevCompiler.CompileThis Out
-ConsCompiler.Compile('Cons/Mod', 'Log.txt')
+DevCompiler.CompileThis ConsLog
 
 
 DevCompiler.CompileThis DevMarkers DevCommanders DevSelectors DevCPM DevCPT DevCPH DevCPB DevCPE DevCPS DevCPP DevCPL486 DevCPC486 DevCPV486 DevCompiler DevElfLinker16 DevLinker
 DevCompiler.CompileThis DevMarkers DevCommanders DevSelectors DevCPM DevCPT DevCPH DevCPB DevCPE DevCPS DevCPP DevCPL486 DevCPC486 DevCPV486 DevCompiler DevElfLinker16 DevLinker
 DevCompiler.CompileThis ConsCompiler
 DevCompiler.CompileThis ConsCompiler
@@ -39,15 +39,13 @@ DevCompiler.CompileThis StdInterpreter
 
 
 ### BlackBox
 ### BlackBox
 
 
-ConsCompiler.Compile('Host/Mod', 'Fonts.txt')
-ConsCompiler.Compile('Host/Mod', 'Windows.txt')
+DevCompiler.CompileThis HostFonts HostWindows
 DevCompiler.CompileThis HostDates
 DevCompiler.CompileThis HostDates
 DevCompiler.CompileThis HostTextConv
 DevCompiler.CompileThis HostTextConv
 
 
-ConsCompiler.Compile('Cons/Mod', 'Interp.txt')
+DevCompiler.CompileThis ConsInterp
 
 
-ConsCompiler.Compile('System/Mod', 'Init.txt')
-DevCompiler.CompileThis Config
+DevCompiler.CompileThis Init Config
 
 
 DevElfLinker.LinkDll libBB.so := Kernel+ Files HostFiles StdLoader
 DevElfLinker.LinkDll libBB.so := Kernel+ Files HostFiles StdLoader
 
 

+ 1 - 1
README

@@ -83,7 +83,7 @@ Files:
 				OpenBSD-specific:
 				OpenBSD-specific:
 					size_t
 					size_t
 					__xstat -> stat
 					__xstat -> stat
-		_OpenBSD_/Lin/Mod/Libc.txt:
+		_OpenBSD_/Lin/Mod/Libc.odc:
 			OpenBUGS Lin/Mod/Libc.odc:
 			OpenBUGS Lin/Mod/Libc.odc:
 				OpenBSD-specific
 				OpenBSD-specific
 		_Linux_/Lin/Mod/Libc.odc:
 		_Linux_/Lin/Mod/Libc.odc: