SPARC-Oberon (TM) V4 Release 2.9.1 ================================== Copyright (c) 1990-1995 ETH Zuerich SPARC-Oberon is an implementation of Oberon for SPARC based machines. It covers both the programming language Oberon and the Oberon system closely resembling the original implementation by N. Wirth and J. Gutknecht. SPARC-Oberon implements the Oberon-2 language extensions. DOCUMENTATION ------------- SPARC-Oberon contains some basic online documentation to enable first-time users to get started with Oberon. However, for serious work we recommend the following books published by Addison-Wesley. Note that "Project Oberon" contains the full source code of the Oberon system and compiler. The source code is also available via ftp from neptune.inf.ethz.ch:~ftp/Oberon/Sources/ProjectOberon.tar.Z. N. Wirth and M. Reiser: Programming in Oberon. Steps beyond Pascal and Modula-2. Addison Wesley, 1992, ISBN 0-201-56543-9. Tutorial for the Oberon programming language and concise language reference (german edition available at Sept. '94). M. Reiser: The Oberon System. User Guide and Programmer's Manual. Addison Wesley, 1991, ISBN 0-201-54422-9. User manual for the programming environment and reference for the standard module library. N. Wirth and J. Gutknecht: Project Oberon. The Design of an Operating System and Compiler. Addison Wesley, 1992, ISBN 0-201-54428-8. Program listings with explanations for the whole Oberon system, including the compiler for NS32000. The manual pages for SPARC-Oberon are contained in the distribution as file oberon.1. REQUIREMENTS ------------ Cpu: SPARC Operating system: SunOS 4.1.x Mouse: three buttons Terminal server: X11, xnews, or none at all INSTALLATION ------------ To install SPARC-Oberon from floppy disk, execute the following C-shell script. The directory that contains the Oberon installation is refered to as "Oberon" throughout this document. If Oberon is installed via ftp, replace "tar xf /dev/rfd0" by an appropriate file copy command. Note that manual pages are provided in file oberon.1. #csh # make an Oberon directory (preferably /usr/local/Oberon) mkdir Oberon cd Oberon # get the compressed archive oberon.tar.Z via anonymous ftp # from neptune.inf.ethz.ch:/Oberon or from floppy disk: tar xf /dev/rfd0 # uncompress archive uncompress oberon.tar.Z # extract all files tar xf oberon.tar # eventually remove archive rm oberon.tar # you may want to install Oberon/oberon.1 as a section 1 manual page # leave Oberon directory cd ~ SYNOPSIS oberon [-h bytes] [-f fontmapfile] [-x module proc] [-d display] [-g geometry] [-c] DESCRIPTION oberon starts the SPARC-Oberon process which may be terminated by executing the Oberon command System.Quit (after removing the leading !). Currently there are two versions of SPARC-Oberon available, one refered to as the X11-version, the other as the pixrect-version. The distinction between the two versions is made by dynamically linking object files from either Oberon or Oberon/pixrect and by using shared object libraries libX11.so.4 or libpixrect.so.2. For choosing between the two versions set the environment variable OBERON as described in section ENVIRONMENT. The advantages of the pixrect-version is that it is faster, the disadvantage is that it may only be run on the local machine. Since most people use SPARC-Oberon under X11, this version is the default. The X11-version requires an X-server and supports the DISPLAY environment variable and the -display and -geometry options as usual for X programs. For speeding up character display, Oberon fonts can be converted to X11 fonts. The Oberon tool InstallXFonts.Tool gives further information about this conversion. Special characters of the X11-version are: key meaning ---------------------------------- F1 * mark viewer F2 alias to Escape F3 Break character F4 init colors F6..F10 (+Shift, +Ctrl, +Ctrl-Shift) characters beyond 127. Ctrl-L redraw all viewers * On standard OpenWindows configurations remove the line xmodmap -e 'keysym F1 = Help' from your .xinitrc file in order to make F1 available to oberon. An alternative that avoids changing the .xinitrc file is to use the command xmodmap -e 'keycode 12 = F1' to use the F1 key. Keyboard interrupts may be generated by sending the oberon process a SIGINT signal (e.g. kill -2 pid). The pixrect-version may be started without any terminal server right after console login. It may also be started under SunView or OpenWindows by prefixing oberon with the SunOS command "overview". Important special characters of the pixrect-version are: key meaning ---------------------------------- Front (L5) mark viewer Ctrl-C interrupt (check stty settings) Ctrl-L redraw all viewers OPTIONS -h bytes set heap size to specified number of bytes. If not specified, 2 MB are used for the Oberon heap. -f fontmapfile defines that font names should be mapped according to fontmapfile. If option -f is not specified, no font mapping is performed. The main purpose of this option is to map fonts to bigger ones on displays with very small or unsharp pixels such as color monitors or for video projection. The file Big.Map is provided as an example for enlarging fonts. If a font mapping is performed, the result of printing documents will not be exact. Therefore, if you want to get hight quality printing results, don't use this option. Note that the meaning of this option has been changed over previous versions of SPARC-Oberon. -x module proc execute command module.proc. If not specified, Oberon.Loop is executed. -d display the display option as usual for X11 clients -g geometry the geometry option as usual for X11 clients -c allocate up to 256 colors from X11 for oberon. ENVIRONMENT OBERON A colon-separated list of directories in which to search for files. If OBERON is not defined, .:/usr/local/Oberon is taken as default. Note that shell specific characters like "~" are not supported by Oberon. The environment variable OBERON may be set e.g. under the C-shell by % setenv OBERON .:Mylib:Oberon. If oberon is to be run from the console, the directory Oberon/pixrect must precede the Oberon directory in the search path. Note that in the example below, "." and "MyLib" must be different from "Oberon" in order to fullfill this requirement. % setenv OBERON .:Mylib:Oberon/pixrect:Oberon. LD_LIBRARY_PATH A colon-separated list of directories in which to search for shared object libraries. Oberon links libc.1 and libX11.4 or libpixrect.2 at execution time (via calls to dlopen). Following the strategy of SunOS linkers (ld, ld.so), libraries are also searched in /usr/lib and /usr/local/lib. For the sake of simplicity, Oberon ignores the minor version number of shared object libraries. INSTALLATION PROBLEMS overview does not work if (due to security considerations) the file /etc/utmp is not user writable. oberon may not work under SunOS 4.1.1 depending on the revision of ld.so. The patches 100257-04, 100170, and 10026 for ld.so, ld, and libc are said to solve all known problems with runtime linking in 4.1.1. oberon does not work on some SunOS 4.1.2 and 4.1.3 systems due to an inconsistent pixrect library provided by Sun. In this case, use the X11- version or try sun-patch 100257-04. If this does not help, run the following test program. Make sure that the dlopen name argument matches the library name that causes the problems and use the appropriate major and minor version numbers of your installation. If the program fails (i.e. if it prints an error message, report the error to your system administrator or to Sun. #include #include main() { void *h; h = dlopen("/usr/lib/libc.so.1.6", 1); if (h==0) printf("test.c: %s\n", dlerror()); h = dlsym(h, "signal"); if (h==0) printf("test.c: %s\n", dlerror()); } compile and run the program with % cc test.c -ldl % a.out test.c: (null) test.c: (null) UPDATE NOTES For a chronological list of changes and update notes see file UpdateNotes.Text ------------ We propose to discuss Oberon related questions in comp.lang.oberon on usenet. A mail gateway to comp.lang.oberon exists via the mailing list oberon-news@inf.ethz.ch, which is managed by listproc@inf.ethz.ch. Any problems or comments may also be reported to oberon@inf.ethz.ch. SEE ALSO oberon (1) - manual page for oberon