Authoring Windows Applications In
Assembly Language
-
Huh? . . . Windows in Assembler?

Am I sick? Perhaps. Am I a dinosaur destined for early extinction? Yeah, probably. But I truly love programming. It's what I do. It fulfills me and sustains me . . . and I'm never in a hurry to "just be done with it." I can't stand sloppiness in my work, so for me that means writing the smallest, tightest, fastest, most economical computer programs possible. And THAT means authoring Windows applications in Assembly Language.

Though the rest of the world may argue that they're more "productive" (when measured by hard disk space consumed per second), I stand by the principle that: "Small Is Beautiful".


Small Is Beautiful?

Sure, I think so. Don't you?

When I began the development of the first Windows application I'd ever created, ChromaZone, I was determined not to let the fact that I was writing for Windows keep me from creating really great software. And frankly, I just don't consider a utility program that's 4 megabytes big, and contains all sorts of files that the author didn't create, to be "really great software". Do you?

So I needed to figure out how to write Windows Applications in Assembly Language. (Just as I had created SpinRite and all prior products in my life.) Well, I did that, and ChromaZone became a testament to what one guy who really cares about quality can produce.

Please allow me to urge you to download and check out the FREE ChromaZone Demo (177k). It's a rather amazing Windows Screen Saver Construction Set that I wrote in 100% pure assembly language. There's NOTHING TO INSTALL since the ZIP file contains a single executable program that just runs. The demo program contains 100 separate, customizable, amazing screen savers. ChromaZone demonstrates, far better than any words could, what one determined guy working alone can produce.

ChromaZone is pretty much the last word in "display hardware palette animation", so it will require you to temporarily drop your system down into 256-color mode ... but if you will give it a whirl I know you'll be quite amazed. I am not trying to sell you a copy of ChromaZone. Really, I'm not. It's just a piece of work that I'm so very proud of, that I'd really like to share the demo with you if you'll take a moment to check it out. It runs on any Windows platform (Win3/95/98), except NT, since it depends upon the virtual timer vxd (VTD) that's not present in NT.

Anyway ... ChromaZone is 16-bit Windows Assembly Language Technology. But before I had it completed the world had (pretty much unnecessarily) moved over to the "bigger must be better" 32-bit world of Windows 95.  <<sigh>>  So the next thing I did was to develop the technology to create modern state of the art 32-bit Windows Applications in the same 100% pure assembly language. That's where I am today. Every scrap of code I've written and offer on this web site was written in small, tight, lean and mean assembly language.

You really can feel the difference. Here's another example ...

The new ASPI_ME Title Page App:

This 13,824 byte Windows app sports a few good tricks!

 For one thing, it's only 13,824 bytes! . . . which for any Windows app is a trick in itself!

 Next, the "sliding block puzzle" which it presents and solves right before your eyes is generated on the fly and starts out with a different puzzle every time it runs.

 And finally, the coolest thing is that ALL of the sound effects are synthesized in realtime, on the fly! There are NO attached bloated .WAV files!

That "grande finale" sound — reministent of the THX sound — is generated by a 36-operator, 18-voice, polyphonic, frequency modulation (FM) sound effects synthesizer that I created in software just for the purpose.

My plan is that future products will be "sound effect enabled" where they user can customize the "amount" of sound effects and the program will "re-synthesize" all of the effects, on the fly, to suit individual taste. So, this little title page was my excuse for developing the technology . . .

It's only 13,824 bytes so check it out!

Many visitors to this site have asked if I could provide them with some help getting started authoring 32-bit Windows Applications in Assembly Language. So I created the "Small Is Beautiful" Starter Kit containing everything you'd need to assemble a full-function, state of the art 32-bit Windows Application in assembly language . . .


The Small Is Beautiful Starter Kit:

The file is 20k . . . Sorry it's so big, but I included all of the source code and header files, as well as a copy of the finished SIB.EXE so you could see the result even if you didn't have the other required assembly tools!

SIB.ZIP (20k) -- This zip file contains all of the files necessary to assemble a state of the art 32-bit Windows Application ... written in nothing but assembly language (it also contains the executable SIB.EXE app so that you can see what it looks like and browse the files even if you don't own a copy of Microsoft's Macro Assembler, MASM, or Linker). The App includes a toolbar with standard icons, tool tips, a status bar and common dialogs. And ... of course ... full source code for the entire project.


Microsoft's Macro Assembler, FREE ! ! !

Jon Kirwan maintains a terrific page of links and discussion about the tools needed for 32-bit assembly language program development. Check it out!

PC Assembly Programming
Where to Get PC Assembly Tools

Best luck with this stuff! If you write something great let me know and I'll put a link to it here ... you never know, maybe Small Is Beautiful software will catch on and I won't become a dinosaur after all!


Assembly Language Resources on the Web . . .

Even though Assembly Language programming seems to be a lost and dying art, the Web is chock full of interesting and useful resources. Here are some of the better goodies I've uncovered in my travels:

Hutch's MASM pages This site contains a wealth of information and great source code examples. Be SURE to also check out Hutch's links to other resources. They're great too!
Assembly Programming Journal (WARNING! This "freeservers" site will probably pop-up annoying browser windows!) This is a terrific resource for articles relating to assembly language programming.
Softpanorama University Assembler Links This page describes Softpanorama as the: "Slightly Skeptical" Open Source Software Educational Society. But no matter WHAT they call themselves, this is a page LOADED with great links to terrific resources. HIGHLY RECOMMENDED
The 37Kb V2 Operating System. The world has a new Intel-compatible operating system written in 100% pure assembly language. It's cool and fun. Check it out!
The Art of Assembly Language. (Online HTML & Offline PDF) An INCREDIBLE resource for assembly language beginners, or those needing to know how to use the free copy of MASM and LINK they downloaded from Microsoft's site. "The Art of Assembly Language Programming" is a textbook on machine organization and assembly language programming developed and written by Randall Hyde for his CS264 (Assembly Language Programming) course at Cal Poly Pomona and US Riverside.
The Netwide Assembler Project. NASM is the Netwide Assembler, a free portable assembler for the Intel 80x86 microprocessor series, which uses the traditional Intel instruction mnemonics and syntax. It's multiplatform, running under MS-DOS, Win9x & NT, OS/2, Linux and other Unixes on 8086/Alpha/SPARC/etc. It's written in ANSI C and the source is available. See Also: The NASM-IDE site. A free Integrated Development Environment for NASM.
The SERIOUSLY cool Intel Secrets Site. If you like the idea of "undocumented" instructions and unauthorized info, you'll get a kick out of this site! One of my favorites is the Pentium "RDTSC"
Adam Stanislav's "Whiz Kid Technomagic" site. Adam's enthusiasm for Windows programming with assembler shows. He provides lots of sample source code on a wide variety of topics.
See what GOOGLE turns up on Assembly Language! This link will take you to Google and initiate a search for Assembly Language related pages and resources on the Web. You'll find that there's a lot more about assembly language out there than you'd probably expect.



My personal home page My resumé Join my eMail system.
Authoring Windows applications in assembly language.

Last Edit: Feb 25, 2005 at 09:24 (280.65 days ago)Viewed 297 times per day

Home Page Purchasing Tech Support Mailing List Projects Free Stuff Discussions

Home Page
Gibson Research Corporation is owned and operated by Steve Gibson.  The contents
of this page are Copyright (c) 2005 Gibson Research Corporation. Spinrite, ShieldsUP,
NanoProbe, and the slogan  "It's MY Computer"  are registered trademarks of Gibson
Research Corporation, Laguna Hills, CA, USA. GRC's web and customer privacy policy.