emu8051.git
10 years agoAdd new value range check when writing register in CLI version
Hugo Villeneuve [Thu, 6 Feb 2014 03:02:43 +0000 (22:02 -0500)]
Add new value range check when writing register in CLI version

The GUI version also had this check, so the functionality has been merged.

10 years agoConvert CLI version input parsing to Lex/Yacc
Hugo Villeneuve [Mon, 27 Jan 2014 00:59:34 +0000 (19:59 -0500)]
Convert CLI version input parsing to Lex/Yacc

Some error checking is still missing, but all commands seem to be
working correctly.

Update CLI help menu.

10 years agoRemove address parameter from RUN and TRACE CLI commands
Hugo Villeneuve [Mon, 27 Jan 2014 01:09:26 +0000 (20:09 -0500)]
Remove address parameter from RUN and TRACE CLI commands

Also automatically display register contents after each RUN operation.

10 years agoAdd general-purpose timer to CLI
Hugo Villeneuve [Sun, 26 Jan 2014 23:33:32 +0000 (18:33 -0500)]
Add general-purpose timer to CLI

Also add command to reset it.

10 years agoAdd better error checking when loading invalid hex files
Hugo Villeneuve [Sun, 26 Jan 2014 23:23:11 +0000 (18:23 -0500)]
Add better error checking when loading invalid hex files

Also replaced custom error message box with standard one.

10 years agoRefactor hex loading code
Hugo Villeneuve [Sun, 26 Jan 2014 22:52:21 +0000 (17:52 -0500)]
Refactor hex loading code

Merged two identical code portions that validated the checksum.

Also added better debug messages.

10 years agoAllow EM command to be specified without arguments
Hugo Villeneuve [Sun, 26 Jan 2014 22:50:52 +0000 (17:50 -0500)]
Allow EM command to be specified without arguments

In this case, program will run from the current PC address until a breakpoint
is reached.

10 years agoMove macro definition to top of file
Hugo Villeneuve [Sun, 26 Jan 2014 20:28:36 +0000 (15:28 -0500)]
Move macro definition to top of file

10 years agoUse log functions to display errors
Hugo Villeneuve [Sun, 26 Jan 2014 20:23:48 +0000 (15:23 -0500)]
Use log functions to display errors

10 years agoFix error when specifying start address in CLI version
Hugo Villeneuve [Sun, 26 Jan 2014 20:09:20 +0000 (15:09 -0500)]
Fix error when specifying start address in CLI version

Start address was specified as "0x0000", but need to be "0000".

10 years agoAdd square root regression test
Hugo Villeneuve [Sun, 26 Jan 2014 05:25:48 +0000 (00:25 -0500)]
Add square root regression test

10 years agoReturn error for test files without any validation condition
Hugo Villeneuve [Sun, 26 Jan 2014 04:39:27 +0000 (23:39 -0500)]
Return error for test files without any validation condition

10 years agoDo not display eror message when simply pressing return in CLI version
Hugo Villeneuve [Sat, 25 Jan 2014 23:56:10 +0000 (18:56 -0500)]
Do not display eror message when simply pressing return in CLI version

Before was displaying message "Syntax error".

10 years agoAdd general-purpose timer to GUI
Hugo Villeneuve [Sat, 25 Jan 2014 22:38:50 +0000 (17:38 -0500)]
Add general-purpose timer to GUI

This timer is not part of the 8051 hardware. It is a free running
timer/counter added as a mean to quickly measure delays in instruction
cyles.

For now, it is implemented only in GUI version.

10 years agoAdd documentation about regression testing
Hugo Villeneuve [Fri, 24 Jan 2014 01:01:03 +0000 (20:01 -0500)]
Add documentation about regression testing

10 years agoRemove display of command line options in GUI mode
Hugo Villeneuve [Fri, 24 Jan 2014 00:45:14 +0000 (19:45 -0500)]
Remove display of command line options in GUI mode

The information message was manually edited, which creates synchronization
problems now that we are using argp to manage our options.

10 years agoSimplify options parsing code
Hugo Villeneuve [Fri, 24 Jan 2014 00:15:39 +0000 (19:15 -0500)]
Simplify options parsing code

10 years agoemu8051 2.0.0 v2.0.0
Hugo Villeneuve [Wed, 15 Jan 2014 03:20:07 +0000 (22:20 -0500)]
emu8051 2.0.0

10 years agoRemove dynamic update of GUI layout
Hugo Villeneuve [Tue, 21 Jan 2014 05:05:32 +0000 (00:05 -0500)]
Remove dynamic update of GUI layout

The application must restarted for the changes to take effect.

Added a message for telling this to the user.

10 years agoImprove view/hide of memory windows
Hugo Villeneuve [Tue, 21 Jan 2014 04:59:14 +0000 (23:59 -0500)]
Improve view/hide of memory windows

Do not restart whole GUI, just update vpaned containing
the two memory scroll windows.

10 years agoRemove deprecated view->sfr-window option
Hugo Villeneuve [Tue, 21 Jan 2014 03:23:30 +0000 (22:23 -0500)]
Remove deprecated view->sfr-window option

10 years agoFix error when toggling memory display viewing on/off
Hugo Villeneuve [Fri, 17 Jan 2014 04:22:46 +0000 (23:22 -0500)]
Fix error when toggling memory display viewing on/off

Only the first two rows were displayed. The crc_init variable
was not handled correctly.

10 years agoRemove autogen.sh from distribution tarball
Hugo Villeneuve [Wed, 15 Jan 2014 03:53:46 +0000 (22:53 -0500)]
Remove autogen.sh from distribution tarball

10 years agoChangeLog is now automatically generated from git log output
Hugo Villeneuve [Wed, 15 Jan 2014 03:53:08 +0000 (22:53 -0500)]
ChangeLog is now automatically generated from git log output

10 years agoFix compilation warning
Hugo Villeneuve [Tue, 14 Jan 2014 05:23:10 +0000 (00:23 -0500)]
Fix compilation warning

10 years agoRefactor memwin.c for internal and external memories
Hugo Villeneuve [Tue, 14 Jan 2014 05:19:59 +0000 (00:19 -0500)]
Refactor memwin.c for internal and external memories

10 years agoChange confusing variable name bits_per_row to bytes_per_row
Hugo Villeneuve [Tue, 14 Jan 2014 04:43:46 +0000 (23:43 -0500)]
Change confusing variable name bits_per_row to bytes_per_row

10 years agoImprove performance of GUI step operations
Hugo Villeneuve [Tue, 14 Jan 2014 04:07:41 +0000 (23:07 -0500)]
Improve performance of GUI step operations

Use CRC to detect which memory rows have changed.

This is only to improve GUI performance when using stepping mode, as we then
only update rows which have been modified.

10 years agoSet external memory size default to 256
Hugo Villeneuve [Tue, 14 Jan 2014 03:40:56 +0000 (22:40 -0500)]
Set external memory size default to 256

10 years agoSet program memory size default to 65536
Hugo Villeneuve [Sat, 11 Jan 2014 22:26:25 +0000 (17:26 -0500)]
Set program memory size default to 65536

Before was set to 8192.

To make sure to not cause problems with bigger programs, or with small
programs that are split accross large memory regions.

10 years agoCreate common function for running instructions
Hugo Villeneuve [Sat, 11 Jan 2014 22:24:23 +0000 (17:24 -0500)]
Create common function for running instructions

10 years agoFix warning for ignored return value for getline()
Hugo Villeneuve [Fri, 3 Jan 2014 08:19:32 +0000 (03:19 -0500)]
Fix warning for ignored return value for getline()

10 years agoFix [-Wsign-compare] warnings
Hugo Villeneuve [Fri, 3 Jan 2014 08:18:02 +0000 (03:18 -0500)]
Fix [-Wsign-compare] warnings

Original warning message:
emuconsole.c:45:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

10 years agoMerge ADD and ADDC operations into common function
Hugo Villeneuve [Fri, 3 Jan 2014 07:57:16 +0000 (02:57 -0500)]
Merge ADD and ADDC operations into common function

10 years agoFix code indentation
Hugo Villeneuve [Fri, 3 Jan 2014 07:37:18 +0000 (02:37 -0500)]
Fix code indentation

10 years agoFix error with ADDC instruction
Hugo Villeneuve [Fri, 3 Jan 2014 07:36:17 +0000 (02:36 -0500)]
Fix error with ADDC instruction

The carry flag was not added to the result.

10 years agoAdd tests for ADD and ADDC instructions
Hugo Villeneuve [Fri, 3 Jan 2014 07:33:32 +0000 (02:33 -0500)]
Add tests for ADD and ADDC instructions

10 years agoFix [-Wformat-security] warning
Hugo Villeneuve [Fri, 3 Jan 2014 06:45:47 +0000 (01:45 -0500)]
Fix [-Wformat-security] warning

Original warning message:
emuconsole.c:316:3: warning: format not a string literal and no format arguments [-Wformat-security]

10 years agoFix warnings about unused function parameters
Hugo Villeneuve [Fri, 3 Jan 2014 06:43:55 +0000 (01:43 -0500)]
Fix warnings about unused function parameters

10 years agoFix [-Wmissing-field-initializers] warnings
Hugo Villeneuve [Fri, 3 Jan 2014 06:37:20 +0000 (01:37 -0500)]
Fix [-Wmissing-field-initializers] warnings

10 years agoFix regression with ADDC instruction
Hugo Villeneuve [Fri, 3 Jan 2014 06:32:19 +0000 (01:32 -0500)]
Fix regression with ADDC instruction

Introduced when refactoring code with psw_set_ov() function.

10 years agoAdd additional compile warning flags
Hugo Villeneuve [Fri, 3 Jan 2014 06:56:37 +0000 (01:56 -0500)]
Add additional compile warning flags

Also changed way that warning flags are defined in autoconf files.

10 years agoMove git ignore file list to build-aux
Hugo Villeneuve [Wed, 11 Dec 2013 04:05:32 +0000 (23:05 -0500)]
Move git ignore file list to build-aux

10 years agoRemove configure cache directory after running autoreconf
Hugo Villeneuve [Wed, 11 Dec 2013 03:34:09 +0000 (22:34 -0500)]
Remove configure cache directory after running autoreconf

10 years agoSeparate cli and gtk sources into separate directories
Hugo Villeneuve [Sat, 7 Dec 2013 23:48:25 +0000 (18:48 -0500)]
Separate cli and gtk sources into separate directories

Also added a common directory to hold common files to both interfaces,
and compiled into a static library.

10 years agoRemove obsolescent macro AM_PROG_CC_C_O
Hugo Villeneuve [Sat, 7 Dec 2013 23:50:39 +0000 (18:50 -0500)]
Remove obsolescent macro AM_PROG_CC_C_O

10 years agoImprove interrupt trigger code readability
Anthony Liu [Thu, 5 Dec 2013 15:59:42 +0000 (23:59 +0800)]
Improve interrupt trigger code readability

10 years agoFix bug when processing interrupts
Anthony Liu [Thu, 5 Dec 2013 15:48:36 +0000 (23:48 +0800)]
Fix bug when processing interrupts

Push current PC onto stack and take vector address from parameter.

10 years agoAdd support for as504 assembler, with output file option
Hugo Villeneuve [Tue, 3 Dec 2013 02:59:30 +0000 (21:59 -0500)]
Add support for as504 assembler, with output file option

Patch is available here:
http://www.hugovil.com/repository/hvlinux/patches/as504-add-output-file-option.patch

This patch is usefull because it fixes a bug when testing the distribution
in a  separate build directory like when using:
    make distcheck

configure.ac automatically detects if as504 supports the option.

10 years agoAdd support for as504 assembler
Hugo Villeneuve [Tue, 3 Dec 2013 02:18:44 +0000 (21:18 -0500)]
Add support for as504 assembler

10 years agoFix bug when using separate build directory to create symbolic link
Hugo Villeneuve [Mon, 2 Dec 2013 04:33:18 +0000 (23:33 -0500)]
Fix bug when using separate build directory to create symbolic link

10 years agoReplace CALL by LCALL for compatibility with AS31 and AS504 assemblers
Hugo Villeneuve [Mon, 2 Dec 2013 04:31:51 +0000 (23:31 -0500)]
Replace CALL by LCALL for compatibility with AS31 and AS504 assemblers

10 years agoRemove CSEG directive for compatibility with AS31 and AS504 assemblers
Hugo Villeneuve [Mon, 2 Dec 2013 04:02:09 +0000 (23:02 -0500)]
Remove CSEG directive for compatibility with AS31 and AS504 assemblers

10 years agoRemove currently unsupported option to set iram size
Hugo Villeneuve [Mon, 2 Dec 2013 02:20:49 +0000 (21:20 -0500)]
Remove currently unsupported option to set iram size

10 years agoFix CPPFLAGS for each target (CLI and GTK)
Hugo Villeneuve [Thu, 28 Nov 2013 04:02:18 +0000 (23:02 -0500)]
Fix CPPFLAGS for each target (CLI and GTK)

10 years agoChange way tests are enabled/disabled by asem presence
Hugo Villeneuve [Mon, 2 Dec 2013 01:06:29 +0000 (20:06 -0500)]
Change way tests are enabled/disabled by asem presence

10 years agoRun each test separately from single shell script
Hugo Villeneuve [Fri, 29 Nov 2013 04:11:43 +0000 (23:11 -0500)]
Run each test separately from single shell script

Each new test is simply a link to opcodes.sh, generatated automatically.

10 years agoMove timer functions to timers.c
Hugo Villeneuve [Thu, 28 Nov 2013 01:56:05 +0000 (20:56 -0500)]
Move timer functions to timers.c

10 years agoAdd tests for timers mode 2
Hugo Villeneuve [Thu, 28 Nov 2013 01:55:21 +0000 (20:55 -0500)]
Add tests for timers mode 2

10 years agoChange test output expected string layout
Hugo Villeneuve [Wed, 27 Nov 2013 05:17:30 +0000 (00:17 -0500)]
Change test output expected string layout

Also check stack pointer value for all tests

10 years agoAdd tests for timers mode 0
Hugo Villeneuve [Wed, 27 Nov 2013 05:16:45 +0000 (00:16 -0500)]
Add tests for timers mode 0

10 years agoFix bug with timers mode 0 (8 bits with 5-bit prescaler)
Hugo Villeneuve [Wed, 27 Nov 2013 05:09:40 +0000 (00:09 -0500)]
Fix bug with timers mode 0 (8 bits with 5-bit prescaler)

10 years agoAdd tests for timers mode 1
Hugo Villeneuve [Wed, 27 Nov 2013 04:38:36 +0000 (23:38 -0500)]
Add tests for timers mode 1

10 years agoFix error with timer1 being written to timer0
Hugo Villeneuve [Wed, 27 Nov 2013 03:54:08 +0000 (22:54 -0500)]
Fix error with timer1 being written to timer0

10 years agoAdd PC check for all tests
Hugo Villeneuve [Wed, 27 Nov 2013 04:39:17 +0000 (23:39 -0500)]
Add PC check for all tests

10 years agoAdd tests for MOV instruction
Hugo Villeneuve [Mon, 25 Nov 2013 04:20:18 +0000 (23:20 -0500)]
Add tests for MOV instruction

10 years agoAdd tests for DIV instruction
Hugo Villeneuve [Mon, 25 Nov 2013 04:14:46 +0000 (23:14 -0500)]
Add tests for DIV instruction

10 years agoAdd tests for ANL instruction
Hugo Villeneuve [Mon, 25 Nov 2013 04:08:26 +0000 (23:08 -0500)]
Add tests for ANL instruction

10 years agoAdd tests for ORL instruction
Hugo Villeneuve [Mon, 25 Nov 2013 04:02:31 +0000 (23:02 -0500)]
Add tests for ORL instruction

10 years agoAdd framework for regression testing
Hugo Villeneuve [Sun, 24 Nov 2013 21:04:30 +0000 (16:04 -0500)]
Add framework for regression testing

10 years agoAutomatic generation of test hex files
Hugo Villeneuve [Sun, 24 Nov 2013 05:10:14 +0000 (00:10 -0500)]
Automatic generation of test hex files

10 years agoAdd tests for MUL instructions
Hugo Villeneuve [Sat, 23 Nov 2013 18:58:37 +0000 (13:58 -0500)]
Add tests for MUL instructions

10 years agoRemove hex files
Hugo Villeneuve [Sat, 23 Nov 2013 18:57:48 +0000 (13:57 -0500)]
Remove hex files

10 years agoRename test-files directory -> tests
Hugo Villeneuve [Sat, 23 Nov 2013 18:56:54 +0000 (13:56 -0500)]
Rename test-files directory -> tests

10 years agoAdd automake options -Wall and gnu std-options
Hugo Villeneuve [Mon, 2 Dec 2013 01:43:19 +0000 (20:43 -0500)]
Add automake options -Wall and gnu std-options

Remove configure verbose output

10 years agoRemove superfluous bytes in program disassembly
Hugo Villeneuve [Mon, 25 Nov 2013 01:39:30 +0000 (20:39 -0500)]
Remove superfluous bytes in program disassembly

Sometimes, B1 and B2 were showing old values from previous disassembly.
Now explicitly remove them for each disassembly line.

10 years agoFix code indentation
Hugo Villeneuve [Mon, 25 Nov 2013 01:35:11 +0000 (20:35 -0500)]
Fix code indentation

10 years agoPrevent dissassembling instructions past last address
Hugo Villeneuve [Mon, 25 Nov 2013 00:23:57 +0000 (19:23 -0500)]
Prevent dissassembling instructions past last address

10 years agoAdd ignore files to gitignore
Hugo Villeneuve [Mon, 25 Nov 2013 00:06:50 +0000 (19:06 -0500)]
Add ignore files to gitignore

10 years agoFix syntax error in comments
Hugo Villeneuve [Mon, 25 Nov 2013 00:03:54 +0000 (19:03 -0500)]
Fix syntax error in comments

10 years agoFix error with EM command in CLI mode
Hugo Villeneuve [Sun, 1 Dec 2013 22:00:04 +0000 (17:00 -0500)]
Fix error with EM command in CLI mode

Address parameter was not handled correctly.

10 years agoCLI version: Add <?> to display help menu
Hugo Villeneuve [Sun, 1 Dec 2013 21:27:53 +0000 (16:27 -0500)]
CLI version: Add <?> to display help menu

10 years agoReintroduce PSW in list of displayed registers (for regression tests)
Hugo Villeneuve [Sun, 24 Nov 2013 21:01:21 +0000 (16:01 -0500)]
Reintroduce PSW in list of displayed registers (for regression tests)

10 years agoDisplay SFR registers one per line in automatic run mode
Hugo Villeneuve [Sun, 24 Nov 2013 19:55:11 +0000 (14:55 -0500)]
Display SFR registers one per line in automatic run mode

10 years agoMove SFR read/write functions to new file sfr.c
Hugo Villeneuve [Sun, 24 Nov 2013 19:39:18 +0000 (14:39 -0500)]
Move SFR read/write functions to new file sfr.c

10 years agoAdd option to automatically run and stop CLI emulator
Hugo Villeneuve [Sun, 24 Nov 2013 18:15:00 +0000 (13:15 -0500)]
Add option to automatically run and stop CLI emulator

10 years agoReplace printf statements with log functions
Hugo Villeneuve [Sun, 24 Nov 2013 18:11:27 +0000 (13:11 -0500)]
Replace printf statements with log functions

10 years agoMove variable declaration before statements
Hugo Villeneuve [Sun, 24 Nov 2013 18:08:42 +0000 (13:08 -0500)]
Move variable declaration before statements

10 years agoDisplay filename in case of HEX file load error
Hugo Villeneuve [Sun, 24 Nov 2013 18:03:16 +0000 (13:03 -0500)]
Display filename in case of HEX file load error

10 years agoZero all memories when initializing program
Hugo Villeneuve [Sat, 23 Nov 2013 04:42:14 +0000 (23:42 -0500)]
Zero all memories when initializing program

This is especially usefull to have NOP in program memory.

10 years agoAdd grid lines to PSW window
Hugo Villeneuve [Sat, 23 Nov 2013 01:11:21 +0000 (20:11 -0500)]
Add grid lines to PSW window

10 years agoAdd PSW sub window
Hugo Villeneuve [Thu, 21 Nov 2013 04:58:31 +0000 (23:58 -0500)]
Add PSW sub window

10 years agoUse macro to set name of sub window
Hugo Villeneuve [Thu, 21 Nov 2013 04:57:55 +0000 (23:57 -0500)]
Use macro to set name of sub window

10 years agoChange scope of local variable to static
Hugo Villeneuve [Thu, 21 Nov 2013 04:56:46 +0000 (23:56 -0500)]
Change scope of local variable to static

10 years agoAdd option to display bool hex character
Hugo Villeneuve [Thu, 21 Nov 2013 04:55:41 +0000 (23:55 -0500)]
Add option to display bool hex character

10 years agoAdd PSW generic bit write/read functions
Hugo Villeneuve [Thu, 21 Nov 2013 04:27:37 +0000 (23:27 -0500)]
Add PSW generic bit write/read functions

10 years agoAdd parity bit update each instruction cycle
Hugo Villeneuve [Mon, 18 Nov 2013 03:52:00 +0000 (22:52 -0500)]
Add parity bit update each instruction cycle

10 years agoAdd function to read 16-bit address/offset/value from pgm memory
Hugo Villeneuve [Mon, 18 Nov 2013 00:48:05 +0000 (19:48 -0500)]
Add function to read 16-bit address/offset/value from pgm memory

10 years agoFix bug with MOV DPTR,#data16 instruction
Hugo Villeneuve [Mon, 18 Nov 2013 00:52:46 +0000 (19:52 -0500)]
Fix bug with MOV DPTR,#data16 instruction

Source variable was 8 bits instead of 16 bits.

10 years agoRemove unused destination adressing mode #data16
Hugo Villeneuve [Mon, 18 Nov 2013 00:50:28 +0000 (19:50 -0500)]
Remove unused destination adressing mode #data16

Even if it is required, the destination variable is only 8-bits,
so this would have been a potential bug.