□ driver 有关 MudOS 的版本: 早期的 MudOS 是以 0.9.xx.xx 来标明的,自从 0.9.20 以後全面改为 v20.xx 前面的数字代表 major version,後面的数字代表 minor version,alpha/beta 版则在後面加上 a 或 b 及版本数字。 测试版的 driver release 的速度相当的快,大约每一至二星期就 会有新的版本,所有有关 MudOS driver 的讨论,公告事项都可以在 Idea Exchange 里找到 (ie.imaginary.com 7890)。一般来说, alpha 版的 driver 都有些新增的功能,而 beta 版则多半是 bug fix,所有新增或修改的相关 资料都可以在 ChangeLog.* 中查到。driver 的原始程式码可由 ftp.imaginary.com 取得,路径为 pub/LPC/servers/MudOS。 Compile driver: A. options.h 参考 mudlib release 的 options.h 修改,因为每版 driver 所附的 options.h 都不相同,所以不要直接 copy 盖过去,花点时间一项一项比对。该 #define 的 define,该 #undef 的 undef。 B. driver 中文化修改: 适用於 0.9.20.xx 到 v22a22 之间的版本,位置跟档案大小可能有些差异, 不过原理相同。 注:ES2 mudlib 已知可以在 v21c2,v21.6,v21.7b6,v22a22 等版本之 driver 上使用,理论上来说 0.9.20 之前的 driver 不能用来执行 ES2 mudlib,有关其他 mudlib 的相容性请参考该 mudlib 所附之文件。 1. 在 comm.c 找到以下 function: static void telnet_neg P2(char *, to, char *, from) { . . <省略> . . default: if (ch & 0x80) { ——┐将这三行删掉以後就 driver 就可以 continue; │输入中文了... } ——┘ . . <省略> } /* telnet_neg() */ 2. 在 ed.c 中找到以下 function: static void prntln P3(char *, str, int, vflg, int, len) { . . <省略> . . if (*str < ' ' || *str >= DEL) { ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 改成: ((*str < ' ') && (*str >='\0')) switch (*str) { case '\t': /* have to be smart about this or the indentor will fail */ *line++ = ' '; while ((line - start) % 8) <--- 8 改成 4 . . <省略> . . } C. 执行 build.MudOS (v21 之後, 之前的版本请跳到 D) 直接执行 build.MudOS,该程式会自动去测试你的系统并帮你设好 makefile。 执行完毕後跳到 E。 D. 修改 makefile 如果你用的是比较旧的版本 (如v21c2),请直接修改 makefile (如果用 gcc, 修改 GNUmakefile。注: 如果你是用 linux,因为 linux 的 cc == gcc, 请 直接改 GNUmakefile)。 E. 执行 make,或是 make install (系统自动安装) compile 好後应该会有个 driver 和 addr_server 的 binary。有关 addr_server 的功能及用法请参考相关文件。有关 driver 档的执行也请参考相关文件。 其他: 如果你在 compile 好 driver 後又修改 driver 程式的任何一部份 (options.h, 或是其他 .h, .c 档) 请重新 make. (建议你在 make 之前先执行 make clean, 把旧的 object 档清掉)