I haven't coded in assembly since the old "DOS" days ;) so there are probably a few obsolete instructions i'm still using... Also, i was using TASM back then, so i wasn't used to .IFs, .WHILEs and .SWITCHes; but i'll use those commands next time..
I know the programming is far from perfect; it started as a small Mandelbrot fractal generator, and i couldn't help to add features (you know how it is ;) ) so some parts of the code may look a bit 'patched'.. The code for painting&updating the screen for example, doesn't look very good.
Oh and all the comments are in french ;) (Though i am willing to translate if anyone is really interested.)
But there it is, a Mandelbrot fractal generator coded entirely in assembler. The program will use the SSE2 instruction set if available. You can switch from sse to fpu by using the "M" key. "Fractale.asm" must be assembled by MASM 6.15 (SSE2 instructions aren't supported by 6.14)
http://inf2170.homelinux.com/extra/fractale.exe
http://inf2170.homelinux.com/extra/fractale.asm
Controls:
Escape or 'Q': Quit
Backspace: Restart
Espace: Info
'M': Change mode
'R': Redraw using currently selected mode
'=': 25 more iterations
'-': 25 less iterations
0-9: Color palette #
Left mouse button: Select
Right mouse button while selecting: Cancel selection
Shift while selecting: Allow to change selection ratio
Mouse wheel: Zoom in/out
Shift while zooming: Don't reset mouse pointer
Vincent
Vincent
I certainly will have a look at it. You may also be interested in looking at my own version which you can get from the bottom of the following page:
http://www.ray.masmcode.com/complex.html
Raymond