Please see end of this list for some notes.

Please read "Difference between NBASM and NBASM32 source files" on page 7
 of NBASM32.DOC

History:
   v00.26.44 - v00.10.39 - (25 June 2011)
    - added the outfile directive
    - fixed the %error and %out directives
    - added instructions (0)
    - other bugs/modifications (0)

   v00.26.42 - v00.10.39 - (04 Mar 2011)
    - fixed a bug with the immediate addressing mode
    - added instructions (0)
    - other bugs/modifications (0)

   v00.26.41 - v00.10.39 - (04 Apr 2010)
    - Cleaned up source code and added a few optimizations
    - added instructions to NBDISASM
    - added instructions (0)
    - other bugs/modifications (0)

   v00.26.39 - v00.10.32 - (12 Mar 2010)
    - added the /L{} parameter
    - include directive now allows the filename to have spaces in the path
       (include 'a path with spaces\filename.inc')
    - added instructions (5)
    - other bugs/modifications (2)

   v00.26.31 - v00.10.32 - (16 Dec 2009)
    - fixed imul eax,ebx,immed32 instruction
    - other bugs/modifications (0)

   v00.26.30 - v00.10.32 - (11 Dec 2009)
    - fixed a bug that 26.28 created with the .exit n directive.
    - other bugs/modifications (1)

   v00.26.28 - v00.10.32 - (08 Dec 2009)
    - fixed the imul instruction
    - fixed long addressing
       mov eax,[si+100h]
      (I can't imagine why I never caught it!)
    - other bugs/modifications (3)

   v00.26.22 - v00.10.32 - (01 Jun 2009)
    - A few more error listings
    - fixed the %line operand
    - optimized the 'and word [1234h],immed8' and related instructions
    - fixed a bug with the ds: override
    - other bugs/modifications (1)

   v00.26.17 - v00.10.32 - (16 Aug 2008)
    - now allows a count of zero in the DUP operand.
    - cosmetic update for nbdisasm
    - other bugs/modifications (1)

   v00.26.15 - v00.10.30 - (17 July 2008)
    - if using math, ()'s, if a label ended in numerals, the numerals
      where extracted off.
      (here0-1) == (here 0-1) == syntax error
    - other bugs/modifications (0)

   v00.26.14 - v00.10.30 - (23 June 2008)
    - I have also renamed the 16-bit version to NBASM16, and the
       32-bit version to NBASM.
    - Now returns an error if immed is larger than register
      example:  cmp bl,123h
      The above use to assemble with out errors, now the error is caught
    - other bugs/modifications (1)

   v00.26.12 - v00.10.30 - (15 June 2008)
    - Fixed error when listing file item was more than 65535 in length.
    - other bugs/modifications (0)

   v00.26.11 - v00.10.30 - (13 May 2008)
    - Added a diagnostic error when (n < n) is used.
      This error is displayed when a compare is used when a shift might
      have been wanted.  To disable diagnostic errors, use the /d switch
    - modified the clear screen code in the nbasmc.lib
    - other bugs/modifications (0)

   v00.26.10 - v00.10.30 - (10 April 2008)
    - Added the .popadbug directive.  See the documentation in NBASM32.DOC
    - Added to the FAQ list
    - other bugs/modifications (0)

   v00.26.09 - v00.10.30 - (31 Jul 2007)
    - Start of the 64-bit immediates allowed (currently in DQ declarations)
    - other bugs/modifications (1)

   v00.26.07 - v00.10.30 - (31 Jan 2007)
    - NBASM wasn't writing the 0x66 override for iret(d)
    - Fixed a lot of errors in NBDISASM
    - added instructions (0)
    - other bugs/modifications (0)
    
   v00.26.06 - v00.10.23 - (23 Oct 2006)
    - The List file now 'compresses' the DUP and ORG listing so that you
      don't have an unneccassarily long list file.  See page 63 of NBASM32.DOC
    - Fixed a bug in ror and rol.  They where disassembled backward.
    - added instructions (0)
    - other bugs/modifications (0)

   v00.26.05 - v00.10.22 - (30 Sept 2006)
    - Fixed error where the preparser would modify a string if that string
      contained a set of chars that matched and equate symbol name.
    - added instructions (0)
    - other bugs/modifications (0)

   v00.26.04 - v00.10.22 - (06 July 2006)
    - EQUate symbols now are allowed to have leading spaces.
      i.e.: The lable for the EQUate does not have to start in column zero
    - fixed the %year, %month, %day macros
    - added the incbin directive
    - fixed the error with the math (evaluator code).
       before fix: (10 - (2*2) - 1) = 7
       because my code was doing (10 - ((2*2) - 1))
       please double check your code to make sure you weren't taking
       advantage of the error.
    - now only prints the "Segment near (or at) 64k limit" error once.
    - extended the write buffer to two meg instead of 64k.
    - fixed an error with the float/double/etc. code
    - added instructions (0)
    - other bugs/modifications (0)

   v00.25.97 - v00.10.22 - (8 Oct 2005)
    - fixed a few instructions that were not getting disassembled correctly
       in nbdisasm.
    - added instructions (0)
    - other bugs/modifications (1)
    
   v00.25.97 - (16 Sept 2005)
    - ** NBDISASM 00.10.05 is now included **
      Please read nbdisasm.doc for more information.
      - I know of a few errors still included with NBDISASM.
      - I should have them fixed with the next release
    - fixed some more errors with the SIB byte encoding
    - Please note that the following type of instruction stille
      has errors:
        mov  eax,a_label[eax-1]
      The problem comes when one of the displacement items is
      outside of the []'s.  I hope to have this fixed soon.  For
      now, please don't use displacements outside of the []'s.
    - added instructions (3)
    - other bugs/modifications (3)

   v00.25.92 - (3 Sept 2005)
    - NBASM now supports jump forward and jump backward
      See nbasm32.doc, page 15 for the description and
      page 48, example three.
    - other bugs/modifications (0)

   v00.25.91 - (1 Sept 2005)
    - NBASM now supports math operands in memory operands.
      Examples:
        mov eax,[eax+(1234h+1)]
        mov eax,[eax+(1234h>>1)]
        etc.
      Please see next item about making sure you use the ()'s when needed.
    - NBASM now supports multiple 32-bit registers in memory operands,
      including the scale_factor operand. (It is just in the testing phaze,
       so please let me know if you find something in error)
      Examples:
        mov  eax,[eax+ebx]
        mov  eax,[eax+ebx*4]
        cmp  dword [eax*4],12345678h
        mov  eax,[esi*4+1234],edx
      *Please* note the following:
      if NBASM see's the following line
        mov  eax,[eax+1234h*4]
      NBASM will take it as
        mov  eax,[eax*4+1234h]
      where the +1234 is the offset, and *4 is the scale factor.
      NBASM will *not* take it as
        mov  eax,[eax+(1234h*4)]
      You have to specifically add the ()'s
    - other bugs/modifications (1)

   v00.25.86 - (23 Aug 2005)
    - fixed error with
       and  esp,IMMED
    - other bugs/modifications (1)

   v00.25.84 - (16 Aug 2005)
    - other bugs/modifications (1)

   v00.25.83 - (24 June 2005)
    - added scripts (See page 60 in NBASM32)
    - added the /D command line switch (See page 61 in NBASM32)
    - fixed bug with 32-bit memory operands
    -
    - added examples (0)
    - speed optimizations (0)
    - other bugs/modifications (3)

   v00.25.79 - (26 July 2003)
    - a major bug was added with the last release, when giving
       a source file name with an extention.  Sorry if this bit
       anyone.
    - added examples (0)
    - speed optimizations (0)
    - other bugs/modifications (3)

   v00.25.75 - (25 May 2003)
    - added the SHLD and SHRD instructions (Double Precision)
    - added/fixed many current and new instructions
        see examples\all.asm for all the instructions nbasm supports
    - now doesn't give a diagnostic error for 'ds:[bp\ebp\esp]'
    - worked with the HIGH and LOW operands (see NBASM32.DOC for more)
    - added examples (24)
    - speed optimizations (0)
    - other bugs/modifications (1)

   v00.25.64 - (13 Feb 2003)
    - added the .IFDEF and .IFNDEF operators
    - fixed the nasty 'jcc tofar' bug created in last release......
    - added examples (0)
    - speed optimizations (0)
    - other bugs/modifications (1)

   v00.25.60 - (13 Jan 2003)
    - added numerous error checking items
    - fixed a few minor bugs
    - added examples (0)
    - speed optimizations (0)
    - other bugs/modifications (3)

   v00.25.55 - (10 Jan 2003)
    - *added unions* (smile)
    - fixed a nasty bug with the 'push' and 'pop' instructions.
    - fixed a small bug with the EQUates and the preparser
    - fixed the '=' and '==' operators with in a '(...)' symbol
    - added examples (0)
    - speed optimizations (0)
    - other bugs/modifications (1)

   v00.25.50 - (01 Jan 2003)
    - fixed the CBW/CWDE with the 66h prefix in pmode and rmode
    - greatly enhanced and fixed the EQUates
       (read NBASM32.DOC for more info and some WARNINGs)
    - added examples (0)
    - speed optimizations (0)
    - other bugs/modifications (0)

   v00.25.48 - (23 Nov 2002)
    - added the DQ operand (Declare Quad)
    - fixed a nasty bug with the 32-bit acumulator and a
        few instructions that used it
    - NBASME.INC contains TRUE = 0, FALSE = -1.
        Ofcourse this isn't correct. :)  Sorry, it is changed now.
        Correct: TRUE = 1, FALSE = 0.
    - corrected addressing if symbol was before offset 0100h.
    - fixed the IMUL instruction
    - fixed the call far/jmp far instructions when in pmode
    - added examples (1)
    - speed optimizations (0)
    - other bugs/modifications (6)

   v00.25.35 - (03 July 2002)
    - added a few more 32-bit instructions
    - worked with the 32-bit memory operands
    - fixed a small bug with STRUCT defination overflow's
    - added the POINTER operand ( -> ) for use with STRUCTures
       (see page 54 of NBASM32.DOC)
    - added the .ENUM operator. (see page 56 of NBASM32.DOC)
    - speed optimizations (0)
    - other bugs/modifications (1)

   v00.25.29 - (22 June 2002)
    - fixed a small error in GS: and FS:
    - fixed the 67h addition in pmode
    - fixed bug with 32-bit memory operands and MODr/m addressing
    - worked on the .obj stuff
    - worked on the .pmode stuff
    - fixed a horrible bug in the 'math' operator.  ex: (10 - 2 - 3)
    * CHANGE:  You can no longer use the double quotes to define
       a value through a char.  i.e.:
         mov  al,"A"   ; is no longer valid
         mov  ax,"AB"  ; is no longer valid
         mov  al,'A'   ; is still valid
         mov  ax,'AB'  ; is still valid
      (sorry for the change, but it had to happen for a few other reasons)
    - speed optimizations (0)
    - other bugs/modifications (6)

   v00.25.16 - (09 June 2002)
    * CHANGE: if you use the %out and %error macros, please see
       the documentation about the pass number used with these two macros.
    - Changed the pause routine in the two examples.  My laptop's
      Phoenix BIOS does not support that function.
    - fixed the 'uses' operands if in pmode.
    - fixed the IRETD error.
    - CPUID now does not add a 66h if in rmode.
    - fixed "out of range by 0 byte(s)" error discription.
      (the error string was off by one byte, nothing wrong with acutal
       code generation.)
    - speed optimizations (0)
    - other bugs/modifications (1)

   v00.25.10 - (19 May 2002)
    - NBASM32 now includes the beginning of the .OBJ output format.
      See page 54 of NBASM32.DOC and DEMO3.ASM for more.
    - NBL, the NewBasic Linker released in pre-beta form.
    - Some memory operands fixed
    - speed optimizations (0)
    - other bugs/modifications (2)

   v00.25.00 - (08 Mar 2002)
    - 32-bit version of NBASM.  Now includes unlimited file sizes,
      larger symbol table, PMODE, as well as many new features.
    - Please note that NBASM32 requires a DPMI and a 32-bit processor.
    - Please note that NBASM32 is released in pre-beta form.  It
      has not been checked for all possible instances.
    - Please note that some of the 32-bit addressing is broken.
      e.g:  [ebx], [ebx*4+1], [ecx+eax+3] etc....
    - If you find an error in NBASM32, but NBASM assembles your source
      with out the error, please let me know.
    * Please read the documentation about the shift operatores ( < and > )
      and a few other changes you must make to your existing code.  There
      are only two at this point and they may not even be used in your
      source code.  But please check page 7 of NBASM32.DOC.

******************************************************************************
     Unless otherwise noted, this is the last version of the 16-bit NBASM.
     Please start using NBASM32 unless system requirements restrict the
     use of NBASM32 on your machine.  If you require the 16-bit version of
     NBASM and find a bug you would like fixed, please let me know.

     You may rename NBASM.EXE to NBASM16.EXE and then rename NBASM32.EXE
     to NBASM.EXE to maintain batch files, etc.
******************************************************************************

   v00.24.95 - (08 Mar 2002)
    - fixed a few syntax errors
    - RET now allows an immed if ret is outside a proc/endp block
    - speed optimizations (0)
    - other bugs/modifications (0)

   v00.24.94 - (05 July 2001)
    - if you use VNBASM, it is recommended that you get the
        latest version (00.11.12) to be more compatible with NBASM.
    - worked with 'CALL WORD' and 'CALL DWORD'
    - added more error checking and with better detail
    - added the .NORET directive (see the documentation)
    - speed optimizations (1)
    - other bugs/modifications (2)

   v00.24.92 - (28 Jun 2001)
    - fixed a bug with the STRUCTures.
    - cleaned the listing file output a little
    - speed optimizations (0)
    - other bugs/modifications (0)

   v00.24.90 - (12 May 2001)
    - now allows structure definations (see page 51 in NBASM.DOC).
    - now allows the sizeof directive (see page 53 in NBASM.DOC).
    - worked with the listing file output.
    - loop(x) now allows immediate values
    - worked with the INCLUDE directive.
       Now will search for the include files in the directory
       that the source file is in.  See NBASM.DOC for more info.
    - speed optimizations (1)
    - other bugs/modifications (0)

   v00.24.87 - (19 Mar 2001)
    - added the /w<d> parameter.  This parameter writes your image
        to the boot sector of the specified drive.
        See Appendix B in NBASM.DOC for more information.
    - now correctly allows jumps to symbols as well as labels
    - fixed bug in the math code  ( (symbol-100h), etc. )
    - speed optimizations (0)
    - other bugs/modifications (1)

   v00.24.85 - (14 Mar 2001)
    - added, tested and fixed a few 32-bit instructions
    - fixed a bug with 'proc near uses [reg32] [reg32] [reg32]'
    - fixed and enhanced greatly the indirect memory operands (16-bit only)
        eg:  mov  ax,[bx][si][10h][-4]   or   mov ax,[bx+si+10h-4]
             mov  ax,[bx][si][10h]-4     or   mov ax,-4[bx+si+10h]
             mov  ax,[bx][si][10h-4]     or   mov ax,[bx+si][10h-4]
    - changed EXE2COM.EXE to EXE2COM.COM
        if you download exe2com.com be sure to delete exe2com.exe
    - changed MEMORY.EXE to MEMORY.COM
        if you download memory.com be sure to delete memory.exe
    - speed optimizations (2)
    - other bugs/modifications (1)

   v00.24.83 - (09 Mar 2001)
    - tested and fixed a few 32-bit instructions
    - fixed a bug in the SHRNKEXE utility (see web page)
    - added the NOT operator (~)
       See NBASM.DOC:  Operands: #7: Math equations
    - reorginized and cleaned up NBASM.DOC
    - you may now use a spacer (_) in your binary digits
       See NBASM.DOC:  Operands: #3: Binary numbers
    - speed optimizations (0)
    - other bugs/modifications (0)

   v00.24.80 - (02 Mar 2001)
    - DD (declare dword) now works correctly
    - fixed the math funtions when spaces were included
    - EQU now allows 32-bit numbers
    - fixed the loadall instruction
    - added the %line macro
    - speed optimizations (2)
    - other bugs/modifications (1)
    - uploaded to SIMTEL (NBASM248.ZIP)

   v00.24.78 - (26 Feb 2001)
    - ** Now allows 32bit numbers **
      (except as EQUates) (soon)
    - added a few more 32-bit instructions
    - now allows gs and fs on the 'uses' list
    - call far offset,segment now works correctly
    - fixed the bug with the HIGH and LOW directives
    * deleted the CLOCKS count (cycles used count) in the .lst
        file output.  (see 00.24.07 and 00.24.03 below)
        The technique I was using was excelent for the .8086 through
        the .286, but would have returned many wrong counts with
        the .386 and up.     
    - speed optimizations (1)
    - other bugs/modifications (0)

   v00.24.75 - (21 Feb 2001)
    - ** extensive work on the 32-bit instructions **
    - added "most" 32-bit instructions up to the Pentium Pro
      - does not include the CR0 or .mmx registers or instructions (yet)
      - have not added code to allow 32 bit numbers yet (asap)
          (remember that a negative number is a 32 bit number when
            used with a 32 bit register)
      - let me know if you find any instructions that I missed or
          are not working correctly.
    - push/pop fs/gs now working correctly
    - the %error macro now uses a pass cound exactly like the %out macro
    - added the INT3 instruction (actually renamed it from INT)
    - added 'push dword immed32'
        (will push an immediate number on the stack as a dword size)
    - added the 'dword' keyword and "most" of the instructions that
        can use it.  However, I still have not added the code to allow
        immediates to be more than word sized...(Soon I hope)
    * changed the pushb (push immed7) to push (dropped the 'b')
       pushb now used for 'push byte [(e)bx]'
    * deleted optimizer #6.  push immed7 now automatically uses the
        smaller sized opcode.
    * deleted SEG ES: (etc.) -- now just use ES: (etc.)
    - speed optimizations (1)
    - other bugs/modifications (0)

   v00.24.56 - (13 Feb 2001)
    - now ignores the 0 in [bx+0]
    - worked on the library addition code
    - added more library functions
    - speed optimizations (0)
    - other bugs/modifications (0)

   v00.24.55 - (07 Feb 2001)
    - reduced the memory usage by 50k
    - added more 32 bit instructions
    - fixed a bug with EQUates and memory operands
    - added to the library (NBASMC.LIB)
    - speed optimizations (1)
    - other bugs/modifications (1)

   v00.24.50 - (29 Jan 2001)
    - Now have a mailing list.  To subscribe, see readme.txt or
       simply send an empty email to:
          nbasm-subscribe@yahoogroups.com

   v00.24.50 - (25 Jan 2001)
    * source lines can be no longer than 256 bytes (use to be 1024)
    * changed 'push mem/memreg' to 'push word mem/memreg'
       i.e.: now needs the 'word' declaration (push word [bx])
    - added 'smsw word [xxxx]' (needs .286P, .386P, or .486+)
            'smsw reg16'       (needs .286P, .386P, or .486+)
    - added 'alld' and 'alldf' (see documentation)
    - upped the symbol table size
    - added more 32 bit instructions
      ** Remember that not all 32 bit instructions or working properly
          If you use any 32 bit instructions, check assembled binary
          before you execute it to make sure they assembled correctly.
          I hope to have more of the 32 bit instructions fixed ASAP....
    - speed optimizations (2)
    - other bugs/modifications (2)

   v00.24.42 - (11 Jan 2001)
    - fixed a bug with LOOPx and .386
    - added a few more 32 bit instructions
    - speed optimizations (0)
    - other bugs/modifications (1)

   v00.24.40 - (26 Dec 2000)
    - spaces are now allowed in math equations ( 1 + 1 - 3 + 1 )
    - fixed/added the MUL instruction(s)
    - fix: now allows equates as symbols inside memory operans
    - a little more error & syntax checking
    - speed optimizations (1)
    - other bugs/modifications (1)
    - uploaded to SIMTEL (NBASM244.ZIP)

   v00.24.29 - (22 Dec 2000)
    - fixed nasty bug with JMP FAR immed16,immed16
       (would not increment IP correctly)
    - now won't allow the target file (.COM|.NBO) to be the same as the
       source file (.ASM)
    - now won't include a file that is already in the next of include files
    - speed optimizations (1)
    - other bugs/modifications (1)

   v00.24.24 - (13 Dec 2000)
    * changed .OPTOF to .OPTOFF (Simply added another 'F')
    * changed .ALGNW to .EVEN (Align on a word boundry (2 bytes))
    * changed .ALGNP to .PARA (Align on a para boundry (16 bytes))
    - added .PAGE  (Align on a page boundry (512 bytes))
    - worked with IMUL reg16,immed8 (signed)
    - added IMUL reg16,immed16 (signed)
       (please note that IMUL reg16,reg16,immed does not work correctly)
       (please note that IMUL [memreg],immed does not work correctly)
    - other bugs/modifications (1)

   v00.24.20 - (21 Nov 2000)
    - now allows '<char>' inside math operations
       i.e.:  mov  al,('a'+1)
    - fixed bug with using EQUates as DW values
    - if using .exit with no operand in the Destination Field,
       then uses the current value of AL (see documentation for more)
    - other bugs/modifications (0)

   v00.24.17 - (25 Oct 2000)
    - now the 'short' keyword used in .386+ conditional jumps
       use the shorter instruction (2 byte instruction)
    - added another example (DEMO2.ASM)
    - other bugs/modifications (1)

   v00.24.15 - (21 Oct 2000)
    - fixed the error with the processor directives from last release (24.10)
    - worked with the FPU instructions
    - added the /d switch.  (/d tells NBASM not to print Diagnostic errors)
    - other bugs/modifications (2)

   v00.24.10 - (20 Oct 2000)
    - now correctly assembles near and far jmps/calls (see documentation)
    - added some FPU instructions.
    * due to data space, reduced the user symbols from 1300 to 1200
         (sooner or later, I would like to allocate all available memory
          for the symbol space.  But for now, 1200 it is...)
    - other bugs/modifications (0)

   v00.24.08 - (08 Oct 2000)
    - a bug fix in version 24.03 below ([ax], [bx], etc.)
        I didn't fix it correctly and created a larger
        bug with memory operands.
    - other bugs/modifications (2)

   v00.24.07 - (12 Sept 2000)
    ? did some more work on the LIST with the CLOCKS output
        this feature is in development and testing!!!!!!!!!
    - now allows .386+ conditional jumps.  i.e.:  conditional jumps
        longer than 128 bytes.  Once I get NBASM to have 3 passes,
        NBASM will optimize for size and use the two byte version if
        applicable.  For now, if you give a .386 or higher directive,
        NBASM will use the four byte condition jump for all Jcc jumps.
    * due to data space, reduced the user symbols from 1400 to 1300
    - other bugs/modifications (1)
    - speed optimizations (1)

   v00.24.03 - (20 Aug 2000)
    - now allows AAM and AAD to have an operand other than the assumed 0Ah
    - now returns error if [ax], [dx], or [cx] used
    ? have started the 'cycles used' entry in the list file output for
        each line.  Plan to include the cycles used count for each line
        in a future release
    - other bugs/modifications (1)
    - speed optimizations (0)

   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)
    - uploaded to SIMTEL (NBASM240.ZIP)

   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 below)
        (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 valid 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 some previous source files 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!)
