March 28, 2024, 11:22:17 PM

News:

Own IWBasic 2.x ? -----> Get your free upgrade to 3.x now.........


Progress update

Started by Ionic Wind Support Team, November 02, 2006, 01:06:22 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Ionic Wind Support Team

November 02, 2006, 01:06:22 AM Last Edit: November 02, 2006, 09:37:58 AM by Paul Turley
It's been quiet here, too quiet.   I have been busily coding away on numerous Aurora projects and just thought I would give a general status update.  Don't want anyone to think we are not moving forward ;)

Beta 1 Rev 3 has been a tough revision for me.  Lots of bug fixes on the debugging side, which was discussed in the private forums.  I have also created a disassembler from scratch that will be available as you're single stepping through code.  The long standing bug where the linker would just refuse to build an executable after a few debug builds is now history.  Some memory leaks in the IDE were found as well and it will be the most stable build to date.

The disassembler was created using Aurora and the IDE uses it through a DLL.  Took me about three weeks of hammering away at it to get acceptable output under a wide variety of processor architectures.  For anyone that has never attacked such a project it involves decoding x86 instructions, lots of bit shifting, and a few dozen hand entered very long tables of opcodes.  Here is what the output looks like:


40C050 push ebp
40C051 mov ebp,esp
40C053 sub esp,0x06C
40C059 push ebx
40C05A push edi
40C05B push esi
40C05C lea eax,[ebp-104]
40C05F mov edi,eax
40C061 mov dword [edi+0],0x0421549
40C06B push edi
40C06C call 0x0417420
40C071 lea eax,[ebp-104]
40C074 mov edi,eax
40C076 push edi
40C077 xor eax,eax
40C079 mov edx,eax
40C07B push edx
40C07C lea edi,[esp+4]
40C080 push dword [edi]
40C082 call 0x041A700
40C087 pop edi
40C088 lea eax,[ebp-104]
40C08B mov edi,eax
40C08D push edi
40C08E lea edi,[esp+0]
40C091 push dword [edi]
40C093 mov edi,dword [esp]
40C096 mov edi,dword [edi]
40C098 call dword [edi+32]
40C09B pop edi
40C09C push dword 0x0A
40C0A1 push dword 0x02
40C0A6 push dword 0x0D
40C0AB push dword 0x02
40C0B0 mov eax,0x0421436
40C0B5 push eax
40C0B6 push dword 0x01
40C0BB push dword 0x03
40C0C0 call 0x041B8D0
40C0C5 add esp,0x01C
40C0CB push dword 0x0A
40C0D0 push dword 0x02
40C0D5 push dword 0x0D
40C0DA push dword 0x02
40C0DF mov eax,0x00
40C0E4 mov ebx,0x040000000
40C0E9 mov ecx,0x00
40C0EE push dword 0x03FF00000
40C0F3 push ebx
40C0F4 push eax
40C0F5 fld qword [esp]
40C0F8 add esp,0x08
40C0FE push dword [esp]
40C101 push ecx
40C102 fld qword [esp]
40C105 add esp,0x08
40C10B fadd st0,st1
40C10D add esp,0x04
40C113 fstp qword [0x0422000]
40C119 ffreep st0
40C11B mov eax,[0x0422000]
40C120 mov ebx,[0x0422004]
40C126 push ebx
40C127 push eax
40C128 push dword 0x07
40C12D push dword 0x03
40C132 call 0x041B8D0
40C137 add esp,0x020
40C13D mov eax,0x01
40C142 mov edx,eax
40C144 lea eax,[ebp-108]
40C147 mov esi,eax
40C149 mov dword [esi],edx
40C14B mov eax,0x065
40C150 lea ebx,[ebp-108]
40C153 mov esi,dword [ebx]
40C155 mov edi,eax
40C157 cmp esi,edi
40C159 setl dl
40C15C and edx,0x0FF
40C162 mov eax,edx
40C164 mov edx,eax
40C166 cmp edx,0x00
40C16C jz 0x040C18B
40C172 lea eax,[ebp-108]
40C175 push eax
40C176 mov eax,0x01
40C17B lea ebx,[ebp-108]
40C17E mov ebx,dword [ebx]
40C180 add ebx,eax
40C182 mov eax,ebx
40C184 mov edx,eax
40C186 pop esi
40C187 mov dword [esi],edx
40C189 jmp 0x040C14B
40C18B faddp st1,st0
40C18D fucomip st1
40C18F lea eax,[ebp-104]
40C192 mov edi,eax
40C194 push edi
40C195 call 0x041759B
40C19A mov eax,0x00
40C19F pop esi
40C1A0 pop edi
40C1A1 pop ebx
40C1A2 mov esp,ebp
40C1A4 pop ebp
40C1A5 ret


I may package the disassembler as a separate product as well.  Has some useful functions for dealing with assembler instructions that anyone building there own IDE might need. Perhaps I'll give it away and make the source available for a price.  It was a lot of hard work and long nights, and I am proud of it.

I've also been working on the new grid control here and there.  Almost ready for prime time but got sidetracked by the need for better debugging tools for Aurora.  A lot of good things came out of the grid control. There was a bug in all of the image classes preventing the loading of OEM images, The SetFont method had a bug where you couldn't set a controls font more than once, etc.

Documentation is progressing at a very slow pace.  Very tedious to say the least and since I am the only one working on it at the moment it will take a bit more time than expected.  Never fear as we will get there. 

Other than that my days are spent job hunting with the wife which doesn't leave much time for coding until the evening.  Hence me typing this update at 3AM. 

As always feel free to ask questions.

Paul.
Ionic Wind Support Team

Kale

Thanks Paul, your efforts are GREATLY appreciated! :)

Aurora is gonna rock hard because of stuff like this.

Zen

It has been quiet but we always seem to go through those spells now and again. I have no idea where to start with assembly code, but one day i might. I think the dissasembler is cool though. Glad your proud of it too, always nice to do something that makes you feel like that.

Hopefully when i get some free time I will do some work on the documentation, to try and get some of it out the way. It may not be the best but its better than nothing. I have work from 8:30 untill 6 then my time is taken up by Aurora Live, my beginners guide to Aurora book and the new girlfriend ;)

Lewis

J B Wood (Zumwalt)

I am with you Paul, I have been spending extremely late nights working on 2 major items for the engine, more updates to my Newton project and major revisions to my RakNet interface (more than I care to say) ,I think in the RakNet alone I have put around 120 hours of time into it to date, and gone through 5 different versions of how I am making it work.

Newton is alot easier than Raknet, and technically what I have already released can be used if a person sat down and wrote there own mechanisms for the interface using the code.

I'll probably back off the Raknet again for a little while and work on finishing up the updates to the Newton and repost that.
Once I get Raknet where I want it then post it, I will move on to PhysX interface, that is a major undertaking and will support hardware physics acceleration.

Steven Picard

It had been quiet here for a while.  I don't think I like it when its too quiet like that.  ;)

@Paul, the disassembler sounds great and it does sound like you've been very busy.  8)

@Zumwalt, your work sounds great, too.

@Zen, what's more important?  Your girlfriend or Aurora?  Just kidding.  ;D

@Kale, thanks for adding Aurora to the code archive for 99 bottles of beer.




Zen

Quote from: Steven Picard on November 02, 2006, 08:14:46 AM
@Zen, what's more important?  Your girlfriend or Aurora?  Just kidding.  ;D

He he!! Well at the moments its at its beginning so its all very nice and lively and fun. Give me a few months untill I tie her to the kitchen ;) ...........Also just a joke! Im a great cook, so I wouldnt let her do it...... Hmmm maybe under the stairs is good :P

Lewis

Steven Picard

Paul, I was thinking that it might be beneficial to release the DLL for free and sell the source code.  If you give the DLL away you can make it a requirement that those who use it must mention Aurora along with a link to this website either in the About box or in the Help File Credits.