-----------------------
Emu8086, Inc. 2002-2004
http://www.emu8086.com
-----------------------

Emu8086 - 8086 Assembler and Microprocessor Emulator

     +++     Revision History     +++

********************************************

	[+] - stands for new features.		
	[-] - stands for known bugs.
	[*] - stands for fixed bugs.
	
********************************************
Version 3.07c
Saturday, January 29, 2005

[+] Language help file updated.
    Emu8086 can be translated to any world
    language. More info is available from
    "How_To_Translate.txt" file under "Translation"
    folder of your Emu8086 installation.
    
********************************************
Version 3.07
Saturday, January 15, 2005

[*] DAS instruction error:	 

         MOV AL,76H
         SUB AL,39H ;  AL=3DH 
         DAS        ;  AL=37H (not AL=D7H)
         
     Thanks to Wu Sheng-Ho from Taiwan :)

********************************************
Version 3.05
Sunday, October 31, 2004

[+] Shareware Nag Screen updated...
    To let you think about registration
    benefits a little bit more.
    Thanks to Bill from USA :)    

[+] Error report is reverted, to make it
    easier to compile your code and find
    possible syntax errors.

[*] DIV instruction error:

	 MOV DX, 0FFFEh
	 MOV AX, 00001h   
	 MOV BX, 0FFFFh
	 DIV BX

    Is totaly fixed.
    Thanks to Mehrdad University of 
    Amir Kabir (Poly Technic) of Tehran - Iran :)

 [*] The External Memory Viewer window caused
     a very long "Reload"... Now you have to
     press "Refresh" button, because otherwise
     it works very slow even on Pentium 10GHz.
     Thanks to Y.W. Lee from Hong Kong :)
     This problem fixed is also fixed.
     
********************************************
Version 3.04
Friday, October 29, 2004

[+] Font size for "External Memory Viewer"
    is set to "Fixed" system font, to make
    it look better under Windows XP.
    Thanks to Joshua from Israel :)

[*] Editor highlight for SCASB and SCASW 
    instructions works from now on.    
    Thanks to Marco from Spain :)

[*] Declaring STACK segment before DATA
    segment for EXE file, caused memory
    access problems. Bug fixed.
    Thanks to Y.W. Lee from Hong Kong, 
       and Egman from China :)
       
********************************************
Version 3.03
Sunday, October 24, 2004

[*] Incorrect description of STOSW 
    instruction in documentation is fixed.
    Thanks to Amir Badiyehneshin.
    
[*] Full range custom interrupt calls are
    available from 0h to 0FFh.    
    (previously it was limited to INT 7Fh)
    Thanks to Joe Moretti.    

********************************************
Version 3.02
Tuesday, October 12, 2004

[*] Intel 8086 DAA instruction bug is fixed.
    Thanks to Zhang Xing Liang from China :)

[*] Intel 8086 DAS instruction bug is fixed.

********************************************
Version 3.00
Friday, October 01, 2004

[+] New virtual device added:
    Thermometer and Heater Device
    for demonstration of automatic
    temperature control.
    See Thermometer.asm in Samples
    and Thermometer.exe in DEVICES
    folder. This device comes with complete
    source code.

[*] Robot device bug fixed. 
    The "robot" device sometimes made a turn
    when a light is switched on or switched off.
    Thanks to Mike O'Neil.    

[*] Carry flag error is fixed for ADC
    instruction. Thanks to Shameerudheen PT.

********************************************
Version 2.58
Saturday, April 10, 2004

[*] Execution speed can be changed while
    emulator is in input state without
    causing misapprehension.

[+] Message box is shown when trying
    to type into "Actual Source" window.

[*] Unworking shortcuts removed for
    "Comment block" and "Uncomment block"
    menus.

********************************************
Version 2.57
Friday, August 01, 2003

 [+] New look and feel!
 
 [*] Font settings are saved correctly.
     Thanks to DarkDaemon!
     
********************************************
Version 2.12
Friday, June 06, 2003

 [*] Recent menu on startup form works.
     
 [+] 100 to 200 address limit for custom I/O
     devices removed. Current limit is:
     00000Fh to 0FFFFh (15 to 65535).
     IO.BAS and IO.H files are updated,
     custom devices should be recompiled
     to be compatible with new version.
     
********************************************
Version 2.11
Tuesday, June 03, 2003

 [+] "Making your own Operating System"
     tutorial is updated.
     Thanks to Daniel (aka, The Starman) !

 [+] New virtual device is available:
     "Printer.exe" + PrinterDemo.asm
     (see "prReadMe.txt" in "Sources.zip"
      inside "DEVICES" folder).
     Thanks to Andrew Nelis !
     
 [*] ORG directive was working well with
     some specific code. Fixed!
     Thanks to Robert M !

 [*] UNIX file format is supported again.

 [*] INCLUDE directive parses out comments
     properly.
 
 [+] Start up form is added.

********************************************
Version 2.10
Friday, January 10, 2003

 [+] There are no dramatic changes in
     this version, we've just upgraded
     our web site to http://www.emu8086.com
     so links are updated.

********************************************
Version 2.09
Friday, December 27, 2002

 [+] External add-on devices can be attached
     to Emu8086! See "simple_io.asm" in
     samples. Other programmers can write
     their own devices in Visual Basic or
     any other language (VC++), check
     "DEVICES" folder for more info.

 [+] Source files are loaded faster.

 [+] 400k limitation removed for EXE files,
     new limit is about 700k.

 [+] When double clicking over the value
     in STACK window "Extended Value Viewer"
     is opened.
     Thanks to John McNally!
 
 [+] Main editor window is automatically
     minimized when emulator is shown.

 [*] INT 15h / 86h works correctly!
     Thanks to Teerapon Jungwiwattanapor!

 [*] MagicGlob internationalization system
     updated to version 1.01 (problem with
     translating tool tips fixed).
     Thanks to Georges Schreyer!

********************************************
Version 2.07
Friday, November 29, 2002

 [+] Interface of Emu8086 can be translated
     to any other language (German, French,
     Italian, Spanish, etc...). For more
     information check inside "Translate"
     folder.

 [+] More samples added:
 
      matrix.asm - matrix transpose sample.
      
      palindrome.asm - checks if string
                       is a palindrome.
                       
      ToBin.asm - prints out binary
                  equivalent of a decimal
                  number.

 [*] Disposition for Flags window is
     restored more precisely when it is
     at the right edge of the screen.     

 [*] Regression found and fixed:
     compiler wasn't adding variable
     offset when calculating effective
     address:
             MOV a[bx][si], 7
             a DB 1,2,3,4,5

********************************************
Version 2.06
Thursday, November 21, 2002

 [*] DAA and DAS instructions correctly
     adjust the result (in all situations)
     and required flags are set.
     Thanks to Jacob Feindt!

********************************************
Version 2.05
Saturday, November 16, 2002

 [+] Disposition for various windows on
     screen is saved and restored
     automatically.
 
 [+] New separate window for looking at
     memory. Accessible from "View" menu
     of the emulator as "External Memory
     Viewer".

 [+] When a register or variable changes
     (while single-stepping), it is
     highlighted. It may help the user
     notice that something has changed.

 [+] User can set custom output directory.
     Accessible from "Compile" menu.

 [+] Decimal immediate values may have "d"
     suffix, for example: MOV CX, 10000d

********************************************
Version 2.04
Saturday, August 24, 2002

 [+] New sample added:
        "print_hex_digit.asm"

 [*] Description of XLAT instruction
     in "8086 instruction set" corrected.

********************************************
Version 2.03
Saturday, August 10, 2002

 [+] Samples updated:
       "snake.asm" and "keyboard.asm".

 [*] Options to set default colors for
     User Screen are improved.

 [*] "Debug Log" is unloaded correctly
     when Emulator window is closed.

 [*] Compiler supports:
       MOV AX, [BP]
     (even without displacement).

 [*] Tab indexes corrected for controls on
     emulator window.

********************************************
Version 2.02
Thursday, August 08, 2002

 [+] Documentation updated.

 [+] For COM file CX register is set
     to file size in bytes.
     For EXE file CX register is set
     to file size without EXE header (200h).

 [+] Made possible to Drag & Drop files
     from Windows Explorer into the main
     window (area below the "About" button),
     and into the emulator window (area 
     between "Memory" and "Disassemble"
     buttons).

********************************************
Version 2.01
Monday, August 05, 2002

 [+] Documentation updated.
      "MASM / TASM compatibility" section
      added to "Emu8086 reference".

 [+] Cancel button added to "Choose
     Template" dialog box (shown when New
     button is clicked).

 [+] Message Box is automatically hidden
     on reload when it has one of the
     following messages:
        "System halted!"
        "PROGRAM TERMINATED!"

 [*] This code gives more reasonable
     error messages:
	MOV AX, 0
	MOV CX, 5
	m1: INC AX
	LOOP m1        ; not a real error!
	MOV AL, 0FFFFh ; real error is here.
     (see also "Compiling Assembly Code"
      in "Emu8086 reference").

********************************************
Version 2.00
Saturday, August 03, 2002

 [*] "Extended Value Viewer" is
     automatically hidden when emulator
     window is closed.

 [*] "Lexical Flag Analyzer" supports
      standard emulator hot keys:
       F8           - single step.
       Shift + F8   - step over.
       Ctrl + F8    - run until cursor.
       F9           - run.
       F7           - current instruction.

********************************************
Version 1.32
Friday, August 02, 2002

 [*] It is no longer required to un-install
     previous version of Emu8086 before
     installing new version.
     Thanks to Darrell Collins.

 [*] Un-install of previous version does not
     reset options for current version of
     Emu8086.

 [*] Hexadecimal and Octal values are
     treated as unsigned, huge decimal
     numbers are not converted to singed
     values. Compiler reports expected
     overflow error messages for:
      MOV BL, 0FFFFh
      MOV BL, 177777o
      MOV BL, 65523

 [*] Emulator does not reset its options to
     default after it is closed and then
     re-opened.

 [*] Backup ".~asm" files are saved with
     original extension of an executable
     file, to prevent conflicts.

 [*] "MyBuild" folder is automatically
     re-created even if manually deleted on
     runtime. Required for "Compile and
     Emulate" button to work properly.     

 [*] LOOP instruction is disassembled
     correctly. Previously it was decoded
     as LOOPNE.

********************************************
Version 1.31
Tuesday, July 30, 2002

 [+] "Lexical Flag Analyzer" added to
      "View" menu of the emulator.
      (see "4_sample.asm" in Samples).

 [+] Default "step delay" is set to 200 ms.

 [*] Documentation flaws corrected.

 [*] Assembler recognizes data types better,
     and generates correct machine code
     (even without 'b.' or 'w.').

 [*] Regression found and fixed:
     SHL BX, CL
     and other shift-rotate commands
     were not assembled when second operand
     is CL.

 [*] Undefined data was set to AX by the
     following code:
     		MOV CL, 0
     		MOV AX, 5
		SHL AX, CL
      (AX should be unchanged). Fixed!
 
 [*] Bizarre resize of Editor Window
     (to the minimum) caused GPF under
     Windows XP. Fixed!

 [*] This code caused overflow:
      MOV AL, 251
      MOV BL, 254
      MUL BL
                   Fixed!

 [*] Incorrect result was calculated by:
      MOV AX, -12
      MOV BL, -2
      IDIV BL
                   Fixed!

 [+] "Debug Log" shows next instruction
     that is going to be executed when
     it is opened.

********************************************
Version 1.30
Sunday, July 28, 2002

 [*] Version number added to default install
     path, to avoid conflicts with previous
     installations. Thanks to Starman!

 [+] Variable View improved, it is possible
     to view arrays and strings while
     your program is executing.
     See "Variables" in Tutorials.

 [+] Full path to source file is included
     in editor's caption.

 [+] Support for BIN files improved.

 [+] Stack window is less flickering.

 [+] Separate "View" menu added to emulator,
     it allows to see Stack, Variables,
     Flags, User Screen, ALU and etc...

********************************************
Version 1.29
Wednesday, July 24, 2002

 [+] New sample that prints out the result
     with floating point added to Samples
     folder: "float.asm".

 [*] Disassembler updated! Some relative
     jumps were not decoded correctly.

 [+] Option to browse "MyBuild" folder or
     load in emulator after compilation.

 [+] Shortcut to Emu8086 is added to
     "SendTo" folder automatically, this
     allows to load any ASM or Executable
     files directly without changing your
     current Windows settings.

 [*] Regression found and fixed:
     MOV AL, [SI] + 00102h
     was not compiled properly!
     Thanks to Donald?!

 [*] Segment prefixes are not treated as
     labels on pre-compile.

 [+] "CALL immediate" is supported.

 [*] Minimization after focus lost issue
     is fixed!
     Thanks to Donald!

 [+] A primitive variable view window is
     added. Select "Variables" from "View"
     menu of emulator. It is still under
     construction.

 [+] Compiler has better support for
     JMP / JCC instructions with immediate
     values as parameters. See "Program
     Flow Control" in tutorials.

********************************************
Version 1.28
Wednesday, July 17, 2002

 [+] Emu8086.exe supports command
     line parameters. It is possible to
     set it up to open ".asm" files in
     Windows Explorer. You can also load
     executable files using "Send To"
     menu of Windows Explorer (copy the
     shortcut of Emu8086.exe to
     "Windows\SendTo" folder).

 [+] Documentation updated,
     new tutorials added:
     "Macros Tutorial"
     "Making your own Operating System"
     "Controlling External Devices:
       Robot, Stepper-Motor, Traffic Lights"

 [+] Cosmetic improvements.

 [+] HLT instruction can be used to
     Halt the Emulator.

 [*] "Extended Value Viewer" is improved.

 [*] MOVSB/W, LODSB/W, STOSB/W instructions
     work with "REPNE" prefix (the same
     way as with "REP" prefix - ZF not
     checked in both cases).

********************************************
Version 1.27
Wednesday, July 10, 2002

 [+] "Robot" virtual device is updated,
     lamps and walls can be added to
     the map.

 [+] "Emu8086 reference" is updated,
     "Using the Mouse" added to "Source
     Code Editor" chapter.

 [+] Tool Tip showing current line number
     while dragging the vertical scroll
     bar thumb can be turned off in Options.

 [*] Debug menu works correctly both for
     break points and "run until...".

 [+] "Extended Value Viewer" is shown when
     memory value is double-clicked in
     the list. It allows to edit the value
     in all supported numeric systems,
     and watch after the value while
     program runs.

********************************************
Version 1.26
Monday, July 08, 2002

 [*] "Traffic Lights" looked a little bit
     ugly on some systems, fixed.

 [*] Regression fixed. "User Screen" is
     shown after program termination.

 [+] Samples: "micro-os_kernel.asm" and
     "bintest.asm" are updated to use
     new compiler directives.

 [+] New virtual device added: "Robot".
     See "I/O ports" in "Emu8086 reference".

 [*] Emulator Hot keys work from Virtual
     Device windows.

********************************************
Version 1.25
Sunday, July 07, 2002

 [+] New compiler directives added.
     See "Compiling Assembly Code" in
     "Emu8086 reference".

 [+] Assembler supports IN and OUT
     instructions!

 [+] Emulator has new Virtual Devices:
     "Traffic Lights" and "Stepper Motor".
     See "I/O ports" in "Emu8086 reference".

 [+] "Extended Value Viewer" window
     is shown when register text box is 
     doubled clicked, or it can be selected
     from "View" menu.
     This window is updated automatically
     on run-time.

 [+] Custom memory map support added.
     See "Custom Memory Map" section in
     "Emu8086 reference".

 [+] Templates for all supported source
     files added.

********************************************
Version 1.24
Wednesday, July 03, 2002

 [+] "Step Over" command allows to run
     through procedures or macros very
     fast and stop on the next instruction.

 [+] List of supported Hot Keys updated:
        Single Step:        F8
        Run:                F9
        Stop:               Esc
        Step Over:          Shift + F8
        Run until gets to:  Ctrl + F8

 [+] Hot Keys work on all emulator related
     windows (Flags, Stack, Log).

 [+] Closing "User Screen" causes the
     emulator to stop (can resume if
     "Run" is pressed again).

 [*] "Run until selected" menu in Debug
      renamed to "Run until gets to", and
      it works much better now (Ctrl + F8),
      the value of CS:IP where stop should
      occur can be set by clicking on
      lines of "Actual Source" window or
      disassembled list.

 [*] Right-click popup menu wasn't working
     on "Actual Source" window.

 [*] Ctrl+G (Go to Line) works in editor.

 [*] "Find..." and "Find Next" work from
     popup menu of the source editor.

********************************************
Version 1.23
Tuesday, July 02, 2002

 [+] Complete 8086 instruction set is added
     to reference section of the help.

 [+] Editor updated!
     Color Syntax Highlighting,
     Custom Color and Font Settings,
     Line Numbering,
     Regular Expression Search and Replace,
     Indent / Outdent,
     User defined Keystroke Macros.

 [+] Operating system sample is updated:
     now it contains two files:
        "micro-os_loader.asm"
        "micro-os_kernel.asm"
     'micro-os' is already loaded on virtual
     floppy drive, so you can select:
     'Virtual Drive' -> 'Boot from Floppy'
     on emulator window.

 [+] Compiler reports errors before
     completing all passes.

 [*] Emulator screen had problem with
     hiding previous cursor when back-space
     is pressed.

 [+] Compiler works faster.

 [*] Timer function INT 1Ah/00 did not
     report correct number of ticks after
     midnight.

 [+] "Reload" button added to emulator.

 [+] "Reset Emulator and RAM" added to
     "File" menu of emulator.

 [+] INT 10h/00 function can be used to
     set video mode (size of the screen
     window).

 [+] Support for the following 80186
     instructions added:
       PUSHA
       POPA
       PUSH ib  (immediate signed byte)
       PUSH iw  (immediate word)

 [+] Shift and Rotate instructions support
     any byte constant (not only 1),
     the compiler automatically
     generates the required number of
     single shift/rotate instructions.

 [*] CALL instruction supports both label
     or procedure name.

 [*] DIV instruction generated internal
     'Overflow' in some rare conditions.
     
 [+] SCAN_NUM procedure of 'emu8086.inc'
     library is improved, it allows to
     input only digits.
     Macro to print entire string is
     added, this is how it works:
     PRINT "hello there!"

 [+] JMP and CALL instructions support
     immediate double-word as parameter:
        JMP FFFFh:0000h

 [+] "MySource" folder is used as default
     for saving ".asm" files.
     
 [+] "MyBuild" folder is used for compiled
     files (*.com, *.exe, *.bin, *.boot).
     (previously it was "EMU_TEMP").

 [+] New Hot Key for "Single Step":
       F8

 [+] New Hot Key for "Run until selected":
       Ctrl + F8

********************************************
Version 1.22
Monday, June 17, 2002

 [+] New sample added: "micro-os.asm" an
     example of micro operating system.
     
 [+] Tutorials are heavily updated.     
 
 [+] emu8086.inc updated, procedure for
     string input is added.
     
 [*] Inner macro string parameters
     are transferred correctly.
     
 [+] Debug log uses correct number of
     spaces between encoded instruction
     and machine code.
     
 [*] Default position of text cursor is
     made more reasonable.

 [+] "Find" dialog is shown with currently
     selected text in the code editor.

 [*] String inside string declaration
     is processed correctly.

 [+] Refresh of the user screen is
     optimized.
 
********************************************
Version 1.21
Friday, June 14, 2002

 [+] Keyboard support is improved,
    INT 16h / 00h / 01h
    return BIOS scan code also.

 [+] "Step delay" can be set to zero.

 [+] Sample "snake.asm" is updated :)

 [*] REPE/REPNE prefix was not decreasing CX
     by one on exit. Fixed.

 [*] String parameters are transferred
     correctly to macro.

 [*] Compiler cares about duplicate
     declarations, and reports about it.

 [+] Several tool tips added.

 [+] Input state can be interrupted by a tiny
     stop button.

 [+] Debug Log added to emulator, start it
     from "View" menu.
    
 [+] Edit menu added to code editor, it is
     possible to do indent, outdent, find...

********************************************
Version 1.20
Tuesday, June 11, 2002

 [+] New samples added:
 	snake.asm
 	include.asm
 	calc.asm     
 	sort.asm

 [+] It is possible to use shorter "b." and
     "w." instead of "BYTE PTR" and
     "WORD PTR".
     Disassembler always uses short form.

 [*] Command line parameters did not include
     the prefix space (like original DOS).
     It is fixed by adding prefix space.

 [*] There was a problem compiling this
     expression: "WORD PTR  [20h]" when
     there are more then one space after PTR
     keyword. Fixed, also for "BYTE PTR".

 [*] Blue color "0001b" was not as original
     DOS color RGB(0,0,128). Fixed.

 [+] Cursor options are improved, it can
     be made invisible using:
     INT 10h / AH=01.

 [*] Compiler was unable to evaluate
     some immediate expressions. Fixed.     

 [+] Expression Evaluator added (Math menu).

 [+] Arithmetic & Logical Unit updated.

 [+] Other internal optimizations.

 [+] "Compile & Emulate" button added
     (does the same as F5 key).

 [+] "Loading..." is shown while loading
     source files.

 [*] Selection of currently executing macro
     is much better now.

 [+] Emulator "step delay" can be set
     to maximum of 9000 milliseconds
     (9 seconds).

 [+] It is possible to set a breakpoint
     via "Debug" menu.

********************************************
Version 1.19
Thursday, June 06, 2002

 [+] Documentation is updated!
     Better tutorials and reference added.

 [+] Command line parameters option is
     improved for both COM and EXE files.
     (see "param.asm" and "paramexe.asm" in
      samples).

 [+] Double-click on stack list also opens
     Number Convertor with selected value
     converted to all possible forms.

 [*] [Load] button renamed to [Open] in
     compiler window, this is more logical.
      
 [+] "BYTE PTR" and "WORD PTR" no longer
     required for immediate offset location:
     MOV [0020h], DL
     MOV BX, [0020h]
     
********************************************
Version 1.18
Monday, June 03, 2002

 [+] User Screen is activated automatically
     after program is terminated (when it is
     opened in the background).

 [+] "Save current emulator state..." from
     "Debug" menu saves registers and memory
     in addition to disassembled code. 

 [+] New function supported INT 10h / AH=13h
     to write string with attributes,
     (see reference.html and "int10_13.asm"
     in Samples).

 [+] Disassembling of 8 bit displacements is
     improved. Previously code:
     MOV AX, [DI-1]
     was disassembled as:
     MOV AX, [DI] + 0FFFFFFFFh
     now it is disassembled as:
     MOV AX, [DI] - 01h

 [*] Segment prefix is compiled correctly:
     MOV BYTE PTR ES:[020h], DL

 [*] "Clear Screen" button forces to update
     memory and disassembled lists when
     required.

 [*] Compiler reports an nice error in
     case of:
              db 1234h
     (previously anything over byte size was
     converted to zero without a warning).

 [+] Emulator asks for a missing ".binf"
     file, when it cannot find it in the
     same folder with a ".bin" file.

 [*] Number Convertor gets correct word
     value after double clicking memory
     list. (previously instead of FB09h
     it received FB9h).
      
 [*] Error message was shown mistakenly
     on creating new floppy drive and
     writing boot record. Fixed.
 
********************************************
Version 1.17
Sunday, June 02, 2002

 [+] Timer function added (INT 15h / 86h),
     (see reference.html and "timer.asm"
     is Samples).

 [+] Enabled compiling of actual offset
     number instead of variables:
     MOV BYTE PTR [82h], 'A'
     (assumed that segment is in DS
      register - DS:[0082h]).

 [+] It is possible to set cursor size:
     INT 10h / 01h (see reference.html).

 [+] Keyboard buffer added, currently it
     can hold up to 8 key-codes.
     Function INT 16h / 00h can be used
     to check if there is something in a
     buffer (see "keybrd.asm" in Samples).

 [*] Major bug with showing memory at
     some address (B800:0000) fixed.

 [*] INT 21h / 0Ah uses the current color
     for each character.

 [+] Decoding unknown bytes as "DB ??"
     instead of "???".

 [*] Compiler did not report an error for
     MOV DI, offset s1
     when "s1" is not defined. Fixed.

 [*] Memory list was updated with physical
     address instead of offset. Fixed.

 [*] Some built in interrupts were unable
     to set Carry Flag (because flag
     register is pushed before interrupt and
     popped on IRET). Fixed.

 [*] Constant evaluation included comment
     in result. Fixed.
 
********************************************
Version 1.16
Friday, May 31, 2002

 [+] More instructions are now
     supported by emulator:
     AAA
     AAS
     AAD
     AAM
     DAA
     DAS
     (see "bcd_add.asm" in Samples).

 [*] Disassembler shows relative jumps
     with correct offset (previously
     physical address was shown).

 [+] "Save current emulator state" from
     "Debug" menu uses logical addresses
     instead of physical.

 [+] Selecting memory value automatically
     selects the disassembled line that
     corresponds to that byte.

 [*] Major bug fixed! BIOS Teletype function
     (INT 10h/0Eh) was not making scroll
     correctly! There also was unnecessary
     moving of current cursor position to
     the bottom of the screen.

********************************************
Version 1.15
Wednesday, May 29, 2002

 [+] Support for 8 video pages added,
     see "pages.asm" in samples.

 [+] Memory list shows only the offset
     of physical address, segment is shown
     in the first text box above it.

 [+] Separate "Help" button added.

********************************************
Version 1.14
Sunday, May 26, 2002

 [+] Text color support added.

 [*] Text-boxes for register values are made
     wider (some systems displayed only part
     of the value on selection).

 [+] It is possible to disassemble up to 1K
     of memory, and to save disassembled
     code into a file (by clicking
     "Save current emulator state" from
     "Debug" menu).

********************************************
Version 1.13
Saturday, May 25, 2002

 [+] New better font options added.

 [+] "Terminal" (OEM/DOS) font is used as
     default for user screen and
     memory list.

 [*] Number Convertor converts double
     characters correctly, assuming that
     missing character has zero value.

 [+] Memory word at 0040h:004Ah has
     number of columns on screen.
     Memory byte at 0040h:0084h has
     number of rows on screen minus one.
     This value is modified when screen
     window is resized.

 [+] More interrupts are supported:

     INT 10h / AH=06h - scroll up window.

     INT 10h / AH=07h - scroll down window.

     (see "scroll.asm" in Samples).

********************************************
Version 1.12
Thursday, May 23, 2002

 [+] Output file extensions are made more
     reasonable (".BOOT" for a boot sector,
     ".BIN" for files that are loaded at
     specified location by ".BINF" files).

 [+] BIN file can be loaded at any location
     using ".bINF" file,
     startup values for all registers are
     also set by this file.
     See "bintest.asm" in "Samples" for
     more information.

 [*] Actual source line is shown correctly
     for boot sector files.

 [+] "Create new floppy drive" menu is added
     to "Virtual Drive" menu. You can add
     up to 4 floppy drives:
     FLOPPY_0, FLOPPY_1, FLOPPY_2, FLOPPY_3

 [+] INT 11h returns the correct number of
     floppy drives (total-1).

********************************************
Version 1.11
Wednesday, May 22, 2002

 [+] New file type supported by emulator:
     ".PRE".
     (replaced with ".BIN" in version 1.12)

 [+] You can write a boot sector of
     a virtual floppy (FLOPPY_0) via menu in
     emulator.
     First you should make a ".boot" file and
     load it in emulator (see "micro-os.asm"
     in "Samples" for more info).
     Then, if you are curious, you may write
     the virtual floppy to real floppy and
     boot your computer from it, I recommend
     using "RawWrite for Windows" from:
     http://uranus.it.swin.edu.au/~jn/linux
     (note that "micro-os.asm" isn't MS-DOS
      compatible boot sector, so it's better
      to use and empty floppy, it should be
      IBM/MS-DOS formatted).

 [*] Major bugs with accessing far memory
     is fixed (I hope, since I need to do
     more tests).

 [+] Mouse cursor is updated for URL and
     e-mail on about form (eye & candy).

 [+] Regular menu is added to emulator
     form, previously these options were
     available from right-click on "Load"
     button, and memory list.

********************************************
Version 1.10
Sunday, May 19, 2002

 [*] Major bugs are fixed for instructions:
     CMPSB, CMPSW, SCASB, SCASW
     (zero flag was checked before operation
     instead of after when prefix is used).

 [*] Minor bug fixed: cursor is not advanced
     after INT 10h / AH=09h and
     INT 10h / AH=0Ah even if CX isn't 1.

 [*] Effective address 8 bit displacement
     was always treated as positive.

 [+] Virtual floppy drive is added:
     FLOPPY_0
     (it is blank, but I was able to make
      an image from DOS 6.22 bootable floppy
      currently it boots until
      "Starting MS-DOS..." message - and it
      takes several minutes :) - much to
      investigate!).

 [+] Interrupt 1Eh points to Vector of
     Diskette Controller Parameters.

 [+] More interrupts are supported:

     INT 12h - get memory size
	(returns: AX = kilobytes of contiguous
	memory starting at absolute
	address 00000h,	this call returns
	the contents of the word
	at 0040h:0013h).

     INT 13h / AH = 00h - reset disk system.

     INT 13h / AH = 02h - read disk sectors
                          into memory.

     INT 16h / AH = 00h - get keystroke from
                         keyboard (no echo).

 [+] It's possible to set selected
     memory value from Number Convertor by
     right clicking the memory list,
     (first left click to select the
       address).       

 [+] Stack memory can be viewed in a
     separate window.

 [+] Segmented values can be used when
     getting memory list and disassembled
     code (example: 0B56:0100).     

 [*] Minor screen bug is fixed,
     (last cursor location was lost
      when screen form was closed).

********************************************
Version 1.09
Thursday, May 16, 2002

 [*] Minor bug fixed: internal CPU flag for
     REP/REPE prefix was not reset after
     some string operations.

 [+] More interrupts are supported:

     INT 10h / AH=02h - set cursor position.

     INT 10h / AH=03h - get cursor position.

     INT 10h / AH=08h - read character and
               attribute at cursor position.

     INT 10h / AH=09h - write character and
               attribute at cursor position.

     INT 10h / AH=0Ah - write character only
               at cursor position.

     INT 10h / AH=0Eh - teletype output.

     (note: currently emulator has no
      support for character attributes or
      cursor size, default white on black
      color mode is used for all operations)

 [+] Screen window is not activated after
     any output operation, making it easier
     to operate with emulator (buttons do
     not stuck).

 [+] A call to BIOS sub-system is
     disassembled  by "BIOS DI" (it doesn't
     use DI  register in any way, it's just
     because of the way the encoding is
     done: we are using "FF /7" for such
     encoding, "FFFFCD10" is used to make
     emulator to emulate interrupt number 10)

 [+] INT 4 and INT 0 are defined and produce
     the expected message, you can re-define
     those for you own needs.

 [+] Sample code that can be compiled and
     emulated is moved to "Samples" folder.

********************************************
Version 1.08
Monday, May 13, 2002

 [*] Major bug fixed: effective address
     calculation "[DI] + d16" was calculated
     with SI segment instead of DI.

 [+] More instructions are now
     supported by emulator:
     LEA (for effective address)
     XLAT
     INT 3 (trap to debugger) - it is not
           used by emulator, so you may
           use for any purpose, you just
           should set the address of
           your sub-program in the interrupt
           vector (at 3*4 = 0Ch).
     INTO  (currently also not defined).

********************************************
Version 1.07
Sunday, May 12, 2002

 [+] Interrupt vector is added to emulator,
     now I'm really approaching the real PC
     emulation. BIOS ROM is loaded
     at location F400:0000.
     Both files can be modified by the user,
     so you may alter the original version.

 [+] More instructions are now
     supported by emulator:
     RETF
     CALL (full support)
     IRET
     LOOPE / LOOPZ
     LOOPNE / LOOPNZ
     STOSB
     STOSW
     SCASB
     SCASW
     CMPSB
     CMPSW
     LES
     LDS

 [+] ".BIN" files are loaded at 07C0h:0000
     (just like a boot sector).

 [+] Disassembler is improved:
     (automatic re-disassemble after JMP,
      CALL, RET instructions).

 [+] Horizontal scroll bar added to
     disassembled list.

 [*] Memory list update fixed.

********************************************
Version 1.06
Saturday, May 04, 2002

 [+] More instructions are now
     supported by emulator:
     SHL
     SAL
     ROL
     RCL
     SHR
     SAR
     ROR
     RCR
     SAHF
     LAHF
     ADC
     SBB

 [+] You can double click a memory value
     to open Number Convertor.

 [*] Bug with current byte selection in list
     when starting address not zero,
     is fixed.

 [+] Disassembler is improved (commands are
     shown before they are executed).

********************************************
Version 1.05
Monday, April 22, 2002

 [+] Support for command line parameters
     (currently only for COM files).
     Right click "Load" button in emulator
     to set them. This line is loaded at
     the address of 80h at PSP.

 [*] Temporary files are saved into EMU_TEMP
     folder. This way we avoid accidental
     overwriting of executable files.
     Thanks to Starman.

 [+] Every time you compile your file,
     a backup file with ".~asm" extension is
     saved, along with ".debug" file that
     contains information required for
     emulator to select lines in your source
     code while executing.
     When not specified "MyBuild" directory
     is used.

 [+] Number Convertor is added, with its
     help you can convert binary numbers to
     hexadecimal, octal to decimal, or see
     an ASCII characters and vice versa...
     Double click a register value in
     emulator to load its value to
     calculator, or click "Calculator" in
     the main menu of source editor.

 [+] More instructions are now
     supported by emulator:
	     JCXZ
	     CMC
	     STC
	     CLC
	     CLD
	     STD
	     CLI
	     STI
	     CBW
	     CWD  
	     INC (full support)
	     DEC (full support)
	     XCHG
             JMP (full support)

********************************************
Version 1.04
Friday, April 19, 2002

 [+] The command that is going to be
     executed next is selected in actual 
     source window (previously command 
     was shown only after it is executed).
 
 [+] Corresponding line is selected when
     clicking on error message.
 
 [+] Support for ".BIN" files added, the only
     difference from ".COM" files that they
     are not loaded at 100H prefix, and thus
     do not require "ORG 100H" line in the
     beginning of the file.

 [*] "MOV AL, -5" caused a critical 
      compilation error.

 [+] When showing registers prefix zeros are
     added.

 [+] More instructions are now
     supported by emulator:
     	  DIV
          IDIV
          IMUL
          MUL
          NEG
          NOT
          TEST (now full support)

 [*] Overflow is reported correctly
     on compile.

********************************************
Version 1.03
Sunday, March 31, 2002

 [+] More instructions are now
     supported by emulator:
          PUSH CS
          PUSH DS
          PUSH ES
          PUSH SS
          POP DS
          POP ES
          POP SS
          PUSHF
          POPF

 [+] Hourglass mouse pointer is shown
     while loading files in emulator.

 [+] Emulator shows decimal and char
     representation of memory (previously
     it was hexadecimal only).

 [*] Bug with INT 21h, AH=0Ah (line input)
     is fixed, last new line char was
     added one byte after required
     position.

 [+] INT 21h/AH=01h is supported,
     write character to standard output,
     with echo, result is stored in AL.

 [+] INT 21h/AH=02h is supported,
     read character from standard input,
     DL = character to write,
     after execution AL = DL.

 [*] TAB key is works again when
     typed in editor.

********************************************
Version 1.02
Saturday, March 30, 2002

 [*] COM files are loaded at 100h prefix!
     (as they really should).

 [*] A few other bugs fixed.

 [+] INT 20 added (exit to OS), the same
     as INT 21, AH=4Ch.

 [+] INT 21h, AH=0Ah is now supported,
     (string input, fist byte is buffer
     size, second byte is number of chars
     actually read).

 [+] Disassembler uses HEX for numbers.

 [*] INCLUDE directive looks for files in
     the same folder where the source is
     (in case full path is not specified),
     and there is a regular error message
     when file not found.

 [+] Emulator window is now re-sizeable.

********************************************
Version 1.01
Tuesday, March 26, 2002

 [+] Support for COM files added.

********************************************
Version 1.00
Wednesday, February 13, 2002

 [+] The very first release!

********************************************


-----------------------
Emu8086, Inc. 2002-2003
http://www.emu8086.com
-----------------------


