Posts

Showing posts with the label development

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...

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...

Code With Repl.it Review

Image
Code With Repl.it: From Beginner to Expert Through Guided Tutorials is a free ebook by Gareth Dwyer sponsored by Repl.it. The cover of Code with Repl.it in Google Play Books on my Pixel 4 XL. It contains a series of tutorials and walkthroughs to learn Python using Repl.it. Each tutorial is a complete project that implements an app or tool . The book groups the tutorials into three parts, from beginner to advanced. Part 1 covers the basics of developing and running code with Repl.it. Part 2 is about software engineering best practices and tools such as version control with GitHub, testing with Pytest, collaborating with other developers, code security, and more. The last part builds more advanced projects in domains ranging from web apps to machine learning. Repl.it is an excellent online IDE with support for Python and dozens of other languages. As a Chrome OS enthusiast, I love Repl.it as it works fully in the cloud and requires no software other than a browser. Code With Repl.it t...

AppGyver Composer Review: First Impressions

Image
It’s not just non-coders who use no-code development tools. If anything, having some programming experience gives an appreciation of how much time and effort these tools can save. This is why, despite having been a hobby programmer for decades , I’m interested in no-code solutions. The ones I tried in the past are App Inventor and Thunkable , for creating mobile apps, and Bubble for web apps. An Android app under development in the AppGyver Composer IDE on my Chromebox. A few months ago I discovered AppGyver Composer, an impressive app builder for developing both mobile and web apps that seems more powerful than the others I’ve seen. Here are some quick notes on my experience with the tool so far. Keep in mind I'm still exploring AppGyver, not using it for real projects. About AppGyver AppGyver Composer Pro is the best no-code, drag & drop app development environment I've seen. It allows to create both web and mobile apps for Android (even Android TV) and iOS, ...

Repl.it Redesigned the Mobile Experience

Image
The cloud IDE Repl.it was redesigned to improve the user experience on mobile devices. On smartphones, now the focused REPL pane takes up most of the screen. The redesign takes advantage of native mobile design patterns and lets you switch to a different pane from the bottom navigation bar . There are panes for the code editor, the console, and the output. A Python REPL in Repl.it on my Pixel 2 XL phone. Tapping the code in the editor brings up a contextual menu with some options of the desktop version. You can select, search, or paste text, or open the full command palette. On my Pixel 2 XL phone in Chrome, lines with up to 42 characters fit in the editor’s width. The editor wraps longer lines. But most of the code usually keeps the original indentation and its structure is still clear at a glance. The console pane wraps text, too, so no horizontal scrolling is required. You can get an idea of what Repl.it looks like on mobile by opening the browser on your ...

Ideas for Python Authors

Image
One reason I’m learning Python is its ecosystem. A culture of documentation and the countless learning and training resources create opportunities of growing as a developer. The table of contents of the Python documentation. There are all sorts of free and paid tutorials, books, videos, courses, and other materials on all aspects of the language, the tools, and the libraries. For example, I maintain a list of free Python books . Still, some important intermediate to advanced topics receive little or no attention. So, I’d like to offer some suggestions and feedback to Python authors and instructors on what may interest a hobbyist like me . Here are some ideas for topics to cover. Although I found something relevant, the material I’ve seen is still missing something. If you know of any such resources, please let me know. Not being a visual learner I’m more interested in text-based content than videos. I also prefer books to the more structured approach of courses. System...

I Was Interviewed by Repl.it

Image
Nathan Zilora interviewed me for Repl Talk and Repl.it Weekly, the Repl.it community forum. After a brief introduction I talked about how I started using Repl.it, how I plan to combine astronomy and programming in my activities, the Astropy astronomy Python library and how programmers can learn to use it, the space podcast I co-host, and the Google Product Experts Program I'm a member of. My interview on Repl.it's community forum Repl Talk. Thanks to Nathan and Repl.it for the opportunity of sharing my experiences and thoughts! Repl.it is a multi-language cloud IDE. It supports dozens of programming languages and frameworks. It’s my favorite IDE because it works fully in the cloud, a killer feature for a Chrome OS enthusiast like me. Repl.it pushes the limits of what development tools can do in the cloud. It’s constantly improving and provides some advanced features, such as Multiplayer Mode for collaborative development and Git/GitHub support . Another neat fea...