Psion Series 3a data transfer over serial interface to modern Linux

Psion Series 3a

Transferring data from and to the Psion Series 3a digital assistant is surprisingly easy, still. This is thanks to the plptools, that are still packaged for Ubuntu LTS and Debian.

Prerequisites

  • Psion Series 3a
  • Psion Series 3 Link (RS232)
  • USB to D-sub serial adapter cable
  • Null modem adaptor or cable – only needed if the D-sub of the USB adaptor isn’t male
  • A Linux system with USB interface and the plptools package installed
[Read more →]

Setting up castor as handler for gemini URLs on a Gnome desktop

Gemini capsule paragliderSo, you’ve heard of that slick new gemini:// internet protocol and you managed to install or build (see below) the castor browser to use it. It works great, but now you would like to be able to click on a link in your http(s) browser to gemini and have it open castor for you. Here is how to do this on a Gnome desktop.

Step 1 – create a launcher for castor, by adding the following configuration into the file  „~/.local/share/applications/castor.desktop“:

[Desktop Entry]
Version=1.0
Type=Application
Name=Castor
Comment=Gemini Browser
TryExec=castor
Exec=castor %u
Icon=/[path to castor repository]/data/org.typed-hole.castor.svg
MimeType=x-scheme-handler/gemini

Step 2 – register the gemini protocol to open with castor, by issuing this command:

xdg-mime default castor.desktop x-scheme-handler/gemini

[Read more →]

Which UNIX tool to use for text processing?

A short decision flow chart to pick the optimal text processing tool on a UNIX-like system (dowload it as plaintext):

                                   .--------.
                                   | I want |
                                   | to ... |
                                   '--------'
                                        |
                                        v
                                  .-----------.
                            yes  / ... search  \  no
                          .-----(  in freeform  )-----------------.
                          |      \    text.    /                  |
                          v       '-----------'                   v
                   ____________                           .---------------.
                   \           \                    yes  /    ... work     \  no
                    ) use grep  )                 .-----(  with structured  )--------.
                   /___________/                  |      \      text.      /         |
                          |                       v       '---------------'          v
                          v                 ___________                       .-------------.
                     .--------.             \          \            replace  /   ... work    \  delete
               yes  /   It's   \  no         ) use awk  )             .-----(  with freeform  )-----.
            .------(  a simple  )-------.   /__________/              |      \     text.     /      |
            |       \ pattern. /        |                             |       '-------------'       |
            v        '--------'         v                             v           extract           v
.-----------------------.  .-------------------------.  .--------------------------. | .-------------------------.
| grep 'simple pattern' |  |  egrep 'regex pattern'  |  | sed 's/search/replace/g' | | | sed '/search pattern/d' |
'-----------------------'  |            or           |  '--------------------------' v '-------------------------'
                           | grep -E 'regex pattern' |           .---------------------------------------.
                           '-------------------------'           | sed 's/^.*\(search pattern\).*$/\1/g' |
                                                                 |                  or                   |
                                                                 |       grep -Po 'search pattern'       |
                                                                 '---------------------------------------'

[Read more →]

Atari Portfolio data transfer over serial interface to modern Linux

There are already great tutorials on transferring data from/to the Atari Portfolio digital assistant for MacOS and Windows. Here is how to have it talk to Linux – the quick and shell way.

The biggest obstacle is to get some XMODEM software onto the Portfolio, as the serial connection can be quite unreliable. After a one time bootstrap procedure using a copy over the serial device, subsequent transfers become much more reliable and convenient.

Alternatively to the complicated one time setup procedure, you may also just use the XTERM.COM from the dip Utilities card, that you might still find on eBay.

Prerequisites

  • Atari Portfolio
  • Atari Serial Interface HPC-102
  • USB to D-sub serial adapter cable
  • Null modem adaptor or cable – only needed if the D-sub of the USB adaptor isn’t female
  • A Linux device with USB interface and the minicom and coreutils packages installed
  • A copy of XLOAD.COM and XTERM2.COM on your Linux device

[Read more →]

Sinclair ZX81 modification, preventive maintenance and common fixes

Image by Evan-Amos, licensed CC-BY-SA-3.0, from https://commons.wikimedia.org/wiki/File:Sinclair-ZX81.pngSo, I got myself a Sinclair ZX81 from the UK. I got lucky and found one that came boxed, complete with 9V power supply, assembly instructions and 16 KiB RAM pack. The ZX81 was Sinclair’s 1981 follow up of the ZX80 computer (1980) and was sold as a kit or fully assembled. Like it’s predecessor it sported a Zilog Z80 CPU running at 3.25 MHz and 1 KiB of RAM. It’s main advantage was the lower cost and larger ROM (8 instead of 1 KiB) which allowed for more BASIC commands and floating point math support.

My unit was of the kit version and the original owner did a very good job of cleanly soldering it together and they even noted some errata in the assembly instructions, where a resistor had to be replaced with a different type – the schematic on the back side of the instructions did show the correct value. [Read more →]

KC 85/4 Labyrinth

Hatte gestern die Gelegenheit einen Kleincomputer aus der ehemaligen DDR, den KC 85/4, auszuprobieren. Das Gerät wurde 1988 hergestellt, verwendet eine UB 880 D CPU, einen Zilog Z80 Nachbau mit 1.77 MHz und hat 64 KiB RAM. Im Gegensatz z.B. zu den Atari und Commodore 8-Bit-Rechnern bootet er aber nicht direkt in einen BASIC-Dialekt, sondern ins KC-CAOS 4.2, welches den Aufruf diverser Programme ermöglicht und listet auch direkt einige der im ROM verfügbaren Programme auf:

* KC-CAOS 4.2 *
%BASIC
%REBASIC
%SWITCH
%JUMP
%MENU
%SAVE
%VERIFY
%LOAD
%COLOR
%DISPLAY
%MODIFY
%WINDOW
%KEY
%KEYLIST
%MODUL
%SYSTEM
%V24OUT
%V24DUP
%

[Read more →]

PiDP-8/I install on Raspbian Buster

The following is a modified installation recipe for the PiDP-8/I flavour of SIMH on Raspbian Buster, based on the instructions from Obsolence Guaranteed. [Read more →]

VoCore2 Ultimate as SMS gateway

This article describes a setup of OpenWRT on the VoCore2 Ultimate to send SMS via a HTTP API using smstools and a GSM modem (a Huawei E3531, in this case). This method uses docker to build a custom OpenWRT image, which can be then be installed via the firmware update mechanism in the preinstalled OpenWRT on the ROM of the VoCore2. [Read more →]

IMSAI 8080 & Altair 8800 hex dumps to octal

If you play around with entering programs via the toggle switches on the Altair 8800 or IMSAI 8080 or one of their clones, recreations, replicas or simulators, you may want to enter a hex dump of an assembler program via your front panel. While most experienced programmers prefer the hex notation, it is a bit error prone to convert the hex digits in your head into the binary notation of a nibble (4 bits). This is why many example programs in the original manuals and also the front panels of these systems feature the unusual octal notation. It is very simple to convert octal into binary and if you are used to UNIX permissions, you will already know these by heart. [Read more →]

MySQL / MariaDB replace broken HTML entities

After an upgrade of Friendica, a PHP application using MySQL or MariaDB as a backend I found that while the columns containing the raw textual content had been changed successfully from utf8 to utf8mb4 character sets, some other colums that contained pre-rendered HTML were broken, as they now contained 2 byte sequences turned into HTML entities. [Read more →]