入门部分(单控制台):
详细概念:
计算机开机是,视频模式VGA模式,就是80*25文本模式,在这种模式下显存大小是32KB 占用范围是0XB8000~0XBFFFF.每两个字节代表一个字符.其中低字节代表字符的ASCII码,高字节代表代表字符的属性!
一个屏幕总共可以显示25行,每行80个字符,总共4KB

寄存器的操作:
VGA系统有六组寄存器,只有0x3D5一个端口可以操作!
操作方法:
先向Address Register写入索引值(端口0x3D4)
再通过操作0X3D5进行操作!
例如:
out_byte(0x3D4,索引值)
out_byte(0x3D5,值)

终端程序运行原理:
轮询每个输出终端,如果当前输出终端对应输入终端,则从键盘缓冲区读取数据并显示!

业务流程图:
输出终端任务示意图

代码实现部分:
输出终端程序示意图.png

功能解说:
函数task_tty:
1:初始化键盘
2:初始化终端变量

如果当前输出终端编号则读取键盘缓冲区,并输出到当前终端

进阶部分(多控制台):
设计逻辑:
1:多输出终端在初始化时首先得考虑显存的划分:根据显存大小,划分出每个终端初始地址和大小!
2:切换控制台函数
3:同时输出函数得计算出输出终端显示的位置,如果是回车键则光标移动到下一行,退格键把光标移动到上一个位置并在那写一个空格!