# Oberon/ETH Oberon/WebConfig

This document was originally hosted at the ETHZ. It remains in the WayBack archive under the ETH license.
Native Oberon uses configuration strings for setting low-level configuration options. These strings are (name, value) ASCII string pairs which are stored in a table on the boot device (diskette or hard disk). Permanent values for these strings are normally set during installation using the Install or FDInstall programs in Oberon-0. The strings are read by low-level modules in the system using the Kernel.GetConfig procedure. Higher-level modules should use the more flexible Oberon.Text and the Oberon.OpenScanner procedure for configuration information.
Sometimes it is necessary to temporarily override the setting of some configuration strings. The OBL bootstrap loader provides a facility for doing this:
When booting the system, before the message "Oberon Bootstrap Loader" appears, activate ScrollLock, or hold down any shift key. The "OBL>" prompt should appear and the current values of the configuration strings are displayed. There are some options at this prompt:
* Enter "c" to continue booting.
* Enter a string of the form "name=val" (without quotes) to set a new configuration string, or to modify an existing one. Strings can be deleted by setting them to empty values. Since version 2.23 the name strings are no longer case sensitive.
* Enter "w" to write the new configuration to the configuration table on the boot diskette or hard disk.
* Anything else will result in a short help display.
The DOS-based boot loader, noboot.exe, uses a DOS file for the configuration information. The latest version of the boot loader also supports the ScrollLock or shift key method of changing the configuration strings. Instead of a built-in editor, it invokes any DOS editor, using the command line specified by the EDITOR environment variable (default "edit"). When invoking the editor, noboot.exe appends the name of the configuration file to the command line.
The following are the configuration strings currently defined (note the version numbers displayed below; some strings are only defined for some versions of the system).
Display drivers
* "Display": Defines the prefix string used when loading Display.Obj. Common values are "VGA.", "W32.", "ET4000.", "S3C805." and "S3C924.". Used in the module Modules.
* "Init": For display mode initialisation. A list of 8-bit hexadecimal numbers (up to 75 bytes) with no spaces in between. This string is interpreted at boot time, when the processor is still in 16-bit mode. The values are interpreted as machine code and executed. This is a powerful (if crude) way to set the display mode by setting up registers, writing to the low-memory setup area, and doing BIOS calls. Used in boot loader (since version 2.06). As a convenience when tracing installation problems, setting Init=9090 will implicitly set Display="Empty." and TraceBPS="-1" (in modules Kernel and Modules since version 2.3.4).
* "DWidth": Sets the screen width. Valid values are 320, 640, 800, 1024 and 1280. The screen must be set into a compatible mode using Video. Used in most display drivers.
* "DHeight": Sets the screen height. Valid values are 200, 480, 600, 768 and 1024. The screen must be set into a compatible mode using Video. Used in most display drivers.
* "DDepth": Sets the screen depth. Valid values are 8, 16 and 32 (depending on driver). Used in truecolor display drivers.
* "DMem": Sets the amount of display memory. Valid values are 1024, 2048 etc. Used in most display drivers.
* "DRefresh": Sets the refresh rate (default 80). Used in Permedia 2 driver.
* "DReset": If # 0, reset the card at startup. Used in Permedia 2 driver.
Input drivers
* "PS2": Sets detection of PS/2 style mouse. Valid values are "0" and "1". If set to "0", detection of the PS/2 mouse will not be attempted. Used in module ConfigMouse (after version 2.3.7).
* "Keyboard": Defines the keyboard type. Valid values are "US" for the US 101-key keyboard, or a file name to load a specific keyboard table file. Note that the Oberon fonts do not contain all keys printed on the keyboard, so some keys are not available. Used in module Input.
* "NumLock": Set startup state of NumLock. Default value is "1". Set to "0" to disable NumLock on startup. Used in module Input (from version 2.2.7).
* "MT": Defines the type of mouse protocol used. Options are PS2, LM1, LM2, LM3, MS1, MS2, MS3, MS4, MSM, MSI (respectively PS/2-built-in, Logitech 1-3, Mouse Systems Corp 1-4, Microsoft 2-button, Microsoft IntelliMouse serial). This setting overrides the setting of MouseType. Used in module Input (from version 2.3.0).
* "MouseType": Defines the type of mouse protocol used. Valid values are the numbers from 0 to 6, with the following meaning: 0=Microsoft Mouse protocol, 1=Mouse Systems protocol 1, 2=Logitech MMseries protocol, 3=Logitech protocol (old), 4=Mouse Systems Protocol 2, 5=Logitech MouseMan/TrackMan (new), 6=PS/2 mouse on auxillary port, 7=Mouse Systems Protocol 3, 8 = Mouse Systems Protocol 4. Mouse types 0 to 5 and 7 to 8 are all for mice on the serial port. Used in module Input. Types 7 & 8 introduced in version 2.2.9.
* "MP": Shorter, overriding, name for MousePort. Used in module Input (from version 2.3.0).
* "MousePort": For serial mice, defines to which port the mouse is connected. Valid values are 1 and 2 for the first and second serial port. Not required for the PS/2 mice. Used in module Input.
* "Buttons": Defines how many buttons are available on the mouse. If this value is 2, the Ctrl key on the keyboard will emulate the mouse middle button. If the value is 3, the Ctrl key will have only its usual function. Since version 2.2.7: Values -2 or -3 will also use the Ctrl key, in addition to the actual middle button state (useful on laptops with a two-button and a three-button mouse). Since version 2.3.0: Value -3 is the default, and will now switch to value 3 as soon as a real mouse middle button is seen. Used in module Input. Alias "MB" since version 2.3.4.
* "MouseMap": Rearranges mouse buttons. Value is exactly three digits, with each digit from 0-2. Defines the bit values returned by Input.Mouse in the following way: MR=digit0, MM=digit1, ML=digit2. Default value is "012". Set to "210" for left-handed use, or "021" for Logitech cordless mouse. Used in module Input (from version 2.2.7). Alias "MM" from version 2.3.4.
* "Threshold": Defines when mouse speedup is activated. If the mouse is moved faster than this value (in pixels per mouse event), the cursor is speeded up or slowed down according to the value of "Speedup".The default threshold value is 5. Set it to 9999 to disable speedup. Used in module Input (from version 2.06).
* "Speedup": Defines mouse speedup value. If the mouse is moved faster than the threshold, the cursor moves at "speedup/10" times the rate of the mouse. I.e. if the speedup value is 10, the cursor moves at the same speed as the mouse, and if it is 15 (the default), the cursor moves 1.5 times as fast as the mouse. Used in module Input (from version 2.06).
* "EscCompat": ESC key compatibility option. Valid values are "1" for yes (default) and "0" for no. If yes, the ESC key will be interpreted as neutralise, as in other Oberon distributions. The ESC character can be generated in this mode using F3, Shift-ESC or the Alt-keycode technique. Used in module Input (from version 2.07).
File system and disk driver
* "FileSystem": Defines the file system location for the FAT-based file system. If empty, a native partition is used. Used in Disk and InstDisk (in Oberon-0). Since version 2.2.8 this is called "FileSystem" in module InstDisk, and "DiskFile" in module Disk.
* "Disk0": (IDEDisk only, not ATADisk!) Defines the parameters for hard disk 0. The value is three or six ","-separated integers. The first three integers define the number of cylinders (1-65535), heads (1-16) and sectors per track (1-63) respectively. For IDE disks the actual values are not that important, but the product of these three numbers divided by two should be equal to or less than the size of the disk in kilobytes. To avoid booting problems when sharing the disk with other operating systems, the values should be the same as the values used by the BIOS. If six integers are specified, the last three define the write precompensation value (normally 65535) and overriding values for the number of cylinders and number of heads returned in the Disk.GetParams call. These values are only used in exceptional cases when sharing a large disk with other operating systems. "Disk1" is the same as "Disk0", but for drive 1. Used in module IDE.Disk and IDE.InstDisk (in Oberon-0). From version 2.22 onwards, it is possible to specify "auto" as the value. This autodetects the parameters of the disk by reading the partition table. This is only useful if the disk is already partitioned. Otherwise, it is possible to specify only the size of the disk in Mb by specifying the value following directly by the letters "Mb".
* "IDE": Defines the parameters for the IDE disk driver. Default value 14,1F0H,3F6H. First value is IRQ, second the control port and third the register port. Other common value 15,170H,376H. Used in module Disk and InstDisk (from version 2.21) and also ATADisk (from version 2.3.0). ATADisk also supports IDE1, IDE2, IDE3 and IDE4 for up to four controllers (after version 2.3.0).
* "ATABM": If set to "0", the ATADisk driver does not attempt to detect bus-mastering capabilities. Used in module ATADisk (after version 2.3.0).
* "SingleBlocks": If set to "1", IDE disk driver only reads and writes only one disk block at a time. Used in module Disk and InstDisk (from version 2.2.7).
* "AHA1520": Defines parameters for AHA1520 SCSI disk driver. Value is 6 ","-separated numerical values: irq (11), portbase (340H), hostid (7), bios (DC000H), parity (0), disconnect (0). Default values indicated in parenthesis, hex values are suffixed with "H". Used in module AHA1520 (from version 2.25).
* "DiskCache": default 100. Size of disk cache in 2k sectors. 100 gives good cache performance and takes about 200k of memory. A size of 0 disables caching. System.State Disk may be used to look at cache performance. Look at variables Creads, Cwrites, Creadhits and Cwritehits. Used in module Disk (from version 2.2). Since version 2.2.7 a second parameter ("i" or "p") may be specified separated with a comma from the size. "i" specifies a "write-in" cache, i.e. all writes are only stored in the cache, and not on disk. "p" specifies a "write-in-primed" cache, which is similar to a write-in cache, but at boot time the complete disk is read into the cache (that must be big enough) and then no further reads or writes are made to the disk.
* "PartType": Defines the partition type for Native Oberon. Default 79. Values from 70-79 should be used. Used in module Disk and InstDisk (in Oberon-0, before 01.12.00).
* "DiskGC": 10-100, default 10. Defines whether disk garbage collection should take place at startup. If less than x% of the disk is available, perform garbage collection. If less than a megabyte is available, or if the system was not shut down cleanly, GC is performed in any case. Used in module FileDir (from version 2.07).
* "RamDiskSize": default (min) 400. Size of ram disk used in Oberon-0. Used in module Ram.Disk (from version 2.2 till version 2.2.8). Used again in module OFSBoot0, with default 1024 2k blocks (from 28.03.00).
* "Prefix": Defines the default file prefix. Used when bootstrapping a new system.
* "Diskette0": Defines the type of diskette drive 0. Valid values are 720, 1440 and 2880 for 720k, 1.44M and 2.88M drives respectively. Can be used to override the automatic checking, if it does not work on your hardware. "Diskette1" is the same, but for drive 1. Used in module Diskette0 (available from version 2.05).
* "Archive": Defines the name of a .tgz archive to be unpacked into the RAM volume by Oberon-0. Used in OFSBoot0 (since 28.03.00).
* "BootVol": Specifies the boot volume. Used in module OFSBoot (since 20.03.00 version).
* "SCSIDebug": Trace flag bits. TraceSense = 01H and TraceDetection = 02H (since 03.05.00).
Memory management
* "StackSize": Defines how many bytes are allocated for the stack. The default value is 131072, i.e. 128k. Used in module Kernel.
* "DMASize": Defines how many bytes are available for allocation with Kernel.NewDMA. The default value is 18k (4800H). Used in module Kernel (from version 2.07).
* "MapAdr#" and "MapLen#": Define range of physical addresses to map into the virtual address space. For experimental use. # is a number from 0 to 9. Addresses can be specified in hex using a "H" postfix. Used in Kernel module (from version 2.2).
* "MapVesa": Map a special range of physical addresses into the virtual address space. Specifically for the Vesa 2.0 linear framebuffer display driver. If set to "1", will map 4Mb at DX:CX. DX:CX is the value of the DX and CX registers after the display "Init" string has been executed by the bootstrap loader. Used in Kernel module (from version 2.2).
* "=0" and "=1": For VESA display initialization. Returns a 32-bit value encoded as a hex number with a "H" postfix. The value returned is BX:AX or DX:CX respectively. These are the values of the specified registers after the display "Init" string has been executed by the bootstrap loader. Used in Vesa 2.0 display module (from version 2.2).
* "PageHeap": Number of low memory kilobytes to reserve for page heap (default 16). Used by MapPhysical to allocate page tables. Every 4Mb area mapped requires one 4k page. Used in Kernel module (after version 2.2.9).
* "ExtMemSize": Number of megabytes of extended memory available (overrides automatic detection). Used in Kernel module (after version 2.2.9).
Compatibility
* "CPU": Override processor detection. Can be set to "3", "4" or "5" to indicate a 386, 486 or Pentium respectively. Any other value will cause an autodetect to be performed. Used in Kernel module (from version 2.07).
* "APM": Override Automatic Power Management (APM) detection. Can be set to "0" to disable APM detection. Used in Kernel module (from version 2.2).
* "Copro": Override coprocessor detection. If set to "1", coprocessor is always used, and if set to "0", the emulator is always used, regardless if a coprocessor is present or not. Used in Kernel module (from version 2.06).
* "ClockMode": Configure how the real-time clock is read. Default mode "0" means the RT clock is programmed to generate 1s interrupts. Mode "1" means the clock is polled, which is about 40 times slower. This mode will also be used automatically when no clock interrupt is detected within 3 seconds during startup. Used in Kernel module (from version 2.2.10).
Customization
* "FontConv": If set to "0", the Syntax font will not be mapped to the Oberon font automatically. Used in module Objects until version 2.2.7 and module Fonts afterwards.
* "Color": If set to "0", the basic system will come up in black & white. May be useful on old PCs without colour screens. Note that only the basic system will be in black & white. Gadgets will still be in colour.
* "PowerSave": Set to "0" to disable HLT instructions in the Oberon idle loop. HLT instructions are executed by default to save power. Used in module Oberon (from version 2.2.7) and module Kernel (after version 2.2.9).
* "TracePort": This value is very useful to device driver writers. It can be used to send the output of the five Kernel.Write procedures (WriteString, WriteChar, WriteInt, WriteHex, WriteMemory) to a serial port. By connecting a terminal or serial printer to the port, trace output (even from interrupt handlers) can be viewed. Valid values are 1 and 2 for the first and second serial port. Used in module Kernel.
* "TraceBPS": This value defines the speed of the serial connection set up with TracePort. Common values are 9600 or 19200. Setting this to -1 will cause the trace output to be sent to the screen memory. The screen must be in a 80x25 text mode for this to be visible (e.g. Init=90). Used in module Kernel.
* "TracePrinter": Set to a number from 1 to 3 to send trace output to printer port n (1..3), as initialized by the BIOS. If n is 0, no printer tracing is performed (the default). If n is another number, that number is used as the base address for the printer port. Used in module Kernel (from 25.04.00).
* "TraceSize": Size of Kernel.GetLog trace buffer in bytes (default 2048). Used in module Kernel (after version 2.3.7b).
* "TraceDiskette": If set to "1", the diskette driver in the Diskette0 module will output some trace information. This may be used to find problems with the diskette driver.
* "TraceHeap": The integer value is interpreted bitwise as flags to switch on various heap tracing statements. The actual flags may differ from release to release. First used in Kernel in version 2.05.
* "TraceModules": If set to "1", trace module names and addresses as they are loaded. Used in module Modules (from version 2.21).
* "ModExt": Default object file extension. Used in module Modules (from version 2.3.3).
* "Beeps": If set to "0", morse code beeps during a kernel trap are disabled. Used in module Kernel (from version 2.3.0).
Obsolete
* "Video": For display mode initialisation (obsoleted by the "Init" string since version 2.06). A list of ","-separated hexadecimal numbers (up to 16 digits each, i.e. 64 bits). This string is interpreted at boot time, when the processor is still in 16-bit mode. An INT 10H BIOS call is executed for every number specified. The registers AX, BX, CX and DX are set up according to the number specified. AX is set from the value of bits 0-15, BX from bits 16-31, CX from bits 32-47 and DX from bits 48 to 63. Example: "Video=12,3F001001" will execute two INT 10H calls. The first with AX=12H, BX=0, CX=0, DX=0 and the second with AX=3F00H, BX=1001H, CX=0, DX=0. Used in the bootstrap loader to initialise the display card for Display modules while the video BIOS is still available (16-bit mode).
* "DiskIRQ": Defines the IRQ for the IDE disk driver. Default value 14. Used in module Disk and InstDisk (from version 2.07, replaced by IDE from version 2.21).
* "DiskCtrl": Defines the control port for the IDE disk driver. Default value 01F0H. Used in module Disk and InstDisk (from version 2.07, replaced by IDE from version 2.21).
* "DiskReg": Defines the register port for the IDE disk driver. Default value 03F6H. Used in module Disk and InstDisk (from version 2.07, replaced by IDE from version 2.21).
* "AHA1520Base": Defines port base address for Adaptec 1520 controller. Default value 340H. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
* "AHA1520BIOS": Defines bios address for Adaptec 1520 controller. Default value 0DC000H. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
* "AHA1520IRQ": Defines irq for Adaptec 1520 controller. Default value 0BH. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
* "AHA1520HostID": Defines host ID for Adaptec 1520 controller. Default value 7. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
* "AHA1520Parity": Defines if Adaptec 1520 controller does parity checking. Default value 0. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
* "AHA1520Discon": Defines if Adaptec 1520 controller can do disconnect. Default value 0. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
26 Aug 2001 - Copyright © 2003 ETH Zürich. All rights reserved. E-Mail: oberon-web at inf.ethz.ch [expired] Homepage: http://www.ethoberon.ethz.ch [expired]