Merge pull request #1858 from Azaezel/options_ON
[Torque-3d.git] / Engine / bin / nasm / Readme
blob20db36b580e35fbf08b7eb2a63330342aabfbd68
1 This is a distribution of NASM, the Netwide Assembler. NASM is a
2 prototype general-purpose x86 assembler. It will currently output
3 flat-form binary files, a.out, COFF and ELF Unix object files,
4 Microsoft Win32 and 16-bit DOS object files, OS/2 object files, the
5 as86 object format, and a home-grown format called RDOFF.
7 Also included is NDISASM, a prototype x86 binary-file disassembler
8 which uses the same instruction table as NASM.
10 To install NASM on UNIX or Linux, type `./configure', then `make', and
11 then either `make install', or copy the file `nasm' (and maybe
12 `ndisasm') to a directory on your search path (maybe /usr/local/bin,
13 or ~/bin if you don't have root access). You may also want to copy the
14 man page `nasm.1' (and maybe `ndisasm.1') to somewhere sensible.  Note
15 that source and binaries are also available in RPM format; to install
16 an RPM on a system which uses this packaging format (mostly Linux
17 distributions) simply do "rpm -Uivh filename.rpm".
19 To install under DOS, if you don't need to rebuild from the sources,
20 you can just copy either nasm.exe and ndisasm.exe (32-bit DOS-extended
21 versions), nasmr.exe and ndisasmr.exe (16-bit classical DOS
22 executables), or nasmw.exe and ndisasmw.exe (Win32 console
23 applications - less likely to run out of memory), to somewhere on your
24 PATH.
26 The 32-bit applications require a DPMI server.  If you're running
27 under plain DOS and don't have a DPMI server already, you can get
28 CSDPMI from ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2misc/.
30 To rebuild the DOS sources, various makefiles are provided:
32 - Makefile.dos, the one I build the standard 16-bit releases from,
33   designed for a hybrid system using Microsoft C and Borland Make
34   (don't ask why :-)
35 - Makefile.vc, for Microsoft Visual C++ compiling to a Win32
36   command-line application. This is the one I build the standard
37   Win32 release binaries from.
39 - Makefile.bor, for Borland C.
40 - Makefile.bc2, also for Borland C, contributed by Fox Cutter.
41   Reported to work better than Makefile.bor on some systems.
43 - Makefile.sc, for Symantec C++, compiling to a 32-bit extended DOS
44   executable.. Contributed by Mark Junker.
45 - Makefile.scw, also for Symantec C++, compiling to a Win32 command-
46   line application. Also contributed by Mark Junker.
48 - Makefile.wc, for Watcom C, compiling to a 32-bit extended DOS
49   executable. Contributed by Dominik Behr.
50 - Makefile.wcw, also for Watcom C, compiling to a Win32 command-
51   line application. Also contributed by Dominik Behr.
53 - Makefile.dj, for DJGPP, compiling to a 32-bit extended DOS
54   executable. Contributed by Dominik Behr.
56 - Makefile.lcc, for lcc-win32, compiling to a Win32 command line
57   application. (The lcc-win32 compiler and tools are available from
58   http://www.remcomp.com/lcc-win32/)
60 I can't guarantee that all of those makefiles work, because I don't
61 have all of those compilers. However, Makefile.dos and Makefile.vc
62 work on my system, and so do Makefile.bor and Makefile.bc2.
64 Be careful with Borland C: there have been various conflicting
65 reports about how reliable the Huge memory model is. If you try to
66 compile NASM in Large model, you may get DGROUP overflows due to the
67 vast quantity of data in the instruction tables. I've had reports
68 from some people that Huge model doesn't work at all (and also
69 reports from others that it works fine), so if you don't want to try
70 moving to Huge, you could try adding the option `-dc' to the
71 compiler command line instead, which causes string literals to be
72 moved from DGROUP to the code segments and might make Large model
73 start working. (Either solution works for me.)
75 To rebuild truly from scratch, or to make any changes to insns.dat or
76 standard.mac, you need a Perl interpreter installed.  Perl
77 interpreters are available for a number of platforms, from:
79         http://www.cpan.org/ports/
81 For DOS you can also get one from:
83         ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/
85 Dominik Behr has also contributed the file misc/pmw.bat, which is a
86 batch file to turn the output from Makefile.wc (NASM.EXE and
87 NDISASM.EXE) into standalone executables incorporating Tran's
88 PMODE/W DOS extender, rather than depending on an external extender
89 program.
91 Some of the Windows makefiles produce executables called nasmw.exe
92 and ndisasmw.exe, and some don't. Be prepared for either...
94 If you want to build a restricted version of NASM containing only
95 some of the object file formats, you can achieve this by adding
96 #defines to `outform.h' (see the file itself for documentation), or
97 equivalently by adding compiler command line options in the
98 Makefile.
100 There is a machine description file for the `LCC' retargetable C
101 compiler (version 4.0), in the directory `lcc', along with
102 instructions for its use. This means that NASM can now be used as
103 the code-generator back end for a useful C compiler.
105 Michael `Wuschel' Tippach has ported his DOS extender `WDOSX' to
106 enable it to work with the 32-bit binary files NASM can output: the
107 original extender and his port `WDOSX/N' are available from his web
108 page, http://www.geocities.com/SiliconValley/Park/4493.
110 Matt Mastracci has written a document explaining how to write
111 assembly language modules in DJGPP programs using NASM: it's on his
112 web site at http://www.ucalgary.ca/~mmastrac/djgppasm.doc.
114 The `misc' directory contains `nasm.sl', a NASM editing mode for the
115 JED programmers' editor (see http://space.mit.edu/~davis/jed.html
116 for details about JED). The comment at the start of the file gives
117 instructions on how to install the mode. This directory also
118 contains a file (`magic') containing lines to add to /etc/magic on
119 Unix systems to allow the `file' command to recognise RDF files, and
120 a zip file (`exasm.zip') containing the necessary files for syntax
121 highlighting in the Aurora DOS editor. (The Aurora files were
122 contributed by <U993847220@aol.com>; I haven't tested them as I
123 don't have Aurora.)
125 The `rdoff' directory contains sources for a linker and loader for
126 the RDF object file format, to run under Linux, and also
127 documentation on the internal structure of RDF files.
129 For information about how you can distribute and use NASM, see the
130 file Licence. We were tempted to put NASM under the GPL, but decided
131 that in many ways it was too restrictive for developers.
133 For release 0.98 and later, the NASM source distribution contains the
134 following components:
136           Unix                      Windows, OS/2               DOS
138           nasm-X.XX.tar.gz          nasm-X.XX.zip               nasmXXXs.zip
140           Main archive: Contain all sources you need to build NASM,
141           plus the documentation source code.  If you have a Perl
142           interpreter and (possibly) Winhelp compiler installed, you
143           don't need any additional files.
145           nasm-X.XX-xdoc.tar.gz     nasm-X.XX-xdoc.zip          nasmXXXd.zip
147           Documentation in HTML, INFO, text, and PostScript format.
148           You can compile these files yourself from the main archive
149           if you have a Perl interpreter installed.
151           N/A                       nasm-X.XX-whlp.zip          N/A
153           Documentation in Windows help format.  You can compile this
154           file yourself from the main archive if you have a Perl
155           interpreter and a Winhelp compiler installed.
157 The Unix, Windows-OS/2, and DOS versions differ in the following ways:
159 The Unix version uses the Unix line ending convention (LF), and long file
160 names with upper and lower case.
162 The Windows-OS/2 version uses the Microsoft line ending convention
163 (CR+LF), and long file names with upper and lower case.
165 The DOS version uses the Microsoft line ending convention (CR+LF),
166 with all filenames in 8.3 monocase.
168 For information about how to use NASM, see the various forms of
169 documentation in the `doc' directory: documentation is provided in
170 HTML, PostScript, plain text, Texinfo, and Windows Help formats. For
171 information about how to use NDISASM, see `ndisasm.doc'. For
172 information about the internal structure of NASM, see
173 `internal.doc'. (In particular, _please_ read `internal.doc' before
174 writing any code for us...)
176 The NASM web page is at http://www.cryogen.com/Nasm/
178 Bug reports (and patches if you can) should be sent to
179 <hpa@zytor.com>.