Author Topic: Oxygen Update  (Read 24155 times)

0 Members and 2 Guests are viewing this topic.

Charles Pegge

  • Guest
Oxygen Update
« on: March 22, 2013, 04:41:17 AM »
It's been a very busy week, I've fixed some C things but you will have to wait a little longer for the C preprocessor pass.

some new features

generic function :)

function f1(...)
...
end function


generic parameter array

for ellipsis etc

function f2(n,...)
indexbase 0
for i=1 to n
  print param(i)
next
end function

f2  3,10,20,30

Quote
12:29 22/03/2013  Fix addr for strings / byref params / simple arrays / members
11:01 22/03/2013  Fix ### ### (multipass compiling) (Emil)
07:38 22/03/2013  Param[] for direct generic access to function params
06:41 22/03/2013  support ... in main code (ellipsis line non-execurable)
06:14 22/03/2013  itr thinBasic problem with string constants in app dataspace (quoted)
06:13 22/03/2013  Internal Set lcl() flag whenever lcls is() set
01:27 21/03/2013  New GetVarptr for thinBasic_Oxygen / Oxygen shell split
00:48 21/03/2013  Fix new 'extern' resets previous extern settings incl library name (auto end extern)
19:19 20/03/2013  Fix 'addr' pseudo-instruction for bstrings and strings
12:44 20/03/2013  Convert void* return type to 'sys'
12:42 20/03/2013  Various typedef function fixes (ScriptBasic Bes Header)
19:36 19/03/2013  Support void** typedef members
19:35 19/03/2013  Fix typdef members unsigned long etc
10:56 17/03/2013  Allow calling convention overrides : cdecl method ... cdecl int f()
10:56 17/03/2013  Allow unprototype methods (Emil)
10:54 17/03/2013  Allow macros inside typedefs (Emil)

Charles
« Last Edit: March 24, 2013, 07:47:46 AM by Charles Pegge »

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #1 on: March 24, 2013, 07:47:22 AM »
Important Update for 64bit binary producers:

Repair 64 bit methods internal calling convention (non external classes)

Fix RTL64 val function
« Last Edit: April 01, 2013, 12:36:08 PM by Charles Pegge »

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #2 on: April 01, 2013, 12:33:42 PM »
This fixes a bug which shows up itself in extern declarations, due to an uninitialised record.

And another bug affecting char* functions

Also provides support for filepath relative to ExePath.

using $ in these 2 compiler directives only.
includepath "$\inc\"
librarypath "$\"





« Last Edit: May 01, 2013, 02:49:24 PM by o2admin »

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #3 on: April 03, 2013, 04:04:13 AM »
This update supports direct (relative) jumps to functions. This is used for relaying callbacks into a single function.


call c2
end

extern
'
function f(...)
...
print pdata(2) ' eax=1 or eax=2
end function

c1:
=1 'eax=1
jmp f
'
c2:
=2 'eax=2
jmp f
'
end extern


Charles
« Last Edit: April 07, 2013, 08:12:33 AM by Charles Pegge »

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #4 on: April 07, 2013, 08:11:50 AM »
Some bug fixes + new RTL32 (the missing -ve sign bug)
« Last Edit: May 01, 2013, 02:49:53 PM by o2admin »

Maxim

  • Guest
Re: Oxygen Update
« Reply #5 on: April 10, 2013, 11:27:26 PM »
Thanks Charles,

test with this update return good result

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #6 on: April 11, 2013, 04:31:52 AM »
Fix #compact option (dead code removal)

Extensions of Let syntax (more on this later)

« Last Edit: April 12, 2013, 07:54:20 PM by Charles Pegge »

Peter

  • Guest
Re: Oxygen Update
« Reply #7 on: April 11, 2013, 06:44:28 AM »
Hi Charles,

The new last DLL runs with gl2d. But makes not any  gl2d DLL! 
I took back the older DLL and then it went again.

X

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #8 on: April 11, 2013, 08:45:00 AM »
Hi Peter,

it looks like it does not recognise wglMakeCurrent as a procedure for some reason.

If you insert #recordof wglMakeCurrent at this point , it should return type -4, .. -7 on the top line, depending on how you have declared it.

My Opengl runs okay with the standard C headers and also with Petr's thinBasic TBGL headers

PS:
I also check Asm low level binding with the OpenGl2 example.
« Last Edit: April 11, 2013, 01:31:35 PM by Charles Pegge »

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #9 on: April 11, 2013, 01:21:32 PM »
Oxygen Asm now supports the following 'n' conditionals

jnz jnge jnl jng jnle jnae jnc jnb jna jnbe jno jns jnc jne

cmovnz cmovnge cmovnl cmovng cmovnle cmovnae cmovnc cmovnb cmovna cmovnbe cmovno cmovns cmovnc cmovne

setnz setnge setnl setng setnle setnae setnc setnb setna setnbe setno setns setnc setne

« Last Edit: April 17, 2013, 04:03:40 AM by Charles Pegge »

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #10 on: April 12, 2013, 08:01:32 PM »
Changes to the Embedfile command:

embedfile pointer,filename,offset,length

offset and length are optional

a negative offset counts from the end of the file

test: t.txt contains "ABCDEF":

sys p
embedfile p,"t.txt",3,2
byte b at p
print b[1] '68
zstring z at p
print z 'DE
bstring s at @p
print s "  " len s 'DE  2


Charles
« Last Edit: April 13, 2013, 10:16:41 PM by Charles Pegge »

Emil_halim

  • Guest
Re: Oxygen Update
« Reply #11 on: April 13, 2013, 07:40:58 AM »

Nice Work Charles.

thanks you.

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #12 on: April 13, 2013, 10:19:45 PM »
Fix DLL error trapping behaviour - unloading, as discussed with Peter.

RTLs for the inc/ folder are included
« Last Edit: May 01, 2013, 02:50:31 PM by o2admin »

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #13 on: April 17, 2013, 04:02:23 AM »
Fix for strange lurking last word comma string literal bug detected by Aurel.
« Last Edit: April 17, 2013, 12:26:43 PM by Charles Pegge »

Charles Pegge

  • Guest
Re: Oxygen Update
« Reply #14 on: April 17, 2013, 12:26:16 PM »
Fix for C style prototype params with '$' suffixes
« Last Edit: April 19, 2013, 11:25:00 AM by Charles Pegge »