Posts

Showing posts with the label Suite8080

Suite8080 0.5.0

Image
Version 0.5.0 of Suite8080 is out, and the package is available on PyPI . Suite8080 is a suite of Intel 8080 Assembly cross-development tools I’m writing in Python. The Assembly source of the Suite8080 hello world demo with uppercase constants. The new release is all about expressiveness. I extended the assembler to accept uppercase identifiers for instruction mnemonics, labels, and constants. The change allows an Assembly coding style in which constants are in all uppercase and stand out. For example, here’s the Suite8080 hello world demo greet.asm with constants such as TPA and BDOS : ; Hello world for CP/M TPA equ 100h BDOS equ 0005h ; BDOS entry point WSTRF equ 09h ; BDOS function: write string org TPA mvi c, WSTRF lxi d, message call BDOS ret message: db 'Greetings from Suite8080$' end I reformatted in this style a...

Publishing Python Documentation to Read The Docs With Jupyter Book

Image
I published the documentation of Suite8080 , a suite of Intel 8080 Assembly cross-development tools I’m writing in Python with Replit. The Suite8080 documentation website built with Jupyter Book and Sphinx and hosted at Read The Docs. Like many Python projects, the documentation comprises a website hosted at Read The Docs. But, unlike most projects, I didn’t use Sphinx directly to generate the website. Instead, I created the documentation with Jupyter Book by The Executable Book Project, well known for Jupyter Notebook. Jupyter Book is a new system for producing publication-quality books and documents for software and research projects. Jupyter Book is significant and promising because, by building on top of Sphinx as a backend and offering a Markdown-based formatting language, it hides the complexity of Sphinx and reduces friction when writing documentation . Before this project I checked out Sphinx directly, but its arcane formatting language and complex setup didn’t make me go fa...

Suite8080 0.4.0

Image
I released version 0.4.0 of Suite8080 , the suite of Intel 8080 Assembly cross-development tools I’m writing in Python. It bundles some minor features and changes I did while thinking about what major task to work on next. New features There are two main new features in this release. A SID debugging session in the z80pack CP/M emulator. SID loaded the greet.com hello world program assembled with asm80, along with the greet.sym symbol table. The l command disassembled the program and showed the symbols MESSAGE and BDOS . The d command dumped memory from the address of the MESSAGE symbol. The first is the ability of asm80 to save the assembled program’s symbol table in the .sym CP/M file format . The other feature enhances the assembler to accept the double-quote character ” as a string delimiter , which means strings and character constants may be written as ”This is a string” and ”F” . In addition, the output of the assembler's help message ( -h option) and verbose mode...

An Intel 8080 Assembly Suite in Python

Image
A blog post I stumbled upon made me start a new project, crank out lots of Python code, slip down a rabbit hole of arcane and fascinating corners of retrocomputing, and overflow with fun. The project is Suite8080 , a suite of Intel 8080 Assembly cross-development tools comprising an assembler and a disassembler. I developed it in Python entirely with Replit . At over 1,500 lines of code , it’s my second and largest Python project after Spacestills , a NASA TV still image viewer of about 340 lines of code. A hello world Intel 8080 program running in the z80pack CP/M emulator on Crostini Linux. I assembled the program with asm80, the Suite8080 assembler. Why did I write software for a half-century old CPU? This is the story of how I got started with Suite8080, how I developed it, the challenges I faced, and what I learned. Let’s start before the beginning. Background I’m a hobby programmer and a Python beginner, not a professional developer. To practice with the language, I finally set o...