Page 1 of 2

Hydrogen Assembler 0.2.x

Posted: Wed Oct 14, 2009 10:08 am
by f2
Here's a new major alpha release of HyASM: 0.2.0.

What's new?
- added new instructions:
- FPU instructions
- some privileged instructions (LTR, LLDT, VERR...)
- bit scan and bit test instructions
- SHLD and SHLR instructions
- SETxx instructions
- CMPXCHG and CMPXCHG8B instructions
- XADD instruction
- a16/a32 prefix is now supported
- some bugs fixes

The manual is still being written.

As usual, please feel free to test, bug report, suggest ideas, features request, etc...

Re: Hydrogen Assembler 0.2.x

Posted: Thu Oct 15, 2009 5:23 am
by f2
New release: 0.2.1.

This version does not include new features or new instructions, but I have released a test version of HyASM for MIPS and MIPSEL architectures. Some instructions (including FPU) are implemented.

Re: Hydrogen Assembler 0.2.x

Posted: Thu Oct 15, 2009 3:21 pm
by f2
New release: 0.2.2.

What's new?
- X86: fixed address encoding with Jxx and LOOP instructions.
- fixed a critical bug with local labels.

I think this release is now really usable for OSDev-ing (unless other bugs are discovered).

Re: Hydrogen Assembler 0.2.x

Posted: Thu Oct 15, 2009 5:20 pm
by AaronMiller
This looks cool. I'll test it out. :)

Cheers,
-naota

Re: Hydrogen Assembler 0.2.x

Posted: Fri Oct 16, 2009 11:22 am
by qw
Wow Tommy, you're working hard!

Re: Hydrogen Assembler 0.2.x

Posted: Fri Oct 16, 2009 12:31 pm
by qw
Wrote a little "Hello, world!" program. It's a console application.

Re: Hydrogen Assembler 0.2.x

Posted: Fri Oct 16, 2009 12:54 pm
by f2
Hobbes wrote:Wow Tommy, you're working hard!
Very hard. I'm trying to implement the "include" directive. But I need to rewrite some important parts
of the code to implement this useful directive.
Hobbes wrote:Wrote a little "Hello, world!" program. It's a console application.
Very good! This sample will be included in the next release.

Re: Hydrogen Assembler 0.2.x

Posted: Sat Oct 17, 2009 1:53 am
by f2
New release: 0.2.3.

What's new?
- fixed a critical bug in the section expansion routine.
- added INCLUDE directive for including other asm files.
- added FILE/INCBIN directive for including binary files.
- X86: added FB, FW and FD directives for buffer creation.
- MIPS: added some FPU instructions.

The archive contains a draft documentation.
Hobbes wrote:Wrote a little "Hello, world!" program. It's a console application.
Added some comments on your sample and added to the "samples" directory. Thanks! :wink:

Re: Hydrogen Assembler 0.2.x

Posted: Sat Oct 17, 2009 11:04 am
by f2
New release: 0.2.4.

What's new?
- released, just for fun, a test version of HyASM for i8080 processors.

Re: Hydrogen Assembler 0.2.x

Posted: Sat Oct 17, 2009 2:53 pm
by AaronMiller
Wow! You're pumping out releases fast! Downloaded latest version. Keep up the good work. :)

Cheers,
-naota

Re: Hydrogen Assembler 0.2.x

Posted: Sat Oct 17, 2009 3:28 pm
by f2
AaronMiller wrote:Wow! You're pumping out releases fast! Downloaded latest version. Keep up the good work. :)
i8080 port took me an hour. I just did for fun, and then it may interest someone.
So, I'm working on version 0.3.0. This release will implement the support of procedures and structures.
Perhaps I will begin my other project of a new programming language...

Re: Hydrogen Assembler 0.2.x

Posted: Sat Oct 17, 2009 3:39 pm
by AaronMiller
What do you suppose your new programming language will look like?

Re: Hydrogen Assembler 0.2.x

Posted: Sat Oct 17, 2009 3:42 pm
by f2
AaronMiller wrote:What do you suppose your new programming language will look like?
A dialect of Pascal, with bits of Basic and C. As for its name, I called it "HL" (for Hydrogen Language).

Re: Hydrogen Assembler 0.2.x

Posted: Sat Oct 17, 2009 3:44 pm
by AaronMiller
Have any examples of the syntax? It sounds cool. :)

Re: Hydrogen Assembler 0.2.x

Posted: Sat Oct 17, 2009 3:55 pm
by f2
AaronMiller wrote:Have any examples of the syntax? It sounds cool. :)
OK! That might look like a source file in HL:

Code: Select all

#
# Example code
#

WORD       Value1 = 3			       # initialized data.
BYTE         Value2			       # uninitialized data.
STRING      String1 = "Hello"              # a string...

# Example procedure
PROC	TestProcedure (WORD Arg1, DWORD Arg2) AS DWORD
	BYTE         LocalVar1 = 5
	DWORD	LocalVar2

	IF	(Arg1 == 0)
		RETURN	(LocalVar1 + 6)
	ELSE
		SWITCH	Arg2
			CASE 0:
				LocalVar2 = LocalVar1 + 3
				BREAK
			CASE 1:
				RETURN Arg2
			DEFAULT:
				RETURN -1
		END SWITCH
	END IF

	LocalVar1 = 0

	RETURN	LocalVar1
END PROC

Of course, this is a draft of the language, everything can change before the first release ...