回来了

一个字,累。
何况今天还做了一整天的事。
照了好多PP,可是自己的没有几张。
风景最多,然后就是华华丹的,她的相机里面居然没几张我的,哎~~~

出去旅行

一早同事就在说,疯子你今天好没有精神啊!?我才意识到我不管怎样都无法掩盖住自己心情的。
而且自个属于那种很慢很慢的角色,常常会在事情发生很久很久之后才一点一点的表现出来。
下午的时候,所有的同事都回家清理东西去了,仅仅留下我一个人在做事。
偌大的一个仓库,就是我趴在那里睡觉。除了睡觉等待,我无事可作,真真正正的没有一点精神。
而到了晚上睡觉时,才明白自己不是第一次这样失落。翻来覆去想了好久,爬起来写这篇日志。
想来想去,我从头到尾就是在害怕这种状态的发生。但是,怕归怕。它还是发生了。
也许是我彻头彻尾的忧虑、柔弱、疑心、胆小,太过于小心翼翼的保护自己。
明天晚上,暂时的离开这个城市。工作什么的都暂时的被踢开。
回来后,我还有我的 ANOS 要做,还有 ReactOS China。这次,我必须继续做我“应该(?)”做的事情。

另,写给看这篇日志的人:麻烦忘记你刚才看见的,包括我自己。

Subversion of ReactOS

svn 是最新版本的协作开发软件,cvs 的下一代。
ReactOS 从 2004 年底开始使用 svn 服务器地址为:svn://svn.reactos.com
在 SVN 主页 http://subversion.tigris.org/ 下载 Windows 版本,压缩包或者安装版都可以。
完了,最好将 svn 的 bin 目录加入 PATH 环境变量:SET PATH=%PATH%;C:svnbin
然后,在命令行,CD 到准备下载源代码的目录
svn checkout svn://svn.reactos.com/trunk/reactos ros-svn
这样就可以将当前开发版本的 ReactOS 源代码下载到 ros-svn 目录。
由于网络速度的限制,而目前源代码有两三百兆大小,直接 svn checkout 很可能需要三到五个小时。
所以在 www.sf.net 下载 ReactOS 的最新发布的源代码包,然后进入目录直接 svn update 会快很多。

安装 FreeLoader 到硬盘

折腾了一晚上,把原先 D 盘的东东移到 E 盘,E 盘和 F 盘合并。然后格式化 C 盘为 FAT32,再将 Windows 装在 D 盘。
完了之后, cvs co reactos & make install 将 ReactOS 安装到 C:ReactOS 花了三四个小时时间。
最后,将偶的中文版 FreeLoader 安装:freeldrinstallinstall C: fat32 复制 freeldr.sys freeldr.ini 和 chs16.fon 到 C: 根目录下。
install C: fat32 的时候,会备份一个 C:BOOTSECT.000 文件(如果文件存在,依次增加为 .001 .002)。这个文件建议复制为 C:WINBOOT.BIN 而且 attrib +S +H +R 保护。
然后需要修改 FreeLdr.ini 在 [FREELOADER] 段设置 DefaultOS=MSWindows 显示信息不要了,TimeOut 随便设置。
[Display] 段根据中文显示需要 DisplayMode=NORMAL_SIMTEXT 另外 Language=Chinese Simplified
[Operating Systems] 段增加 MSWindows=”M$ Windows”
最后增加 [MSWindows] 段:BootType=BootSector BootDrive=hd0 BootPartition=1 BootSectorFile=WINBOOT.BIN 就 OK 了。
如果遇到紧急情况,可以在 FreeLoader 里面按 F8 键,选择自定义启动,然后选择启动扇区代码文件启动,参数跟上面叙述的一直。
如果遇到系统文件损坏了,只有重新安装的说。。。

基本完成了 FreeLoader 的中文版

捡了一天的字符串,累死了。
特别是有些字符串是几层调用后再给 UI 显示,得仔细看代码才晓得是否要捡出来做国际化。
烦人的英文制表线字符只是简单的处理,保证它的显示,但很容易误伤中文字符。
最后,没有完全的测试。只是一直在 QEMU 模拟器里面运行。

to Sheth: 奇怪的事情

无聊,挂 popo 就看见有人在线的说。
居然发消息过来,一看,顿时吓了一跳。
他问我 Sheth 现在好不好?怎么打她电话打不通?
天啊,真是可怖!
偶只好回复说帮忙问一下。
呵呵,自己都 N 久没和她联系了。

病了,ANOS 暂停一阵子

v0.06 大概要到下个星期一吧。这个周末休息一下下。
有点点发烧的原因应该是晚上没有睡好,又起来的蛮早。
今天上午去仓库扒了一会粮堆,挖测温电缆线,出了点汗。
中午的时候坐在电脑前不知不觉就睡着了。
感觉这几天过的好快。整天都在忙碌,不停的在做事、工作,不停的在写代码、差错。
晚上睡觉都有点不安神了,眼睛有点涨疼,腰很酸。
每天在巴士上面都迷糊糊的,喝了不少咖啡。
总觉得有好多好多事要做,好多代码要写,好多功能要实现。总是在想着这些东西。

解决一个两年前的 Bug

现在好像整天都在找 Bug。。。
主要是因为目前的工作基本是把以前我在 Lingix 中写的代码移植到 ANOS 中来。
所以今天就解决一个那时遗留下来的 Bug 当时的一个 ??? 注释:
Lingix/driver/keyboard.c 的 kbd_getkeyqueue() 函数。
究其原因,是因为编译时使用了优化,一般优化和 inline 内嵌函数优化一起造成的。
而让优化器做出错误优化的原因是 keyboard.c 是中断服务程序。
中断服务程序中使用的变量会被随时(因为中断触发)而改变值。
而优化器认为这些值在已知程序段不会改变,直接优化掉了一些比较跳转操作。
这些关键的比较跳转没有了后,形成了一个死循环。
要解决这个问题,就应该使用 C 关键字 volatile 来声明这些变量,告诉编译器(优化器)这些变量会因为外部因素(中断调用时)而改变,对其优化有限制。
这样,优化器就不会优化掉那些比较跳转,而是老老实实的一一执行。
死循环也就不会产生。Bug 也随之而去。。。