Search found 74 matches

by cevpegge
Aug 07, 2012 19:46
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Re: Oxygen Basic 64-bit compiling

Designing a compiler is extremely intensive work, but very rewarding. I recommend starting out with the simplest possible constructs: a=1+1. Then gradually building in all the other constructs and abstractions. A lot of testing is required on the way, and the bugs that emerge will amaze you with the...
by cevpegge
Feb 22, 2012 8:41
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Re: Oxygen Basic 64-bit compiling

Hi Albert, You can make your own version of the RTL but the function table locations used are not permanently fixed at this stage, and must be kept in-sync with the compiler. However, you can override many RTL functions, by defining your own versions. Oxygen will let you do this. example: function l...
by cevpegge
Feb 21, 2012 22:04
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Re: Oxygen Basic 64-bit compiling

By including rtl32.inc or rtl64.inc at the top of your programme, you can create executables that have no Oxygen dependency. (The only exception is programs that use the compile() function for dynamic compiling) Example: $filename "t.exe" include "..\..\inc\rtl32.inc" 'include &q...
by cevpegge
Jan 17, 2012 10:02
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Re: Oxygen Basic 64-bit compiling

Unfortunately those links are not accessible to me. WinApi1 appears stable on my system. I associate *.o2bas files with gxo2.exe . Then all the examples can be compiled and run by double clicking on the script's icon, as well as launching from the scite IDE (F5). Compiling to an EXE file is not nece...
by cevpegge
Jan 16, 2012 10:06
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Re: Oxygen Basic 64-bit compiling

This code goes back a long way and I think there was a conflict with the more recent prolog and epilog code. This should run cleanly: Test_DLL_call.o2bas 'How to make an sdk/dll call 'revised 09:22 16/01/2012 ' var 4 user32,kernel32 ' create 4 byte variables user32=loadlibrary "user32.dll"...
by cevpegge
Jan 16, 2012 5:17
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Re: Oxygen Basic 64-bit compiling

None of the examples/inprogress code is in a working condition. Most come from other Basic dialects, but I include them in the alpha packages as source material. Could you please give me specific names of programs not working, then I can check them over. I develop on a Vista 64 bit system but XP sys...
by cevpegge
Jan 06, 2012 18:33
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Re: Oxygen Basic 64-bit compiling

Hi Joshy,

It is still called Opengl32.dll (Same as Kernel32.dll etc). MS slipped up with its naming policy a long time ago :)
In Oxygen, I still use the same C headers. But watch out for any pointers as these must be the full 64bits.

Charles
by cevpegge
Jan 05, 2012 11:00
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Re: Oxygen Basic 64-bit compiling

The 64-bit calling conventions, may be good for Operating system kernels but they create a number of problems for high level languages, so I am adopting CDECL (with 16byte alignment) as Oxygen's internal calling standard. It supports EXTENDED (80 bit) Floats passed byref but It needs a little more w...
by cevpegge
Dec 29, 2011 12:38
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Hi Joshy and marcov, I used many different sources of information to create the 64 bit assembler, and had to to some experimenting to get every detail of the 64-bit calling convention correct. I have only implemented MS64 so far: Here is the MS Register usage RAX Volatile Return value register RCX V...
by cevpegge
Dec 27, 2011 21:31
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

I don't know. How do you access these items in FreeBasic?
by cevpegge
Dec 27, 2011 8:50
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

But pushad and popad are not available in 64-bit mode, so the individual volatile registers have to be stacked. def Q push rax push rcx push rdx push rsi push rdi push r8 push r9 push r10 push r11 print hex rax pop r11 pop r10 pop r9 pop r8 pop rdi pop rsi pop rdx pop rcx pop rax end def Charles
by cevpegge
Dec 24, 2011 22:28
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Hi Joshy and fsw ELF in MS and Linux platforms I will need to strip down a few elf files to really understand them, and spend a few weeks in Linux-land where I am not technically proficient at present. I will certainly make it possible to produce any kind of binary from any platform. The only constr...
by cevpegge
Dec 24, 2011 18:37
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Sorry, my signature doesn't show up here: http://www.oxygenbasic.org I must vist Basic4GL sometime Joshy, Oxygen is still a one piece compiler-assembler-linker DLL to make it simple for embedding (As it is in a thinBasic extension module). The assembler takes up about 1/4 of the DLL, and the linker ...
by cevpegge
Dec 24, 2011 1:08
Forum: Community Discussion
Topic: Oxygen Basic 64-bit compiling
Replies: 43
Views: 12669

Oxygen Basic 64-bit compiling

I have just released Oxygen A038 which currently compiles with FB 0.21. This version can generate 64bit binaries. It adds to the three existing modalities thus: compiling 32-bit directly to memory compiling to 32-bit EXE/DLL files with Oxygen.dll dependency compiling to 32-bit EXE/DLL stand-alone fi...
by cevpegge
Oct 10, 2010 3:58
Forum: Projects
Topic: OxygenBasic Compiler
Replies: 46
Views: 15878

Thank you MichaelW and dkl.

Initialising the C run time. Yes that makes sense.

Using the ctor and dtor works fine, though I did notice that the DLLs are now 7KB longer.

Charles