30天自制操作系统day17

创建命令行窗口

创建一个带窗口的任务,需要在主程序中创建窗口,再通过参数传给这个任务的main函数。因为要处理窗口重叠关系等,需要在统一的地方进行管理。
如果有多个任务能够接受键盘输入,则应该创建一个变量key_to,表示输入到哪个任务中。
为了让每个任务都能够接受键盘输入,可以把FIFO放在TASK结构中。在主程序的for循环中,根据key_to的值将键盘数据传到指定的FIFO中。然后在这个任务的for循环中处理键盘数据。

特殊字符的输入

现在只能输入一般字符。如果是通过组合键输入的,如!@#¥%,需要自己判断。这里需要处理SHIFT键。使用两个keytable表,一个是不按shift时输入的,一个是按下时输入的。在FIFO处理中,记录左右SHIFT键的按下抬起状态,然后在发送字符时选用不同的keytable。
大写字母也需要处理。初始的大小写状态可以由BIOS获取,但是32位下无法使用BIOS,可以在一开始获得的binfo中得到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值