In the following we shall:
You can use an ASCII character table to insert into documents extended characters not found on most keyboards. These include accented characters, appearing in some country alphabets, aswell as special characters provided in symbol fonts such as Math12.Scn.Fnt for example.
This module's main function is to create a visual gadget representing a table of 8 rows by 32 columns containing the printable characters of the 256 8-bit combinations, as they are defined in Oberon. The visual gadget generator is ASCIITab.NewFrame. Inspection with Columbus, reveals that it has a Name and a Font attribute.
The font can be changed by modifying the font name in the table's Font attribute.
The Calculator is controlled by a set of Oberon commands edited in any suitable Oberon text viewer: text gadget, text document. The results are displayed in the system log. The Calculator is an old application created by cas back in 1993.
Calc.Reset - resets the calculator and removes all the user defined variables which have been defined by Calc.Set commands.
Calc.Set name := expression ~ - assigns the value of the expression to a named local variable.
Calc.List - lists the functors (as a reminder or a help function), the value of pi and e, and the name and the value of the used defined variables.
The next four commands all take an expression as argument. The syntax of the expression is defined by the following syntax:
Expr = Term {AddOp Term}. Term = Factor {MulOp Factor}. Factor = Atom {PowOp Atom}. Atom = Number | Functor Atom | ident | "(" Expr ")". PowOp = "^". MulOp = "*" | "/" | "%" | "<" | ">". -- % modulo, < shift left, > shift right AddOp = ["+" | "-"]. -- no add op: addition(!) Number = (digit {digit}) | (digit {hexDigit} "H") | (digit {hexDigit} "X") | (""" char """). Functor = "arccos" | "arcsin" | "arctan" | "cos" | "entier" | "exp" | "ln" | "short" | "sign" | "sin" | "sqrt" | "tan". All operators are left-associative, except "^" which is right-associative.
This Oberon System 3 distribution includes a collection of three card games: Solitaire, Spider and Freecell, and four further games: MineSweeper, Scramble, Sokoban and Tetris. They are described in Games.
The HP Calculator is still being developed and improved.
The remote printer is controlled by a set of Oberon commands edited in any suitable Oberon text viewer: text gadget, text document.
LPRPrinter.Install - Install the printer driver. Instead of installing the printer driver just when needed, adding this command to Configuration.Text file installs it right from the start.
Desktops.PrintDoc queue@host * - Print the marked document on the specified queue on the specified host, e.g. lph1@lillian or "lph1-ds@lillian".
LPRPrinter.PrintPSFile queue@host ps-file - Print the postscript file on the given queue.
LPRPrinter.ShowJobs queue@host - List all waiting jobs on queue.
LPRPrinter.RemoveJobs queue@host [jobno] ~ - Remove job jobno from the specified queue on the specified host. If no number is given all jobs are removed.
LPRPrinter.BannerPage (on | off) - Switch banner page printing on of off. Printing is on by default.
LPRPrinter.MailBack (on | off) - Switch the sending of an e-mail message when the printer job completes on or off. Message sending is off by default.
The ~PS tool creates a PostScript file from an Oberon picture file.
PS.PictToPost fileName [\[a][e][r][l | p]] [scaling] ~ converts the named Oberon picture file (suffix .Pict) and creates a PostScript file with suffix .ps.
The options, which may be specified in any order, are:
The text lines sorter sorts the lines, terminated by a carrier return, contained in a file or in an open document, and displays the result in a new document viewer. This function has a number of limitations:
Sort.Sort (fileName | * | ^) [\[e][r][u]] ~ sorts the lines of the named file and displays the resulting text in a document viewer "Sorted.Text". The total number of lines sorted is dispalyed in the system log.
The options, which may be specified in any order, are:
Interesting Oberon extensions developed by users of the Oberon V4 system are regularly published and made available on quite a few FTP sites. If you wish to benefit of these developments aswell, here are the instructions for installing valuable Oberon V4 material on your System 3 system.
Among the files that you may find in an FTP directory are a number of Oberon V4 text files. Since their names have the same .Text or .Mod extension as are used in System 3, there is no way to distinguish them at first sight. The *.Text files have been created with the V4 word processor and contain fonts, colors, pictures and other text control elements. The directory path or an eventual ReadMe file may however hint at V4. In any case you have to convert those text files with the WTS facility which is delivered as an archived application which must be installed first. Verify with
The module WTS exports a single command which is documented in the WTS.Tool and is described below.
WTS.Convert fileName [\[s][b]] converts the named Oberon V4 text file to an Oberon System 3 text file. The fonts are also converted while the color and vertical offset of the text is retained. In addition, if the option \s is used the Elems included are converted to corresponding gadgets, that is:
Exercise:
Access "ftp://nuchem.nsrl.rochester.edu/pub/Oberon/B2Project/"
and download (in binary) [Get ^] AnnualReport96.Text.
then convert it with: WTS.Convert AnnualReport96.Text\bs
and open the final document AnnualReport96.Text.
Note: If you do not have a working V4, you can still download Postscript files from this directory. They describe the B2 project architecture, status, etc.
There is also an example of module to convert in:
"ftp://nuchem.nsrl.rochester.edu/pub/Oberon/Goodies/B2Out.Mod"
Read the description in Font Editor User's Guide.
PolyWorlds is a tool for fast display of polygon worlds, i.e. three-dimensional scenes consisting only of polygonal surfaces.
World Data
A list of available scenery files is located in the lower left corner. Clicking one of the entries with the middle mouse key (MM) will load and display the corresponding scene. On slower machines, you may have to wait for several seconds until the new scene gets drawn, depending on its complexity. The list of names is updated whenever the Show button is activated.
World
[Clear] empties the current world.
[Statistics] prints the current number of shapes, points and polygons to the system log.
The Horizon check box enables or disables the display of a horizon.
View
[Reset] returns to the default view, where the observer is located at the origin, looking along the negative z-axis.
[Align] rotates the current view until the local coordinate system of the selected shape is aligned with the camera coordinate system. The local coordinate system is the coordinate space in which the shape was defined before being transformed to world space.
[Benchmark] shows a fixed sequence of camera views and prints the duration of the animation, in number of ticks and the approximate time in seconds, to the system log.
Movements
Pressing the left mouse key (ML) inside the frame box where the world is displayed invokes the current navigator. The navigator will process mouse and keyboard inputs until the mouse key is released, mapping those inputs to changes of the current view. There are two navigators to choose from:
[Planar] is the default navigator and is active after opening the panel. As long as ML is pressed, the camera is rotated left and right according to horizontal mouse movements. Vertical mouse movements affect the current speed. The keyboard keys 'a' and 'z' move the observer up and down.
[Flying] activates a simple flight model. Mouse movements affect pitch and roll of a virtual airplane. Forward speed is controlled by the keyboard keys 'a' and 'z'.
Field of View
The slider as well as the text field below may be used to modify the camera's focal distance, allowing to zoom in or out. The text field displays the opening angle in degrees of the camera's view frustrum.
Clicking the right mouse key (MR) when the mouse arrow points at an object displayed in the current view selects the indicated object (also called shape). A new color for the selected shape may be chosen with a ColorPicker, and its attributes may be inspected and modified using Columbus. The model assigned to the shapes (and to the frame itself) may also be inspected and shows attributes not particular to a single object, such as sky and ground color.
Some shapes possess an attribute "Cmd", which may be set to any Oberon command. The command is activated by clicking over the corresponding shape with the middle mouse key.
Scene = {ShapeDef} {"clear"|"horizon" ("yes"|"no")|"ambient" number|ShapeCmd}. ShapeDef = "shape" ident {"points" {Vector}} {"polygon" {number}|ShapeCmd} "end". ShapeCmd = ("add" ident|"light" Vector number|Attribute). Attribute = "color" number number number | "diffuse" number | "save" | ""restore" | "identity" | "matrix" Vector Vector Vector Vector | "translate" Vector | ""rotate" number Vector | "scale" Vector. Vector = "(" number number number ")".
A snapshot captures the bitmap contained in the specified Oberon display frame (a viewer, a document, a visual gadget or even the entire screen) and transforms it into a picture object displayed in a Rembrandt frame. Its facilities are very useful for documenting Oberon system extensions. However, you should rather insert active documents in your documentation (Desktops.InsertDoc docName), instead of captured, static pictures. Snapshot is an extension of the Rembrandt tool.
Warning: Remember that the desktop has four quadrants: if the captured frame is not entirely visible on the current quadrant, the picture will be blurred.
Snapshot.Viewer * opens a Rembrandt document named "Snapshot" displaying a snapshot of the marked viewer.
Snapshot.Document * opens a Rembrandt document named "Snapshot" displaying a snapshot of the marked document.
Snapshot.Gadget * opens a Rembrandt document named "Snapshot" displaying a snapshot of the marked gadget.
The next three commands are used to insert a snapshot of the marked visual object at the caret.
Snapshot.InsertViewer * inserts a Rembrandt frame displaying a snapshot of the marked viewer at the caret.
Snapshot.InsertDocument * inserts a Rembrandt frame displaying a snapshot of the marked document at the caret.
Snapshot.InsertGadget * inserts a Rembrandt frame displaying a snapshot of the marked gadget at the caret.
The last two commands are used to make a snapshot of the entire Oberon screen.
Snapshot.Screen opens a Rembrandt document named "Snapshot" displaying a snapshot of the entire screen. No color mapping is performed to ensure correct colors in the picture generated.
Snapshot.Screen2 opens a Rembrandt document named "Snapshot" displaying a snapshot of the entire screen. The colors are mapped to the current Oberon palette and the palette is stored with the picture.
Correction notes for the files contained in the archives:
- Calc.Arc:
Calc.Char "j" + 1 does not work as expected.
- Hex.Arc must NOT be installed - it is already installed. Redundant.
- HPCalc.Mod: the text at the end after END HPCalc must be revised:
Calc is now HPCalc
Calc.Input does not exist (Commentarized in the module text)
MyBackup.Do does not exist but seems interesting; what is the parameter "always" ?
.Scn.Fnt .Pr2.Fnt .Pr3.Fnt .Pr6.Fnt
Syntax 8 8b 8i 8m
Syntax 10 10b 10i 10m
Syntax 12 12b 12i 12m
Syntax 14 14b 14i 14m
Syntax 16 16b 16i 16m
Syntax 20 20b 20i 20m
Syntax 24 24b 24i 24m
Oberon 8 8b 8i
Oberon 10 10b 10i
Oberon 12 12b 12i
Oberon 14 14b 14i
Oberon 16 16b 16i
Oberon 20 20b 20i
Oberon 24 24b 24i
Math 10
Math 12
Math 14
Math 16
Math 20
Math 24
Greek 10
Greek 12
Greek 14
Greek 16
Greek 20
Greek 24
Courier 8
Courier 10
Courier 12
Math20.Pr3.Fnt is missing in the distribution.
Math20.Pr6.Fnt & Math20.Pr2.Fnt are missing.
Math24.Pr6.Fnt & Math24.Pr2.Fnt are missing.
Courier12.Pr6.Fnt & Courier12.Pr2.Fnt are missing.
There are no Greek_.Pr2.Fnt and Greek_.Pr6.Fnt.
- PS.Tool: the options l and p are not shown in the command syntax above.
PS.Mod: Helv.ps does not exist - erase.
Figure3.Pict does not exist, replace by Clown.Pict or delete everything after END PS.
What are the lines
(*PW = 576; PH = 792; *)
PW = 580; PH = 820; (*dia*)
pw0 = 550; ph0 = 800; (*laserwriter*)
MaxN = 128;
at the beginning? Only the second has a meaning!
- Inspectors.Arc:
Libraries.Mod and Libraries.Panel must be renamed to avoid conflict with new version.
New version must not be named Libraries2.
- Poly.Arc:
What is GPakToPoly in TestEyePoly???
- Snapshot.Arc:
What is Snaphot.Screen2 in Win.Snapshot.Mod? Not documented in Snapshot.Tool.
- PolyWorld.Arc:
PolyWorlds.Text refers to the Inspector: replace by a reference to Columbus.
There is no Directory button but a Show button in the panel.
- Hex.Arc:
Wrong, old components are deleivered (Hex.Mod and Hex.Tool).
The new Hex.Mod also requires module ListRiders, which is not there!!
- Win.EditTools.Arc:
Win.FontRes.Mod imports Log which is in Log.Arc. !!!
Which component is only applicable to Windows?
Win.FontRes.Mod or/and FontEditor.Mod????
Installed on 14 Feb 1997