Please see end of this list for some notes.

History:
   v00.24.00 - (29 Apr 2000)
    - now prints "phase error" message on first occurance (ignores the rest)
    - fixed bug so that you can include more symbols (etc.) on a DW line
        after an offset symbol entry
    - added the XLAT [BX] instruction. Same as the XLATB, except allows
        override (xlat cs:[bx]))
    - added more error definations per error returned
    - other bugs/modifications (4)
    - speed optimizations (2)

   v00.23.90 - (21 Mar 2000)
    - FINALLY fixed indirect addressing: [bx+symbol] and symbol[bx]
    - added prtint (print unsigned integer) to the library (for debugging)
    - now also allows [index+base].  NBASM will switch it to [base+index].
    - now allows  ORG 00h  at beginning of program
    - fixed the memory reference stuff.
        now allows [symbol+immed] or [symbol+immed-immed] etc.
    - fixed forward references in Math Symbols and DW's. '(forwardsymbol+10h)'
    - now paddes with NOP's instead of nulls when 'moving' with ORG
    - added the %PRINT internal macro
    - now allows jcc short ($+n)
    - fixed bug with math functions and symbols (symbol+10) (phase error)
    - some minor documentation additions/modifications
    - other bugs/modifications (4)
    - speed optimizations (2)

   v00.23.73 - (24 Dec 1999)
    - bug fix: Long Filename with opening lib file using environment string
    - added better error definations per error returned
    - speed optimizations (1)

   v00.23.70 - (23 Dec 1999)
    - added long filename support (see nbasm.doc on the /l and /n switches)
    - added the .LIST directive
    - added the %ver macro
    - added the %title macro
    - added optimizer item #6 (push byte immed7)
    - now allows math  i.e.:   MOV  AX,(1+2|3>1)   (see NBASM.DOC)
    - added DD (Declare Double Word). (You still can't use 32 bit numbers)
    - worked with format of .lst files
    - now checks for CPU flag for external procedures
    - getsint in library now prints negative integers (16 bit)
    - bug fix:  Now can jump/loop to a label with db/dw/dd/dup on it
    - bug fix:  now pushs immed7/immed8 properly
    - other bugs/modifications (7)
    - speed optimizations (3)
    ? I have got most of the small model support done.
       It still does not produce workable .NBO files.
       The linker is almost done.
    * Does not allow nested proc/endp blocks anymore

   v00.23.48 - (12 Sept 1999)
    - added the 'Undefined data' DUP   (See NBASM.DOC)
    * removed the '%' symbol/operand
       (watch out for using undefined data (DUP  xx,?) and .externals)
    - added the undocumented POP CS instruction
    - other bugs/modifications (3)
    ? Coming soon:  LIBMAN.EXE  Allows you to create your own library
                      for use with NBASM and the .external directive.

  v00.23.46 - (29 Aug 1999)
    - fixed the indirect addressing problem  (See NBASM.DOC for more)
    - now allows command line parameters to begin with '-' as well as '/'
    - added error documentation to NBASM.DOC
    - other bugs/modifications (2)
    - optimizations (8)

  v00.23.44 - (21 Aug 1999)
    - modified the /I{} and INCLUDE filename.ext
        Now you can set the INCLUDE= env. var. to point to NBASMC.INC
        (see NBASM.DOC for more information)
    - added conditional assembly with the .if/.else/.endif block form
    - added the HIGH and LOW operators
        (see documentation under Pseudo-Operations)
    - added %error macro (see documentation)
    * removed the _CR  (next line too) feature
    - bug fix:  mov  al,[dx]
    ? modified NBASMC.LIB for testing purposes
    - modified the .EXIT 'macro' to include a RC (see documentation)
    - other bug fixes (2)

  v00.23.35 - (30 Mar 1999)
    - now includes a SMALL tutorial on using NBASM and assembly language
    - now checks for iret, iretd, and retf for 'USES' directive
    - added the /1 parameter.  NBASM does  pass one  only
    - includes 32 bit register/instruction support
      **Does NOT allow 32 bit numbers yet**
      **Does NOT included all 32 bit instructions and/or their variations**
      **Use with caution.  I have not done a lot of testing on it yet**
    - fixed bug if a semicolon was inside a string
    - did a few optimizations for speed and size

  v00.23.29 - (18 Jan 1999)
    - if target file was already there and read/only, then NBasm
        assembled source and did not return an error while leaving
        the target file unchanged.  (no new .com file)
    - xor now works correctly (was swapping dest/src)
    - added the %out macro (see documentation)
    - fixed the and, or, xor, sub, add, cmp, adc, & sbb instructions
        using  -129 > immed < 128   (see v00.22.52 history item)
    - fixed displacement issue with   mov  ax,[bx+immed8]
    ? added 32 bit registers/instructions support
        ****for test only, should be done in next release version****
    - fixed minor bug(s)  (1)
    - added minor item(s) (1)
  v00.23.22 - (23 Dec 1998)
    - added the .EXIT 'macro'
    - added the .X86 directive (see NBASM.DOC)
    - fixed bug where if you had a char in a DB string that was ascii 12
        or less, NBasm would change it to a space.  not anymore, however
        you still can not have a char of 13 in your string.  You must
        give a number of 13, rather than the actual ascii char.
    - now returns error if a string doesn't have a closing quote(s) mark
    - now gives error if a count of 0 in DUP
    - added the use of the underscore (_) at the end of a line.
        see NBASM.DOC for more details
    - added the call [bx]  ; (near)
    - fixed minor bug(s) (1)
  v00.23.14 - (13 Dec 1998)
    % fixed bug created with version 00.23.13 below
  v00.23.13 - (11 Dec 1998)
    * changed xlat to xlatb  (please see note #1)
        (the instruction is unchanged except for the 'name')
    - added/fixed the mem referencing by symbol with +/- immed
        mov  ax,[symbol]
        mov  ax,[symbol+100h]
        mov  ax,[symbol-100h]
        mov  ax,[100h+symbol-100h]
        Label1 equ $                 ; equals this location
        Label2 equ [Label1+100h]     ; equals location of label1 + 100h
        (you can have multiple immed's, but only one symbol reference)
        (spaces between symbols and immed's are not allowed)
    - fixed errors with more than one ORG in source file.
    - added the % Pseudo-Operation (see NBASM.DOC for more)
    - fixed minor bug(s) (1)

  v00.23.06 - (03 Dec 1998)
    - added the /B parameter (beep if an error encountered)
    - Now NBasm returnes valide error in ERRORLEVEL
    - fixed so that a hex number must start with 0-9, not A-F
    - changed push immed8 to push byte immed8
    - added div byte [0000]
    - minor bugs/fixes/changes (1)

  v00.23.00 - (01 Nov 1998)
    - fixed bug with strings if no ending delimitor ( ' or " )
    - added strings so that    mov  ax,'AB'   is allowed
    - fixed 'proc far'.  Now you can assemble far proc's.
       (however, you can not call them yet cause the .obj part isn't done)
    - Now allows label on ENDP line so that we can be MASM compatible
    - Now includes the .JUMPS directive (see documentation)

  v00.22.89 - (24 Oct 1998)
    - added the CALL FAR immd16,immd16  (offset,seg)
    - fixed minor bugs (3)

  v00.22.85 - (14 Oct 1998)
    - fixed the RETF instruction
    - gives error if not NEAR or FAR after PROC and before USES
    - now will search path(s) denoted in the LIB= environment variable
        for NBASMC.LIB
    - fixed so that if more than one RET in a proc block and 'USES' used,
       NBASM now properly pops registers for each RET

  v00.22.81 - (07 Oct 1998)
    - if didn't use .external, now doesn't try to add lib stuff
      (no noticable error unless nbasmc.lib not found)

  v00.22.80 - (01 Oct 1998)
    - added the ALL and ALLF keywords to the USES keyword
    - added code to optimizer #1 and #2 for EQU symbols that = 0
    - added file i/o error checking for the lib stuff
    - modified the start up code to nbasm.exe to allow a 'full' data segment
    - now will allow more than one external symbol given on one line
       (.external symbol1, symbol2, symbol3)

  v00.22.75 - (29 Sept 1998)
    - now allows use of the library (NBASMC.LIB)
         Library also included (see nbasm.doc and nbasmc.doc for usage)
    - now allows reverse long jumps
    - fixed bug in reverse short jumps
    - cleaned up the symbol table dump in .lst file
    - revised error checking a little
    - removed the optimizer item for xchg reg16,accum16
         (does it automatically now)
    - fixed bug so that you can 'push offset var1'
    - added
       mul  reg   (8086)
       imul reg   (8086)
       div  reg   (8086)
       idiv reg   (8086)
       imul reg16,immd (186)
       imul reg16,reg/mem (386)

  v00.22.52 - (13 Sept 1998)
    - fixed bug that didn't allow:
        mov  reg,[immd]   (mov  ax,[0000])
    % added the code to create smaller code for:
        add  reg16,immd7
        (add, adc, sub, sbb, cmp)
        (reg16 above does not include ax)

  v00.22.50 - (02 Sept 1998)
    - now allows indirection to be within backets:
      - before  --->        mov ax,02[bx]
      - now will allow      mov ax,[bx+02]
    - added  shl/r  mem/reg,immd8
             rcl/r  mem/reg,immd8
             rol/r  mem/reg,immd8
             sal/r  mem/reg,immd8
    - fixed bug if a tab was in source file
    - improved the .start directive
      (read nbasm.doc for more info on .start, .stack, and
       the RET instruction)

  v00.22.38 - (25 Aug 1998)
    - fixed code to allow up to ten nested include files
    - fixed some bugs with the create .LST file code
    - modified the code for 386 opcode prefix's
    - fixed .x86/x87 directive attributes
    - added .x87 co-processor directives
    - added .x86P processor directives
    - added the fs: and gs: segment override
    - added code to allow .386+ instructions (no 32-bit registers yet)
    - added the following instructions:
       LFS, LGS, LSS (386+)
       MOVSX, MOVSZ  (386+)
       CWDE, CDQ     (386+)
         (somewhere I read that the following instructions were for 8086+.)
         (I found out different but elected to leave them in anyway)
       CMOVcc        (Pentium Pro/II)
    - fixed other minor bugs

  v00.22.22 - (22 Aug 1998)
    - add optimization software
       read NBASM.DOC for the 6 items that NBasm will
       optimize for if '/o' is on the command line
       or .OPTON is in your code
      I hope to add more optimizations in later
       (beta) versions
    - made NBasm a little faster by optimizing a 'select case'
       structure

  v00.22.11 - (12 Aug 1998)
    - added the BYTE and WORD type specifiers
       example:
         movb [bx],00       ; is the same as
         mov  byte [bx],00  ; this line
    - fixed bug if a count of 0 (zero) was given in
       a DUP declaration line:
         TEMP  dup 0,1    ; now is the same as
         TEMP  equ $      ; this line
    - added the code to allow RET as the 'exit to DOS'
      code in .COM files and gives an error in .OBJ files
    - added the undocumented instruction SALC
    - modified code so NBasm only needs a 80186+ processor and
       only needs DOS version 2.0 and up
    - NBasm now checks to see if running on a 186+ with DOS 2.0+

  v00.22.06 - (11 Aug 1998) - Original Beta release
    

Notes:
1. An item starts with one of the following chars, means:
    -   = normal item.
    *   = makes previous versions of NBASM not work with this addition.
    %   = newer version contains a fix for this item
           (known or unknown bug at this items version)
    ?   = undocumented item (for test only) (may stay, may go)
           (no support for) (use with caution) (you get the idea)
