John Fine's home page

Topics: Protected mode programming examples, System utilities, Building embedded systems

Last modified: Sep 12, 1999

NASM Information and links

NASM is an x86 assembler written by Simon Tatham and Julian Hall, in portable C code and released with full source code.

I made several changes to NASM, which were released as part of version 0.98 (release assembled by H. Peter Anvin).

I expect to make more NASM changes in the future; But at the moment almost all of the NASM materials on my web pages have been superseded by the release of version 0.98.

Zero Price Shareware

The following software is distributed as "zero price shareware". You don't need to send any money to register and use this software; However, EMAIL registration (to johnfine@erols.com) is REQUIRED to continue to use it after a reasonable evaluation period.

I provide NO WARRANTY that this software is suitable or safe for any purpose. Use it entirely at your own risk. If you do not accept these conditions, then you have no permission to download, evaluate, or use this software.

pci07.zip can be used to display or modify registers in PCI configuration space. It runs in DOS or a DOS session of Win3.1 or Win95. For several Intel chipsets and for the SiS 5571, it translates a significant fraction of the raw information into readable form. For most devices it defaults to displaying only identification of the device. It can display/modify any registers in hex.

jloc07.zip a linker/locator. To be used (instead of a linker) when you need more link-time control over the placement of code and data segments. It is useful for linking BIOS's and other ROM based executables, bootstrap code, operating systems, and embedded systems executables. The current version cannot produce output formats (such as EXE) which have load-time relocations. It can produce COM files and flat image files. Online documentation is now available. You will need DPMI to run JLOC. You may need CSDPMI

pcopy02.zip contains PARTCOPY.EXE, a utility for copying raw data. Backup the first few tracks of your hard drive; Install boot code for your homemade OS on a floppy, or even on your hard drive; Copy any chunk out of a file to a new file or patching a chunk of another file.

Sample source code

These samples are the beginning of what I intend to be a set of instructive examples in pmode and OS programming. To rebuild any of them, you will need NASM and JLOC.

This sample source code is offered without warranty and without restrictions. If you don't agree to use it entirely at your own risk, don't download it. If you learn something from it, I would appreciate an EMAIL message telling me so (but that is not required). If you include part or all of this code in a product, it would be polite (but not required) to credit the source.

My sample source code contains a massive amount of explanation, so I think you will find it easy to follow, even if the concepts are new. In order to focus on the key concepts in the examples, I have left out a lot of code that would be required if these were products rather than samples. These programs generally assume they are being run in the correct environment, and do not produce useful error messages when they are not.