跳轉到內容

Oberon/ETH Oberon/教程/應用

來自 Wikibooks,開放世界的開放書籍

這些教程頁面由 André Fischer (afi) 編寫,並由Hannes Marais提供編輯協助,託管在ETHZ,並保留在ETH 許可證下。相關內容可透過 Book.Tool 在系統中找到。擴充套件內容也可在紙質版上找到。一些教程頁面位於WayBack 檔案中。

Oberon 系統 3 應用程式

此版本附帶了一組應用程式,更準確地說,是系統擴充套件。原則上,這些應用程式包含在當前 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 的字元集。

使用滑鼠中鍵單擊任何表格元素將在插入符號處插入表示的符號(如果設定了插入符號,當然)。

可以透過修改表格的字型屬性中的字型名稱來更改字型。

Oberon 桌面計算器

[編輯 | 編輯原始碼]

元件: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 發行版包含三款紙牌遊戲:紙牌接龍、蜘蛛紙牌和空當接龍,以及另外四款遊戲:掃雷、文字接龍、推箱子以及俄羅斯方塊。它們在遊戲中進行了描述。

惠普計算器 - 版本 1.2

[編輯 | 編輯原始碼]

元件: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) - 開啟或關閉列印作業完成後傳送電子郵件訊息。預設情況下發送訊息關閉。

圖片到 PostScript 轉換器

[編輯 | 編輯原始碼]

元件: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 - 僅保留唯一行,即丟棄重複行。

Oberon V4 文字檔案轉換器 - WTS

[編輯 | 編輯原始碼]

元件: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

閱讀 字型編輯器使用者指南 中的描述。

PolyWorlds

[編輯 | 編輯原始碼]

元件:Desktops.OpenDoc Win.PolyWorld.Arc

PolyWorlds 是一個用於快速顯示多邊形世界的工具,即僅由多邊形表面組成的三維場景。

Poly 面板

[編輯 | 編輯原始碼]

提供了一個名為“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 | C | G | H | L | P | R | S | T | W ]

A

應用程式
ASCII 表
ASCIITab.NewFrame

C

Calc.Char
Calc.Dec
Calc.Hex
Calc.List
Calc.Real
Calc.Reset
Calc.Set
計算器:桌面
計算器:惠普

G

遊戲

H

惠普計算器
HPCalc.Panel

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

  1. a b 建立一個名為 B2 的目錄。開啟 https://riskfive.com/,在左側邊欄找到兩個 B2 連結。在“B2 overview”中找到下載連結,並將 7z 壓縮檔案解壓到剛剛建立的 B2 目錄中。確保系統已安裝 7z 解壓縮工具。例如,在 Linux Debian 系統中,需要安裝 p7zip-full 包。使用命令“7z e B2_v086_cleaned.7z”解壓壓縮檔案。閱讀 README.txt 檔案。
華夏公益教科書