Mood: relaxed Audio: Random sh4d0wcounc1L radio playlist, currently: Qntal - Ab vox d'angel Input device: wy325 terminal ==================================================================== Ah, another year, another phlog post! Yes yes, I realize it's already February, but hey! ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ This is gopher- █▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▉███▇▅▃ space. Things do ▐█▇▜▜▜▜▜▜▜▜▜▜▜▜▜▜▜▜▜▜▜▜▜▜▜▜▌ ▕████████ move slower. I'm ██████▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▜▎ ▐████████ writing this on ▕█████▛ ▐▏ ▐████████ one of my dumb ▐▉████▎ ▉ ▐████████ terminals and, ██████ ▊ ▐████████ as such, this ▕█████▊ ▕▋ ▐████████ phlog post will ▐█████▌ ▐▍ ██▉██████ be... about ██████▌ ▐▎ ██▉███▉▉▉ terminals! ... ▕██████▌ ▟ ██▉██▉▉▉▉ well, sort of, ▐████████▇▇▆▆▅▅▄▄▄▄▄▄▄▄▄▄▅▅▅▉▃▃▂▂▂▂▂▂▁▁▁▁▁▁ ▁█████▉▉▉▉ kind of, ▗████████████████████████████▊ ▔▔▔▔▔▔▔▕██████▉▉▉ mostly. ▗▞▘▂▞▜▌▂▂▂▂ ▁▁▁ ▏ ▔▗▔▄▔▔▃▘▔▕▇▞▘▗▅▃▖ ▄▖▄▄▄▄▃▃▟████████▀ ▗▞▘▗▆▜▇█▂▆▂▂▂▁▁▁▅▔▖▔▖▙▂▋▝▂▝▁▆▆▆▖ ▁▟▙█▙█▙█▀▔ ▟████▛▘ There's ▆▌▁▁▁▁▁ ▀▀▀▀▀▀▀▜████▇▇ ▀▀▀▘▀▇▘▗▟█▟▉▇▋▃ ▔ ▗▟███▛▘ something ▔▔ ▀▀▀▀▀▀▀▀▀▜▆▆▅▅▅▅▄▄▄▃▃▃▃▃▂▂▂▁▝▀▀▀▝▀▝▀▘ ▗███▛▘ quite comfy about writing ▀▀▀▀▀▀▀▀▀▀▀▇▆▆▆▆▆▅▅███▘ up a bunch of stuff with just a terminal as input device. It's very hard to get distracted. My Wyse and honeywell terminals both still need a bit more work on their termcap files. While there is a termcap for both on most *nix systems included by default, these default termcaps are full of problematic mistakes and missing features. The wyse terminal works relatively well when I configure it with a vt220 personality for the most part - there's a few keys that mess things up in vim, such as using the 'home' key, but those are minor problems. However, the vt220 mode doesn't give me access to the colors the terminal is capable of rendering (among a few other features) - there is also a plethora of wy325-* termcaps - one for each of the various terminal options, but those alas also don't support color, and are broken in way more ways than the vt220 termcap. I did find a termcap online for this terminal that adds color support to the vt220 mode, and that one ALMOST worked. I had to modify it a bit, and i now have color in com and other programs on SDF, which is really fun. It still needs a few tweaks however. Sometimes com will send an escape character that will disable the terminal's line-wrap setting, causing long lines to be truncated at random. Then, if people start writing unicode, that will mess it up completely, and freeze the terminal. Similarly, the honeywell terminal works 'ok'-ish for the most part with the 'vip-H' termcap, but there's always the odd random escape that will mess things up. One thing that's cool about the green phosphor screen on the honeywell is that it has a really cool weird glow under the blacklights in the room, which makes it really fun to use. I may have mentioned in earlier phlog posts that I've been writing a sort of 'modern'-ish implementation of TurboVision in cpp - I had initially decided to not use curses, and write my own ansi/termio stuff for it, so I wouldn't have to struggle too much with broken termcaps for my various terms, but I think I might start over with some of that work and go the opposite direction, and instead just. .. fix the termcaps... because: One of the biggest issues I have with the old terminals is that a lot of modern applications just assume modern ansi escapes that work with most terminal emulators, and don't use curses at all, and just output raw escapes. - This of course breaks everything if the terminal uses different escapes. - So, in the spirit of not adding to the problem, I should probably just use curses. I saw this icky article on the icky http the other day where an opinionated developer was complaining about why people still use ncurses in <insert "modern" year> - his opinion was that, given that most terminals support plain ansi, everyone should just output plain ansi escapes (his argument for this was, because ansi escapes are not some mystery rocket science), and I guess, from his perspective, less painful than dealing with the ncurses c api (hating C is so hot right now) - Ok, so the problem with this is obviously that you can't just assume all terminals support all ansi escapes in the same way. Clunky C api's aside, having a concept of terminal capabilities is a good thing, I think. And old terminals becoming less and less usable because software (and their developers) don't bother with termcaps is a bad thing. Old tech can still be useful! ( I'm aware that I am preaching to the choir here, this is gopher after all) - Still, if this is the new reality, and given that the termcaps for old obscure terminals are less than perfect - maybe I should just write a screen/ tmux-like terminal emulation util. for physical terminals that just translates "standard" ansi escapes to whatever the terminal is capable of rendering per it's termcap. Using a terminal emulator on a physical terminal is a weird concept though. Also, one could argue that there isn't much standardized ansi, even among modern terminal emulators. There are plenty of escapes that are unique to xterm, or rxvt, vte, or whatever. So I still think that using curses would be preferable to hard-coding escapes. All that said, termcaps ARE a lot of work and a pain to write. It may perhaps be a good idea to write a util that translates termcaps to something like json/yaml/ <insert your favorite config format> and back again. And if someone wants to write a curses alternative, that is fine with me too - but please don't ditch the concept of checking for terminal capabilities/mappings. One invaluable resource in writing termcap files is terminal manuals, and unfortunately, for a lot the more obscure old terminals, these can be very hard to come by these days. Even online, bitsavers.org & archive.org only have a limited selection. I recently managed to find a manual for Honeywell VIP7800 terminals, which are similar to the one I have, so this has been a useful thing to have. Yet still, there are differences, and having the actual manual for my terminal would be even better. I'm in the process of digitizing the VIP7800 manual, it's a tedious process, but hopefully in the end I will have a PDF I can upload to archive.org/bitsavers - I will also (soon) add a =WANTED= section to my phlog with a list of manuals I'm looking for, and maybe I'll get lucky, and a kind soul will share with me one of their treasures. :)