One mantra of the sysadmin arts imparted by my sensei many, many moons ago: "Anything with moving parts is evil." RS-232 is _full_ of moving parts.

What is the sound of one handshaking? USB-to-serial converters that... don't.

The states of "enlightenment" and "dejected resignation" are one.

#PERQ sufferers, from novitiate to master, take heed; this is as far as I go with shameless self-promotion:

https://github.com/skeezicsb/PERQemu/releases

Releases · skeezicsb/PERQemu

An emulator for the Three Rivers Computer PERQ workstation - skeezicsb/PERQemu

GitHub
The #PERQ has made it through Day 1 of RetroFest in Swindon with no major failures. I suspect a hard drive cable needs a new connector, but if the drive (emulator) is positioned like so and doesn't get jostled, then things seem to work. We'll see how far we can go on Day 2...

Belated announcement: this weekend I will be at https://retrofest.uk with my #PERQ 2T2 graphical workstation from 1984, which (after months of troubleshooting, which I promise to describe someday) appears to have been working just now. I've successfully booted

  • PNX - a System III Unix by ICL with a pre-X11 GUI
  • POS - a simple DOS-like OS that was more popular in the US
  • RSRE Flex - made by MoD researchers and one of the weirdest OSs I have ever experienced

My exhibit could be one of the first public displays of Flex in a few decades, and I'm excited to show it off. Come early for best odds of seeing it working, as the PERQ is prone to hardware failure. If the machine breaks, I'll have the emulator handy, and if you can't make it, I'll also be giving a whole talk on Flex at #emfcamp in July. Hope to see you soon!

In classic spend-an-hour-to-save-five-minutes efficiency, I'm hand-coding 48-bit horizontal microcode... in octal!

(and sometimes the bits are inverted!)

20 7020 25 10 6 1 1 0 1 2 2 356 0 3 - SetDDS: R21 := 10, StackReset, loc(7020); ! Increment display
! X : ALU dest register is R25
! Y : Y source is the lower eight bits of a constant (8) (not a long constant load? so upper bits 0)
! A : AMUX input is the X register
! B : BMUX input is a constant value
! W : ALU output IS written to any register
! H : DMA requests are enabled (seems used only in special cases)
! AL: ALU function is identity(BMUX)
! F : Combines with SF=2 to mean StackReset
! SF: Combines with F∈{0,2} to mean StackReset (does which matter in some other way?)
! Z : Probably fills JMUX<7> thru JMUX<0> for a short jump (active low!)
! CN: Select the "true" condition to pass along to the sequencer
! JP: Sequencer should execute a conditional jump
! VT: Not a real field: the jump target VA

#PERQ

45 days until #RetroFest 2026 in Swindon. #PERQ status:

  • Flaky Z80-based I/O subsystem: sometimes the #Z80 jumps off the tracks and executes nonsense code
  • Disk boots fail: the microcode attempts to load blocks far beyond the end of the disk

Trying today: DIY diagnostic microcode

POV: #PERQ hardware debugging, as usual. The #Z80 (serving as an I/O coprocessor) is behaving strangely: fetching instruction bytes without toggling the M1 pin, jumping to random locations at around 47uS after coming out of reset; what's going on here?
@wec good luck, I look forward to any updates about your progress that you share! I do also hope that continued research into the 37T will reveal some way (e.g. by a software emulator) to run EM/YMS someday: as a #PERQ botherer I am so curious about what @d_j_fitzgerald suggested was (something like) IBM's answer to the PERQ.
Developing technique for "disk baking". The box is a filament dryer for 3-D printing, and the disk "bakes" inside at 55 °C for six hours in an attempt to stabilise the degraded binder that holds the magnetic oxide to the PET substrate. This disk is one of several 8" floppies for #PERQ shared with me by another Mastodon person --- thanks! (So far I've mainly recovered floppies you can already find on Bitsavers, but the as-yet-unarchived ones will be tackled soon.)
Meanwhile, the #PERQ has broken once again. A problem somewhere on the EIO board again, affecting floppy and hard drive both, but only after some data have been loaded from them. DDS=157 or 158 on HDD or FDD boots of POS respectively. PERQs gonna PERQ...

Handy: it looks like it works fine to replace a PAL16R8 with a GAL16V8 (at least a GAL16V8D, -15) as the DCD2 chip on a #PERQ 2T2's DIB.

I was able to reuse the old, singed DCD2 label from the original PAL... which I might have plugged in backwards one day...