============= Color mode || ============= It seems that it's up to the curses library to decide if a program may or may not use color. For example, ncurses on NetBSD refuses to allow Frotz to run in color mode, even when color mode is forced. Frotz and the program it's running think color is being emitted, but ncurses won't allow it. On the other hand, NetBSD's standard curses library (1.6 and later) will let colors be seen. ======================================= Ctrl-Space causing Bogus ZC_TIME_OUT || ======================================= Under ncurses, getch() will return OK (defined to 0 ) when Ctrl-@ or Ctrl-Space is pressed. 0 is also the ZSCII character code for ZC_TIME_OUT. This causes a fatal error "Call to non-routine", after which Frotz aborts. This doesn't happen with all games nor is the crashing consistent. Sometimes repeated tests on a single game will yield some crashes and some non-crashes. When linked with ncurses, we must make sure that unix_read_char() does not return a bogus ZC_TIME_OUT. This returning of 0 appears to be abnormal behavior peculiar to ncurses, so an #ifdef is used to enable the fix only if ncurses is being used. Alembic's fix didn't have this #ifdef and so it broke NetBSD's newly-updated curses library. ======================= Bug-testing Programs || ======================= Unix Frotz now comes with crashme, TerpEtude, gntests, strictz, and Unicode Test. These are intended to excercise the interpreter and verify that it is functioning according to spec. You will find these programs in the src/test/ directory. ================== Screen Resizing || ================== There are some significant problems involved in getting screen resizes (as in resizing an xterm) to work correctly at least with Frotz's implementation of the Z-Machine and probably the Z-Machine standard itself. For this reason, I have not implemented screen resizing for Frotz. I know that some zcode interpreters are able to deal with resizes somewhat gracefully, but I haven't seen one yet that will handle some weirder situations. Infocom's "Border Zone" and "Beyond Zork are especially troublesome for doing resizes. Nitfol seems to have the best handling of screen resizes. Since it uses the Glk library, I'm inclined to think the Glk library is at least partially responsible. If you have any other ideas on how to cleanly resize screens, I'd like to hear them. The Z-Machine seems to assume that when the screen dimensions are set, they will never change over the course of the game, even across saves and restores. For some reason, saves include screen dimensions and I've yet to discover how to override the Z-Machine from setting its dimensions to the saved ones instead of how the current screen really is. When the Z-Machine was first defined by Infocom, this made sense since terminal screens rarely, if ever, changed their dimensions and few people were assumed to trade saves across platforms. ===================== Arrow Key Handling || ===================== Not really a bug, but an idiosyncracy. In "Journey", sometimes you can't use the right-arrow key to move from the "party commands" menu to the "individual commands" menu. IMHO, this is a bit sloppy, but it isn't Frotz's fault. Instead, use the spacebar to jump from menu to menu. I mistakenly attributed this to an unknown bug. That'll teach me to do bugtesting when I'm about to nod off to sleep. =================== Other Known Bugs || =================== Sound flag is not being set properly.