本文是《30天自制操作系统》的笔记记录。
笔记
指令处理的扇片区,范围在0x01 ~ 0xFF(指定0x02以上的数值时,要特别注意能够连续处理多个扇区的责条件,如果是FD的话,似乎不能够跨越多个磁道,也不能超过64KB的界限)。
一般向一个空软盘保存文件时:
- 文件名会写在0x002600以后的位置。
- 文件的内容会写在0x004200以后的地方。
设置显卡模式
- AH=0x00
- AL=模式:
- 0x03:16色字符模式,80×25
- 0x12:VGA图形模式,640×480×4位彩色模式,独特的4面存储模式
- 0x13:VGA图形模式,320×200×8位彩色模式,调色板模式
- 0x6A:拓展VGA图形模式,800×600×4位彩色模式,独特的4面存储模式(有的显卡不支持这个模式)
- 返回值:无
VRAM指的是显卡内存(Video RAM),也就是用来显示画面的内存。这一块内存当然也可以像一般的内存一样存储数据,但VRAM的功能不仅限于此,它的各个地址对应着画面上的像素,可以利用这一机制在画面上绘制。
bootpack.c变成机器语言的过程:
使用cc1.exe从bootpack.c生成bootpack.gas
cc1是C编译器,可以将C语言程序编译成汇编语言源程序,这个编译器是作者从gcc改造而来,而gcc是以gas汇编语言为基础,输出的是gas用的源程序,不能翻译成nask。
使用gas2nask.exe从bootpack.gas生成bootpack.nas
gas2nask将输入的gas源程序转换为nask文件的程序。
使用nask.exe从bootpack.nas生成bootpack.obj
使用obi2bim.exe从bootpack.obj生成bootpack.bim
使用bim2hrb.exe从bootpack.bim生成bootpack.hrb
使用copy指令将asmhead.bin和bootpack.hrb单纯结合起来,生成haribote.sys
映像文件是什么?磁盘映像也是一种映像文件,据本书作者的理解,映像文件即并非文件本身的状态,而是一种替代形式。英文中说到image file,一般是指图像文件,首先要有一个真实的东西,而它的图像是临摹仿造出来的,虽然很相似,但毕竟不是一样东西,只是以不同的形式展示出原物的映像。
函数名HariMain非常重要,程序就是以HariMain命名的函数开始运行的,这个函数的名字不可更改。
(待续。。)