Emu8086 - Microprocessor Emula
Emu8086 - Microprocessor Emulator 3.07e.rar
--------------------------
Revision History for
Emu8086
8086 Assembler and Microprocessor Emulator
//www.obk20.com
--------------------------
[+] - stands for new features.
[-] - stands for known bugs.
[*] - stands for fixed bugs.
***************************************************
Version 3.07e
Friday, March 4, 2005
[+] LABEL directive is processed.
[+] Assembling into "EXE" file by default
when "ORG 100h" directive not present.
[+] INT instruction is accepted even if hexadecimal
number is written without prefix zero.
[*] Instruction CMP AL, ',' is accepted.
Thanks to Walter Cox :)
***************************************************
Version 3.07d
Tuesday, March 1, 2005
[+] New samples added to "Samples" folder.
[*] A few documentation fixes.
Thanks to Jan Pedersen :)
***************************************************
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 t 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. (C) 2002-2005
http://www.emu8086.com
-----------------------------------
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%
下载地址
Emu8086 - Microprocessor Emula下载
相关电子资料下载
- pic单片机汇编程序实例 297
- 汇编指令是什么 计算机语言汇编指令简介 130
- 汇编代码是什么意思 121
- u-boot在汇编启动阶段的相关操作介绍 127
- 什么是C语言?单片机有什么特点?为什么要用C语言编程? 320
- 一文认识ARM汇编指令和体系架构 412
- C程序的完整编译过程 324
- KEIL软件的详细分析 213
- armasm编译汇编代码链接失败的问题分析 184
- 看完这篇文章,汇编也不难 325