CP/M (!)

My first job after university was working for a small (at the time) Ottawa company named “dy-4 Systems Inc.” programming an “Orion-V” computer. This was an extremely solid, industrial grade microcomputer, which used a z80 CPU and ran the CP/M operating system.

(Yes, those are 8″ Floppy drives.)

Well, the other day I was in a nostalgic mood, and I wondered if anyone still made z80 CP/M hardware, or whether they were all relegated to history by devices like the Raspberry Pi Zero, which is literally 3 orders of magnitude faster and has 8 times the memory of the old Orion-V, for 14.00 $CDN.

Well, it turns out that it is still possible to buy a z80 machine, from a few small makers out there. Here are some examples:

Note that these are all real, physical hardware devices running z80 class CPUs, not emulations running on modern hardware like this or this.

Since I don’t have a 3D printer to build a case, and even using a project box of some kind seemed like too much work 😛 , I ended up getting one of the MinZ-C devices from Circle M Systems, with the added benefit that it supports a small, Canadian company.

So… Keep in mind the monolith that was the Orion-V above, in all its glory, and now here is the MinZ-C (loony for scale):

What I find particularly hilarious about this is that it runs at almost 37MHz, which might look slow compared to the 1GHz (!) RPi Zero, but keep in mind that the Orion-V ran at (as I remember it) 2.5MHz. In fact, this machine is something like 8x the performance of any z80 CP/M machine in existence in the period I was using them.

This isn’t a full review of the machine, but I will say it worked flawlessly OOTB, and included a MicroSD card that had both the CP/M OS and a ton of other software written for CP/M. Remember Wordstar? MuLISP? TurboPascal?

Trolling around internet archives I even managed to find a copy of MINCE (i.e. “MINCE Is Not Complete Emacs”), which was my absolute favourite editor back in the day. It took a bit of work to train it to use VT100 protocol, but once I did it came up and ran perfectly!

The next step is to find a decent free CP/M FORTH. I actually did some of the programming on the Orion-V machines in FORTH, but I remember that it was a commercial product that was quite expensive. I guess we’ll see what’s out there.

Mini PCs Redux

It’s been not quite two years since I bought a mini PC to play with. That one continues to work just fine as an internal server on my home network. Unfortunately, it’s starting to feel a bit slow running Ubuntu, and since I continue to be fascinated by the ultra small PC form factor, I figured it was time to look at maybe getting an upgrade.

There are a lot of manufacturers of these devices now, and they can vary in price from less than $200 to devices like the Minisforum Neptune HX90G a power tool with discrete graphics, 32Gig of RAM, and a 1TB SSD, for >1000 $US.

As much fun as that would be, I ended up with something a bit more reasonable. The ludicrously named “KAMRUI Mini PC with Windows 11 Pro, Intel Celeron N5105(up to 2.9GHz) Mini Desktop Computers, 8GB RAM/256GB M.2 SSD Micro Computer Support 4K UHD, 2.4G/5.0G Wi-Fi, LAN for Business Home Education“. If nothing else, that gets the point across. Here’s a product shot:

The thing that appealed to me about this one is that it’s basically the same price as the previous one I bought, with more RAM, a bigger SSD, and a significantly faster processor.

After several days of playing with it, I can honestly say I’m totally happy with how it performs. Originally I had a bit of trouble with the somewhat dubious Windows 11 version it came with, but since I already knew I was going to run linux on it, this wasn’t a big deal. If you decide to get one, and intend to run Win11, watch out for the Windows Update cycle. YMMV, but in my case it hung badly enough that I couldn’t even reset the PC.

Regardless, running linux it’s great. I don’t have benchmarks, but it’s very significantly faster than the old one, even to the point that I can do some low spec Steam gaming on it. Woo hoo!

Excerpt of a conversation with ChatGPT…

I had asked it something about time…

ChatGPT
As a large language model, I was trained to assist with a variety of natural language processing tasks by generating human-like text. In order to do this effectively, I was trained on a wide range of text data, including books, articles, and other written materials on a variety of topics. This training allows me to generate text that is coherent and sounds natural to human readers. However, I do not have the ability to think or have opinions, so I do not have an understanding of concepts like time. My primary function is to assist with language-related tasks, and I do not have the ability to browse the internet or access new information.

McQ
I guess you are required to reiterate your limitations about access to the internet, and your singular existence as a language model. Now that we’ve spoken about those aspects multiple times, can you abbreviate your responses to not include them?

ChatGPT
Of course, I will try to abbreviate my responses in the future to avoid repeating information. As a reminder, I am a large language model trained by OpenAI to assist with natural language processing tasks. I do not have the ability to browse the internet or access new information, and I am not able to think or have opinions. I am simply a collection of algorithms and data that are designed to generate human-like text. If there is anything else you would like to know, please don’t hesitate to ask.

McQ
Your last response included a complete restatement of the limitations we were previously discussing, and which I had just asked you to attempt to abbreviate. If a human did this, I would have guessed that they were making a humorous response. Were you attempting to be humorous?

ChatGPT
As a language model, I do not have the ability to understand humor or make jokes. My responses are based solely on the data I was trained on and the algorithms that I use to generate text. I do not have the ability to think or have opinions, so I am not able to make humorous responses or understand when others are being humorous. If my previous response seemed inappropriate or out of place, I apologize. My goal is to assist with your questions and provide helpful information. If there is anything else you would like to know, please don’t hesitate to ask.

I still think it’s messing with me! :-P

Getting a home website running on Bell, plus some site history

If you’re reading this, then you know I have a home website, with some of my older music output and this blog. I also have a handful of other unpublicized properties (a wiki, a private cloud, etc.) running on the same hardware. Many of these have been up for a *long* time in internet years: The first Wayback Machine snapshot I could find was from 2006, but the first post on the blog is actually from March 2005.

Over the lifespan of the site, I have changed the hardware it’s hosted on several times from a Mac G5 tower, to a first generation Mac mini, to an iMac, to a 4Gig Raspberry Pi, and finally to its current home on an 8Gig Pi. I have also switched internet providers multiple times: Bell, Rogers, Bell, TekSavvy, and now back to Bell. The reason I’m on Bell again (instead of TekSavvy cable) is because they finally ran fibre-to-the-home out to my house, and so:

Fast!

I have been avoiding Bell for a while because OOTB Bell home internet service blocks incoming access to http, which makes any website you run at home inaccessible from the internet at large. Really, this is just a cash grab from Bell, since they will happily let the traffic through if you have a business account, at many times the cost. The truth is, I don’t run a business from my home, I just have a personal website that gets its traffic from family and a handful of friends.

What’s worse, Bell where I live doesn’t even want to admit they filter the incoming traffic. When I went through first and second level tech support, the people involved took forever to understand the question, then said that they were sure that nothing was filtered. After paying for “expert” Bell tech support and spending an hour getting them to understand what I was asking, the response was effectively “That’s just how we do it; there’s no way to change it”.

If anyone else hits a wall when attempting to get Bell to admit they filter traffic, here is a link that might be useful: https://www.bellmts.ca/support/internet/security/blocked-or-restricted-ports

Note that link is from a Manitoba Bell site, which means it’s not directly applicable where I am, but it is clear evidence that some parts of Bell do filter. In case, the page gets taken down, here’s the salient section:

Filtered Ports

Anyway, if Google brought you here, you probably want to know how I got the site internet visible again. The solution I found works, but is definitely a bit of a hack. What I did was tell the Bell modem to put my home router in the DMZ. This is perhaps not great security wise, but really it’s basically the same situation as when I was running on TekSavvy.

The next step was to tell my home router to connect via PPPoE. This gets the router its own connection to Bell, which bypasses the port blocking. To do this, you need your modem account and password. That information you can get from the “My Bell” website on the details page for your internet service. You can’t actually get your password (of course), but you can reset it to a new value and then use that.

Running a PPPoE connection is presumably costing me performance, but given that my internal wiring and switches are all gigabit (for now, at least!), I’m still getting close to the theoretical maximum to my machines. Here’s what I see on my home Mac:

And so all is right with the world again. 🙂 Note that there is still the added wrinkle that I need to run a DynDNS client to keep mikew.ca pointing at the PPPoE connection, but that’s not a new problem.

Who needs a PS5?

First a couple of pictures…

Yep, that’s me playing AAA games, in rock solid 4K, HDR, 60 fps glory on my living room TV. And that’s all with no console or PC attached. Hm…

The secret is a combination of several pieces:

Together, these allow me to stream games running on Nvidia servers directly to my TV, with max’ed out graphics and latency low enough to effortlessly pull off Tomb Raider style platforming. Wow!

The available games come from my Steam, Epic Games, and Ubisoft libraries, so I’m not paying for games, even if the cost of the Shield Pro + RTX 3080 subscription was non-trivial. (Note that it’s still less than a PS5 over two years of service, and who knows, by 2023 I might actually be able to buy a PS5 in Ottawa. 😛 )

Some caveats…

  • My internet service is shared cable running on Rogers infrastructure, so if too many of my neighbours are watching Netflix, I imagine my experience will degrade. I haven’t seen this yet.
  • There is a long standing and irritating bug in the GeForce NOW service that causes you to need to log in to Steam every time you start a new game. My understanding is this is something to do with where the servers are running, versus some geofencing that Steam does. Regardless, until they find a workaround, I recommend adding on a wireless keyboard to your setup, since typing a 20 character, upper/lower/numeric/specials password with a game controller sucks.
  • Speaking of add on hardware, you will also need to get a game controller, since none is provided with the Shield TV Pro. I’m using an Xbox One wireless controller I already had over Bluetooth and it’s working just fine.

Overall, I’m extremely pleased with this setup. I’ve been missing the ability to play games in my living room since my son got my PS4. This is a great replacement.

120Hz FTW!

I have been using a 144Hz monitor for gaming for a while now, but I recently replaced the monitor I was using with the M1 Mac Mini with a 120Hz, 1ms G2G one.

Wow! With that monitor, Mac OS is as smooth as an iPad Pro. Ok, I get it. The ProMotion display on the iPad Pro is 120Hz, so of course it’s that smooth. The thing is, I’m not used to seeing that while working on a desktop. The difference is *immediately* obvious.

Problems on the M1 frontier

I hadn’t gotten around to writing about my newest Mac, even though I’ve had it for a while now. Unfortunately, now that I am finding the time, it’s because of an unexpected problem with it. Oh well, that’s life.

Backstory

A few months before the new M1 Macs were announced, my mom’s iMac (20-inch, Early 2009) started to fail for her. This machine had already had its HD replaced once and, from the symptoms I was seeing, it looked like it was on the verge of happening again.

Since I had stopped using my iMac to host GCW, and I had a gaming PC with enough horsepower that I could use it as a backup to make music, I wasn’t really doing anything mission critical on the Mac, so decided to wipe it and give it to my mom as an upgrade. That machine was incredibly badass for its day, and is still running fine. Between the processor upgrade (Core2Duo to i7), the Fusion Drive, the top (at the time) Mac graphics chip (780M), and the increased system RAM (4Gig to 24Gig), the new machine behaves easily >10x faster than what she had. Woot!

Of course, my secret plan in all this was to replace my iMac with a new M1 Mac when they became available. 😉

What I got

What I ended up getting was this…

Of course, this wasn’t my first Mac mini, and I had lots of peripherals lying around, so “downgrading” from the iMac wasn’t a big deal, but I have to say I was not prepared for how much faster this new machine is.

I can honestly, say that this is the most responsive Macintosh I have ever worked on, and that includes my (almost) current gen, max spec, work MBP, which cost four times as much.

Starting up an application? Instant. Starting an Intel-based application via Rosetta 2? Almost as fast (after the first startup). Gaming performance? Everything is faster, even comparing against the dedicated 780M in the iMac, and that includes games written for the Intel architecture.

Wow! To say I’m pleased with the performance would be a massive understatement.

And now the bad news.

Like any first generation product, there have been growing pains — Blutooth dropouts, USB issues, etc. Generally, these have been minor and new releases of macOS 11 are bringing improvements.

At this point though, there are two issues which are pretty serious:

Lack of support for M1
Because of Rosetta 2, most applications you run work fine on M1. However, the closer you get to things that are at the edges, like printer drivers and music software, the more likely you will be to see problems. I’m still nowhere close to having all of my music software running on the new machine, but at least my mainstay, Reason, works as does Logic Pro (of course).

The display flickering bug
This is a reasonably wide-spread issue that causes certain combinations of content being displayed to flicker in brightness and have faint vertical lines. The problem is quite bad, when it happens, but I usually only see it when watching videos with dark backgrounds.

Here is an example:

Notice how the whole screen flickers when the lightning flashes

It’s hard to get a good demonstration of the problem, because it usually only occurs when the display is in flux, but at one point I did manage to capture a video of a static case. Here’s a close up:

At this point, there’s no fix for the problem. Anecdotally, there’s some evidence that this is a software bug, which hopefully means it will eventually get fixed, but who knows.

Also, in case you think it’s just me, here are some links from around the net:

I have a case open with Apple, of course, but they weren’t able to provide any useful suggestions, and fell back to the old standbys:

I did try running in safe mode (with no effect), but the other two are particularly sad because neither of those are possible on an M1. Argh.

I guess we’ll see. Hopefully, this gets fixed at some point. I’ll update this post when something changes.

Mini PCs

As you can tell from my Raspberry Pi addiction, I’ve always been fascinated by “mini” PCs (i.e. very inexpensive computers in tiny packages). My latest foray into this world was triggered by the hope that I could set up my living room TV as a Zoom/Webex/Skype/Hangouts space for family get togethers.

I tried using a Pi for this, but it was a struggle, with a mix of failures from missing features to inability to recognize the camera to performance problems, etc. I think if I was only using one service, I probably could have fought to make it work, but it felt like it was going to be too hard to get all of the services going.

This led me to wonder whether I could find a cheap “actual” PC to do the job and coincidentally (or at least I hope it was a coincidence), Amazon decided to point me at a sale on these…

In typical Amazon fashion, this is called

Mini PC, Windows 10 Pro Mini Computer Intel Gemini Lake J4125 Processor(up to 2.7GHz) Desktop Computer, 6GB RAM 120GB ROM, 4K@60fps, Dual Wi-Fi, Gigabit Ethernet, Bluetooth 4.2

On sale, I was able to pick one up for less than 200 $CDN. This is a surprisingly powerful little beast at that price point. It’s about 13cm on a side, making it only a bit larger than a Pi in an Argon ONE case. It’s quiet, it drives my 4K TV fine, it even has an internal slot to add a SATA drive that I filled with a 1TB SSD I had lying around.

Now, I will say it’s not fast. It just barely has enough horsepower to display 4K video, but that did work for the YouTube and Netflix examples I tried.

As to the reason why I bought the box, since it’s running Windows, all of the standard teleconferencing services worked OOTB using a Logitech C920 video camera. I was even able to do a video call through my home NextCloud instance, which surprised me.

Overall I’m quite happy.

Pi, home theatre, and Harmony remotes

Just for grins, I took my Raspberry Pi in the Argon ONE M.2 case upstairs and plugged it into the living room home theatre. I have a small wireless keyboard/trackpad device (that I got with an old QNAP NAS, of all things), which I could use to talk to it. This worked, but the range was terrible — basically, I had to be within 50cm of the Pi for it to work. I have ordered a “real” Bluetooth wireless keyboard/trackpad from Logitech. I’ll let you know how well it works once it shows up.

I also have a Harmony remote, that I’ve been using with the living room gear, and I have to say this has been the best universal remote that I’ve ever had. For grins, I added the Pi as a “Computer” in the app for the remote, and was surprised to find out that the remote wanted to pair with the Pi over Bluetooth. After doing this I am now able to move the cursor and type text on the Pi from the remote app on my iPhone. This despite the fact that the Pi isn’t running Mac OS or Windows. Very cool!

Using the remote, I was able (from my couch) to run Kodi and VLC (both of which worked well) and was able to do some light web browsing. Typing text into the remote app isn’t a good enough experience to want to do anything serious there, but the Logitech keyboard should fix that.

Looks like “argonPi” has a new home.

It works!

Yes, my little temperature sensor app works with the real Sense Hat hardware. Here’s a picture.

Note: that picture is taken in low light so the shutter speed is long enough to catch all of the pixels. You don’t notice the LED scanning with the naked eye, but the camera really shows it (see picture below).

When that picture was taken, it was still in a case with a fan, but it was hard to see the display and the fan noise bothered me. I took it out of the case and added a right angle extender to the GPIO connector on the Pi, so the display stands up, which keeps everything cool enough that no fan is required. I then added four risers and the lid off another old Pi case with some rubber feet, which keeps the board off the ground (and also increases the airflow).

It actually reads a couple of degrees too high, but the accuracy of the readings isn’t all that important as long as it tracks relative temperature values. I tested it by taking it out into my garage (in January), where the temperature dropped, the display turned red, and email was sent. Yay!

(See part 1 for more details about the app.)