Oberon/ETH Oberon/WebConfig
本文档最初托管在 ETHZ。它仍然 在 Wayback 档案中,根据 ETH 许可证.
原生 Oberon 使用配置字符串来设置低级配置选项。这些字符串是(名称,值)ASCII 字符串对,存储在引导设备(软盘或硬盘)上的表格中。这些字符串的永久值通常在安装期间使用 Oberon-0 中的 Install 或 FDInstall 程序设置。字符串由系统中的低级模块使用 Kernel.GetConfig 过程读取。高级模块应该使用更灵活的 Oberon.Text 和 Oberon.OpenScanner 过程来获取配置信息。
有时需要暂时覆盖一些配置字符串的设置。OBL 引导加载程序提供了执行此操作的功能
启动系统时,在出现“Oberon Bootstrap Loader”消息之前,激活 ScrollLock 或按住任何 Shift 键。应出现“OBL>”提示,并将显示配置字符串的当前值。此提示下有一些选项
- 输入“c”继续引导。
- 输入“name=val”形式的字符串(不带引号)来设置新的配置字符串或修改现有字符串。可以通过将字符串设置为空值来删除字符串。从版本 2.23 开始,名称字符串不再区分大小写。
- 输入“w”将新配置写入引导软盘或硬盘上的配置表。
- 任何其他内容都会导致显示简短帮助。
基于 DOS 的引导加载程序 noboot.exe 使用 DOS 文件存储配置信息。最新版本的引导加载程序还支持使用 ScrollLock 或 Shift 键更改配置字符串的方法。它不会使用内置编辑器,而是使用 EDITOR 环境变量指定命令行(默认值为“edit”)来调用任何 DOS 编辑器。在调用编辑器时,noboot.exe 将配置文件的名称附加到命令行。
以下是当前定义的配置字符串(注意下面显示的版本号;某些字符串仅在系统某些版本中定义)。
显示驱动程序
- "Display": 定义加载 Display.Obj 时使用的前缀字符串。常见值为“VGA.”、“W32.”、“ET4000.”、“S3C805.” 和“S3C924.”。在模块 Modules 中使用。
- "Init": 用于显示模式初始化。一个 8 位十六进制数字列表(最多 75 个字节),数字之间没有空格。此字符串在引导时解释,此时处理器仍处于 16 位模式。这些值被解释为机器代码并执行。这是一种强大的(尽管粗糙)方法,可以通过设置寄存器、写入低内存设置区域和执行 BIOS 调用来设置显示模式。在引导加载程序中使用(从版本 2.06 开始)。为了方便追踪安装问题,将 Init=9090 设置为隐式设置 Display="Empty." 和 TraceBPS="-1"(在 Kernel 和 Modules 模块中,从版本 2.3.4 开始)。
- "DWidth": 设置屏幕宽度。有效值为 320、640、800、1024 和 1280。必须使用 Video 将屏幕设置为兼容模式。在大多数显示驱动程序中使用。
- "DHeight": 设置屏幕高度。有效值为 200、480、600、768 和 1024。必须使用 Video 将屏幕设置为兼容模式。在大多数显示驱动程序中使用。
- "DDepth": 设置屏幕深度。有效值为 8、16 和 32(取决于驱动程序)。在真彩色显示驱动程序中使用。
- "DMem": 设置显示内存大小。有效值为 1024、2048 等。在大多数显示驱动程序中使用。
- "DRefresh": 设置刷新率(默认值为 80)。在 Permedia 2 驱动程序中使用。
- "DReset": 如果为 # 0,则在启动时重置卡。在 Permedia 2 驱动程序中使用。
输入驱动程序
- "PS2": 设置 PS/2 样式鼠标的检测。有效值为“0”和“1”。如果设置为“0”,则不会尝试检测 PS/2 鼠标。在 ConfigMouse 模块中使用(版本 2.3.7 之后)。
- "Keyboard": 定义键盘类型。有效值为“US”,表示 US 101 键键盘,或文件名以加载特定键盘表文件。请注意,Oberon 字体不包含键盘上打印的所有键,因此某些键不可用。在 Input 模块中使用。
- "NumLock": 设置 NumLock 的启动状态。默认值为“1”。设置为“0”以在启动时禁用 NumLock。在 Input 模块中使用(从版本 2.2.7 开始)。
- "MT": 定义使用的鼠标协议类型。选项为 PS2、LM1、LM2、LM3、MS1、MS2、MS3、MS4、MSM、MSI(分别是 PS/2 内置、罗技 1-3、鼠标系统公司 1-4、微软 2 键、微软 IntelliMouse 串行)。此设置将覆盖 MouseType 的设置。在 Input 模块中使用(从版本 2.3.0 开始)。
- "MouseType": 定义使用的鼠标协议类型。有效值为 0 到 6 之间的数字,含义如下:0=Microsoft 鼠标协议,1=鼠标系统协议 1,2=罗技 MM 系列协议,3=罗技协议(旧版),4=鼠标系统协议 2,5=罗技 MouseMan/TrackMan(新版),6=辅助端口上的 PS/2 鼠标,7=鼠标系统协议 3,8 = 鼠标系统协议 4。鼠标类型 0 到 5 以及 7 到 8 都是针对串行端口上的鼠标。在 Input 模块中使用。类型 7 和 8 在版本 2.2.9 中引入。
- "MP": MousePort 的更短、覆盖名称。在 Input 模块中使用(从版本 2.3.0 开始)。
- "MousePort": 对于串行鼠标,定义鼠标连接到的端口。有效值为 1 和 2,分别表示第一个和第二个串行端口。对于 PS/2 鼠标,不需要此设置。在 Input 模块中使用。
- "Buttons": 定义鼠标上有多少个按钮。如果此值为 2,键盘上的 Ctrl 键将模拟鼠标中键。如果值为 3,Ctrl 键将仅具有其通常的功能。从版本 2.2.7 开始:值 -2 或 -3 将也使用 Ctrl 键,除了实际的中键状态(在具有双键和三键鼠标的笔记本电脑上很有用)。从版本 2.3.0 开始:值 -3 为默认值,一旦看到真正的鼠标中键,它将切换到值 3。在 Input 模块中使用。从版本 2.3.4 开始,别名为“MB”。
- "MouseMap": 重新排列鼠标按钮。值为三个数字,每个数字从 0 到 2。以下定义 Input.Mouse 返回的位值:MR=digit0,MM=digit1,ML=digit2。默认值为“012”。设置为“210”以供左手使用,或设置为“021”以供罗技无线鼠标使用。在 Input 模块中使用(从版本 2.2.7 开始)。从版本 2.3.4 开始,别名为“MM”。
- "Threshold": 定义何时激活鼠标加速。如果鼠标移动速度快于此值(以每鼠标事件像素为单位),则光标将根据“Speedup”的值加速或减速。默认阈值为 5。将其设置为 9999 以禁用加速。在 Input 模块中使用(从版本 2.06 开始)。
- "Speedup": 定义鼠标加速值。如果鼠标移动速度快于阈值,光标将以“speedup/10”倍于鼠标速度的速度移动。即,如果加速值为 10,则光标将以与鼠标相同的速度移动,如果加速值为 15(默认值),则光标将以鼠标速度的 1.5 倍移动。在 Input 模块中使用(从版本 2.06 开始)。
- "EscCompat": ESC 键兼容性选项。有效值为“1”表示是(默认值),“0”表示否。如果是,ESC 键将被解释为中性,如其他 Oberon 发行版中一样。在此模式下,可以使用 F3、Shift-ESC 或 Alt-keycode 技术生成 ESC 字符。在 Input 模块中使用(从版本 2.07 开始)。
文件系统和磁盘驱动程序
- "FileSystem": 定义基于 FAT 的文件系统的文件系统位置。如果为空,则使用原生分区。在 Disk 和 InstDisk 中使用(在 Oberon-0 中)。从版本 2.2.8 开始,在 InstDisk 模块中称为“FileSystem”,在 Disk 模块中称为“DiskFile”。
- "Disk0": (仅限 IDEDisk,不适用于 ATADisk!)定义硬盘 0 的参数。值为三个或六个以“,”分隔的整数。前三个整数分别定义气缸数(1-65535)、磁头数(1-16)和每磁道扇区数(1-63)。对于 IDE 磁盘,实际值并不重要,但这些数字的乘积除以 2 应该等于或小于磁盘大小(以 KB 为单位)。为了避免在与其他操作系统共享磁盘时出现引导问题,这些值应该与 BIOS 使用的值相同。如果指定了六个整数,则最后三个整数定义写预补偿值(通常为 65535)以及在 Disk.GetParams 调用中返回的气缸数和磁头数的覆盖值。这些值仅在与其他操作系统共享大型磁盘的特殊情况下使用。“Disk1”与“Disk0”相同,但适用于驱动器 1。在 IDE.Disk 和 IDE.InstDisk 模块中使用(在 Oberon-0 中)。从版本 2.22 开始,可以将“auto”指定为值。这将通过读取分区表来自动检测磁盘参数。这仅在磁盘已分区时才有用。否则,可以通过在值后面直接加上字母“Mb”来指定磁盘大小(以 Mb 为单位)。
- "IDE": 定义 IDE 磁盘驱动程序的参数。默认值为 14,1F0H,3F6H。第一个值为 IRQ,第二个为控制端口,第三个为寄存器端口。其他常见值为 15,170H,376H。在 Disk 和 InstDisk 模块中使用(从版本 2.21 开始),以及 ATADisk 模块中使用(从版本 2.3.0 开始)。ATADisk 还支持 IDE1、IDE2、IDE3 和 IDE4,用于最多四个控制器(版本 2.3.0 之后)。
- "ATABM": 如果设置为 "0",则 ATADisk 驱动程序不会尝试检测总线主控功能。在 ATADisk 模块中使用(版本 2.3.0 之后)。
- "SingleBlocks": 如果设置为 "1",则 IDE 磁盘驱动程序每次只读取和写入一个磁盘块。在 Disk 和 InstDisk 模块中使用(版本 2.2.7 起)。
- "AHA1520": 定义 AHA1520 SCSI 磁盘驱动程序的参数。值为 6 个用 "," 分隔的数值:irq (11),portbase (340H),hostid (7),bios (DC000H),parity (0),disconnect (0)。括号中指示默认值,十六进制值以 "H" 结尾。在 AHA1520 模块中使用(版本 2.25 起)。
- "DiskCache": 默认值为 100。磁盘缓存大小,以 2k 扇区为单位。100 提供良好的缓存性能,并占用约 200k 内存。大小为 0 将禁用缓存。可以使用 System.State Disk 查看缓存性能。查看变量 Creads、Cwrites、Creadhits 和 Cwritehits。在 Disk 模块中使用(版本 2.2 起)。从版本 2.2.7 开始,可以使用逗号分隔的第二个参数 ("i" 或 "p") 来指定。 "i" 指定 "写入" 缓存,即所有写入仅存储在缓存中,而不存储在磁盘上。 "p" 指定 "写入预先加载" 缓存,它类似于写入缓存,但在启动时,整个磁盘被读入缓存(缓存必须足够大),然后不再对磁盘进行读写操作。
- "PartType": 定义 Native Oberon 的分区类型。默认值为 79。应使用 70-79 之间的数值。在 Disk 和 InstDisk 模块中使用(在 Oberon-0 中,版本 01.12.00 之前)。
- "DiskGC": 10-100,默认值为 10。定义磁盘垃圾回收是否应在启动时进行。如果磁盘可用空间小于 x%,则执行垃圾回收。如果可用空间小于 1MB,或者系统未正常关闭,则无论如何都会执行 GC。在 FileDir 模块中使用(版本 2.07 起)。
- "RamDiskSize": 默认值(最小值)为 400。在 Oberon-0 中使用的 RAM 磁盘大小。在 Ram.Disk 模块中使用(版本 2.2 到版本 2.2.8)。在 OFSBoot0 模块中再次使用,默认值为 1024 个 2k 块(从 28.03.00 起)。
- "Prefix": 定义默认文件前缀。在引导新系统时使用。
- "Diskette0": 定义磁盘驱动器 0 的类型。有效值为 720、1440 和 2880,分别表示 720k、1.44M 和 2.88M 驱动器。可用于覆盖自动检测,如果自动检测在您的硬件上不起作用。 "Diskette1" 与之相同,但针对驱动器 1。在 Diskette0 模块中使用(版本 2.05 起可用)。
- "Archive": 定义要由 Oberon-0 解压缩到 RAM 卷的 .tgz 存档的名称。在 OFSBoot0 中使用(从 28.03.00 起)。
- "BootVol": 指定引导卷。在 OFSBoot 模块中使用(从 20.03.00 版本起)。
- "SCSIDebug": 跟踪标志位。TraceSense = 01H 和 TraceDetection = 02H(从 03.05.00 起)。
内存管理
- "StackSize": 定义为堆栈分配的字节数。默认值为 131072,即 128k。在 Kernel 模块中使用。
- "DMASize": 定义可以使用 Kernel.NewDMA 分配的字节数。默认值为 18k (4800H)。在 Kernel 模块中使用(版本 2.07 起)。
- "MapAdr#" 和 "MapLen#": 定义要映射到虚拟地址空间的物理地址范围。用于实验用途。# 是从 0 到 9 的数字。地址可以使用 "H" 后缀以十六进制形式指定。在 Kernel 模块中使用(版本 2.2 起)。
- "MapVesa": 将物理地址的特殊范围映射到虚拟地址空间。专门用于 Vesa 2.0 线性帧缓冲区显示驱动程序。如果设置为 "1",将在 DX:CX 处映射 4Mb。DX:CX 是显示 "Init" 字符串在引导加载程序执行后 DX 和 CX 寄存器的值。在 Kernel 模块中使用(版本 2.2 起)。
- "=0" 和 "=1": 用于 VESA 显示初始化。返回一个 32 位值,编码为带 "H" 后缀的十六进制数。返回的值分别是 BX:AX 或 DX:CX。这些是显示 "Init" 字符串在引导加载程序执行后指定寄存器的值。在 Vesa 2.0 显示模块中使用(版本 2.2 起)。
- "PageHeap": 要为页面堆保留的低内存千字节数(默认值为 16)。由 MapPhysical 用于分配页面表。每个映射的 4Mb 区域都需要一个 4k 页面。在 Kernel 模块中使用(版本 2.2.9 之后)。
- "ExtMemSize": 可用的扩展内存兆字节数(覆盖自动检测)。在 Kernel 模块中使用(版本 2.2.9 之后)。
兼容性
- "CPU": 覆盖处理器检测。可以设置为 "3"、"4" 或 "5",分别表示 386、486 或 Pentium。任何其他值将导致执行自动检测。在 Kernel 模块中使用(版本 2.07 起)。
- "APM": 覆盖自动电源管理 (APM) 检测。可以设置为 "0" 以禁用 APM 检测。在 Kernel 模块中使用(版本 2.2 起)。
- "Copro": 覆盖协处理器检测。如果设置为 "1",则始终使用协处理器,如果设置为 "0",则始终使用仿真器,无论是否存在协处理器。在 Kernel 模块中使用(版本 2.06 起)。
- "ClockMode": 配置实时时钟的读取方式。默认模式 "0" 表示 RT 时钟被编程为生成 1 秒中断。模式 "1" 表示时钟被轮询,这大约慢 40 倍。当启动期间在 3 秒内未检测到时钟中断时,此模式也会自动使用。在 Kernel 模块中使用(版本 2.2.10 起)。
自定义
- "FontConv": 如果设置为 "0",则不会自动将 Syntax 字体映射到 Oberon 字体。在 Objects 模块中使用,直到版本 2.2.7,在 Fonts 模块中使用,此后一直使用。
- "Color": 如果设置为 "0",则基本系统将以黑白模式启动。这可能对没有彩色屏幕的旧 PC 有用。请注意,只有基本系统将以黑白模式显示。工具仍然是彩色的。
- "PowerSave": 设置为 "0" 以在 Oberon 空闲循环中禁用 HLT 指令。默认情况下执行 HLT 指令以节省电力。在 Oberon 模块中使用(版本 2.2.7 起)以及 Kernel 模块中使用(版本 2.2.9 之后)。
- "TracePort": 此值对设备驱动程序编写者非常有用。它可以用来将五个 Kernel.Write 过程(WriteString、WriteChar、WriteInt、WriteHex、WriteMemory)的输出发送到串行端口。通过将终端或串行打印机连接到端口,可以查看跟踪输出(即使来自中断处理程序)。有效值为 1 和 2,分别对应第一个和第二个串行端口。在 Kernel 模块中使用。
- "TraceBPS": 此值定义使用 TracePort 设置的串行连接的速度。常见值为 9600 或 19200。将其设置为 -1 将导致跟踪输出被发送到屏幕内存。屏幕必须处于 80x25 文本模式才能显示(例如,Init=90)。在 Kernel 模块中使用。
- "TracePrinter": 设置为 1 到 3 之间的数字以将跟踪输出发送到打印机端口 n(1..3),由 BIOS 初始化。如果 n 为 0,则不执行打印机跟踪(默认值)。如果 n 为其他数字,则该数字将用作打印机端口的基地址。在 Kernel 模块中使用(从 25.04.00 起)。
- "TraceSize": Kernel.GetLog 跟踪缓冲区的大小,以字节为单位(默认值为 2048)。在 Kernel 模块中使用(版本 2.3.7b 之后)。
- "TraceDiskette": 如果设置为 "1",则 Diskette0 模块中的磁盘驱动程序将输出一些跟踪信息。这可用于查找磁盘驱动程序中的问题。
- "TraceHeap": 整数值按位解释为标志,以打开各种堆跟踪语句。实际标志可能因版本而异。在 Kernel 的版本 2.05 中首次使用。
- "TraceModules": 如果设置为 "1",则在加载时跟踪模块名称和地址。在 Modules 模块中使用(版本 2.21 起)。
- "ModExt": 默认对象文件扩展名。在 Modules 模块中使用(版本 2.3.3 起)。
- "Beeps": 如果设置为 "0",则在内核陷阱期间禁用摩尔斯电码蜂鸣声。在 Kernel 模块中使用(版本 2.3.0 起)。
已弃用
- "Video": 用于显示模式初始化(从版本 2.06 起被 "Init" 字符串弃用)。一个逗号分隔的十六进制数字列表(每个数字最多 16 位,即 64 位)。此字符串在启动时解释,此时处理器仍处于 16 位模式。对指定的每个数字执行 INT 10H BIOS 调用。寄存器 AX、BX、CX 和 DX 根据指定的数字进行设置。AX 从位 0-15 的值设置,BX 从位 16-31 设置,CX 从位 32-47 设置,DX 从位 48 到 63 设置。例如: "Video=12,3F001001" 将执行两个 INT 10H 调用。第一个调用为 AX=12H,BX=0,CX=0,DX=0,第二个调用为 AX=3F00H,BX=1001H,CX=0,DX=0。在引导加载程序中使用,在视频 BIOS 仍然可用(16 位模式)时,为 Display 模块初始化显示卡。
- "DiskIRQ": 定义 IDE 磁盘驱动程序的 IRQ。默认值为 14。在 Disk 和 InstDisk 模块中使用(版本 2.07 起,从版本 2.21 起被 IDE 替代)。
- "DiskCtrl": 定义 IDE 磁盘驱动程序的控制端口。默认值为 01F0H。在 Disk 和 InstDisk 模块中使用(版本 2.07 起,从版本 2.21 起被 IDE 替代)。
- "DiskReg": 定义 IDE 磁盘驱动程序的寄存器端口。默认值为 03F6H。在 Disk 和 InstDisk 模块中使用(版本 2.07 起,从版本 2.21 起被 IDE 替代)。
- "AHA1520Base": 定义 Adaptec 1520 控制器端口的基地址。默认值为 340H。在 AHA1520 模块中使用(版本 2.1 起,从版本 2.25 起被 AHA1520 替代)。
- "AHA1520BIOS": 定义 Adaptec 1520 控制器的 BIOS 地址。默认值为 0DC000H。在 AHA1520 模块中使用(版本 2.1 起,从版本 2.25 起被 AHA1520 替代)。
- "AHA1520IRQ": 定义 Adaptec 1520 控制器的 irq。默认值为 0BH。在 AHA1520 模块中使用(版本 2.1 起,从版本 2.25 起被 AHA1520 替代)。
- "AHA1520HostID": 定义 Adaptec 1520 控制器的主机 ID。默认值为 7。在 AHA1520 模块中使用(版本 2.1 起,从版本 2.25 起被 AHA1520 替代)。
- "AHA1520Parity": 定义 Adaptec 1520 控制器是否执行奇偶校验检查。默认值为 0。在 AHA1520 模块中使用(版本 2.1 起,从版本 2.25 起被 AHA1520 替代)。
- "AHA1520Discon": 定义 Adaptec 1520 控制器是否可以进行断开连接。默认值为 0。在 AHA1520 模块中使用(版本 2.1 起,从版本 2.25 起被 AHA1520 替代)。
2001 年 8 月 26 日 - 版权所有 © 2003 苏黎世联邦理工学院。保留所有权利。
电子邮件:oberon-web at inf.ethz.ch [已失效]
主页:http://www.ethoberon.ethz.ch [已失效]