Reading over the manuals for FOCAL-69 and -71, as well as U/W-FOCAL, I realize there is one bit of the workings that I can't find an explanation for.
FOCAL did not have string variables, so to allow "string like" handling the user could type in string values at ASK instructions and it converted that to a number. It also allowed you to type in "string like constants" with a leading zero. So one might...
1.10 ASK "TYPE YES OR NO",A
1.20 IF (A-0YES) 2.0,3.0,2.0
The user's input is converted to a numeric value in A, and then that is compared to a similar conversion of the constant, and then it jumps to group 3 if they did type YES and 2 otherwise.
Ok great, but precisely how does it do this conversion? I can't seem to find any description of what it does. I found a FOCAL interpreter in GitHub, but it appears to use the "letter value", A=1, M=13 etc., and I'm not at all sure that's what they used on the PDP-8. All that is mentioned in the docs is that an E will be interpreted as an exponent, such that "YES" will be interpreted as "Y to the exponent S".
Does anyone know how this worked? I suspect the answer is in this post, but I can't be sure which one of the options it might have used.
UPDATE: looking at the 6-bit codes, A is indeed 1 etc, so it appears it is using them? Is it likely they just stuffed them two-to-a-word until it hit the limit of a FP variable?
UPDATE 2: I've posted the working code here.