Oberon/ETH Oberon/教程/應用
這些教程頁面由 André Fischer (afi) 編寫,並由Hannes Marais提供編輯協助,託管在ETHZ,並保留在ETH 許可證下。相關內容可透過 Book.Tool 在系統中找到。擴充套件內容也可在紙質版上找到。一些教程頁面位於WayBack 檔案中。
此版本附帶了一組應用程式,更準確地說,是系統擴充套件。原則上,這些應用程式包含在當前 Oberon 系統 3 的 APPS 子目錄中的歸檔檔案中。如果後者命名為“OBERON”,請使用System.Directory C:/OBERON/APPS/* ~列出它們。因此,要執行它們,必須先安裝它們。
在下文中,我們將
- 逐一審查這些應用程式
- 提出一種安裝程式,以便臨時執行應用程式(外觀和感覺),直到將其丟棄而不留下任何痕跡,或將其作為有價值的系統擴展采用到您的生產環境中。
元件:Desktops.OpenDoc ASCIITab.Arc。
您可以使用 ASCII 字元表將擴充套件字元插入文件中,這些擴充套件字元在大多數鍵盤上都找不到。這些包括出現在某些國家字母表中的重音字元,以及符號字型中提供的特殊字元,例如 Math12.Scn.Fnt。
此模組的主要功能是建立一個視覺化小部件,該小部件表示一個 8 行 32 列的表格,其中包含 256 個 8 位組合的可列印字元,如 Oberon 中定義的那樣。視覺化小部件生成器是 ASCIITab.NewFrame。使用 Columbus 檢查表明它具有名稱和字型屬性。
- 將插入符號設定在適當的位置,以插入表格。
- 使用Gadgets.Insert ASCIITab.NewFrame ~插入表格。預設情況下顯示 Syntax10.Scn.Fnt 的字元集。
使用滑鼠中鍵單擊任何表格元素將在插入符號處插入表示的符號(如果設定了插入符號,當然)。
可以透過修改表格的字型屬性中的字型名稱來更改字型。
元件:Desktops.OpenDoc Calc.Arc。
計算器由在任何合適的 Oberon 文字檢視器(文字小部件、文字文件)中編輯的一組 Oberon 命令控制。結果顯示在系統日誌中。計算器是由 cas 於 1993 年建立的一箇舊應用程式。
- 開啟Desktops.OpenDoc Calc.Tool以顯示一些可以使用計算器執行的操作示例。
- 練習這些示例並在系統日誌中觀察結果。
- 在您選擇的檢視器中編輯您自己的操作並執行它們。
計算器使用以下命令控制
Calc.Reset - 重置計算器並刪除所有由 Calc.Set 命令定義的使用者定義變數。
Calc.Set name := expression ~ - 將表示式的值賦給命名區域性變數。
Calc.List - 列出函子(作為提醒或幫助函式)、pi 和 e 的值,以及已使用的定義變數的名稱和值。
接下來的四個命令都以表示式作為引數。表示式的語法由以下語法定義
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".
所有運算子都是左結合的,除了“^”是右結合的。
Calc.Char expression ~ -
Calc.Dec expression ~ -
Calc.Hex expression ~ -
Calc.Real expression ~ -
元件:Desktops.OpenDoc Games.Arc。
此 Oberon 系統 3 發行版包含三款紙牌遊戲:紙牌接龍、蜘蛛紙牌和空當接龍,以及另外四款遊戲:掃雷、文字接龍、推箱子以及俄羅斯方塊。它們在遊戲中進行了描述。
元件:Desktops.OpenDoc HPCalc.Arc。
惠普計算器仍在開發和改進中。
- 開啟Desktops.OpenDoc HPCalc.Panel。
- 像使用任何其他手持式惠普計算器一樣,使用逆波蘭表示法直觀地使用計算器。但是請注意,左下角的輸入文字欄位是一個真正的文字欄位小部件,可以根據 Oberon 系統 3 原則進行操作。
計算器使用以下按鈕控制
- ??
元件:Desktops.OpenDoc LPRPrinter.Arc。
遠端印表機由在任何合適的 Oberon 文字檢視器(文字小部件、文字文件)中編輯的一組 Oberon 命令控制。
- 開啟Desktops.OpenDoc LPRPrinter.Tool以顯示一些控制遠端列印的操作示例。
- 在您選擇的檢視器中編輯您自己的操作並執行它們。
遠端列印由以下命令控制:
LPRPrinter.Install - 安裝印表機驅動程式。無需在需要時才安裝印表機驅動程式,將此命令新增到 Configuration.Text 檔案中即可從一開始就安裝。
Desktops.PrintDoc queue@host * - 將標記的文件列印到指定主機上的指定佇列,例如 lph1@lillian 或 "lph1-ds@lillian"。
LPRPrinter.PrintPSFile queue@host ps-file - 將 Postscript 檔案列印到指定的佇列。
LPRPrinter.ShowJobs queue@host - 列出佇列中所有等待的作業。
LPRPrinter.RemoveJobs queue@host [jobno] ~ - 從指定主機上的指定佇列中刪除作業 jobno。如果沒有給出數字,則刪除所有作業。
LPRPrinter.BannerPage (on | off) - 開啟或關閉列印橫幅頁面。預設情況下列印開啟。
LPRPrinter.MailBack (on | off) - 開啟或關閉列印作業完成後傳送電子郵件訊息。預設情況下發送訊息關閉。
元件:Desktops.OpenDoc PS.Arc。
~PS 工具可以從 Oberon 圖片檔案建立 PostScript 檔案。
PS 模組匯出一個單一命令,該命令在 PS.Tool 中有文件記錄,並在下面進行描述。
PS.PictToPost fileName [\[a][e][r][l | p]] [scaling] ~ 轉換指定的 Oberon 圖片檔案(字尾為 .Pict)並建立一個字尾為 .ps 的 PostScript 檔案。
這些選項可以以任意順序指定:
- a - 建立 A3 頁面
- e - 建立 EPS(封裝的 PS)檔案
- r - 使用行程長度編碼
- l - 橫向格式
- p - 縱向格式(預設)
scaling 因子的預設值為 1。
元件:Desktops.OpenDoc Sort.Arc。
文字行排序器會對檔案或開啟的文件中包含的(以回車符結尾的)行進行排序,並在新的文件檢視器中顯示結果。此功能有一些限制:
- 允許的最大長度為 256 個字元,包括結尾的 CR。
- 允許的最大行數為 2000 行。
- 文字中的浮動部件將被視為單個字元。
- 字型、文字顏色和垂直偏移不會保留。
如果超過上述任何限制,將發生陷阱。
Sort 模組匯出一個單一命令,該命令在 Sort.Tool 中有文件記錄,並在下面進行描述。
Sort.Sort (fileName | * | ^) [\[e][r][u]] ~ 對指定檔案的行進行排序,並在文件檢視器“Sorted.Text”中顯示結果文字。系統日誌中會顯示排序的行總數。這些選項可以以任意順序指定:
- e - 包括僅包含空格或製表符的空行。
- r - 以反向順序排序。
- u - 僅保留唯一行,即丟棄重複行。
元件:Desktops.OpenDoc WTS.Arc。
使用者開發的有趣的 Oberon 擴充套件程式定期釋出並在許多 FTP 站點上提供。如果您也希望利用這些開發成果,以下是在您的 System 3 系統上安裝有價值的 Oberon V4 材料的說明。
您可能在 FTP 目錄中找到的一些檔案是許多 Oberon V4 文字檔案。由於它們的名稱與 System 3 中使用的 .Text 或 .Mod 副檔名相同,因此乍一看無法區分它們。*.Text 檔案是使用 V4 文字處理器建立的,包含字型、顏色、圖片和其他文字控制元素。但是,目錄路徑或最終的 ReadMe 檔案可能會提示 V4。無論如何,您必須使用 WTS 工具轉換這些文字檔案,該工具作為 歸檔應用程式 提供,必須先安裝它。使用 System.Directory WTS* ~ 進行驗證。
WTS 模組匯出一個單一命令,該命令在 WTS.Tool 中有文件記錄,並在下面進行描述。
WTS.Convert fileName [\[s][b]] 將指定的 Oberon V4 文字檔案轉換為 Oberon System 3 文字檔案。字型也會被轉換,同時保留文字的顏色和垂直偏移。此外,如果使用選項 \s,則包含的 Elems 將轉換為相應的部件,即:
- FoldElems 轉換為 Outline 部件(使用 WTSFold.Mod 的 Outlines.New)
- GraphicElems 轉換為其 BasicFigures 元素(線、矩形、圓形、樣條曲線)(使用 WTS.Draw.Mod)
- PictElems 轉換為圖片(使用 WTSPict.Mod 的 Pictures.NewPicture)
- StampElems 轉換為 TimeStamp 部件(使用 WTSStamp.Mod 的 TimeStamps.New)
- ParcElems 和 StyleElems 轉換為 TextStyle 部件(使用 WTSStamp.Mod 的 TextGadgets.NewStyleProc)。但是,源文件包含的(文字)樣式不得超過 48 個。
如果使用選項 \b,則原始檔案將重新命名為 .Bak 名稱。
練習
訪問 ftp://nuchem.nsrl.rochester.edu/pub/Oberon/B2Project/ [失效連結][1] 並使用 FTP.Get 以二進位制方式下載。提取 AnnualReport96.Text。使用 WTS.Convert AnnualReport96.Text \bs 進行轉換,並開啟最終文件 AnnualReport96.Text。
如果您沒有可用的 V4,您仍然可以從此目錄下載描述 B2 專案架構、狀態等的 Postscript 檔案。
另一個轉換示例是模組 ftp://nuchem.nsrl.rochester.edu/pub/Oberon/Goodies/B2Out.Mod [失效連結][1]。
元件:Desktops.OpenDoc Win.FontTools.Arc。
閱讀 字型編輯器使用者指南 中的描述。
元件:Desktops.OpenDoc Win.PolyWorld.Arc。
PolyWorlds 是一個用於快速顯示多邊形世界的工具,即僅由多邊形表面組成的三維場景。
提供了一個名為“Poly.Panel”的標準面板,可以在 Oberon System 3 的 Gadgets 環境中將其作為文件開啟。其右側是當前顯示的多邊形世界,左側是幾個標準介面元素。
世界資料
可用場景檔案的列表位於左下角。使用滑鼠中鍵 (MM) 單擊其中一個條目將載入並顯示相應的場景。在較慢的機器上,您可能需要等待幾秒鐘才能繪製新場景,具體取決於其複雜性。每次啟用“顯示”按鈕時,名稱列表都會更新。
世界
[清除] 清空當前世界。
[統計] 將當前的形狀、點和多邊形數量列印到系統日誌。
Horizon 複選框啟用或停用地平線的顯示。
檢視 [重置] 返回到預設檢視,觀察者位於原點,沿著負 z 軸方向觀看。
[對齊] 旋轉當前檢視,直到所選形狀的區域性座標系與相機座標系對齊。區域性座標系是在將形狀變換到世界空間之前定義形狀的座標空間。
[基準測試] 顯示一系列固定的相機檢視,並將動畫持續時間(以刻度數和近似秒數表示)列印到系統日誌。
移動
在顯示世界的框架框內按下滑鼠左鍵 (ML) 會呼叫當前導航器。導航器將處理滑鼠和鍵盤輸入,直到釋放滑鼠鍵,並將這些輸入對映到當前檢視的變化。有兩種導航器可供選擇
[平面] 是預設導航器,在打開面板後處於活動狀態。只要按下 ML,相機就會根據水平滑鼠移動左右旋轉。垂直滑鼠移動會影響當前速度。鍵盤上的“a”和“z”鍵可上下移動觀察者。
[飛行] 啟用一個簡單的飛行模型。滑鼠移動會影響虛擬飛機的俯仰和橫滾。前向速度由鍵盤上的“a”和“z”鍵控制。
視野
可以使用滑塊以及下面的文字欄位修改相機的焦距,從而放大或縮小。文字欄位以度為單位顯示相機視錐體的張角。
當滑鼠箭頭指向當前檢視中顯示的物件時,單擊滑鼠右鍵 (MR) 會選擇指示的物件(也稱為形狀)。可以使用顏色選擇器為所選形狀選擇新的顏色,並可以使用哥倫布檢查和修改其屬性。分配給形狀(以及框架本身)的模型也可以進行檢查,並顯示不是特定於單個物件的屬性,例如天空和地面顏色。
某些形狀具有“Cmd”屬性,該屬性可以設定為任何 Oberon 命令。透過用滑鼠中鍵單擊相應的形狀來啟用該命令。
可以使用簡單的文字編輯器建立多邊形世界。PolyWorlds 與多個示例場景一起分發,這些場景可以作為場景生成的教程介紹。以下 EBNF 規則定義了 PolyWorlds 語法。
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 ")".
註釋以“#”開頭,一直延續到行尾。有關命令的更詳細說明,請參閱 E. Oswald,PolyWorlds,蘇黎世聯邦理工學院計算機系統研究所畢業論文,1994 年。
元件:Desktops.OpenDoc Win.Snapshot.Arc。
快照捕獲指定 Oberon 顯示框架(檢視器、文件、視覺小部件甚至整個螢幕)中包含的點陣圖,並將其轉換為在倫勃朗框架中顯示的圖片物件。它的功能對於記錄 Oberon 系統擴充套件非常有用。但是,您應該在文件中插入活動文件(Desktops.InsertDoc docName),而不是捕獲的靜態圖片。快照是倫勃朗工具的擴充套件。
警告:請記住桌面有四個象限:如果捕獲的框架在當前象限上不可見,則圖片將變得模糊。
以下三個命令用於對標記的視覺物件進行快照。
Snapshot.Viewer * 開啟一個名為“Snapshot”的倫勃朗文件,顯示標記的檢視器的快照。
Snapshot.Document * 開啟一個名為“Snapshot”的倫勃朗文件,顯示標記的文件的快照。
Snapshot.Gadget * 開啟一個名為“Snapshot”的倫勃朗文件,顯示標記的小部件的快照。
接下來的三個命令用於在插入點插入標記的視覺物件的快照。
Snapshot.InsertViewer * 在插入點插入一個倫勃朗框架,該框架顯示標記的檢視器的快照。
Snapshot.InsertDocument * 在插入點插入一個倫勃朗框架,該框架顯示標記的文件的快照。
Snapshot.InsertGadget * 在插入點插入一個倫勃朗框架,該框架顯示標記的小部件的快照。
最後兩個命令用於對整個 Oberon 螢幕進行快照。
Snapshot.Screen 開啟一個名為“Snapshot”的倫勃朗文件,顯示整個螢幕的快照。不執行顏色對映以確保生成的圖片中的顏色正確。
Snapshot.Screen2 開啟一個名為“Snapshot”的倫勃朗文件,顯示整個螢幕的快照。顏色對映到當前的 Oberon 調色盤,並且調色盤與圖片一起儲存。
1996 年 11 月 28 日修訂
- Calc.Arc
- Calc.Char "j" + 1 的工作效果不符合預期。
- Hex.Arc 不得安裝 - 它已安裝。冗餘。
- HPCalc.Mod:END HPCalc 之後末尾的文字必須修改
- Calc 現在是 HPCalc
- Calc.Input 不存在(在模組文字中已註釋)
- MyBackup.Do 不存在,但似乎很有趣;引數“always”是什麼?
-
- .Scn.Fnt .Pr2.Fnt .Pr3.Fnt .Pr6.Fnt
- 語法 8 8b 8i 8m
- 語法 10 10b 10i 10m
- 語法 12 12b 12i 12m
- 語法 14 14b 14i 14m
- 語法 16 16b 16i 16m
- 語法 20 20b 20i 20m
- 語法 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 在分發版中缺失。
- Math20.Pr6.Fnt 和 Math20.Pr2.Fnt 缺失。
- Math24.Pr6.Fnt 和 Math24.Pr2.Fnt 缺失。
- Courier12.Pr6.Fnt 和 Courier12.Pr2.Fnt 缺失。
- 沒有 Greek_.Pr2.Fnt 和 Greek_.Pr6.Fnt。
- PS.Tool:命令語法以上未顯示選項 l 和 p。
- PS.Mod:Helv.ps 不存在 - 刪除。
- Figure3.Pict 不存在,替換為 Clown.Pict 或刪除 END PS 之後的所有內容。
- 這些行是什麼
- (*PW = 576; PH = 792; *)
- PW = 580; PH = 820; (*dia*)
- pw0 = 550; ph0 = 800; (*laserwriter*)
- MaxN = 128;
- 在開頭?只有第二個有意義!
- Inspectors.Arc
- Libraries.Mod 和 Libraries.Panel 必須重新命名以避免與新版本衝突。新版本不得命名為 Libraries2。
- Poly.Arc
- TestEyePoly 中的 GPakToPoly 是什麼?
- Snapshot.Arc
- Win.Snapshot.Mod 中的 Snaphot.Screen2 是什麼?在 Snapshot.Tool 中未記錄。
- PolyWorld.Arc
- PolyWorlds.Text 指向檢查器:替換為指向哥倫布的引用。面板中沒有“目錄”按鈕,但有一個“顯示”按鈕。
- Hex.Arc
- 錯誤,交付了舊元件(Hex.Mod 和 Hex.Tool)。新的 Hex.Mod 還需要模組 ListRiders,但該模組不存在!!
- Win.EditTools.Arc
- Win.FontRes.Mod 匯入 Log,Log 位於 Log.Arc 中。!!!
- 哪個元件僅適用於 Windows?
- Win.FontRes.Mod 或/和 FontEditor.Mod?
1997 年 5 月 30 日安裝
A
應用程式
ASCII 表
ASCIITab.NewFrame
C
Calc.Char
Calc.Dec
Calc.Hex
Calc.List
Calc.Real
Calc.Reset
Calc.Set
計算器:桌面
計算器:惠普
G
H
L
LPRPrinter.BannerPage
LPRPrinter.Install
LPRPrinter.MailBack
LPRPrinter.PrintPSFile
LPRPrinter.RemoveJobs
LPRPrinter.ShowJobs
P
Poly.Panel
PolyWorlds
PS 轉換器
PS.PictToPost
PS.Tool
R
S
Snapshot.Document
Snapshot.Gadget
Snapshot.InsertDocument
Snapshot.InsertGadget
Snapshot.InsertViewer
Snapshot.Screen2
Snapshot.Screen
Snapshot.Viewer
快照
Sort.Sort
Sort.Tool
T
W
寫入指令碼
WTS.Convert
WTS.Tool
WTS
- ↑ a b 建立一個名為 B2 的目錄。開啟 https://riskfive.com/,在左側邊欄找到兩個 B2 連結。在“B2 overview”中找到下載連結,並將 7z 壓縮檔案解壓到剛剛建立的 B2 目錄中。確保系統已安裝 7z 解壓縮工具。例如,在 Linux Debian 系統中,需要安裝 p7zip-full 包。使用命令“7z e B2_v086_cleaned.7z”解壓壓縮檔案。閱讀 README.txt 檔案。