lv(1) が縦96行までしか広がらない問題

友人にそのことを話したら

  if( HEIGHT > LV_PAGE_SIZE * ( BLOCK_SIZE - 1 ) )
    HEIGHT = LV_PAGE_SIZE * ( BLOCK_SIZE - 1 );

というコードを見つけてもらった.ここに現れる定数は file.h で定義されている:

#define LV_PAGE_SIZE	32U		/* lines per page */

#ifdef MSDOS
#define BLOCK_SIZE	2		/* segments on memory */
#define SLOT_SIZE	1024U		/* file location pointers */
#define FRAME_SIZE	2U
#else
#define BLOCK_SIZE	4		/* segments on memory */
#define SLOT_SIZE	16384U		/* file location pointers */
#define FRAME_SIZE	4096U
#endif /* MSDOS */

つまり 32 * 3 = 96 行までしか使えないようにハードコードされていたという訳.さてさて,とりあえず定数を2倍に書き換えてビルドすることで当面の問題は避けられたのだが,根本的に動的にやるにはどうすればいいのかなぁ.けっこう大規模な書き換えが発生するようだ.MS-DOS対応とか知らんよ...
最後に言いたいのは,みんなもっと大画面使おうぜ.