Skip to main content

Posts

Showing posts from January, 2022

USB keyboard interface for Minstrel 4th - Prototype to PCB

T oday we transfomed this magnificent mess of wires.... Into this beautiful little module It plugs into the Minstrel 4th's RC2014 port, either directly, or as here, using an RC2014 backplane . It accepts a USB keyboard* via an OTG adaptor (USB A to micro). Like its inspiration, the Jupiter Ace, you wouldn't want to spend serious typing time on the Minstrel's tactile keyboard. It's nice to have a familiar layout of full-size keys, and the interface's firmware buffers your input, meaning that you can type as fast as you like.  It took a lot of development time to get to a working breadboard prototype. It's pretty fragile and so it feels very good to have received the first PCBs today.  There was a minor hitch, which has to do with my limited understanding of the Pico's confusing VBUS/VSYS power supply circuit. In the end it was easily solved with a solder bridge and here it is working: Since ordering these version 1 boards, I decided to add the ability to conn

A source file one byte long

T hanks to a comment I saw recently, I went down the rabbit hole that is HQ9+. From Simple English Wikipedia : "HQ9+ is a joke programming language made by Cliff L. Biffle in 2001.[1] It has four "operations":  H: print "Hello, world!"  Q: print the program's source code (sometimes called a quine)  9: print the lyrics to 99 Bottles of Beer  +: add one to the accumulator (the value of the accumulator cannot be accessed)" My first goal was to run this on my RC2014.  Rosetta Code has a version for 8080 to run on CP/M. The 8080 is a predecessor of the Z80. The Z80 is backwardly-compatible, but in order to assemble the program, many of the instructions must be altered*. Perhaps there are tools to do this, but I enjoyed doing it by hand. My Z80 version is here . I expected this to work in direct mode, ie type H and see Hello, world. I may alter this program so that it works that way. However, as it stands, hq9+.com is called from the command line and takes