An assembler and simulation toolchain for the Digirule2 series of hardware.
Project description
dgtools
dgtools is a complete toolkit for developing software for the Digirule
series (2A/2U) of hardware by bradsprojects.
Overview
-
dgasm- The assembler, accepts a human readable
.asmtext file with Digirule ASM and produces:- A
.dgbbinary file with compiled code ready for simulation bydgsim.py. - A
.hexfile (in the case of 2U) to be downloaded to the board.
- A
- The assembler, accepts a human readable
-
dginspect- The binary file "inspector", accepts a
.dgbbinary 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.
- The binary file "inspector", accepts a
-
dgsim- The Digirule Virtual Machine, accepts a
.dgbbinary file and produces:- A human readable HTML (themeable) trace of every state change the CPU goes through at each timestep of execution.
- An additional
.dgbfile that contains the final state of the memory space at the end of program execution.
- The Digirule Virtual Machine, accepts a
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:
- A Sublime text
.dsfASM plugin, - A console gui (
dgui.py) that can handle compilation/simulation in one step - A code formatter (
dgform.py), to pretty print source code. - Brainfuck and Super Stack! compilers for the Digirule 2U.
The most common workflow is to:
- Use a text editor to write human readable assembly code.
- Call
dgasm.pyto compile the binary - Call
dgsim.pyto run and debug the binary - (Alternatively, call
dguito perform both of the above in sequence) - Use
dginspect.pyto check a binary file, get/set values from the virtual machine or key the code in.
Installation
Pre-requisites
- Linux
- Python >=3.6
virtualenv
Install from PyPi with pip
pip install dgtools
Install latest development version
- Checkout the dgtools repository
> virtualenv -p python3.8 pyenv> source pyenv/bin/activate- To start using
dgtools:pip install -e ./(From within thedgtools/directory that contains thesetup.pyfile)- This will make the
dgtoolsscripts callable from any position in the filesystem, as long as thepyenvvirtual environment is activated.
- If you are interested in developing
dgtoolsfurther: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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dgtools-1.0.4.tar.gz.
File metadata
- Download URL: dgtools-1.0.4.tar.gz
- Upload date:
- Size: 44.8 kB
- Tags: Source
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cebf7fcbee7395ce1fd1a5863a5aeeb6ddec5d404a93754274f4595f199bde7
|
|
| MD5 |
6bb067755c52c0ecacfccff39d41ac37
|
|
| BLAKE2b-256 |
4b0d78863866ae984b8cf4e0d4cd3aa1b0dbdb4600cc8f38f5ec423a22a10532
|
File details
Details for the file dgtools-1.0.4-py3-none-any.whl.
File metadata
- Download URL: dgtools-1.0.4-py3-none-any.whl
- Upload date:
- Size: 73.8 kB
- Tags: Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eabdae3c4a3d646a6895ce50201934e12bc891fa82f86924956b631bab54b0d8
|
|
| MD5 |
183b9a804496ce4bc89c76b02d269d34
|
|
| BLAKE2b-256 |
93f9ccf02cf13c2a1049fc51d1ee23aeab7c6f50f6b9ea434056d309182c7587
|