JWasm continuation
Switch branches/tags
Nothing to show
Clone or download
Latest commit 26f97c8 Nov 22, 2017
Permalink
Failed to load latest commit information.
Doc Importing sources from JWasm212s_140105.zip Jun 18, 2014
H This closes #202 issue when using x64 binaries on Linux/Mac to proper… ( Nov 22, 2017
.gitignore Ignore more build files Jul 27, 2015
.travis.yml Update travis with linux & osx clang Nov 4, 2015
BCC.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
CLang.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
CMakeLists.txt add cmake support Nov 21, 2017
GccDos.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
GccUnix.mak Fix OSX build Nov 4, 2015
GccWin.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
GccWin64.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
History.txt Importing sources from JWasm212s_140105.zip Jun 18, 2014
IntelC32.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
IntelC64.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
License.txt Importing sources from JWasm212s_140105.zip Jun 18, 2014
Makefile Importing sources from JWasm212s_140105.zip Jun 18, 2014
Msvc.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
Msvc64.mak Next attempt to fix AppVeyor Nov 22, 2017
MsvcDll.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
OC.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
OWDOS16.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
OWLinux.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
OWOS2.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
OWWinDll.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
PCC.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
PellesC.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
Readme.txt Importing sources from JWasm212s_140105.zip Jun 18, 2014
TCC.mak Importing sources from JWasm212s_140105.zip Jun 18, 2014
apiemu.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
assemble.c Fix notes produced by clang compiler Jul 30, 2015
assume.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
atofloat.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
backptch.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
bin.c Fix notes produced by clang compiler Jul 30, 2015
branch.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
cmdline.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
codegen.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
coff.c Fix notes produced by clang compiler Jul 30, 2015
condasm.c .errdef/.errndef with or without custom message Mar 6, 2017
context.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
cpumodel.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
data.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
dbgcv.c Fix notes produced by clang compiler Jul 30, 2015
directiv.c Fix notes produced by clang compiler Jul 30, 2015
elf.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
end.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
equate.c Reuse of equates in CreateVariable was erroneous May 6, 2016
errmsg.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
expans.c Fix notes produced by clang compiler Jul 30, 2015
expreval.c Fix broken HIGHWORD-operator May 6, 2016
extern.c Fix notes produced by clang compiler Jul 30, 2015
fastpass.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
fixup.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
fpfixup.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
gccmod.inc Importing sources from JWasm212s_140105.zip Jun 18, 2014
hll.c Fix notes produced by clang compiler Jul 30, 2015
input.c Fix notes produced by clang compiler Jul 30, 2015
invoke.c This closes #202 issue when using x64 binaries on Linux/Mac to proper… ( Nov 22, 2017
label.c Fix notes produced by clang compiler Jul 30, 2015
linnum.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
listing.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
loop.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
lqueue.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
macro.c Fix notes produced by clang compiler Jul 30, 2015
main.c Do not use argv[0] while parsing command line. Sep 14, 2016
mangle.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
memalloc.c Fix building under TinyC compiler Nov 4, 2015
msgtext.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
msmod.inc Importing sources from JWasm212s_140105.zip Jun 18, 2014
omf.c Fix notes produced by clang compiler Jul 30, 2015
omffixup.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
omfint.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
option.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
owmod.inc Importing sources from JWasm212s_140105.zip Jun 18, 2014
parser.c This closes #202 issue when using x64 binaries on Linux/Mac to proper… ( Nov 22, 2017
posndir.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
preproc.c Fix notes produced by clang compiler Jul 30, 2015
proc.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
queue.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
reswords.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
safeseh.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
segment.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
simsegm.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
string.c Fix notes produced by clang compiler Jul 30, 2015
symbols.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
tbyte.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
tokenize.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
trmem.c Importing sources from JWasm212s_140105.zip Jun 18, 2014
types.c Fix notes produced by clang compiler Jul 30, 2015

Readme.txt

JWasm Readme


    1. About JWasm

    JWasm is intended to be a free Masm-compatible assembler. It supports
    16-, 32- and 64-bit code generation and instructions up to AVX.

    Various output formats are supported:

    format     option     comment
    -----------------------------------------------------------------------
    OMF        -omf       (default) object format, 16- and 32-bit supported
    BIN        -bin       plain binary format (boot sector, BIOS, DOS COM)
    COFF       -coff      MS Win32 object format
    WIN64      -win64     MS Win64 object format
    MZ         -mz        DOS native binary format (.EXE)
    PE         -pe        Win32/Win64 PE binary format
    ELF32      -elf       Linux 32-bit object format
    ELF64      -elf64     Linux 64-bit object format
    DJGPP      -djgpp     Djgpp's 32-bit COFF variant (optional).

    JWasm is distributed in several packages. Besides the source package
    there are some which contain precompiled binaries for Windows, DOS and
    Linux. Other OSes like OS/2 and FreeBSD are also supported, but no binary
    is supplied, it must be created from the sources.

    JWasm has its roots in Open Watcom's Wasm. The source is released under
    the Sybase Open Watcom Public License (see license.txt for details).


    2. Requirements

    - JWASM.EXE, a precompiled Win32 binary, should run on any 32- or 64-bit
      Windows.

    - JWASMD.EXE, a precompiled DOS binary, runs in DOS 32bit protected-mode.
      It requires a 80386 cpu and needs a MS-DOS v5 compatible DOS to run
      (FreeDOS v1 will do). Long filenames (LFN) are supported. JWASMD.EXE
      won't run on 64-bit Windows.

    - JWASMR.EXE is a DOS real-mode program which runs on any x86 cpu.
      Similar to JWASMD.EXE it needs a MS-DOS v5 compatible DOS. This version
      has some restrictions, to limit the amount of memory the binary will need.

    Memory requirements depend on the source which is assembled. The source
    itself is not kept in memory, but the symbol table is, and this table
    can easily grow to several MBs if huge amounts of equates are defined.
    That's why JWASMR.EXE might be unable to assemble large sources.


    3. Installation

    The precompiled binaries are supplied as a compressed file. The simplest
    and best approach to "install" JWasm is to create a directory named JWasm,
    copy the compressed file ( i.e. jwasm205w.zip ) into this directory and
    "unzip" it. If you want to run JWasm without having to type the full path
    name, you'll either have to add the JWasm directory to your PATH
    environment variable or to copy the JWasm binary to a directory that's
    included in your PATH.
     If you want to deinstall JWasm, delete the JWasm directory. If you had
    added the directory to your PATH environment variable, remove it from
    there.


    4. Documentation

    JWasm's documentation consists of

    - Readme.txt (this file)
    - a Manual, which describes the differences to Masm. It may be in
      HTML (Manual.html) or Windows HTMLHelp (JWasm.ch*) format.
    - History.txt, which describes bugfixes and changes of all JWasm versions.
    - License.txt, which is a copy of the Sybase Open Watcom Public License.


    5. Samples

    The binary packages contain samples in subdirectory SAMPLES.

    For output formats other than BIN, MZ or PE, JWasm's output has to be
    linked to create an executable binary. The following set of linkers
    have been verified to cooperate with JWasm:

    Format  Linker    Comment
    -------------------------------------------------------------
    OMF     Wlink     contained in Open Watcom, free, open source
    OMF     ALink     by A. Williams, free
    OMF     ValX      by David Lindauer (Ladsoft), free
    OMF     OptLink   from Digital Mars, free
    OMF     Link16    the old OMF linker (v5.60) from Microsoft
    OMF     TLink     from Borland
    COFF    Wlink     this linker accepts OMF and COFF modules
    COFF    MS Link   will also accept OMF modules
    COFF    PoLink    supplied with PellesC, free
    WIN64   MS Link   must be version 7.10 or newer
    WIN64   Polink    must be version 5 or newer
    WIN64   JWlink    fork of OW Wlink
    ELF32   LD        the GNU linker
    ELF64   LD        the GNU linker
    ELF64   JWlink    fork of OW Wlink

    Note that the name of the MS OMF linker binary is LINK.EXE, identical
    to the MS COFF linker name.


    6. How to Create the JWasm Binaries

     JWasm is written in C. It's virtually C89, but 64-bit integers and
    structures/unions as unnamed members of structures/unions must be 
    supported by the compiler.

    The following Makefiles are supplied in the source package: 

    name         tool chain used               creates binary for
    ---------------------------------------------------------------
    Makefile     Open Watcom v1.8-v1.9         Win32 [, DOS (32-bit)]
    OWDOS16.MAK  Open Watcom v1.8-v1.9         DOS (16-bit)
    OWOS2.MAK    Open Watcom v1.8-v1.9         OS/2 (32-bit)
    OWLinux.MAK  Open Watcom v1.8-v1.9         Linux
    OWWinDll.MAK Open Watcom v1.8-v1.9         Win32 (JWasm.dll)
    Msvc.MAK     VC++ TK 2003/VC++ 2008 EE     Win32 [, DOS (32-bit)]
    Msvc64.MAK   VC++ 2010                     Win64
    MsvcDll.MAK  VC++ TK 2003                  Win32 (JWasm.dll)
    GccWin.MAK   GCC, MinGW/Cygwin             Win32
    GccWin64.MAK GCC, MinGW-w64                Win64
    GccDos.MAK   GCC, DJGPP                    DOS (32-bit)
    GccUnix.MAK  GCC, FreeBSD/Linux            FreeBSD [, Linux]
    ---------------------------------------------------------------
    BCC.MAK      Borland C++ Cmdline Tools     Win32
    OC.MAK       Orange C                      Win32
    PCC.MAK      PCC                           Win32
    PellesC.MAK  Pelles C v7                   Win32, Win64
    TCC.MAK      Tiny C                        Win32
    IntelC32.MAK Intel C++ Compiler, MSVC      Win32
    IntelC64.MAK Intel C++ Compiler, MSVC      Win64

     The makefiles that use the OW tool chain are supposed to be run
    with Open Watcom's WMake, Msvc*.MAK and IntelC*.MAK should be run with
    MS NMAKE, PellesC.MAK expects POMAKE and for Gcc*.MAK GNU make is to be
    used.

    More detailed information may be found in the makefiles themselves!

    Please note that only the binaries created with toolchains Open Watcom,
    VC++ and GCC are regularily tested to pass the JWasm regression test.


    7. Using JWasm with Visual Studio

    a) VS 2005/2008

    To integrate JWasm into VS, copy file jwasm.rules to directory
    <vc_dir>\VC\VCProjectDefaults. After this is done, JWasm can be
    selected as assembler inside the VS IDE.

    b) VS 2010/2012

    - Unzip file VS2010CustomBuildRule.zip. The result are 3 files,
      jwasm.props, jwasm.targets and jwasm.xml.
    - Copy those files to MSBUILD's build customization directory.


    8. Contributors

    These people contributed to JWasm ( additions, bugfixes, bug reports):

    agner, BlackVortex, dosfan01, drizz, Paul Edwards, filofel, Peter Flass,
    James C. Fuller, gfalen, habran, Japheth, Jimg, jj2007, John Hankinson,
    Khusraw, Alex Kozlov, Peter Kuznetsov, misca, Michal Necasek, H. Nidudsson,
    Nikitakita, Jose Pascoa, Terry Philips, qWord, RotateRight, Ito Toshimitsu,
    Vortex.

    Japheth