MASM forum
Another Web-based message board for discussing Win32 programming
in ASM. Most discussions use the MASM syntax, but there are subforums
for other assemblers.
Iczelion's Win32 Assembly
Language Page
This site has another excellent Win32 ASM tutorial. Takes
advantage of MASM features. You can even download MASM32, a
complete Win32 development kit, including the Microsoft assembler
and linker needed for Iczelion's tutorial.
It also has a great set of Win32 ASM links and d/l'able
files. Part of a webring.
Platform
SDK
A collection of useful resources that Microsoft allows
developers to download, for free.
The Build Environment is the basic component.
The Toolkit component is probably useful, too.
MSDN
Online Documentation
Navigate using the table of contents (toc). The overviews and
descriptions of core API functions are documented under Platform
SDK.
Assembly Language
Programming
This contains Randall Hyde's extensive guide to Intel x86
programming.
Included is a course on 32-bit assembly language
programming that uses Randy's own HLA (High Level Assembler, not
to be confused with the IBM mainframe assembler).
Intel Secrets
Home of "undocumented" Intel.
File Formats at
wotsit.org
A number of common file formats, including Windows files and
binaries, are available as links or in downloadable files.
GoAsm development tools
Free assembler and other tools. Here's an assembler that actually
supports Unicode!
comp.lang.asm.x86 --
moderated
A mix of 80x86 topics which include DOS, Windows, OS/2, and
Linux programming.
comp.os.ms-windows.programmer.win32
For discussion of Win32 (SDK) API programming. Originally for
NT, but also relevant for Win95 and Win98 programmers. Most
posters are programming in C. As a result, it may be hard to get
answers if questions are phrased in ASM. Please post only API
questions.
comp.os.ms-windows.programmer.vxd
VxDs were used earlier by Win3.1. Among the standard services
that VxDs provide to Win9x are memory management, thread
management, and a quasi-DOS interface. Can be used to build
drivers and other low-level services.
Cannot be used by NT. (This includes Windows 2000.)
Petzold, Charles, Programming Windows, Fifth
Edition, ISBN 1-57231-995-X
Yet another edition. It should be called "Programming Win32"
because the first three editions were for Win16 (the fourth
edition specifically mentioned Win95). The most often recommended
author of Windows GUI programming using the API. Because example
programs are in C, there is very little hidden code.
Rector & Newcomer, Win32 Programming
Another extensive look at the Windows API in C.
Richter, Jeffrey, Advanced Windows, 3rd Edition
Once you've read Petzold, you need one of Richter's Win32
books to cover other API topics.
Simon, Gouker & Barnes, Windows 95 Win32 Programming
API Bible
The first book in a three-volume reference by Waite
Press. Definitely not a tutorial! For those of us who
prefer flipping pages, rather than pointing and clicking or
typing in search keys, to find information.
Pietrek, Matt, Windows Internals, ISBN
0-201-62217-3
See what Win32 had to emulate. This book gives you insight
into the workings of message passing, window management, and the
GDI.
Pietrek, Matt, Windows 95 System Programming
Secrets, ISBN 1-56884-318-6
Builds on the previous book. Covers some changes to internal
data structures. And new topics such as threading,16/32-bit
thunking, and the PE/COFF file format. Comes with utilities that
give you a lot of detail about the windows, processes, and
threads in your running Win95 system.
Davis & Wallace, Windows Undocumented File
Formats
All those new file types in Win95! See what the authors have
uncovered.
Oney, Walter, Programming the Microsoft Windows Driver
Model, ISBN 0-7356-0588-2
An official book on programming WDM device drivers. CD has a
wizard for building drivers. Study the generated C code and convert
it to ASM.
Cant, Chris, Writing Windows WDM Device Drivers,
ISBN 0-87930-565-7
Packs a lot of information, but not as well organized as
Oney's book.
Comments and criticisms can be sent to Henry Takeuchi, htak@tkbits.com.