41 halfnut character question


The LCD drivers in the "Halfnut" versions of the HP-41 series added 32 new characters to the displayable character set, though unfortunately HP did not revise the mainframe ROM code to give access to those characters, so they could only be displayed by custom microcode.

The characters were shown in the CHHU Chronicle Volume 2 Number 4 Page 11.

It is obvious what many of the characters, such as the lower case Roman alphabet, are supposed to be. Some are probably intended to be Greek characters, such as:

110 lower case pi
111 lower case alpha
112 lower case beta
113 lower case gamma
115 lower case sigma (non-word-final)
117 upper case gamma
11e lower case lambda
13c lower case delta

The one that's completely baffling me is code 114 (sixth row, fifth column). Does anyone have a guess as to what that is supposed to represent?

There are suitable Unicode code points for almost all of the 41 characters other than the "hangman" series, although any given font may not include them. For instance, the "alpha append" character (which I usually refer to as "lazy T", is approximated pretty well by Unicode point 22a2, "right tack". Even the left- and right-facing geese are vaguely similar to 2977 (leftwards arrow through less-than) and 2b43 (rightwards arrow through greater-than). Close enough for government work, anyhow.

I'm using DejaVu Sans Mono for a project, and am disappointed that it does not have 2221 "measured angle", which would be suitable for the HP-41 angle character.

I'm not trying to create a font that looks like the HP-41 14-segment display, as Luiz Vieira has already done a great job of that. Rather, I'm trying to put together a monospaced sans-serif font that has representations of the 41's special characters in a style to match a conventional font. I'm struggling through editing a TrueType font with Fontforge, which seems like a good program but I haven't yet mastered it. If anyone here is interested in helping with my little project, please send me email. The fruits of these labors will be demonstrated at the upcoming HHC 2011 conference.


111 lower case alpha

This is more than a bit of a stretch isn't it?

The one that's completely baffling me is code 114 (sixth row, fifth column). Does anyone have a guess as to what that is supposed to represent?

No idea :-(

It kind of fits the "hangman" scheme of the characters following although not very well.

- Pauli


The one that's completely baffling me is code 114 (sixth row, fifth column). Does anyone have a guess as to what that is supposed to represent?

I am looking at the LCD character table on page 108 of Ken Emery's "MCODE for Beginners" and assume that code 114 represents a lower case delta. This assumption is nurrished by the observation that lower case "a, b, c, d" are just one row above, and "a, b, c" are in-line with lower case alpha, beta and gamma.
However, code 114 resembles more a downwards directed satellite dish than delta :-)

Well, this is only my impression I get when I look at the said table. As long as we don't ask the author of this character set, the interpretation of some signs will remain speculative.

An idea would be to look at the Quick Reference Card for Synthetic Programming. There, all characters are depicted which were ment to be represented by the HP41 (via a printer). So, some characters may be ruled out, others may give an idea for which they stand in the LCD display.


Using code 114 for lc delta would make sense, but 13c looks far more like a lower-case delta, and it doesn't seem like they were too worried about having codes in order.

The suggestion of looking at the printer character set is a good one. I thought of that just after turning off my computer this morning.

I think my guess of 113 as lower case gamma, which was partially based on order, is probably wrong. Now I think that was supposed to be a lower case tau, since the 82143A also has a lower case tau, but not a lower case gamma.

While the 82143A does have an lc alpha, maybe 111 is intended as an uc delta, despite its diminutive size. But I'm still inclined to think of 111 as an ls alpha, because the 14-seg could do a much better uc delta, e.g., by taking the greater than (13C) and adding the two rightmost segments. I guess that would look like an italic uc delta.


Many characters in this set require a lot of phantasy, see e.g. lower case x which could compete as pi as well. And I find no reason why particular characters are featured twice, especially the hangman stuff. But anyway, looking for Greek letters, IMHO there are (may be) Alpha (001), beta (112) and Beta (002), Gamma (117), delta (13C) and Delta (111), epsilon (13B) and Epsilon (005), Zeta (01A), Eta (008), Theta (038), iota (129) and Iota (009), Kappa (00B), lambda (11E), mu (10C) and Mu (00D), nu (136) and Nu (00E), omikron (12F) and Omikron (00F), pi (110), rho (130) and Rho (010), sigma (115) and Sigma (10E), tau (113) and Tau (014), Ypsilon (019), no phi, Chi (018), and neither psi nor omega. Some of them coincide with some Latin letters. FWIW


One of the mysteries of the new halfnut characters is why there are duplications of some between row 10x and row 11x, rather than having even more new characters. I think I've figured that out. Obviously they didn't want to change any of the original characters, so that the existing mainframe ROM code would work unchanged (without supporting the new characters). However, they also wanted to be able to use the new characters with only a minor ROM change, though unfortunately they never actually put that ROM change into a product.

The relevant ROM code is in the last quad (2c00-2fff) at the lable "mask", using the table "asctbl" of special characters at 2c00. asctbl is indexed by the LCD character code minus 0x100, and the contents of each entry are the "41-ASCII" character code to be mapped to that LCD code.

By changing the "mask" code to map ASCII 0x60-0x7f to LCD 0x120-0x13f, they deal with all of the lower case characters, as well as high-t, uc sigma, and lazy-t. That frees up seven slots in asctbl, and those are the same seven positions that are filled with new characters if the specials come from 0x110-0x11f rather than 0x100-0x10f, while the remaining slots in 0x110-0x11f have characters matching 0x100-0x10f so that the nine unchanged entries in asctbl would still work.

I studied the "mask" code back in 1985 when the CHHU article showing the halfnut character set appeared, and back then I thought I'd come up with a patch that would enable all of the new characters while fitting entirely in the original space occupied by the mask routine. However, either I was mistaken or I was more clever back then, because now I can't find a way to do it that doesn't require using up a little bit of ROM patch space elsewhere. There's a little bit of patch space left near the end of ROM 2 (even in the 41CX) that could be used for this purpose.

It's a shame that there's no easy way to use Monte's NEWT processor (41CL upgrade) in a halfnut, as that would allow the mainframe ROM to be patched to support the new characters.

Edited: 23 Aug 2011, 2:11 p.m.

Possibly Related Threads...
Thread Author Replies Views Last Post
  Non-Prime question alert: Hp-41 and synthetic instructions Marcel Samek 11 1,150 11-04-2013, 09:31 PM
Last Post: sjthomas
  Killed my 41-CX Halfnut aj04062 7 702 07-10-2012, 07:47 PM
Last Post: Luiz C. Vieira (Brazil)
  hp 41 series wire-wrapped connector question. Matt Kernal 3 431 06-19-2012, 01:48 AM
Last Post: Luiz C. Vieira (Brazil)
  Re: HP-41 Navigation PAC question Timo 0 217 02-27-2012, 04:06 AM
Last Post: Timo
  HP-41 Navigation PAC question Diego Diaz 7 602 02-24-2012, 12:09 PM
Last Post: Dave Shaffer (Arizona)
  35s prompt for multi-character variables in program like "low footprint" root finder Chris C 8 802 02-14-2012, 06:52 PM
Last Post: Chris C
  HP-41 NUT Assembler question MichaelG 6 581 02-14-2012, 03:35 AM
Last Post: MichaelG
  HP-41 printer interface question. (To the M-code gurus out there) Diego Diaz 2 371 01-29-2012, 12:18 PM
Last Post: Diego Diaz
  41-MCODE Question Ángel Martin 3 373 10-10-2011, 05:03 PM
Last Post: Eric Smith
  41 MCODE Question - Page #4 Library Ángel Martin 5 515 07-30-2011, 11:16 PM
Last Post: Eric Smith

Forum Jump: