Re: [问题] 组语写文书软件 极新手求指点

楼主: sj1973 (史考特)   2016-05-13 12:37:38
※ 引述《kamin17 (明罕)》之铭言:
: 近期老师出了个作业 是用组语写个简易文书软件
: 写到Enter功能时卡住了 目前有个想法是
: 先利用int 10h的03h抓取当前位置
: 然后写个循环 把后面剩下的每一格利用08h抓取ascii
: 在设定座标到下一行的最前面 并且用0EH印出字
: 但这样写似乎不太可行
: 目前如果在有字的地方再次输入 都会直接覆蓋掉
: 如果想要让他往后移动 概念是否和enter功能类似?
: 主要想要知道如何解决这问题..还请各位帮个忙!!
: 补:有个概念即可 我会想办法把它化为CODE!XD
第一: 我假设你在 dos prompt 下执行
第二: 我不清楚现在 bios 还有没有 support all int 10h function call, 改EFI后
很多legacy interrupt function call 都remove 掉了, int 21h m$ 也移除大部分call
我讲个概念..你参考参考
1. 你收到任何一个input key 应该找个 buffer 存
2. 处理buffer后, display 到 screen, 我印象 int10h 有可page切换, 不然就直接写
A800:0000
3. buffer 跟 screen 对应关系, 如 page, scroll bar 每一行的返回0x0d 0x0a 的关系
如你问题, 当user 按 enter, 你应该在 buffer 插入 \r\n or \r,
显示在萤幕就依照 buffer vs screen 的对应关系去填, 记得, 如果是文字模式下,
每一个字的位置都是在 a800:xxxx 都是固定位置, 当然你要用 int10h 去output 也可以
但要注意一点, 你的换行, 在萤幕要怎么显示!

Links booklink

Contact Us: admin [ a t ] ucptt.com