Register | Login
Forum Index > News > Compiler Latest Releases
Author Message
Pages: 1 2 3 4 5 6
Admin
Site Admin

avatar

(send private message)

Posts: 933
Topics: 55

Location:
OverHertz Studio
[49] - posted: 2011-05-30 20:44:04
making 1 last quick release for this month, releases will definatly slow down after this one, i will try to add more for each release, i just wanted to get some of the important stuff out of the way...

2011.05.30: Ziron Compiler 1.1.15.7
Code:
  -added repeat and until keyword. (repeat while is also valid)
  -added for loop.
  -added step - can be used in for loops (idea by Lord_Zero)
  -added downto - in for loops to increments and downto decrements. e.g. for (ecx = 50 downto 0)


as you see this extends the control structures from just while loops to few others

Code:
edi = xor;

repeat {
  edi++;
} while (edi < 50);

repeat {
  edi--;
} until (edi == 0);


for (edi = 1 to 50) {
  WriteNumber(edi);
}

for (edi = 0 to 50 step 10) {
  WriteNumber(edi);
}

for (edi = 50 downto 0) {
  WriteNumber(edi);
}

while (edi > 1) {
  edi--;
}


Download Ziron
Get free hosting for Ziron related fan-sites and Ziron projects, contact me in private message.
Admin
Site Admin

avatar

(send private message)

Posts: 933
Topics: 55

Location:
OverHertz Studio
[61] - posted: 2011-09-05 02:56:28
it has been a while since i last released an update, today i spend a little while fixing and updating a few things, here is a new release, unfortunately i have not received any bug reports, so it is difficult to fix what i do not know is broken.

check the download page to download version 1.1.16.1

Code:
2011.09.05: Ziron Compiler 1.1.16.1
  -for step accepts registers.
  -for accepts variable assignment. e.g for (eax = myvar to ....
  -possible to use hexadecimal values in for loops.
  -possible to use register compare in for loop. e.g. for (eax = 1 to ecx) {
  -declaring a class without "uses reg" will default to using ebx for "this". e.g class Name { ... }


primarily i concentrated on the for construct, allowing some more advanced for usage, and dropped the requirement of the uses [reg] in class declarations, it will default to using ebx for this as the changelog states.

small sample of current state of for construct

Code:
DWord temp = 0
ecx = 1024;
edx = 32;

for (eax = temp to ecx step edx) {
  WriteNumber(eax);
}



enjoy,

Download Ziron
Get free hosting for Ziron related fan-sites and Ziron projects, contact me in private message.
Admin
Site Admin

avatar

(send private message)

Posts: 933
Topics: 55

Location:
OverHertz Studio
[63] - posted: 2011-09-09 03:29:16
yet another release fixing and adding a few needed things smile

Code:
2011.09.08: Ziron Compiler 1.1.17.5
  -possible to use high level segment assignment. e.g. cs = eax;
  -mov now accepts seg, reg. e.g. mov cs, eax
  -possible now to push and pop segments. e.g push cs; pop ds
  -added private keywords for segments, cs, ss, ds, es, fs and gs
  -fixed assigning hex value to register.
  -fixed incorrect syntax bug when creating infinite repeat via repeat {};
  -possible to write single line if statements without block entries. e.g. if (eax == 1) dosomething;
    note: Macros can not be called inside of none block if statements.
  -rewritten and optimized if statement parser.
  -fixed a bug with using break inside of a repeat construct.
  -very simple or if statement check, should avoid using and and or together, if needed then use the or statement before the and.
    e.g. if ((eax == 5) or (eax < 500) and (eax > 400)) {
    note that currently this method does not support multiple parenthesis.
  -if statements can contain multiple if "and" compares. e.g if ((eax > 10) and (eax < 100) and (eax <> 50)) { ....


a few things to note, single line block if statements can not contain macro calls (yet), e.g. if (eax == 0) return 1; is invalid because return is a macro... however i'm sure i will improve the handler at some point to make this possible.

1 other thing is that the if blocks using "or" and "and" you may have as many ors and ands as you wish however you need to place your or check statements before any "and"'s ... for example

Code:
if ((eax > 1) and (eax < 10) or (eax == 55)) {


the above code will not work as expected, the or check statements needs to proceed any and's so...

Code:
if ((eax == 55) or (eax > 1) and (eax < 10)) {


and now this will work as expected, for now it is pretty limited but useful, you can not compare multiple "or-and" statements and so on... anyways...

download via the download page smile

Download Ziron
Get free hosting for Ziron related fan-sites and Ziron projects, contact me in private message.
Admin
Site Admin

avatar

(send private message)

Posts: 933
Topics: 55

Location:
OverHertz Studio
[69] - posted: 2011-09-18 13:13:57
major bugfix release

Code:
2011.09.18: Ziron Compiler 1.1.18.3
  -fixed a bug with cpu 486 optimizer.
  -improved opcode push handler + fixed pushing var, localvar and params.
  -fixed stack problems related to local variables.
  -added assigning functions to local variables.
  -fixed assigning global variables to base registers. e.g. [eax] = globalvar;
  -fixed a bug with macro #end breaking block codes such as if, while, repeat
  -fixed assigning to a register pointer. e.g. eax.somevar = globalvar;
  -alternative to using ord for ordinal strings, its possible now to use "", e.g. eax = "test";
    note. do not confuse ordinal strings with an actual string. "test" = ordinal string, 'test' = constant string.
  -fixed a bug with lea reg, [reg+disp]
  -added getFileExt function to library file "zirutils.zir"
  -possible to push base+index register onto stack. e.g. MyProc([eax+ecx]);
  -fixed a bug with typecasting base expressions. e.g. byte[eax+ecx]
  -added additional built-in reference to widechar via wchar.
  -fixed a bug regarding imported functions sometimes having incorrect parameter offsets.
  -Compiler now sets the current directory on startup of the main zir file.
  -\r and \n can now be used inside of a string for line feed and new line. \n = 0x10 and \r = 0x13.


check downloads section.

Download Ziron
Get free hosting for Ziron related fan-sites and Ziron projects, contact me in private message.
Admin
Site Admin

avatar

(send private message)

Posts: 933
Topics: 55

Location:
OverHertz Studio
[71] - posted: 2011-09-20 02:19:16
just another quick release before i head off to bed smile

Code:
2011.09.20: Ziron Compiler 1.1.19.1
-fixed for loops access violation when not given a stepping size.
-added assigning functions to assumed registers. e.g. edi.somevar = func();
-fixed lea reg, [reg+ofs] and lea reg, [reg+reg+ofs]
-fixed several bugs with local param blocks/structs.
-fixed calling class functions from another class function. e.g. this.MyFunc();
-possible to now goto or jmp to a register. e.g. goto eax;
-added mov segment:addr, register, possible also to use high level assign. e.g. fs:0 = eax;
-possible to push segment:address. e.g. push fs:0 or MyProc(fs:0);
-added pop segment:addr
-fixed high level calls using segments. e.g. myProc(fs);


check out the downloads page to get the latest version smile

Download Ziron
Get free hosting for Ziron related fan-sites and Ziron projects, contact me in private message.
Admin
Site Admin

avatar

(send private message)

Posts: 933
Topics: 55

Location:
OverHertz Studio
[72] - posted: 2011-09-26 15:43:32
This update concentrates more on fixing bugs and extending the macro engine, i have added a new macro print, it can be used with numbers and text, well anything i guess, i have added more samples too.

string sample - creating/using strings.
using classes - how to use a class.
remote app - example showing opening another process.
loadfs - how to use internal macro "loadfs".
simple message server - a simple winsock hello world message server.
using directives - how to use some of the directives.
api window - creating a GUI window using the win api.

Code:
2011.09.26: Ziron Compiler 1.1.20.2
  -fixed assigning constant to variable.
  -fixed assigning constant string to variable.
  -compiler output shows absolute lines compiled (including commented lines, since they are still processed).
  -fixed bugs with nested repeat and if macros.
  -possible to typecast 32bit registers for passing to macros. e.g. myMacro(eax:string);
  -optimised tokenizer.
  -added internal function deftype - this can be used to get the macro variable type, int, string, register, etc
  -possible to add and dec 1 from macro vars via $var++; and $var--;
  -macro variables can now be created. e.g. $var = 0;
  -now possible to access macro variables via $arg. e.g. $arc[0], $arg[1] etc.
  -possible to recast macro variables using a colon, e.g. $var:string. e.g. myproc($var:string);
    -supported casts are string, int, register and segment.
  -added recast. e.g. recast $var as string;
  -possible now to call macros inside of other macros.
  -rewrote inline macro system.
  -added $argc macro constant, returns as a number of params passed to the macro.
  -possible to declare an inline macro with unlimited params via inline procedure myMacro(;) { ...
  -added new system.zir file, moved some compiler constants to; this file will always be required by the compiler.
    -if the file is missing; an error will be reported; it does not need to be explicitly included.
  -fixed a bug when calling functions as params.
  -fixed passing hexadecimal in high level calls. e.g myProc(0xFFFF);


check download page.

Download Ziron
Get free hosting for Ziron related fan-sites and Ziron projects, contact me in private message.
Admin
Site Admin

avatar

(send private message)

Posts: 933
Topics: 55

Location:
OverHertz Studio
[75] - posted: 2011-10-09 21:21:26
Hello,

This release I have been working hard on interfaces/classes and the macro system.

I have improved how macro variables work and the way macro functions can be called and used. I have added interface which basically is similar to class only it does not contain it's own functions/procedures, see the directx9 include file for an example).

I've also added 2 new samples, 1 is showing a new feature "enumeration", which allows you to define many consts under a new typedef basically... check the forum for an example.
The second of course is a DirectX9 sample, creating the window, initializing directx and changing colour of the window in the gameloop.

Else there is a few other fixes and so on.

Code:
2011.10.09: Ziron Compiler 1.1.21.8
  -added a new macro to colors.zir -> RGB, usage RGB(255, 255, 255) will output DWord white.
  -it is possible to assign a type to declared macro variables.
    e.g. $var = float 6/2;
  -macro variables can now accept complex expressions.
    e.g. $val = ($blue shl 16) or ($green shl 8) or ($red);
  -highly improved the way macro functions are handled.
  -fixed comparison of byte size variables with numbers.
  -enumerations will accept semi colons or commas at the end of each value.
    e.g. enum ... { val1, val2; val3; val4; }
  -added new samples "directx9_basic" and "enum"
  -added support for enumeration of const values.
    e.g. enum SOMETYPE {... or enum SOMETYPE:DWord {...
  -fixed pushing single (real4) variables.
  -added possiblity for classes/interfaces to inherit from one another.
    e.g. class ClassName(AnotherClassName) { ...
  -it is now possible to create an interface of functions/procedures.
    e.g. interface IClass { ...
  -function/procedure pointers no longer require call method appended, the default is stdcall;
    e.g. function* name(): DWord;
  -when assigning a variable to a register, the register will now automatically assume the datatype of the variable.
  -now possible to call from typecasted register pointer. e.g. call edi.somevar;
  -possible to call base expressions. only base register and displacement is supported for now.
    e.g. call [eax+5]
  -variables created as a pointer will be passed as a string reference to macros by default.
  -improved and added a few library functons/macros.


check the download section or the link in my signature smile

Download Ziron
Get free hosting for Ziron related fan-sites and Ziron projects, contact me in private message.
Admin
Site Admin

avatar

(send private message)

Posts: 933
Topics: 55

Location:
OverHertz Studio
[77] - posted: 2011-10-14 18:38:11
Hello,

This new release is something *special*, i have worked long and hard on implementing all FPU opcodes, it should contain all - if it is missing 1, let me know smile

Code:
2011.10.14: Ziron Compiler 1.1.22.1
  -improved FPU opcodes (full support)
    fcom, fcomp, fild, fld, fstp
    > see opcodes.txt for information and usage.
  -it is possible to directly re-typecast a variable - note they will permanently be changed to the new type.
    e.g. myproc((single)dwordvar);
  -added FPU opcodes
    faddp, fadd, fbld, fcmovb, fcmove, fcmovbe, fcmovu, fcmovnb, fcmovne, fcmovnbe, fcmovnu, fcomi,
    fcomip, fcompp, fprem, fprem1, fptan, fpatan, fsqrt, frndint, fscale, fsincos, ftst, fxam, fwait, fxtract, fyl2x,
    fyl2xp1, ffree, fmulp, fdiv, fninit, f2xm1, fclex, fnclex, fdecstp, fincstp, fldl2e, fldl2t, fldlg2, fldln2, fmul,
    fsub, fist, fldpi, fst, fistp, fdivp, fxch, fucompp, fnstsw, fstsw, fnstcw, fstcw, fldcw, fstenv, fnstenv, fldenv,
    fsave, fnsave, frstor, fucomp, fucom, fucomi, fucomip, fsubp, fiadd, fisub, fimul, fidiv, ficom, fdivr, fidivr,
    ficomp, fdivrp, fsubrp, fisubr, fsubr
    > see opcodes.txt for information and usage.
  -added cpu mode 686.
  -it is now possible to just write st, which would equal st(0). e.g. fadd st, st
  -fixed static arrays. e.g myarr[1].x[4] = 4;
  -The final value inside an enum no longer requires a comma or semicolon.
    e.g. enum MyEnum { value1 = 1, value2, value3 }


let me know smile

Download Ziron
Get free hosting for Ziron related fan-sites and Ziron projects, contact me in private message.
Pages: 1 2 3 4 5 6
create new reply


Quick reply:

Message:



Currently Active Users:
There are currently 17 user(s) online. 0 member(s) and 17 guest(s)
Most users ever online was 1046, January 28, 2022, 2:08 pm.


Statistics:
Threads: 225 | Posts: 1848 | Members: 51 | Active Members: 51
Welcome to our newest member, yecate
const Copyright = '2011-2024 © OverHertz Ltd. All rights reserved.';
Web development by OverHertz Ltd