![《30天自制操作系統(tǒng)》筆記(11)——高分辨率.docx_第1頁(yè)](http://file.renrendoc.com/FileRoot1/2020-1/13/936b81b1-eec7-4384-ba94-eed9f63368bb/936b81b1-eec7-4384-ba94-eed9f63368bb1.gif)
![《30天自制操作系統(tǒng)》筆記(11)——高分辨率.docx_第2頁(yè)](http://file.renrendoc.com/FileRoot1/2020-1/13/936b81b1-eec7-4384-ba94-eed9f63368bb/936b81b1-eec7-4384-ba94-eed9f63368bb2.gif)
![《30天自制操作系統(tǒng)》筆記(11)——高分辨率.docx_第3頁(yè)](http://file.renrendoc.com/FileRoot1/2020-1/13/936b81b1-eec7-4384-ba94-eed9f63368bb/936b81b1-eec7-4384-ba94-eed9f63368bb3.gif)
![《30天自制操作系統(tǒng)》筆記(11)——高分辨率.docx_第4頁(yè)](http://file.renrendoc.com/FileRoot1/2020-1/13/936b81b1-eec7-4384-ba94-eed9f63368bb/936b81b1-eec7-4384-ba94-eed9f63368bb4.gif)
![《30天自制操作系統(tǒng)》筆記(11)——高分辨率.docx_第5頁(yè)](http://file.renrendoc.com/FileRoot1/2020-1/13/936b81b1-eec7-4384-ba94-eed9f63368bb/936b81b1-eec7-4384-ba94-eed9f63368bb5.gif)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
30天自制操作系統(tǒng)筆記(11)高分辨率進(jìn)度回顧上一篇介紹了定時(shí)器的初始化和使用方法。接下來(lái)就該實(shí)現(xiàn)多任務(wù)了。不過(guò)原作者在這之前寫了關(guān)于提高分辨率的章節(jié),本篇也總結(jié)一下設(shè)置顯示器高分辨率的方法好了。本篇內(nèi)容過(guò)于簡(jiǎn)單,算是小小的休息一下。啟用高分辨率的思路:檢測(cè)顯卡是否支持某種分辨率;如果支持,則通過(guò)INT 0x10指令啟用之;否則使用任意顯卡都支持的低分辨率。VBE歷史上秦始皇掃平中原一統(tǒng)六國(guó),其歷史功績(jī)之一便是在這之后統(tǒng)一了度量衡,從此全國(guó)人民在計(jì)算度量買賣的時(shí)候都有統(tǒng)一的標(biāo)準(zhǔn)了。秦始皇能夠強(qiáng)制廢除六國(guó)的貨幣、度量標(biāo)準(zhǔn),但是顯卡公司里沒(méi)有一個(gè)能夠成為秦始皇,也就造成了設(shè)置顯示器分辨率的各種麻煩。然而天下大勢(shì)分久必合,顯卡公司雖然無(wú)法合并為一,但市場(chǎng)不接受各自為政的混亂標(biāo)準(zhǔn),因此多家顯卡公司協(xié)商成立了VBE(Video Electronics Standards Association)即視頻電子標(biāo)準(zhǔn)協(xié)會(huì)。VBE制作了專用的BIOS,基本上可以兼容所有的顯卡分辨率設(shè)置。這個(gè)BIOS就稱為VESA BIOS extension(VBE)??梢哉f(shuō)VBE就是顯卡公司之間統(tǒng)一的度量衡?;氐巾敳?go to top)設(shè)置低分辨率設(shè)置320*200這樣的低分辨率時(shí),使用AH=0; AL=畫面模式號(hào)碼;INT 0x10;就行了?;氐巾敳?go to top)設(shè)置高分辨率設(shè)置640*480等高分辨率時(shí),要使用AX=0x4f02;BX=畫面模式號(hào)碼;INT 0x10;。VBE的畫面模式號(hào)如下。 0x101640*480*8bit彩色 0x103800*600*8bit彩色 0x1051024*768*8bit彩色 0x1071280*1024*8bit彩色還有一些其它的模式,原作者省略了,我也就懶得知道了。另外,QEMU中不能使用0x107。原因不明。實(shí)際使用的時(shí)候,要把畫面模式號(hào)加上0x4000,再賦值到BX中。首先要判斷計(jì)算機(jī)使用的是什么顯卡。如果不能使用VBE,就只能用低分辨率了。1 MOV AX, 0x90002 MOV ES, AX3 MOV DI, 04 MOV AX, 0x4f005 INT 0x106 CMP AX, 0x004f7 JNE scrn320在這里,我們給ES賦值為0x9000,DI賦值為0,AX賦值為0x4f00,再執(zhí)行INT 0x10。如果VBE存在,AX就會(huì)變成0x004f,否則就只能使用320*200的分辨率了。顯卡能利用的VBE信息,會(huì)寫入內(nèi)存中ES:DI指定的地址開始的512字節(jié),所以這樣要設(shè)置ES和DI。然后要判斷VBE版本。原作者的OS只支持VBE2.0以上的顯卡。1 MOV AX, ES:DI + 42 CMP AX, 0x02003 JB scrn320 ; if (AX 0x0200) goto scrn320即使VBE版本是2.0以上,也不能保證所有的畫面模式都能用?,F(xiàn)在我們要通過(guò)VBE來(lái)查看一下畫面模式0x105能不能用。1 MOV CX, VBEMODE ; VBEMODE EQU 0x1052 MOV AX, 0x4f013 INT 0x104 CMP AX, 0x004f5 JNE scrn320如果AX是0x004f以外的值,那么所指定的畫面模式就不能用。此次取得的畫面模式信息也被寫入DS:DI開始的512字節(jié)處(即覆蓋了之前檢查VBE是否存在的結(jié)果)。畫面模式信息中重要的有如下幾個(gè)。 WORDES:DI + 0x00 ; 模式屬性bit7不是1就不好辦 WORDES:DI + 0x12 ; X的分辨率 WORDES:DI + 0x14 ; Y的分辨率 WORDES:DI + 0x19 ; 顏色數(shù)必須為8 WORDES:DI + 0x1b ; 顏色的指定方法必須為4(即調(diào)色板模式) WORDES:DI + 0x28 ; VRAM的地址我們來(lái)確認(rèn)如下三項(xiàng)內(nèi)容: 顏色數(shù)是否為8 是否為調(diào)色板模式 畫面模式號(hào)碼可否加上0x4000再進(jìn)行指定 1 CMP BYTE ES:DI + 0x19, 8 2 3 JNE scrn320 4 5 CMP BYTE ES:DI + 0x1b, 4 6 7 JNE scrn320 8 9 MOV AX, ES:DI + 0x0010 11 AND AX, 0x008012 13 JZ scrn320 ; 模式屬性的bit7是0,所以放棄如果上述步驟中沒(méi)有跳入scrn320,那么就可以使用高分辨率。 1 MOV BX, VBEMODE+0x4000 2 MOV AX, 0x4f02 3 INT 0x10 4 MOV BYTE VMODE, 8 ; 記下畫面模式(參考C語(yǔ)言) 5 MOV AX, ES:DI + 0x12 6 MOV SCRNX, AX 7 MOV AX, ES:DI + 0x14 8 MOV SCRNY, AX 9 MOV EAX, ES:DI + 0x2810 JMP keystatus最后的JMP指令,用來(lái)讓程序跳過(guò)后面的scrn320,直接進(jìn)入在BIOS中查詢鍵盤狀態(tài)的地方。下面就剩下scrn320這一小段了。1 scrn320:2 MOV AL, 0x13 ; VGA圖,320*200*8bit彩色3 MOV AH, 0x004 INT 0x105 MOV BYTE VMODE, 8 ; 記下畫面模式(參考C語(yǔ)言)6 MOV WORD SCRNX, 3207 MOV WORD SCRNY, 2008 MOV DWORD VRAM, 0x000a0000我用VMware分別試驗(yàn)了640*480*8bit彩色、800*600*8bit彩色、1024*768*8bit彩色、1280*1024*8bit彩色這幾種情況,發(fā)現(xiàn)均可以支持。另外,如原作者所說(shuō),QEMU不支持1280*1024*8bit彩色。這也是VMware比QEMU更強(qiáng)一些的一個(gè)證據(jù)。截圖如下。下面是600*4
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中外設(shè)備買賣合同模板
- 上海金融服務(wù)外包合作合同模板匯集
- 臨時(shí)教學(xué)樓改建工程合同
- 個(gè)人住房貸款合同樣本
- 臨時(shí)合作關(guān)系合同書
- 二手房購(gòu)入合同范文:完整版
- 三人合伙投資合同范本
- 個(gè)人商業(yè)貸款抵押合同(1997年)版
- 個(gè)人債務(wù)履行擔(dān)保合同示例
- 個(gè)人定向捐贈(zèng)合同模板修訂版
- 上海高考英語(yǔ)詞匯手冊(cè)列表
- PDCA提高患者自備口服藥物正確堅(jiān)持服用落實(shí)率
- 上海石油化工股份有限公司6181乙二醇裝置爆炸事故調(diào)查報(bào)告
- 家譜人物簡(jiǎn)介(優(yōu)選12篇)
- 品管部崗位職責(zé)20篇
- 2023年中智集團(tuán)下屬中智股份公司招聘筆試題庫(kù)及答案解析
- GA 1409-2017警用服飾硬式肩章
- 小兒垂釣 (課件)(14張)
- 嘉吉樂(lè)恩貝1-FarLactation課件
- 激光拉曼光譜技術(shù)課件
- DB33-T 2082-2017(2021)托幼機(jī)構(gòu)消毒衛(wèi)生規(guī)范
評(píng)論
0/150
提交評(píng)論