跳转到内容

来自维基教科书,为开放世界提供开放书籍

本文档最初托管在 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/

华夏公益教科书