我想知道如何使用C來改變屏幕上字符的字母。它是一個使用dos.h頭文件的TSR程序。TSR程序在Windows/DOS中改變屏幕上的字符大小寫
回答
我可能能夠部分地從我記憶中的早期本科生那裏得到幫助。
在DOS中,地址0xB8000000(0xB800:0作爲段:偏移在註釋中正確地指出)是文本模式的視頻存儲器(0xA8000000在於用於圖形)的起始地址。寫入該區域的任何東西都直接複製到vga卡。現在屏幕上的每個字符都由兩個字節組成。第一個字節是ascii字符,第二個字符是顏色。
因此,您有效地在16位c中使用遠指針(因爲常規的近指針不會),併爲其分配上述地址。然後假設您的屏幕尺寸(25 * 80)或其他* 2是填充屏幕的單字節地址的總數。
我記得使用上面寫了相當於一個平凡的printf函數。
回到你的問題,你必須編寫代碼,循環遍歷從上面的地址到屏幕尺寸的所有偶數地址。偶數地址,因爲奇數代表顏色。在那裏它檢查分配的字符是否是有效的ascii並且根據需要增加或減少,例如, 'A'+ 32會讓你'a'等等。
問題依然存在上面的程序是這樣做的。我相信你可以在dos.h中有一些中斷或類似的東西,每當任何屏幕字符被改變時觸發。但是這部分在我的記憶中並不是很清楚。
看看是否適合你。
'0xB8000000'有太多的零,它是錯誤或混淆。實模式地址是0xB800:0(段:偏移量)。它對應的物理地址是'0xB8000'。 –
實際上寫它的起源是記住賦值char far * p = 0xB8000000L;遠指針是四個字節,所以地址被指定爲平面32位的等效值。雖然我同意概念0xB800:0在文字上更好。我會編輯 - 謝謝 – fayyazkl
- 1. 更改屏幕中的字體大小
- 2. 應用程序崩潰時,在Android的小屏幕和大屏幕上運行
- 3. 更改屏幕大小
- 4. textarea的字體大小不改變在屏幕上使用jQuery調整
- 5. 在屏幕上動態更改標籤字體大小
- 6. 根據屏幕大小改變窗口大小Java
- 7. 在小屏幕上摺疊div,在大屏幕上展開-javascript
- 8. 幫助在DOSM的NASM程序集中編寫TSR程序
- 9. textarea根據屏幕大小更改字體大小
- 10. 如何根據屏幕大小更改字體大小
- 11. 更小的屏幕在自舉中改變位置順序
- 12. 怎麼寫的字爲應用程序在屏幕上
- 13. 運行的所有屏幕上的Android應用程序大小
- 14. 動態改變AS3中的屏幕大小
- 15. Java中的屏幕大小
- 16. 如何根據Android中不同的屏幕大小來改變佈局大小?
- 17. 的sed +改變小,大寫字母
- 18. 減小字體大小小屏幕上這樣的話不破
- 19. gltext屏幕保護程序的字體大小
- 20. 在改變屏幕
- 21. 在較大的屏幕上使字體變大
- 22. matlab在字符串中將大寫字符更改爲小寫字符
- 23. 在屏幕上調整div大小
- 24. 在PHP中改變字符串中每個第n個字母的大小寫
- 25. 增加時屏幕字體大小小
- 26. 納斯姆在TSR程序中打印字符串
- 27. 程序在屏幕上顯示奇怪的字符
- 28. 大屏幕或hdpi的主屏幕小部件大小?
- 29. 如何在Android應用程序中支持多屏幕大小
- 30. 屏幕大小pygame
你是指大寫字母還是小寫字母,反之亦然? –
究竟..你能幫忙嗎? –
你爲什麼要爲DOS編碼TSR? –