Why is there runes in my Brüel & Kjær 2318 serial-printer? - Page 1
Forum section: electronics / testgear

author: FrodeM
author_rank: Contributor
timestamp: June 12, 2024, 10:07:24 am
content: Brüel & Kjær was in their old days known for well engineered test gear for acoustics and vibration measurements. Over the years, they have developed quite a few bits of kit within the field, and in the end of the 80s a little handful of these were computerized. In the midst of this, the 2318 graphics (thermal) printer was made, most commonly seen with a serial interface module for adding on-the-fly portable printing to this handful of their computerized test devices.It can be mentioned, it's not all proprietary. Even the plug is not your standard RS-232, the signal-levels are and the manual does tell how you can make a cable for hooking it up to regular RS-232. It also gives you a rundown of the command set you can use to do stuff like printing bar-graphs and the likes, including changing the character-set. The list of 11 built-in sets mentioned is pretty standard, from ASCII to various European localizations, Greek, Cyrillic, even Katakana.Yesterday, I decided to back up the ROM from my particular printer (I tend to do this with most of my lab gear just in case of future bit-rot), and had a brief look. Turns out my unit has an additional character set not mentioned anywhere else......Runes.Yes, runes. The old runes used in Scandinavia up until the middle-ages or so. It even seems like there has been an attempt at covering both upper and lower case for some of these, and I have to say.. When it comes to B&K I usually expect a lot, but this was far beyond what I could imagine! Unfortunately I don't know which command I need to use to select this, and disassembling the code is panful to say the least due to a lack of good disassemblers for the RCA 1805 (and other COSMAC series CPUs).(For reference, the version of the Firmware ROM is VP1915, other versions may differ.)

author: axantas
author_rank: Regular Contributor
timestamp: June 12, 2024, 05:25:37 pm
content: In the old times of computing, you had to switch your printer to the correct ASCII-character-set to get the output in the correct 128 available characters of the desired language. Your screen looks like the subsequent output of all the available characters - in the appropriate code-page. I also vaguely remember the (useless) runes, some manufacturers packed into an unused ASCII-code set - probably just for fun.

author: FrodeM
author_rank: Contributor
timestamp: June 13, 2024, 12:18:52 pm
content: Quote from: axantas on June 12, 2024, 05:25:37 pmThe screenshot is just a visual bitmap of the ROM data, so it's just the raw data that goes into building the codepages during runtime.Was there some particular standard for the codepages for these printers, or was it all up to the individual company to define their own sets and interfaces?Otherwise, after realizing the ROM has two pages for the same memory window, I was able to find the algorithm that selects the codepage used. For reference in case anyone want the info, it seems like the Runic codepage is added as a "Normal"-type page at the end of the documented list, using character set ID 'M' (4Dh). As such, it can for instance be selected to quick-swap table G1 with ESC+')'+'M' (1Bh 29h 4Dh).

author: axantas
author_rank: Regular Contributor
timestamp: June 13, 2024, 04:39:32 pm
content: Oh, we had a lot of fun with wrong codepages and weird characters in the text.Usually, one used CP 437 - the standard codepage for "IBM-Computers". It covered the U.S. needs and had almost all the european Umlauts. Then there was codepage 850, adding more useful characters, but not really acting the same way as CP 437. Windows used CP 1252.It could be that Brüel & Kjær replaced the Greek characters with the runes - acting as a subset of a codepage.... Tney were standardized however, because non-graphic printers just used the available codes for everything, also CR /LF (carriage return / line feed) etc. In certain cases, you also could redefine characters or combine codes, just the way, you describe. But very important: you had to switch the printer to the correct codepage first, as it only got the "number of the character".Apple however did have his onwn standard codepage, not far from 850, but it included - among others - an Apple as character F0.

author: FrodeM
author_rank: Contributor
timestamp: June 13, 2024, 06:36:50 pm
content: Ah, no, B&K did their very own thing most likely then.The standard is not CP-437, rather classic 7-bit ASCII. Then there is a dedicated set of overlay characters that will be swapped in on top of that for each other code-page supported. The whole table is in any ways always the 96 characters from 20-7Fh. 8-bit mode will just add another block of usually-escaped ctrl-codes and a second table of 96 characters.You can have 4 hot-swappable code-pages ready at any time, otherwise you need to use escape-sequences to ready them. In 7-bit mode you will be able to select one of those 4 to be active by a single ASCII Ctrl-char. In 8-bit mode it's the same but you have 2 active code-pages at the same time that can be individually handled.

author: Fungus
author_rank: Super Contributor
timestamp: June 14, 2024, 06:35:22 am
content: Runes are in Unicode but I never saw them in a code page before. Must have been somebody having fun at the company.You should dump it to a file for posterity.(or 128x128 GIF image)

author: FrodeM
author_rank: Contributor
timestamp: August 27, 2024, 01:35:49 pm
content: Ok, so I finally got hold of the LEMO to DSub serial-port adapter for this, and sure enough!0x40 is the older futhark, while 0x60 seems to be the newer futhark. Not every character in the same order as the list on Wikipedia, but pretty close.