Menu

Tree [592c8b] master /
 History

HTTPS access


File Date Author Commit
 doc 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 h 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 html 2016-02-19 Jason Stevens Jason Stevens [182780] v2.07a
 regress 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 watcom 2016-02-19 Jason Stevens Jason Stevens [5aadd8] v1.70
 womp 2016-02-19 Jason Stevens Jason Stevens [5aadd8] v1.70
 wres 2016-02-19 Jason Stevens Jason Stevens [5aadd8] v1.70
 apiemu.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 asmfixup.c 2016-02-19 Jason Stevens Jason Stevens [5aadd8] v1.70
 asmline.c 2016-02-19 Jason Stevens Jason Stevens [5aadd8] v1.70
 asmmatch.c 2016-02-19 Jason Stevens Jason Stevens [5aadd8] v1.70
 assemble.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 assume.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 atofloat.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 autodept.c 2016-02-19 Jason Stevens Jason Stevens [a768cc] v1.96
 backptch.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 bcc.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 bin.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 branch.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 carve.c 2016-02-19 Jason Stevens Jason Stevens [b5b6a1] v2.00
 cc386.mak 2016-02-19 Jason Stevens Jason Stevens [361128] v2.06
 clang.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 cmdline.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 codegen.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 coff.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 condasm.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 context.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 cpumodel.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 data.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 dbgcv.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 direct.c 2016-02-19 Jason Stevens Jason Stevens [56a60b] v1.90
 directiv.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 elf.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 end.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 equate.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 errmsg.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 expans.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 expreval.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 extern.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 fastpass.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 fatal.c 2016-02-19 Jason Stevens Jason Stevens [361128] v2.06
 finger.c 2016-02-19 Jason Stevens Jason Stevens [5aadd8] v1.70
 fixup.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 for.c 2016-02-19 Jason Stevens Jason Stevens [5aadd8] v1.70
 fpfixup.c 2016-02-19 Jason Stevens Jason Stevens [361128] v2.06
 fullops.tok 2016-02-19 Jason Stevens Jason Stevens [4d3c70] v1.80
 gccdos.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 gccmod.inc 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 gccunix.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 gccwin.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 gccwin64.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 history.txt 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 hll.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 inlnops.tok 2016-02-19 Jason Stevens Jason Stevens [5aadd8] v1.70
 input.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 insthash.c 2016-02-19 Jason Stevens Jason Stevens [5cc187] v2.04
 intelc32.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 intelc64.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 invoke.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 jumps.c 2016-02-19 Jason Stevens Jason Stevens [aa47f4] v1.94c
 jwasmmsg.c 2016-02-19 Jason Stevens Jason Stevens [4d3c70] v1.80
 label.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 labels.c 2016-02-19 Jason Stevens Jason Stevens [8ebe6f] v2.08a
 license.txt 2016-02-19 Jason Stevens Jason Stevens [7f0cd7] v2.03
 linnum.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 listing.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 loop.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 lqueue.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 macro.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 main.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 makefile 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 makejw64.bat 2016-02-19 Jason Stevens Jason Stevens [a768cc] v1.96
 makelnx.mak 2016-02-19 Jason Stevens Jason Stevens [7fb751] v1.93
 mangle.c 2016-02-19 Jason Stevens Jason Stevens [8ebe6f] v2.08a
 manual.txt 2016-02-19 Jason Stevens Jason Stevens [361128] v2.06
 memalloc.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 mingw.mak 2016-02-19 Jason Stevens Jason Stevens [aa47f4] v1.94c
 msgtext.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 msmod.inc 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 msvc.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 msvc64.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 msvcdll.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 oc.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 omf.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 omffixup.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 omfgenms.c 2016-02-19 Jason Stevens Jason Stevens [7f0cd7] v2.03
 omfint.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 omfio.c 2016-02-19 Jason Stevens Jason Stevens [873252] v2.02
 omfrec.c 2016-02-19 Jason Stevens Jason Stevens [7f0cd7] v2.03
 opcodes.tok 2016-02-19 Jason Stevens Jason Stevens [ac510a] v1.91
 option.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 owdos16.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 owlinux.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 owlnx.mak 2016-02-19 Jason Stevens Jason Stevens [aa47f4] v1.94c
 owmod.inc 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 owos2.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 owwindll.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 parser.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 pcc.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 pellesc.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 posndir.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 preproc.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 proc.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 queue.c 2016-02-19 Jason Stevens Jason Stevens [8ebe6f] v2.08a
 queues.c 2016-02-19 Jason Stevens Jason Stevens [7f0cd7] v2.03
 readme.txt 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 reswords.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 safeseh.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 segment.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 simsegm.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 string.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 symbols.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 tbyte.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 tcc.mak 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 tokenize.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 trmem.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 types.c 2016-02-19 Jason Stevens Jason Stevens [592c8b] v2.11a
 watcomc.c 2016-02-19 Jason Stevens Jason Stevens [747f3f] v1.95
 womputil.c 2016-02-19 Jason Stevens Jason Stevens [5aadd8] v1.70
 write.c 2016-02-19 Jason Stevens Jason Stevens [4b46d9] v1.92

Read Me

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. 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