[英]text editor in c using video memory
我正在使用C創建文本編輯器。你能解釋一下這些宏嗎?
#define Ad (unsigned char far *)0xb8000000
#define Pos(y,x) (2*((y)*80+x))
#define Write(y,x,ch) *(Ad+Pos(y,x))=ch
#define WriteA(y,x,fb) *(Ad+1+Pos(y,x))=fb
回到控制台程序的黑暗時代,人們習慣通過直接寫入屏幕緩沖區來輸出文本。
控制台屏幕緩沖區被組織為連續的字節對數組,描述顯示的字符及其屬性(顏色,背景顏色,最終閃爍)。
在您的情況下,屏幕緩沖區似乎是0xb800000( Ad
)。 假設屏幕寬度為80, Pos
將屏幕位置(y,x)
轉換為屏幕緩沖區中的內存偏移量。
Write
更改指定位置的顯示字符,而WriteA
更改字符的顏色。
我的天哪,就像1990年一樣......
我不想苛刻,但如果你在這個級別上掙扎,你將很難寫一個文本編輯器。
你不想使用它們。
這些宏用於舊硬件,可以直接訪問屏幕。
far
不被標准C識別) 同樣, 您不想使用這些宏 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.