According to the spec:
3.5.3
In Versions 2 to 4, the alphabet table for converting Z-characters into ZSCII character codes is as follows:Z-char 6789abcdef0123456789abcdef current -------------------------- A0 abcdefghijklmnopqrstuvwxyz A1 ABCDEFGHIJKLMNOPQRSTUVWXYZ A2 ^0123456789.,!?_#'"/\-:() --------------------------
(Character 6 in A2 is printed as a space here, but is not translated using the alphabet table: see S 3.4 above. Character 7 in A2, written here as a circumflex ^, is a new-line.) For example, in alphabet A1 the Z-character 12 is translated as a capital G (ZSCII character code 71).
I interpret this as saying that character 6 in A2 is not translated using the alphabet table, but character 7 in A2 is translated using the alphabet table.
A later paragraph says this also applies for version 5, with the addition that the alphabet table can be replaced by the story file.
So, to the question:
When replacing the alphabet table in an Inform game, it’s easy to make the mistake of writing a circumflex for new-line, since you write this as a set of strings and circumflex normally translates to a new-line in a string, but these strings are special and writing a circumflex will indeed put a circumflex in that position. And, quite possibly, no one actually ever tries to move the new-line character in the table.
What do you suggest an interpreter should do here?
(a) adhere to the standard and print whatever is in position 7 in A2
(b) be nice to Inform games and assume that position 7 in A2 is a new-line
EDIT:
DM4 has an example of a replacement alphabet table where position 7 in A2 is no longer a newline but a digit.
If Windows Frotz discovers a circumflex in this position, it is printed as a newline. I don’t know yet if this only goes for circumflex.