關於部落格
  • 4876

    累積人氣

  • 0

    今日人氣

    0

    追蹤人氣

1-2 透過BIOS操作螢幕

由於下拉式與浮現式功能選單的函式(function)必須把螢幕上它們所覆蓋的面積保存起來
,並於使用者做完選擇後恢復之,因此我們必須撰寫保存恢復部份螢幕記憶體的常式
本節將發展保存與恢復部份螢幕記憶的常式,將呼叫兩個ROM-BIOS函式:它們分別讀
寫螢幕上的字符。

或許你已經知道呼叫ROM-BIOS有時候可能很慢。不過它們保證(或多或少)在ROM-BIOS
與IBM相容的任何電腦(縱使實際的螢幕硬體不同)上都能正常工作。稍後我们將討論如何
在IBM PC或100%相容的機器上,直接讀寫其螢幕記憶以改進速度。但是直接讀寫的方式
多少降低了程式的遷移性,因為它需要硬體與個人電腦完全相容。因此在需要較高可攜性
的應用方面,就必需使用ROM-BIOS常式了。

1-2-1 使用int 86
ROM-BIOS的呼叫要透過軟體中斷(software interrupt)達成。ROM-BIOS備有不同目的使
用的各種中斷。我們將用來操作螢幕的是編號16 (10H)的中斷;此中斷專供操作螢幕顯示
器用。跟許多ROM-BIOS中斷相同者,中斷16也提供有幾個選項,由AH暫存器的內含值
選定。若函式送回一值,通常是由AL送回。但是若送回幾個值時 則還要用其他幾個暫存器
。ROM-BIOS中斷須透過稱為int86( )的C func來呼叫。(ps 有些compiler可能以不同的名稱
呼叫此函式,但Microsoft C與Turbo C均稱int86( ) )

int86( )函式的一般格式如下:
        int int86 ( num , inregs , outregs)
           int num; //中斷編號
           union REGS *inregs; //輸入暫存器之值
           union REGS *outregs; //輸出暫存器之值

int86( ) 函式之送回值置於AX暫存器。REGS的類型(type)定義於引頭檔(herder) DOS.h。
(此處)
.....未打完~~

相簿設定
標籤設定
相簿狀態