Cosmos/source/HelloWorldAssembler/Program.cs
2007-09-03 13:32:32 +00:00

34 lines
No EOL
1.4 KiB
C#

using System;
using System.IO;
using System.Linq;
using Indy.IL2CPU.Assembler;
using X86 = Indy.IL2CPU.Assembler.X86;
using Indy.IL2CPU.Assembler.X86;
namespace HelloWorldAssembler {
public class Program {
public static void Main(string[] args) {
using (StreamWriter xSW = new StreamWriter("out.asm")) {
using (X86.Assembler a = new X86.Assembler(xSW)) {
a.OutputType = Indy.IL2CPU.Assembler.Assembler.OutputTypeEnum.GUI;
a.Includes.Add("win32w.inc");
a.DataMembers.Add(new DataMember("_class", "TCHAR", "'FASMWIN32',0"));
a.DataMembers.Add(new DataMember("_title", "TCHAR", "'Win32 program template',0"));
a.DataMembers.Add(new DataMember("_error", "TCHAR", "'Startup failed.',0"));
a.DataMembers.Add(new DataMember("wc", "WNDCLASS", "0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class"));
a.DataMembers.Add(new DataMember("msg", "MSG", ""));
DummyOp xDO = new DummyOp(null, null);
xDO.Assembler = a;
xDO.Assemble();
a.ImportMembers.Add(new ImportMember("library kernel32,'KERNEL32.DLL',\\"));
a.ImportMembers.Add(new ImportMember("\tuser32,'USER32.DLL'"));
a.ImportMembers.Add(new ImportMember("include 'api\\kernel32.inc'"));
a.ImportMembers.Add(new ImportMember("include 'api\\user32.inc'"));
a.Flush();
}
}
Console.WriteLine("[Not Implemented] Done.");
Console.ReadLine();
}
}
}