home *** CD-ROM | disk | FTP | other *** search
Text File | 2005-01-29 | 40.2 KB | 1,550 lines |
- -----------------------
- 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
- -----------------------
-
-
-