Hydrogen Assembler 0.2.x

Programming, for all ages and all languages.
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

Hydrogen Assembler 0.2.x

Post 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...
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

Re: Hydrogen Assembler 0.2.x

Post 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.
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

Re: Hydrogen Assembler 0.2.x

Post 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).
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
User avatar
AaronMiller
Member
Member
Posts: 81
Joined: Thu Mar 06, 2008 1:26 pm
Location: Roseville, California (USA)
Contact:

Re: Hydrogen Assembler 0.2.x

Post by AaronMiller »

This looks cool. I'll test it out. :)

Cheers,
-naota
User avatar
qw
Member
Member
Posts: 792
Joined: Mon Jan 26, 2009 2:48 am

Re: Hydrogen Assembler 0.2.x

Post by qw »

Wow Tommy, you're working hard!
User avatar
qw
Member
Member
Posts: 792
Joined: Mon Jan 26, 2009 2:48 am

Re: Hydrogen Assembler 0.2.x

Post by qw »

Wrote a little "Hello, world!" program. It's a console application.
Attachments
hello.asm
(512 Bytes) Downloaded 98 times
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

Re: Hydrogen Assembler 0.2.x

Post 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.
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

Re: Hydrogen Assembler 0.2.x

Post 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:
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

Re: Hydrogen Assembler 0.2.x

Post by f2 »

New release: 0.2.4.

What's new?
- released, just for fun, a test version of HyASM for i8080 processors.
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
User avatar
AaronMiller
Member
Member
Posts: 81
Joined: Thu Mar 06, 2008 1:26 pm
Location: Roseville, California (USA)
Contact:

Re: Hydrogen Assembler 0.2.x

Post by AaronMiller »

Wow! You're pumping out releases fast! Downloaded latest version. Keep up the good work. :)

Cheers,
-naota
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

Re: Hydrogen Assembler 0.2.x

Post 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...
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
User avatar
AaronMiller
Member
Member
Posts: 81
Joined: Thu Mar 06, 2008 1:26 pm
Location: Roseville, California (USA)
Contact:

Re: Hydrogen Assembler 0.2.x

Post by AaronMiller »

What do you suppose your new programming language will look like?
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

Re: Hydrogen Assembler 0.2.x

Post 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).
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
User avatar
AaronMiller
Member
Member
Posts: 81
Joined: Thu Mar 06, 2008 1:26 pm
Location: Roseville, California (USA)
Contact:

Re: Hydrogen Assembler 0.2.x

Post by AaronMiller »

Have any examples of the syntax? It sounds cool. :)
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

Re: Hydrogen Assembler 0.2.x

Post 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 ...
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
Post Reply