Ricci Lake's 'menu.lua' code is quite nice.
I was able to re-produce this behavior using the standard buffer settings (_INPUTBUFFERSIZE = 4000, _OUTPUTBUFFERSIZE=2000). The program lists entirely, but as the screen buffer fills past the limit, the top few lines of script are scrolled out of the buffer (by design).
After setting _OUTPUTBUFFERSIZE to 20000, the code lists completely and doesn't scroll out of the output screen buffer. Setting _INPUTBUFFERSIZE to 20000, the code lists completely using the EDIT() command and doesn't scroll out of the input screen buffer. Again, this behavior is by design. The reason these buffer size limits exist is to keep the screen highly responsive
One thing worth mentioning is that changing the values of _INPUTBUFFERSIZE or _OUTPUTBUFFERSIZE is not persistent between sessions. Perhaps you made the change, but completely shutdown and restarted iLuaBox, only to have the values revert to their default settings?
Persisting any value can be accomplished by adding code to your start-up script ('hello.lua' by default). You can also execute your own startup code by adding the following line to 'hello.lua':
dofile('yourcode.lua')