跳轉到內容

來自華夏公益教科書,為開放世界提供開放書籍

本文件最初託管在 ETHZ。它仍然 在 Wayback 檔案中,根據 ETH 許可證

序列和並行埠支援

概要

Oberon 支援並行或序列埠來控制外圍裝置,例如滑鼠(序列)、印表機(並行或序列)、調變解調器(序列)、路由器、網橋、防火牆。

提示:可以使用簡單的終端模擬應用程式的 GUI V24.Panel 透過其序列控制埠輕鬆配置諸如 Zyxel Prestige 100 ISDN 路由器和 Zyxel ZyWall 防火牆之類的通訊裝置。可以安全地忽略與裝置一起提供的臃腫配置軟體。

並行埠

支援所有三個可能的並行埠。埠的設定如下

            Addr. 
    LPT1    378H 
    LPT2    278H 
    LPT3    3BCH

並且僅在單向模式下執行。因此,不分配或使用 IRQ。未實現雙向協議。

機器通常配備一個與上述設定相同的並行埠。如果安裝了帶有額外埠的附加 I/O 卡,則通常在卡上跳線分配給埠的地址和 IRQ。跳線設定必須符合上述內容。

有關更多資訊,請諮詢 維基百科

如何透過程式控制並行埠

在您自己的程式中使用模組 Centronics.Mod 中的過程。它們僅支援輸出。Centronics 模組匯入 SYSTEM 並使用 PORTIN / PORTOUT 過程。後者當然用於本機 Oberon。請注意,匯入 SYSTEM 的模組不可移植。Windows 的 PlugIn 版 Oberon 使用本機 Oberon 編譯器,因此 PORTIN 和 PORTOUT 也可以使用。在 Windows NT 和 Win 2000 下,執行這些過程之一將導致“特權指令”TRAP。

PORTIN and PORTOUT can also be implemented with in-line assembler code.

MODULE PortIO; 
     IMPORT SYSTEM;

     PROCEDURE - inch 
          066H, 08BH, 055H, 00CH, 0ECH, 08BH, 05DH, 008H, 088H, 003H;

     PROCEDURE InCh(VAR ch: CHAR; port: INTEGER); 
     BEGIN 
          inch 
     END InCh;

     PROCEDURE - outch 
          066H, 08BH, 055H, 00CH, 08AH, 045H, 008H, 0EEH;

     PROCEDURE OutCh(ch: CHAR; port: INTEGER); 
     BEGIN 
          outch 
     END OutCh;

END PortIO.

在 Oberon V4 中找到了類似的實現,但在 InCh 和 OutCh 中的形式引數被置換,因為 Oberon V4 編譯器使用 C 語言約定來排序引數。

序列埠

支援所有四個可能的序列 RS-232 埠。機器通常配備兩個序列埠,這些埠要麼內建在主機板上,要麼內建在附加的 I/O 卡上。內建的 COM 埠通常使用 BIOS 設定程式進行配置,但在舊計算機中可以使用跳線進行配置。附加卡上的 COM 埠通常使用卡上的跳線進行配置。預設情況下,在 Oberon 中,埠的基地址和 IRQ 的設定如下

            Addr.  IRQ 
    COM1    3F8H    4 
    COM2    2F8H    3 
    COM3    3E8H    4 
    COM4    2E8H    3

上面 COM1 和 COM2 的基地址是標準的。COM3 和 COM4 可以使用幾個備用地址。如果它們被硬連線到板或卡中,它們通常會像顯示的那樣成對出現。如果它們是單獨可選擇的,最好將它們使用在下面顯示的對中

    COM3 - 3E8H 338H 3F8H 2E8H 220H 
    COM4 - 2E8H 238H 2F8H 2E0H 228H

支援,連同機器的 BIOS 設定程式和跳線,允許根據需要在序列介面之間安排 COM 埠,並將它們與最適合的 IRQ 線關聯。以下命令可用於設定埠。

ConfigV24.SetIRQs { [ xxxH | 000H ] IRQx } ~

將四對基地址 + IRQ 分配給序列埠。不允許重複地址。未安裝或停用的埠分配地址 000H。IRQ 可以從機器的可用(即不衝突)IRQ 中選擇。如果埠不同時使用,可以分配重複的 IRQ。常見的做法是看到 COM3 使用 IRQ 4 並且 COM4 使用 IRQ 3,就像預設情況下所做的那樣。最終設定將以新的 ConfigV24.SetIRQs 命令的形式顯示在系統日誌中,該命令已準備好進行編輯和執行。
此命令最好放在 Oberon.Text 中,位於可能的 ConfigInput.Mouse 或 ConfigInput.WatchMouse 命令之前,尤其是當連線了序列滑鼠時,該滑鼠應在 Oberon 啟動時立即被識別。

ConfigV24.GetIRQs

在系統日誌中顯示序列埠設定。當前設定將以新的 ConfigV24.SetIRQs 命令的形式顯示在系統日誌中,該命令已準備好進行編輯和執行。

有關更多資訊,請諮詢 維基百科

面向程式設計師

V24.Mod 是非同步 RS-232 介面的裝置驅動程式,在 OSI 術語中,它處理級別 2a 的協議 - 媒體訪問控制。客戶端模組必須實現級別 2b 的協議 - 邏輯鏈路控制。接收部分是時間關鍵的:接收緩衝區可能會溢位,並且由於溢位條件,資料可能會丟失。緩衝區具有 4'096 位元組的固定長度。

序列連線

除了使用連線到序列埠的外部調變解調器之外,還可以透過交叉序列電纜(也稱為空調變解調器電纜)連線序列埠並使用通用通訊程式來建立與另一臺計算機的直接通訊。V24.Panel 是為此目的而設計的。您最有可能使用此技術的用途是將有問題的機器的除錯輸出捕獲到另一臺無故障機器,以分析除錯資訊並診斷問題。這種技術在 低階跟蹤 中進行了描述。

[頂部]

2002 年 7 月 11 日 - 版權所有 © 2002 ETH 蘇黎世。保留所有權利。
電子郵件:oberon at lists.inf.ethz.ch
主頁:http://www.ethoberon.ethz.ch/

華夏公益教科書