From 4d97a34cccb5b539608069ecbaefdb873c8b06c7 Mon Sep 17 00:00:00 2001 From: Andreas Taylor Date: Thu, 20 Apr 2023 22:46:29 -0500 Subject: [PATCH] Version 1.0.0 release --- Makefile | 1 + README.md | 24 +++++------------------- src/Emulator.cpp | 2 ++ src/Makefile | 1 + src/Z80.cpp | 2 ++ src/Z80.h | 2 ++ src/Z80_execute.cpp | 2 ++ src/Z80_execute_bit_opcode.cpp | 2 ++ src/Z80_execute_index_opcode.cpp | 2 ++ src/Z80_execute_ix_iy_bit_opcode.cpp | 2 ++ src/Z80_execute_main_opcode.cpp | 2 ++ src/Z80_execute_misc_opcode.cpp | 2 ++ src/Z80_fetch_and_decode.cpp | 2 ++ src/Z80_opcodes.h | 2 ++ src/abstract_cpu.h | 1 + 15 files changed, 30 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 8f926a4..01097ff 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,7 @@ # 0.1 11/29/22 Andy4495 Initial Creation # v0.1.0 02/11/23 Andy4495 Read for first "release" # 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 +# 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release SUBDIRS = src diff --git a/README.md b/README.md index 1a76072..854898f 100644 --- a/README.md +++ b/README.md @@ -20,20 +20,7 @@ The emulator: - Supports the HALT statement as if it were a breakpoint. Execution is stopped and the R register is not updated while the processor is halted. - May not update the R register correctly in cases where there are strings of $FD/$DD opcode prefixes that do not represent a valid opcode. -## Work In Progress - -All opcodes have been implemented and tested, including flag updates. - -This is a "pre-release": - -- The input and output file formats may change. -- Menu items may be added, removed, modified, or re-ordered. - -Next steps: - -- Prepare final updates for release 1.0 - -See also the [Future Functionality](#future-functionality) items below. +The [Future Functionality](#future-functionality) items listed below may be included in later releases. ## Usage @@ -92,7 +79,7 @@ I have not tried it on other platforms, but there is no machine dependent code. ### Defining the CPU -The Z80-specific code is encapsulated in a class named `Z80` which inherits from an abstract base class `abstract_CPU`. Additional CPUs can be emulated by creating classes specific to those CPUs. +The Z80-specific code is encapsulated in a class named `Z80` which inherits from the abstract base class `abstract_CPU`. Additional CPUs can be emulated by creating classes specific to those CPUs. The CPU opcodes are defined in several tables implemented with arrays of structs for the main and extended opcodes (`Z80_opcodes.h`). Each array entry contains the size of the instruction, the opcode/data layout, and the instruction mnemonic. The opcode value is represented by the array index. @@ -169,16 +156,15 @@ Various workflow actions are defined to test the emulator: ## Future Functionality -- Breakpoints - - DONE Break at a specified memory location +- Additional breakpoint functionality - Break when a register contains a certain value - Break when a memory location contains a certain value - Break when a certain location/loop is accessed N times - - Multiple breakpoints defined + - Define Multiple breakpoints - Support additional configuration options, possibly with a configuration file and/or command line arguments - Allow the configuration of segments of read-only ROM, read/write RAM, overlay areas, and undefined areas - Support RAM and/or ROM banking -- Support additional file formats such as Intel Hex or Motorola S-Records which would allow specific memory locations to be defined by the file. +- Support additional input file formats such as Intel Hex or Motorola S-Records which would allow specific memory locations to be defined by the file. - Interrupts (maskable and non-maskable) - Support additonal processor types - HALT state handler improvements diff --git a/src/Emulator.cpp b/src/Emulator.cpp index 9f8e32c..0432f6a 100644 --- a/src/Emulator.cpp +++ b/src/Emulator.cpp @@ -7,6 +7,8 @@ 0.2 12/22/22 Andy4495 Additional implementation 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ const char* VERSION = "v0.3.0"; diff --git a/src/Makefile b/src/Makefile index 91ed8b9..f28b53c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -5,6 +5,7 @@ # 0.1 11/29/22 Andy4495 Initial Creation # 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 # 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 +# 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release OBJS = \ diff --git a/src/Z80.cpp b/src/Z80.cpp index 104863d..abdc6a6 100644 --- a/src/Z80.cpp +++ b/src/Z80.cpp @@ -8,6 +8,8 @@ v0.1.0 02/11/23 Andy4495 Read for first "release" 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ #include "Z80.h" diff --git a/src/Z80.h b/src/Z80.h index f7eea5a..9fd860e 100644 --- a/src/Z80.h +++ b/src/Z80.h @@ -8,6 +8,8 @@ v0.1.0 02/11/23 Andy4495 Read for first "release" 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ #ifndef SRC_Z80_H_ diff --git a/src/Z80_execute.cpp b/src/Z80_execute.cpp index 19e883a..c953720 100644 --- a/src/Z80_execute.cpp +++ b/src/Z80_execute.cpp @@ -8,6 +8,8 @@ v0.1.0 02/11/23 Andy4495 Read for first "release" 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ #include "Z80.h" diff --git a/src/Z80_execute_bit_opcode.cpp b/src/Z80_execute_bit_opcode.cpp index 5907997..d5c5321 100644 --- a/src/Z80_execute_bit_opcode.cpp +++ b/src/Z80_execute_bit_opcode.cpp @@ -8,6 +8,8 @@ v0.1.0 02/11/23 Andy4495 Read for first "release" 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ #include "Z80.h" diff --git a/src/Z80_execute_index_opcode.cpp b/src/Z80_execute_index_opcode.cpp index f576783..6b07a73 100644 --- a/src/Z80_execute_index_opcode.cpp +++ b/src/Z80_execute_index_opcode.cpp @@ -8,6 +8,8 @@ v0.1.0 02/11/23 Andy4495 Read for first "release" 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ #include "Z80.h" diff --git a/src/Z80_execute_ix_iy_bit_opcode.cpp b/src/Z80_execute_ix_iy_bit_opcode.cpp index f2e8e8e..6d44d5b 100644 --- a/src/Z80_execute_ix_iy_bit_opcode.cpp +++ b/src/Z80_execute_ix_iy_bit_opcode.cpp @@ -8,6 +8,8 @@ v0.1.0 02/11/23 Andy4495 Read for first "release" 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ #include "Z80.h" diff --git a/src/Z80_execute_main_opcode.cpp b/src/Z80_execute_main_opcode.cpp index 96ffb7a..2990514 100644 --- a/src/Z80_execute_main_opcode.cpp +++ b/src/Z80_execute_main_opcode.cpp @@ -8,6 +8,8 @@ v0.1.0 02/11/23 Andy4495 Read for first "release" 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ #include "Z80.h" diff --git a/src/Z80_execute_misc_opcode.cpp b/src/Z80_execute_misc_opcode.cpp index 6737ea6..e871462 100644 --- a/src/Z80_execute_misc_opcode.cpp +++ b/src/Z80_execute_misc_opcode.cpp @@ -8,6 +8,8 @@ v0.1.0 02/11/23 Andy4495 Read for first "release" 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ #include "Z80.h" diff --git a/src/Z80_fetch_and_decode.cpp b/src/Z80_fetch_and_decode.cpp index 162574a..f4088f8 100644 --- a/src/Z80_fetch_and_decode.cpp +++ b/src/Z80_fetch_and_decode.cpp @@ -8,6 +8,8 @@ v0.1.0 02/11/23 Andy4495 Read for first "release" 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ #include "Z80.h" diff --git a/src/Z80_opcodes.h b/src/Z80_opcodes.h index 0dfb5e2..b35fa42 100644 --- a/src/Z80_opcodes.h +++ b/src/Z80_opcodes.h @@ -8,6 +8,8 @@ v0.1.0 02/11/23 Andy4495 Read for first "release" 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release + */ // Z80 Opcodes diff --git a/src/abstract_cpu.h b/src/abstract_cpu.h index 9ce8848..d077280 100644 --- a/src/abstract_cpu.h +++ b/src/abstract_cpu.h @@ -6,6 +6,7 @@ 0.1 02/23/2023 Andy4495 Initial Creation 0.2.0 03/09/2023 Andy4495 Tag v0.2.0 0.3.0 04/16/2023 Andy4495 Tag v0.3.0 + 1.0.0 20-Apr-2023 Andy4495 Tag v1.0.0 - First official release */