摘要: harib09a: 定时器:(Timer)每隔一段时间,会向CPU发送一个中断。这样CPU不用记住每一条指令的执行时间。没有定时器很多指令CPU都很难执行。例如HLT指令,这个指令的执行时间不是个固定值,没有定时器,CPU就不能执行这个指令 -PIT-: 可编程的间隔型定时器(Programmabl 阅读全文
posted @ 2016-08-25 08:51 Just-Live 阅读(1380) 评论(0) 推荐(3) 编辑
摘要: harib08a: 鼠标的显示问题:我们可以看到,鼠标移到窗口最右侧之后就不能再移动了,而WIN中,鼠标是可以移动到最右边隐藏起来的。怎么办?把鼠标指针显示的范围扩宽就行!我们来修改一下HariMain来解决这个问题 harib08b: 我们发现图层到了画面外,就会出现问题。这里我们一起来吧shee 阅读全文
posted @ 2016-08-24 19:09 Just-Live 阅读(6470) 评论(0) 推荐(2) 编辑
摘要: harib07a: 整理内存管理函数:memman_alloc和memman_free能够以最小1字节进行内存管理,但时间久了后,容易产生外部碎片;为此,笔者编写了一些以0x1000字节为单位进行内存分配和释放的函数,它们会把指定的内存大小按照0x1000字节为单位向上舍入(roundup),0x1 阅读全文
posted @ 2016-08-23 20:09 Just-Live 阅读(1384) 评论(0) 推荐(2) 编辑
摘要: harib06a: 在昨天的最后一部分,我们已经变成了32位的模式,目的就是希望能够使用电脑的全部内存。 虽然鼠标的显示处理有一些叠加问题,不过笔者为了不让我们感到腻烦,先带我们折腾一下内存 这里笔者有把bootpack.c文件做了整理: 我们可以看到,把不同的函数有封装到了不同的源文件中。hari 阅读全文
posted @ 2016-08-22 20:14 Just-Live 阅读(888) 评论(0) 推荐(1) 编辑
摘要: harib05a: 鼠标解读(01)P145 前一天已经让鼠标成功接收数据了,这些数据是什么意思? 笔者在这一部分来解读数据:让鼠标动起来啊,停在那不动有什么意思啊! 前面已经知道,鼠标每一次动作都是3个字节数据,为什么是3个。想想也知道:两个坐标,一个状态 看了上面的代码,细心的肯定会发现一个问题 阅读全文
posted @ 2016-08-19 22:23 Just-Live 阅读(781) 评论(0) 推荐(0) 编辑
摘要: harib04a: P126 获取按键编码; 让程序在按下键盘的键之后,将键值编码显示出来 修改的是前面编写的鼠标按键的处理键盘中断的函数inthandler21() 这里笔者介绍了怎样把中断号告诉CPU: 1、计算0x60+IRQ号码 2、把结果输出给OCW2寄存器 3、具体方法:调用io_out 阅读全文
posted @ 2016-08-19 20:54 Just-Live 阅读(1754) 评论(0) 推荐(1) 编辑
摘要: harib03a: 内容没有变化 ;P109 从这里开始,代码开始工程化了. 将原本300多行的bootpack.c分割成了三部分: graphic.c : 用来处理界面图像 dsctbl.c : 用来处理中断和段表(GDT,IDT)等 bootpack.c : 和后面的bootpack.h文件一起 阅读全文
posted @ 2016-08-18 21:33 Just-Live 阅读(1210) 评论(0) 推荐(3) 编辑
摘要: //bootpack.c 完整代码 #include <stdio.h> void io_hlt(void); void io_cli(void); void io_out8(int port, int data); int io_load_eflags(void); void io_store_e 阅读全文
posted @ 2016-08-17 20:54 Just-Live 阅读(1049) 评论(0) 推荐(0) 编辑
摘要: harib01a: P65 用C语言实现内存写入 实现一个往黑画面上写入东西的函数 修改了naskfunc.nas中的内容 在bootpack.c中 用write_mem8()函数将VRMA中全部写入了15 显示的全部像素的颜色为第15种颜色(白色)可以试着修改 harib01b: P67 显示条纹 阅读全文
posted @ 2016-08-17 20:52 Just-Live 阅读(1110) 评论(0) 推荐(1) 编辑
摘要: harib00a: 添加的部分从P46开始,制作IPL准备开始从磁盘装载程序了 笔者讲解了软盘的驱动的构造,以及汇编语言读取软盘的方法 harib00b: 这一部的目的主要是试错 P51 软盘是很不可靠的存储设备,有时候会发生不能读取数据的情况 改良后的程序就是这一部分 在重新读盘之前添加了系统复位 阅读全文
posted @ 2016-08-17 20:49 Just-Live 阅读(1716) 评论(0) 推荐(0) 编辑