Skip to content

Commit

Permalink
Version 1.0.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
Andy4495 committed Apr 21, 2023
1 parent 07d5e07 commit 4d97a34
Show file tree
Hide file tree
Showing 15 changed files with 30 additions and 19 deletions.
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
24 changes: 5 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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.

Expand Down Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions src/Emulator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
1 change: 1 addition & 0 deletions src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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 = \
Expand Down
2 changes: 2 additions & 0 deletions src/Z80.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 2 additions & 0 deletions src/Z80.h
Original file line number Diff line number Diff line change
Expand Up @@ -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_
Expand Down
2 changes: 2 additions & 0 deletions src/Z80_execute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 2 additions & 0 deletions src/Z80_execute_bit_opcode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 2 additions & 0 deletions src/Z80_execute_index_opcode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 2 additions & 0 deletions src/Z80_execute_ix_iy_bit_opcode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 2 additions & 0 deletions src/Z80_execute_main_opcode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 2 additions & 0 deletions src/Z80_execute_misc_opcode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 2 additions & 0 deletions src/Z80_fetch_and_decode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 2 additions & 0 deletions src/Z80_opcodes.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions src/abstract_cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
*/

Expand Down

0 comments on commit 4d97a34

Please sign in to comment.