Neo8085

A modern 8085 microprocessor simulator with an integrated development environment
Overview
Neo8085 is a comprehensive 8085 microprocessor simulator designed for educational and development purposes. It provides a modern, feature-rich environment for writing, debugging, and executing 8085 assembly language programs with real-time visualization of processor state and memory.
⨠Features
Integrated Development Environment
- Syntax highlighting for 8085 assembly language
- Line numbers and breakpoint management
- File operations (Open, Save, Save As)
- Modern UI with light theme
Powerful Assembler
- Partial 8085 instruction set support
- Symbol and label resolution
EQU
directive with arithmetic expression support- Comprehensive error reporting
- Support for
DS
directive for reserving memory bytes
Execution and Debugging
- Step-by-step execution
- Continuous execution with breakpoints
- Real-time register and flag visualization
- Memory viewer and editor
Advanced Tools
- Number format converter (Hex, Decimal, Binary, ASCII)
- Memory editor for direct manipulation
- Execution statistics tracking
- Detailed execution log
Feature Highlights

Powerful Code Editor
Write 8085 assembly code efficiently with our feature-rich editor designed specifically for assembly language development.
- Syntax highlighting for 8085 assembly
- Line numbering for easy reference
- Breakpoint integration for debugging

Easy Simulator Controls
Easily interact and control the simulator with these advanced options
- Assemble and load the program to memory in one go
- Step-by-step run the program
- Execute and run the program continuously
- Stop the simulator at any time for effienct analysis
- Reset the simulator (CPU and Memory) in click
- Simulator's CPU status indicator with error reporting

Detailed Registers and Flags View
Evaluate CPU's register and flags state during execution in real-time
- A (Accumulator)
- B-C Register pair
- D-E Register pair
- H-L Register pair
- Stack Pointer (SP)
- Program Counter (PC)
- PSW register
- Sign, Zero, Auxiliary Carry, Parity, and Carry
Registers:
Flags:

Numeric Value Converter and Memory Editor
Convert values easily and edit memory with a breeze
- Convert between Hexadecimal, Decimal, Binary, and ASCII formats
- Directly edit memory values using memory editor (supports both decimal and hexadecimal values)

Keep track of every event
Execution log helps in deeper analysis of working of a program
- States different kinds of error be it assembler or CPU related
- Logs upto last 500 exection related messages

Interactive Memory Viewer
Examine and modify memory contents in real-time with our intuitive memory viewing and editing tools.
- Organized memory value display in hexadecimal format
- View memory address in both hexadecimal and decimal values
- Change memory view for a specific memory address
- Automatic scrolling to follow program execution

Advanced Debugging Tools
Debug your assembly programs with precision using our comprehensive suite of debugging tools.
- Step-by-step execution visualization
- Register and flag state monitoring
- Execution history and statistics
- Breakpoints for closer analysis
đ ī¸ Installation
Prerequisites
- Python 3.13+
- PySide6 (Qt for Python)
Installing from Source
1. Clone the repository:
cd Neo8085
2. Install dependencies:
3. Run the application:
đ Usage
Writing Assembly Code
Use the built-in editor with syntax highlighting, line numbers, and breakpoint support.
Assembling and Execution
- Assemble: Click "Assemble" or press
Ctrl+B
- Step Execution: Click "Step" or press
F10
- Continuous Execution: Click "Run" or press
F5
- Fast Execution: Use "Run without Highlighting" or press
Ctrl+Shift+F5
- Debugging: Set breakpoints by clicking line numbers or pressing
F9
Memory Manipulation
- Use the Memory Editor to write values directly
- View memory contents in the Memory View table
- Enable Follow PC to track the Program Counter automatically
đ Documentation
Supported Instructions
Data Transfer: MOV
, MVI
, LXI
, LDA
, STA
, XCHG
Arithmetic: ADD
, ADI
, SUB
, INR
, DCR
, DAD
Logical: CPI
Branching: JMP
, JZ
, JNZ
, JC
, JNC
, JP
, JM
, JPE
, JPO
Stack: PUSH
, POP
Subroutines: CALL
, RET
Machine Control: HLT
Assembler Directives
ORG
: Set starting addressEQU
: Define constants (supports arithmetic)DS
: Reserve memory spaceEND
: Mark the end of the program (currently just a placeholder)
Keyboard Shortcuts
Shortcut | Action |
---|---|
Ctrl+N | New File |
Ctrl+O | Open Program |
Ctrl+S | Save |
Ctrl+Shift+S | Save As |
Ctrl+B | Assemble |
F10 | Step |
F5 | Run |
Ctrl+Shift+F5 | Run without Highlighting |
F8 | Stop |
Ctrl+R | Reset |
F9 | Add Breakpoint |
đ¸ Screenshots
đ¤ Contributing
We welcome contributions to Neo8085! Here's how to get started:
- Fork the repository
- Create a new branch:
git checkout -b feature-name
- Make your changes and commit:
git commit -m "Describe your changes"
- Push to your fork:
git push origin feature-name
- Open a Pull Request
Contribution Guidelines
- Follow existing code style and structure
- Write clear, descriptive commit messages
- Comment complex logic
- Update documentation and add tests for new features
License
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
Acknowledgements
- Inspired by the Intel 8085 instruction set
- Built using PySide6 (Qt for Python)