Paolo Amoroso's Journal

Tech projects, hobby programming, and geeky thoughts of Paolo Amoroso

My memories of WordStar are fuzzy as I haven't been using it since the late 1980s and, even then, only on MS-DOS and not set up by me. So the errors for basic disk drive access functions I got from WordStar on CP/M surprised me.

My Z80-MBC2 and V20-MBC computers come with the word processor preinstalled, which runs under CP/M-80 on the former and CP/M-86 on the latter.

The e: drive holds the WordStar Release 4 files on the Z80-MBC2 with CP/M 3.0. I got an error about the program not finding its overlay files when starting it from a different drive, e.g. executing e:ws from F:. And the program's L command to change the logged drive to one other than A: or B: issued a file not found error.

Reading the manual clarified that, on CP/M-80, WordStar recognizes only A: and B: by default, but other drives can be accessed by installing the program with the INSTALL.COM utility or configuring it with WSCHANGE.COM.

The INSTALL.COM executable that ships with the Z80-MBC2 is designed for a version of WordStar different from the release 4 actually on the microcomputer. Therefore, I had to run WSCHANGE to change the settings with the option C (Computer: Disk Drives, WordStar Files > A (Disk Drives, Valid disk drives) > A (Valid disk drives).

The resulting configuration screen listed the valid disk drives, i.e. the floppy drives A: and B:, with the default where WordStar looks for the overlay files marked with an asterisk:

WordStar valid drive configuration screen.

The screen also allowed to add the letters of valid drives one by one, with the first set as the default drive. I typed E as that's where WordStar's files are on the Z80-MBC2 under CP/M 3.0. Then I added more drive letters as the mciroSD storage of the device emulates the hard disks from A: to P:. For each drive I answered no to the question on whether it's a floppy:

WordStar valid drive configuration screen.

Finally, the configuration program listed the new valid drives, i.e. A: through P: with E: coming first to indicate the default drive:

WordStar valid drive configuration screen.

On the V20-MBC under CP/M-86, WordStar release 3.30 detects all the drives A: to P: out of the box, but the default drive where the program looks for its files still needed to be configured. No WSCHANGE utility comes with the word processor on my device, so I used the installation program WINSTALL.CMD to set C: as the default. C is where WordStar's files are stored on the V20-MBC.

#z80mbc2 #v20mbc #retrocomputing

Discuss... Email | Reply @amoroso@fosstodon.org

Once the V20-MBC or Z80-MBC2 is plugged into a USB port of my Chromebox, starting a Minicom terminal emulator session makes the remote device boot up and display progress messages.

At some point, with the V20-MBC, starting Minicom did nothing and only the terminal printed its signon messages. The remote device wouldn't boot and there were no signs of life other than the lit LEDs.

The flat cable that runs from the V20-MBC ends in a serial-USB adapter with a USB connector that goes into the Chromebox. This is the adapter card with the USB connector at left and, at right, the pins the cable's connector plugs into:

Serial-USB adapter of the V20-MBC Nec V20 homebrew computer.

To troubleshoot the issue I unplugged the USB connector from the Chromebox, which is when the cable's connector came out from the pins. That made clear the issue was a loose plug. Plugging the adapter back into the cable, reconnecting to the Chromebox, and starting Minicom made the V20-MBC automatically boot up as usual.

#v20mbc #sbc

Discuss... Email | Reply @amoroso@fosstodon.org

Published links to the original sources of the media, quoted text, or other content shared online are increasingly less common. Not that they ever were much common.

Academia has always had a strong culture of crediting and referencing. And this is what the users with this background have been doing online since the early days of the Internet and the web. Most of those who still do are in academia or communities with similar values like bloggers and open-source developers. It’s a lost art, especially as more and more ordinary users come online.

Why take time and effort to link the sources?

The most obvious reason is fairness to the original creators of the content, who deserve recognition for their work. But there’s more to linking than crediting and fairness.

The references to the sources and other metadata are invaluable research tools.

They enable to track where ideas originate, how they spread, how influential they are. Metadata are essential for accessing the original content in its full form and the best available formats such as high-resolution images, complete videos, or the full text and context of quotes. References allow to explore the rest of the shared content and discover new ideas or overlooked portions of works.

But the most important reason for always providing full references and links to the sources is they enable uses not originally anticipated. The absence of sources makes all this unnecessarily difficult or impossible.

#misc

Discuss... Email | Reply @amoroso@fosstodon.org

Just4Fun, the maker of the Z80-MBC2 and V20-MBC homebrew computers, clarfied to me the absence of some files is intentional.

Under CP/M-86, the TOD.CMD command for displaying and changing the date and time was left out because, on the V20-MBC, the date can be changed only from the boot and configuration menu. ASSIGN.CMD, a command for assigning physical to logical devices, is specific to the CP/M-86 version for the IBM PC and hence redundant on the V20-MBC.

Just4Fun doesn't recall exactly, but the absence of the Turbo Pascal sample .PAS files on the Z80-MBC2 is likely a consequence of the development process, possibly an early mass storage space constraint.

#v20mbc #z80mbc2 #sbc

Discuss... Email | Reply @amoroso@fosstodon.org

Mastodon.technology, the Mastodon instance that hosted my account, will be shut down. The admin Ash Furrow took this decision for serious personal reasons.

As a Google+ survivor and a fediverse newbie with barely 7 months on Mastodon, the announcement startled me. I set out to find a good new home and now I'm on Fosstodon as @amoroso@fosstodon.org This instance is open to anyone interested in technology, with a focus on free and open-source software.

Fosstodon is culturally close to Mastodon.technology. Both have similar topics and values, and comparable user base sizes. Instead of a single maintainer like Mastodon.technology, a team of admins and moderators and more resources give Fosstodon some redundancy and assurance of longevity.

The Mastodon documentation explains the simple procedure for moving an account.

Creating an account on the new instance, transferring the data, and filling the profile was mostly seamless and took less than half an hour. Mastodon transferred my followers automatically, I only had to upload to Fosstodon the list of followed users downloaded from Mastodon.technology.

Although the process took care of my social graph, moving toots and media isn't supported and I could only download my old toots. Bummer, I hope the developers implement full content transfer soon.

#fediverse

Discuss... Email | Reply @amoroso@fosstodon.org

The V20-MBC homebrew computer I ordered finally arrived and I started checking it out.

The V20-MBC is a single-board computer by the same maker of the Z80-MBC2. Most of the design is common to both. However, unlike the Z80-MBC2, instead of a Z80 the V20-MBC has a Nec V20 chip that implements the instruction sets of the Intel 8080, which runs CP/M-80 2.2 on the V20-MBC, and the Intel 8088 with CP/M-86 1.1.

I got a V20-MBC Black Edition. It's a version of the V20-MBC with higher quality parts and a black PCB that, along with most of the other components also black, makes for a slick look:

V20-MBC homebrew computer.

I already love the device. These notes are my early impressions, but I'll continue sharing my experience with the V20-MBC.

Hardware

Both homebrew computers have similar size and layout and are accessed the same way, i.e. with a terminal emulator running on a desktop computer, a Chromebox in my case, connected via a USB serial line. Here is the setup, with the Chromebox at the top:

V20-MBC homebrew computer connected to a Chromebox.

The performance of the 8088 of the Nec V20 under CP/M-86 is noticeably better than the Z80-based Z80-MBC2. I estimate CP/M-86 software on the V20-MBC is 2-3X as fast as CP/M-80 programs on the Z80-MBC2.

Software

The V20-MBC is operated the same way as the Z80-MBC2, except for a couple of differences.

To account for the two CPUs, the boot and configuration menu duplicates the entries that load executable code. This is the menu in a Minicom terminal emulator session under Crostini Linux on the Chromebox:

V20-MBC boot and configuration menu.

There are two options for uploading an executable in Intel HEX format to run on the bare hardware with no operating system, iLoad for 8086 code and iLoad-80 for Intel 8080 code. Similarly, Autoboot automatically boots a designated 8086 binary, Autoboot-80 an 8080 one.

Although I never used CP/M-86 before, thanks to my prior experience with CP/M-80 the 16-bit operating system looks familiar and I already feel productive. Aside from the additional transient commands of CP/M-86, the only major difference is executable program files have the .CMD extension instead of .COM as on CP/M-80. This screenshot of the A: drive directory shows the extensions:

CP/M-86 session on a V20-MBC homebrew computer.

Issues

A quick check reveals some CP/M-86 files are missing, such as the TOD.CMD and ASSIGN.CMD transient commands. This is not unexpected as the Z80-MBC2 is also missing some files, e.g. STAT.COM and the Turbo Pascal sample .PAS sources. No big deal, it's easy to find and download suitable replacements.

#v20mbc #sbc #retrocomputing

Discuss... Email | Reply @amoroso@fosstodon.org

Back when the Pixel 4 XL was Google's latest Android flagship, JR Raphael wrote a great piece on the insanity of smartphone screen notches and holes: The enduring absurdity of our smartphone bezel obsession. He pointed out the compromises punching holes into and cutting out screen areas in the name of no bezels imposes for little or no design gain, which often defeats the whole point of making those changes in the first place.

In the later article No, the Pixel 4’s bezels are not a major crime against smartphone design, Andy Boxall discussed why having bezels is not an issue and the dislike for bezels is largely irrational.

Beyond aesthetics, there are drawbacks to using a device with thin or no bezels.

I can’t tell how many times I inadvertently touched unwanted user interface elements of apps on my old Pixel 2 XL phone and my current Pixel 4 XL, which have some bezel. For example when I grab the device ringing for an incoming call, which often results in a declined call because I touch the wrong areas close to the edges of the screen.

Bezels actually have advantages as they can accommodate the parts screen notches and holes house, such as cameras and sensors.

I use only Google phones, despise screen notches and holes, and wish Google focused on substantial features such as improving optical zoom (Super Res Zoom doesn’t qualify) rather than chasing questionable design decisions and fads with collateral damage like missing bezels.

The Pixel 4 XL was Google's last phone with bezels and no screen mutilations. What I hoped was a fad turned into a design trend and later Pixels came with screen holes.

My Pixel 4 XL is close to the end of life and I need to replace it with the upcoming Pixel 7 Pro. Guess what? It has a screen hole, I'll have to deal with it and get the device anyway.

Stop mutilating screens. I want my bezels back.

#Android

Discuss... Email | Reply @amoroso@fosstodon.org

I couldn't resist. I ordered an assembled V20-MBC Black Edition kit with 1 MB RAM, a homebrew computer by the same prolific maker of the Z80-MBC2. The devices share the same design, except instead of a Z80 like the Z80-MBC2 the V20-MBC features a Nec V20 bundling the 8088 and 8080 CPUs.

It's exactly what I needed, the perfect match for running my Assembly code on actual hardware and a complement to the Z80-MBC2.

Suite8080, my suite of Intel 8080 Assembly cross-development tools, includes the assembler I use for my 8080 programs executed on the Z80-MBC2 under CP/M-80, and now also on the V20-MBC as native 8080 code. I also set up an x86 Assembly cross-development environment to create 8086 code that will run on the V20-MBC under CP/M-86. And, of course, the Z80-MBC2 lets me run Z80-specific projects.

The shipping is on its way to me, I'll share my experience with the V20-MBC.

#v20mbc #retrocomputing #sbc #x86

Discuss... Email | Reply @amoroso@fosstodon.org

The Z80-MBC2 homebrew Z80 computer is a living retrocomputing museum that runs early microcomputer operating systems such as CP/M, QP/M, and UCSD p-System. Since the latter is the one I know least, I explore it with the Z80-MBC2.

On UCSD p-System the user runs programs and manages the system through a series of hierarchical menus, unlike the command interpreters of other operating systems. Navigating the menus down the hierarchy is easy, but sometimes I'm not sure how to get up one level. Pressing the Q key works most of the times, but occasionally nothing happens and I get stuck.

Running UCSD p-System gives a sense of how slow the output is on serial terminals. For example, a demo program to plot an ASCII sine wave takes almost 20 seconds over a 115200 bps serial line to the 8 MHz Z80-MBC2.

It's best demonstrated by a screencast I recorded, which shows the output as well as the menus. In the video the Z80-MBC2 runs in a Minicom terminal emulator session under Crostini Linux on my Chromebox.

#z80mbc2 #retrocomputing #sbc

Discuss... Email | Reply @amoroso@fosstodon.org

I don’t like algorithms deciding what ends up in my reading feed. For my content consumption I want platforms that don't filter but deliver all the content from all the sources I want, and only those sources.

This is why my information hub is an RSS feed reader, Feedly. In addition, since running my own email newsletter for some time, I have been subscribing to a growing number of newsletters on a variety of topics. From technology and software development, to content creation and publishing.

Here are the newsletters I subscribe to. I prefer niche, obscure, or unique sources, so I hope this list will help you discover valuable content that’s not mainstream.

I'll keep the list up to date.

#newsletters

Discuss... Email | Reply @amoroso@fosstodon.org

Enter your email to subscribe to updates.