完成 fdmake 第一个版本
生成了 img 用 WinImage 打开正常。添加 FreeLdr 的 FAT.BIN 作为 BOOT,然后加入 FREELDR.SYS 和 FREELDR.INI 可以正确引导 FreeLdr 界面。
目前代码写的很凌乱,更有大部分内容没有完善,至于 Bug 可能不是一点点。呵呵。
但总归可以使用了。
生成了 img 用 WinImage 打开正常。添加 FreeLdr 的 FAT.BIN 作为 BOOT,然后加入 FREELDR.SYS 和 FREELDR.INI 可以正确引导 FreeLdr 界面。
目前代码写的很凌乱,更有大部分内容没有完善,至于 Bug 可能不是一点点。呵呵。
但总归可以使用了。
老妈弄了一桌子菜,一家人终于坐在一起吃饭。
三十没有在家过年,所以今晚我家才吃年饭。
(更多…)
浅浅晚上好像不在线,这段时间冷冷的。
想来都是自己的错,没有付出,那还能有什么呢?
(更多…)
又没有搞到机票,只好再次在火车上辗转回来。
这次是年后,比上次年前回来应该好些吧。
一晃弟弟都上班的第二个春节了。
我咧,第七个了~~
现在,又开始我的操作系统编码历程。
首先是 62 个字节的信息内容:
00000000: EB 58 90 ;jmp 58h nop 跳转到 0000005Ah (当前 02h + 58h) 然后一个空指令 00000003: XX XX XX XX XX XX XX XX ;OEM名称,8 个字符 0000000B: 00 02 ;200h = 512 扇区字节大小 0000000D: 01 ;每簇一个扇区 0000000E: 01 00 ;保留扇区只有零扇区 1 个 00000010: 02 ;默认有 2 个 FAT 表 00000011: E0 00 ;E0h = 224 根目录项目数 00000013: 40 0B ;B40h = 2880 扇区总数 00000015: F0 ;软盘类型 00000016: 09 00 ;FAT 占用扇区数 00000018: 12 00 ;12h = 18 磁道扇区数 0000001A: 02 00 ;磁头数 0000001C: 00 00 00 00 ;隐藏(坏)扇区数,新磁盘为0 00000020: 00 00 00 00 ;FAT32 使用 00000024: 00 ;MS-DOS 使用 00000025: 00 ;Windows NT 使用 00000026: 29 ;附加 BOOT 标志,29h 00000027: XX XX XX XX ;卷标序列号,双字 0000002B: XX XX XX XX XX XX XX XX XX XX XX ;卷标 11 字节,空格补零 00000036: 46 41 54 31 32 20 20 20 ;"FAT12 " 文件系统名称,空格补零 一点点缓冲字节(为与 FAT32 信息兼容而保留,可以不需要) 0000003E: 00 00 00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000050: 00 00 00 00 00 00 00 00 00 00 开头处的 jump 跳到此处开始执行 0000005A: XX XX XX XX XX XX ... 000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 代码只能到这里,零扇区(512 字节 200h)最后两个字节为 BOOT 标志 000001FE: 55 AA ;BOOT 标志 下面是第一个 FAT 表 00000200: F0 FF FF FF 0F 00 00 00 00 00 00 00 00 00 00 00 ... 000013F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 该 FAT 表大小为 1400h - 0200h = 1200h = 4608 对于 FAT12 每个项目 1.5 字节就是 4608 / 1.5 = 3072 项 需要注意的是 FAT 表第一个字节存放的是媒体信息,即软盘类型 与 0000:0015h 中存放的内容一样(F0h)。 为了保持 FAT12 表的一直性,附加了两个 FFh 字节。 那么,文件数据是用第三个簇 02h 开始。 内容为:FFFh-000h-...-000h 文件数据在第三个簇(02h)为 FFFh 没有后续簇。 从第四个簇开始均为 000h 表示空簇,未使用。 00001400: F0 FF FF FF 0F 00 00 00 00 00 00 00 00 00 00 00 ... 000025F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 这是备份 FAT 表,与上一个完全一样。 大小 2600h - 1400h = 1200h = 4608 下面是 ROOT 根目录项目,每个 32 字节 00002600: 54 45 53 54 20 20 20 20 54 58 54 ;"TEST TXT" 文件名,8.3 格式 0000260B: 00 ;文件属性 0000260C: 10 ;NT 保留 10? 0000260D: 07 ;文件创建毫秒 7 * 5 = 35 0000260E: D4 9E ;创建时间 9ED4h -> 1001 1110 1101 0100 -> 10011 110110 10100 -> 19:54:40(20*2) 00002610: 51 32 ;创建日期 3251h -> 0011 0010 0101 0001 -> 0011001 0010 10001 -> 2005(25+1980)/2/17 00002612: 00 00 ;最后访问时间 00002614: 00 00 ;第一个簇的高地址 00002616: DC 9E ;最后修改时间 9EDCh -> 1001 1110 1101 1100 -> 10011 110110 11100 -> 19:54:56 00002618: 51 32 ;最后修改日期 3251h -> 0011 0010 0101 0001 -> 0011001 0010 10001 -> 2005(25+1980)/2/17 0000261A: 02 00 ;第一个簇的低地址,即簇地址为 0000:0002h FAT 表显示无后续簇(FFFh) 0000261C: 0F 00 00 00 ;文件大小 0Fh = 15 字节 一个目录项完毕,下一个目录项 DirName[0] 为 00 表示是空项目 并且在其之前也没有其他的有内容的项目 00002620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... 000041F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 根目录项目共 4200h - 2600h = 1C00h = 7168 字节 = 224 * 32 下面是文件数据区,与 FAT 表对应,注意这是第三个簇(02h) 00004200: 54 68 69 73 20 69 73 20 61 20 74 65 73 74 2E 00 This is a test. 00004210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... 000043F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 第四个簇(03h)开始 00004400: F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 ... 00167FF0: F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 文件数据区大小为 168000h - 4200h = 163E00h = 1457664 = 2847 * 512 磁盘总计大小为 168000h = 1474560 = 2880 * 512 = 1.44M
一个 FAT12 文件系统软盘映象分为四个部分:引导扇区(零扇区),文件分配表 FAT,根目录项目,文件数据。
启动扇区是 BIOS 所需要的,位于文件系统的最开始部分,即第一个扇区。准确的说 BIOS 只要求扇区结尾两个字节为 55h 和 AAh 就确定该设备可以引导,并从扇区开头位置执行代码。
(更多…)
昨晚一回来就在折腾电脑,结果今早一开电脑,硬盘出问题,顿时头大。去找眼镜,结果镜架折了,再一弄,就断了。
没法子,只好去配眼镜。本来就没钱,还是花了四百块,好像比折断的眼镜便宜些。最庆幸的是眼镜度数没变高。
不管怎样,整天的心情就不怎么样了。发现自己很情绪化,一点点什么就会让自己想东想西。自己太容易被影响了。晚上只是妈妈回来为了眼镜罗嗦几句,都好烦好烦。
删掉了几篇日志,把关于自己的内容移到心情下面。
一个人从老家急匆匆的回到武汉。路上遇见好多花车,因为今天是情人节,阴历也是正月初六,好日子。特别是回乡的新人们,可以在老家招呼亲朋好友。
不过,天气倒是很坏。稀稀拉拉下了一天的雨,还愈来愈大。
好像这个年就是这样子的。两次回去,两次都在下雪。
而我咧。爸妈晓得浅浅的存在,回去以后就少了往年催我的惯例,多了些旁敲侧击。时不时被他们问上几句,我依旧往昔的迷糊混过。
大人们始终有他们的打算,最终还是被小舅妈逮住,说了一个晚上。好像曾经听人说过这样的经历,所以自己再遇到就晓得你不依从下这个意见,就没法子让你睡觉了。
口里是答应了,自己其实什么都不知道。连说的什么,现在也难得记起什么来。
好像从过年来,就和浅浅一点联系都没有了。。。
外面好大的雨,屋里就我一个人,电视机在客厅里响着。今年再也没有听没有情人的情人节。
今天是公元二○○五年二月十四日。
终于看完相聚一刻了,花了一个多月的时间看完了一部历时五年的爱情卡通剧。
对于五代那样的拖拖拉拉、那样的没用、那样的一无是处,自己也无话可说。
同一屋檐下整整生活了四年才看见春天的气息,第二年所送的圣诞礼物居然是前一年买下的。
其实从那时起,天平已经开始倾斜。但直到九十集,所看见的仍然是暧昧的相处。
所以,羡慕的是他们生活在一刻馆,有着三个好邻居(五代:--!),还有三鹰和小津江,以及八神这个小MM,正是她的敢爱敢恨,让响子做出了选择。
还有五代的年轻,可以很隐晦很隐晦的说上一句,等我大学毕业,找个好工作。响子也可以光明正大回答:请努力加油!
🙂 突然想起来,响子再结婚的时候,正好二十七岁吧。呵呵。
BTW: 昨天是 Sheth 的生日,再两个月就是浅浅的生日了。
好像和11.11相对的日子。
有点不真实的感觉。
和浅浅真的恋爱了么?