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対応とか知らんよ...
最後に言いたいのは,みんなもっと大画面使おうぜ.