30天自制操作系统(27)
DAY27_LDT与库1. 先来修复bugbug:用nsct命令运行的应用程序,无论是按Shift+F1还是点击窗口的”x”按钮狗没有反应。task_run(task, -1, 0);
DAY27_LDT与库1. 先来修复bugbug:用nsct命令运行的应用程序,无论是按Shift+F1还是点击窗口的”x”按钮狗没有反应。task_run(task, -1, 0);
DAY26_为窗口移动提速1. 提高窗口的移动速度(1)导致窗口移动速度慢的原因有很多,其中之一就是sheet_refreshmap的速度太慢。这个函数在sheet_slide中被调用了两次,如果能提高它的速度效果应该会很明显。 2. 提高窗口的移动速度(2)
DAY25_增加命令行窗口1.蜂鸣器发声蜂鸣器发声EDX=20 EAX=声音频率(单位是mHz,即毫赫兹)例如当EAX=4400000时,则发出440Hz的声音频率设为0则表示停止发声
DAY24_窗口操作1.窗口切换(1) 目标:实现切换窗口顺序得功能。 先实现按下F11时,将最下面得那个窗口放到最上面。
DAY23_图形处理相关1.编写malloc如果api_malloc只是调用操作系统中的memman_alloc,并将分配到的内存空间地址返回给应用程序的话,是行不通的,因为通过memman_alloc所获得的内存空间并不位于应用程序的数据段范围内,应用程序是无法进行读写操作的。如果应用程序在不知情的情况下执行了读写操作,将会产生异常并强制结束。
DAY22_用C语言编写应用程序1.保护操作系统(5)问题:在定时器上做手脚,光标闪烁变得异常缓慢,任务切换的速度也会变得缓慢。[INSTRSET "i486p"] [BITS 32] MOV AL,0x34 OUT 0x43,AL MOV AL,0xff OUT 0x40,AL MOV AL,0xff OUT 0x40,AL ; 上述代码的功能与下面代码相当; io_out8(PIT_CTRL, 0x34); ; io_out8(PIT_CNT0, 0xff); ; io_out8(PIT_CNT0, 0xff); MOV EDX,4 INT 0x40
DAY21_保护操作系统1.攻克难题——字符串显示API 我们需要在API中做个改动,使其能够将应用程序传递的地址解释为代码段内地址。
DAY20_API1.程序整理目标:实现由应用程序对操作系统功能的调用(即API,也叫系统调用)。 2.显示单个字符的API(1)目标:显示单个字符的API。
DAY19_应用程序1.type命令 在Windows的命令行中,有一个叫做type的命令,输入“type 文件名”就会显示出文件的内容。
DAY18_dir命令1.控制光标闪烁(1) 在Windows中,只有可以接受键盘输入的窗口有光标闪烁,而其他的窗口中是不显示光标的。 对HariMain进行改写