why does the VMS port need its own versions of the curses functions in cbreak.c and getch.c? files.c needs two restore_screen() calls to work properly? clear_screen() in shell_out() after return from spawned process does not clear screen properly? if is only included in files.c, and errno is defined in externs.h, then there is a 'psect' problem with errno? ESCAPE is defined as Control-Z for compatibility with the VMS Moria versions, but this is not documented anywhere, note the define for ESCAPE in constant.h ! and $ commands are aliases, but this is not documented curses puts vtxxx keypad into application mode, inkey() has some code to convert keypad escape sequences back into numbers, this code may cause strange behaviour if someone types a real ESCAPE character, why does curses put the keypad in application mode in the first place? refresh() and clear() do not seem to work right, note the contorted code in inkey() and clear_screen() to make these work right