GithubHelp home page GithubHelp logo

anthrax3 / spectnetide Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dotneteer/spectnetide

0.0 1.0 0.0 15.35 MB

ZX Spectrum IDE with Visual Studio 2017 integration

License: MIT License

ANTLR 0.22% C# 74.76% HTML 3.36% Assembly 18.97% C 2.69%

spectnetide's Introduction

Introduction

This project implements a ZX Spectrum integrated development environment (IDE) that is integrated into Visual Studio 2017. Initially, I intended this project to be just a demo project so that I can use it in my agile software design and testing courses. However, it became a fun project.

It (will) support the following ZX Spectrum models:

  • ZX Spectrum 48KEmulator and tooling completed
  • ZX Spectrum 128KEmulator and tooling completed
  • ZX Spectrum +3EEmulator and tooling is in progress
  • ZX Spectrum Next — Development starts in 2018 Q2

At the moment the code is entirely written in C#. Nonetheless, I plan to implement certain parts in C++ (somewhen in the future, for the sake of performance), and maybe in JavaScript/TypeScript, too.

SpectNetIde supports you in two main scenarios:

  1. Code discovery. The IDE is full with tools you can use to discover/reenginer exsisting BASIC/Z80 assmebly code.
  2. Code creation. You can easily create, run, debug, and export Z80 assembly code.

Taste the Pudding!

You can download the VSIX installer file here.

To get an impression about SpectNetIde, see these short articles with screenshots:

  1. Obtain the SpectNetIde source code
  2. Create your first ZX Spectrum project
  3. Create and run a simple BASIC program
  4. Create and run a simple Z80 program
  5. Export a Z80 program
  6. Create your first Z80 unit test

Distinguishing Features

Probably is less mature than most of the ZX Spectrum emulators with longer past — Nevertheless, this project has some unique features:

  • Unit tests for Z80 code (New, in progress!). I'm working on a Z80 test language that allows you to define and run unit tests for your Z80 code.

  • Requires no configuration. You start the IDE, create a ZX Spectrum project, and everything is ready to work.

  • The code is well commented and harnessed with unit tests. I plan to add a lot of documentation that helps you understand how to design and develop such an emulator. I also plan articles about Visual Studio 2017 extensibility.

  • Great development tools. Although the project is only in alpha phase, it adds many useful features integrated into the VS 2017 IDE that you can develop for understanding ZX Spectrum applications and games, discover their code, and develop new ZX Spectrum apps.

  • ZX Spectrum Emulator tool window in the IDE

  • ZX Spectrum project type to keep together everything you use to create and debug your Z80 assembly apps.

    • Disassembly tool. The ROM comes with annotations (labels, comments, symbols, memory maps) that you can use while examining the code. The disassembler recognizes Spectrum-specific byte codes, such as the ones used by the RST #08 and RST #28 instructions.
    • Registers with ULA counters. You can follow not only the Z80 registers, but the most important information about the ULA.
    • Tape Explorer to examine .TZX and .TAP files. You can peek into the BASIC programs they contain, or disassembly the code in the tape files.
    • BASIC List view to display the BASIC program list loaded into the memory
    • Debugging the code with breakpoints, Run/Pause/Step-Into/Step/Over commands
    • Stack view tool. Besides the stack contents, you can see — with disassembly — the instructions that placed a particular value to the stack.
  • Full-blown Z80 assembly programming. The SpectNetIde Assembler provides you a robust Z80 assembler and related toolset.

    • Syntax-highlighted editor
    • Convenient syntax (for example, labels are accepted with or without a subsequent colon; alternative syntax variations, for example, both jp (hl) and jp hl are accepted, as well as sub b and sub a,b)
    • String escape sequences for ZX Spectrum-specific characters. The assembly language supports escapes for control characters like AT, TAB, PAPER, £, or ©.
    • Source code debugging. You can set up breakpoint in the source code. When they are reached, the corresponding source code is displayed. Run/Pause/Step-Into/Step/Over commands are available with source code, too.
    • Z80 Program code export. You can export the Z80 assembly code into .TZX and .TAP code files that can be immediately LOADed into ZX Spectrum — with optional auto start support.

Future plans

I do not want to stop here, and plan a number of exciting features:

  • More emulators with development tools: ZX Spectrum +3, ZX Spectrum Next
  • Compiler for a higher level language
  • Integrated development tools for ZX Spectrum Next features (for example sprites with editors, etc).

Contribution

You can contribute to the project. Please contact me by email: [email protected]

spectnetide's People

Contributors

davidblackuk avatar dotneteer avatar stuurmn avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.