Skip to main content

dgtools

dgtools is a complete toolkit for developing software for the Digirule series (2A/2U) of hardware by bradsprojects.

Overview

  1. dgasm

    • The assembler, accepts a human readable .asm text file with Digirule ASM and produces:
      1. A .dgb binary file with compiled code ready for simulation by dgsim.py .
      2. A .hex file (in the case of 2U) to be downloaded to the board.
  2. dginspect

    • The binary file "inspector", accepts a .dgb binary file and produces a human readable "dump" of the full 256 byte memory range to stdout. It also allows a user to apply certain modifications to the memory space without re-compiling.
  3. dgsim

    • The Digirule Virtual Machine, accepts a .dgb binary file and produces:
      1. A human readable HTML (themeable) trace of every state change the CPU goes through at each timestep of execution.
      2. An additional .dgb file that contains the final state of the memory space at the end of program execution.

These tools work together to write, debug and simulate code for the Digirule 2 prior to transfering it to the actual hardware.

dgtools also includes some "extras", such as:

  1. A Sublime text .dsf ASM plugin,
  2. A console gui (dgui.py) that can handle compilation/simulation in one step
  3. A code formatter (dgform.py), to pretty print source code.
  4. Brainfuck and Super Stack! compilers for the Digirule 2U.

The most common workflow is to:

  1. Use a text editor to write human readable assembly code.
  2. Call dgasm.py to compile the binary
  3. Call dgsim.py to run and debug the binary
  4. (Alternatively, call dgui to perform both of the above in sequence)
  5. Use dginspect.py to check a binary file, get/set values from the virtual machine or key the code in.

Installation

Pre-requisites

  1. Linux
  2. Python >=3.6
  3. virtualenv

Install from PyPi with pip

  • pip install dgtools

Install latest development version

  1. Checkout the dgtools repository
  2. > virtualenv -p python3.8 pyenv
  3. > source pyenv/bin/activate
  4. To start using dgtools:
    • pip install -e ./ (From within the dgtools/ directory that contains the setup.py file)
    • This will make the dgtools scripts callable from any position in the filesystem, as long as the pyenv virtual environment is activated.
  5. If you are interested in developing dgtools further:
    • pip install -r requirements.txt

Where to from here?

dgtools documentation is up on ReadTheDocs and of course in doc/.

Practical examples of how to use dgtools are available in this introductory walkthrough.

Once you familiarise yourself with the tools and Digirule's ASM, you might want to move to the advanced walkthrough or check out other programming examples in dg_asm_eamples/.

dgrdo.org

The ASM toolchain along with the brainfuck and Super Stack! compilers is available online at https://www.dgrdo.org. For more information see this introduction on its functionality

Enjoy!

Athanasios Anastasiou

Release files for dgtools 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dgtools 1.0.4
File Size Uploaded
dgtools-1.0.4.tar.gz 44.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dgtools 1.0.4
File Interpreter ABI Platform
dgtools-1.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 118.5 kB

Release files / dgtools-1.0.4.tar.gz

Download URL dgtools-1.0.4.tar.gz
Size 44.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5cebf7fcbee7395ce1fd1a5863a5aeeb6ddec5d404a93754274f4595f199bde7
BLAKE2b-256 checksum
How to use checksums
4b0d78863866ae984b8cf4e0d4cd3aa1b0dbdb4600cc8f38f5ec423a22a10532
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

Release files / dgtools-1.0.4-py3-none-any.whl

Download URL dgtools-1.0.4-py3-none-any.whl
Size 73.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eabdae3c4a3d646a6895ce50201934e12bc891fa82f86924956b631bab54b0d8
BLAKE2b-256 checksum
How to use checksums
93f9ccf02cf13c2a1049fc51d1ee23aeab7c6f50f6b9ea434056d309182c7587
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page