跳轉到內容

Oberon/ETH Oberon/display

來自華夏公益教科書,開放的世界,開放的書籍

本文件最初託管在ETHZ。它仍然受ETH 許可證的約束,並且位於WayBack 存檔中。

返回:原生 Oberon 硬體相容性列表

顯示支援
摘要

除了為原生 Oberon 硬體相容性列表中列出的顯示卡專門設計的多個驅動程式外,Oberon 還包含一些通用的驅動程式,能夠支援各種其他顯示卡。這些驅動程式可以分為以下幾類

  • 低階 VGA 驅動程式
  • 銀行切換驅動程式
  • 線性幀緩衝驅動程式 (DisplayLinear.Mod)。線性幀緩衝是 VBE 2.0 (VESA Bios Extension) 的擴充套件,它取代了過時的銀行切換技術。
  • 加速驅動程式 (DisplayPermedia2.Mod)
  • 通用的VESA 2.0 和 VESA 3.0 驅動程式

顯示卡是系統的重要組成部分,安裝的成功取決於驅動程式的選擇。現代顯示卡控制器可以在所有模式下執行:銀行切換、線性幀緩衝加速。即使在最惡劣的情況下,低階 VGA 驅動程式也應該支援幾乎所有顯示卡。讓它正常工作並不需要什麼技術技巧,因此它被用於 Oberon-0。一些 Oberon 驅動程式支援真彩色,前提是顯示卡能夠支援:S3 Trio643Dlabs Permedia 2VESA 驅動程式。建議使用至少 32'768 色的 1'024 x 768 畫素螢幕解析度。

只要 DVI 顯示卡支援 VESA,就可以使用帶有DVI-D 介面的現代顯示器。影像質量明顯提高。

如何確定您的影片晶片組
  • 在機器啟動的最初階段,螢幕上只會出現一兩行描述顯示卡的資訊,而且只是一瞬間。
  • 在執行的 Oberon 系統(Oberon-0 足夠)上,發出 PCITools.Scan 命令並找到裝置中的顯示卡(PCI 或 AGP)。"裝置:"欄位指示板載的影片晶片組。
  • 開啟您的計算機並檢查較大方形扁平晶片上的標記。一些顯示卡製造商確實使用其他製造商生產的影片晶片。例如,Diamond Multimedia 使用 S3 或 nVidia 晶片。
如何安裝顯示驅動程式

從磁碟啟動 Oberon-0 後,在安裝過程中會選擇顯示驅動程式。Configure.Tool 列出了特定通用驅動程式及其影片模式(解析度 x 深度)。瞭解顯示卡型號和晶片組型別後,可以透過以下策略選擇最合適的驅動程式。

  1. 首先,查詢與顯示卡規格匹配的 Config.Display 行。此特定驅動程式是最佳選擇。執行命令,如果需要,選擇比 Oberon 提出的預設影片模式更合適的模式。
  2. 接下來,如果您的卡不受支援,請執行Config.DetectVesa,以瞭解它是否支援 VESA 2.0 或 VESA 3.0。但是,此命令並不適用於所有顯示卡。較舊的卡可能顯示“未找到合適的 VESA 模式”。使用非 VGA 卡(如 Permedia 2)也會獲得相同的結果(特定驅動程式是解決方案)。
  3. 執行最合適的 Config.Display 命令或瀏覽通用的 VESA 2.0 和 3.0 驅動程式。
  4. 最終的窮人選擇是 VGA。

安裝完成後,配置資料將儲存在分割槽或 Native.Par 中。現在重新啟動機器以啟動正確的 Oberon。如果顯示驅動程式的配置資料不正確,啟動可能會停滯在黑屏狀態。要驗證顯示驅動程式是否導致啟動問題,請按照下面介紹的方法跟蹤啟動過程。

要安裝另一個驅動程式,請從 Oberon-0 重新進行安裝,但這次跳過分割槽建立,格式化。掛載目標分割槽並縮短到 Configure.Tool 以選擇另一個顯示驅動程式並完成安裝。

舊顯示卡支援

一些舊的顯示卡只支援 VESA 1.2 或更低版本(透過執行 Config.DetectVesa 檢測到)。但是,在某些情況下,可以升級到 VESA 2.0 操作模式,以便可以使用該卡享受完整的 SVGA。需要一個 VESA 2.0 BIOS 擴充套件程式將顯示卡初始化為線性幀緩衝模式。假設 Oberon 以 DOS 模式啟動,則在呼叫noboot.exe之前會執行 BIOS 擴充套件程式。啟動後,Oberon 會毫不猶豫地接管控制權。例如,使用僅限 DOS 程式 SciTech Display Doctor for DOS,並在 DOS 中執行 univbe.exe。或者,也可以使用更簡單的共享軟體/免費軟體 univbe.exe 程式。

如果機器直接啟動到 Oberon 或使用 Oberon 啟動磁碟,則無法使用此技術技巧。

顯示字型

系統附帶的 Oberon 字型通常使用,但也可以使用其他字型。

DPMS

不支援 VESA Display Power Management Signaling 標準。相反,系統包含一個螢幕保護程式SavePoints,可以立即使用 - cfr. Oberon.Text

技術:顯示配置字串

以下配置字串在啟動時使用,是在從 Oberon-0 磁碟安裝 Oberon 時定義和儲存的。除了 Init=9090(非常有用)之外,幾乎沒有必要調整它們。它們在這裡顯示了示例值,如使用 Partitions.GetConfig 字首 ~ 所獲得的值。

  • Display="Displays." - 驅動已安裝顯示卡的 Display.Obj 模組的字首。可以使用 System.Directory *.Display.Obj ~ 獲取現有地圖檔名的列表。除了特定於硬體的驅動程式(例如 S3Trio)之外,您還會發現常見的標準 VGA 和 SVGA 驅動程式以及通用的 Oberon 顯示驅動程式 Displays。
  • Init="b8024fbb0541cd10b8014fb90501cd10268b4d28268b552a" - 最多 75 個 8 位十六進位制值,之間沒有空格。這些值被解釋為 8086 機器程式碼,在處理器仍在 16 位模式下時執行。這是一種功能強大但粗糙的方式,可以透過設定暫存器、寫入低記憶體設定區域和進行顯示 BIOS 呼叫來初始化顯示模式。

為了方便起見,Init=9090 可以用於跟蹤安裝問題;例如,啟動時出現黑屏。這是一種快捷方式,

  1. 啟用文字顯示的跟蹤輸出,
  2. 將顯示驅動程式設定為 Empty.Display.Obj,它不會產生任何輸出,並且
  3. 將顯示保持在文字模式,以便可以檢視跟蹤輸出。

或者,可以使用跟蹤到序列埠

  • DWidth="1024" - 螢幕寬度(以畫素為單位)。
  • DHeight="768" - 螢幕高度(以畫素為單位)。
  • DDepth="8" - 螢幕深度。並非所有驅動程式都支援所有可能的取值範圍:8、16、24、32。
  • DRefresh="70" - 垂直重新整理率(以 Hz 為單位)。僅受 Vesa 3.0 和 Permedia 2 驅動程式支援。
  • DDriver="DisplayLinear" -
面向開發人員:如何編寫顯示驅動程式

如果嘗試使用所有建議的顯示驅動程式都失敗,您可以嘗試根據編寫顯示驅動程式的指南編寫合適的驅動程式。還可以參考圖形程式設計教程

示例:使用帶有 Trident Cyber9385 影片晶片組的 IBM Thinkpad 760ED 的使用者無法使用提供的 SVGA 驅動程式獲得完整的 1024 x 768 解析度。利用這些觀察結果和指南,對現有的 SVGA.Display.Mod 進行了改編和擴充套件。新的過程 SwitchTrident9xxx 中的兩行簡單程式碼就足夠了。

(* SwitchTrident9xxx - Bank switch procedure for Trident 9xxx family - 9000C and higher *) 
PROCEDURE SwitchTrident9xxx(bank: LONGINT); 
BEGIN 
   curBank := bank; 
   SYSTEM.PORTOUT(3D8H, CHR(bank)); 
   SYSTEM.PORTOUT(3D9H, CHR(bank)) 
END SwitchTrident9xxx;

並在 Init 中添加了一個新的區分值(8)

  |7: switch := SwitchMach32;  Kernel.WriteString("ATI Mach32"); 
  |8: switch := SwitchTrident9xxx;  Kernel.WriteString("Trident9xxx") 
  ELSE switch := SwitchLinear; Kernel.WriteString("Vesa Linear frame buffer at"); 
   linearbase := VesaAdr; Kernel.WriteHex(linearbase, 9) (* used with MapVesa=1 *) 
 END;

用於支援 Trident 9xxx 1024 * 768 * 8 的配置字串為

  Init=bb0501b8024fcd10
  SVGA=8

任何以這種方式擴充套件顯示驅動程式的人,都可以將他的/她的程式碼片段轉發給Pieter Muller,以便將其包含在下一個版本中。

[頂部]

2003 年 1 月 14 日 - 版權所有 © 2003 ETH Zürich。保留所有權利。
電子郵件:oberon-web at inf.ethz.ch [過期]
主頁:www.ethoberon.ethz.ch [過期]

華夏公益教科書