About the DELAY Inf -"bug" The problem with infinite DELAY reported by George C. Bell in V1N3p31 is not caused by a bug, but an intentional feature of DISP: When carriage return is sent to the display (DISP without trai- ling comma or semicolon), execution is suspended until either the delay period elapses or a key is pressed, whichever happens first. In the latter case (which is the only possibility when delay is infinite) the key is not discarded but put in the buf- fer, where it will be found by the next instruction reading the keyboard (like INPUT or KEY$), unless the buffer is flushed first. This allows one to "type ahead", i.e. start answering a prompt you know is coming because you're running the program the zil- lionth time, without waiting for the instructions or whatever that are being displayed for the benefit of new users. This can be quite useful, and I for one certainly hope HP won't fix that "bug" so that this feature is lost. It is often desirable, in particular in programs that should work with different system setups, not to set DELAY in the program but rather leave it up to the user to set it according to his pre- ference. For example, while DELAY Inf might be convenient when you have to write results down from the LCD, it could be a real nuisance with a video interface (then DELAY 0 would be better). Possible solutions: (1) Follow each DISP with K$=KEY$ and discard the key (presumably pressed to continue execution after it hung in the display). You might also test what key it was, and e.g. PUT it back if it wasn't . (2) Flush the key buffer explicitly before each INPUT or after each DISP. This is best done by POKE "2F443","0" (make a SUB of it!). The key buffer will also be flushed bu DISP whenever the character scroll rate is neither zero nor infinite; this is how George's solution works. (The DELAY 0 statement does change the delay rate immediately, but it won't flush the key buffer; only the DISP does that.) This is foolproof, but the type-ahead fea- ture is completely lost. (3) Explicitly test if the INPUT has been aswered by only. With strings test LEN: 100 INPUT X$ @ IF NOT LEN(X$) THEN 100 With numeric input ON ERROR can be used: 100 ON ERROR GOTO 110 110 INPUT X @ OFF ERROR I think (3) is the best way, as long as alone is not acceptable as input (in particular this means default string can't be used). In that case (2) might be used. Tapani Tarvainen [337] Kiljanderinkatu 2 A 7 SF-40600 JyvÌskylÌ Finland