├── .gitignore ├── README.txt ├── V4 ├── AsciiCoder.Tool ├── Big.Map ├── Browser.Tool ├── Colors.Tool ├── Compiler.Tool ├── Documents.Profile ├── Draw.Text ├── Draw.Tool ├── Easter.Mod ├── EdiT.Tool ├── Edit.Guide.Text ├── Edit.Menu.Text ├── Edit.Programming.Text ├── Edit.Tool ├── EditKeys.Text ├── EditKeys.Tool ├── Elem.Guide.Text ├── FKeys.Tool ├── FoldElems.Tool ├── Folds.Profile ├── Hex.Tool ├── IFS.Mod ├── IFS.Tool ├── IconElems.Icon ├── InstallXFonts.Tool ├── Kepler.Text ├── Kepler.Tool ├── Log.Menu.Text ├── Mailer.MailboxMenu.Text ├── Mailer.ReplyMenu.Text ├── Mailer.ShowMenu.Text ├── Mailer.Tool ├── Medium.Map ├── Menu.Tool ├── Miscellaneous.Tool ├── ModToOberon.Text ├── Oberon.Header.ps ├── OberonEBNF.Text ├── OberonGuide.Text ├── OberonStartup.Mod ├── OberonV4.Text ├── Ofront.Tool ├── OfrontErrors.Text ├── OfrontUser.Text ├── Palette.Kep ├── RandomNumbers.Mod ├── SortDemo.Mod ├── Swarm.Mod ├── Syntax10.Scn.Fnt ├── System.Menu.Text ├── System.Tool ├── TTL0.Graph ├── TTL0.Lib ├── TTL1.Graph ├── TTL1.Lib ├── Welcome.Text ├── XYplane.Mod └── hello.Mod ├── V4_Dialogs ├── Calc.Dlg ├── DEInit.Dlg ├── Dialog.Menu.Text ├── Dialog.Mod ├── DialogAnalogClocks.Mod ├── DialogButtons.Mod ├── DialogCheckBoxes.Mod ├── DialogCircles.Mod ├── DialogClocks.Mod ├── DialogColorPickers.Mod ├── DialogComboBoxes.Mod ├── DialogDates.Mod ├── DialogDraw.Menu.Text ├── DialogEdit.Menu.Text ├── DialogElem.Menu.Text ├── DialogElems.Mod ├── DialogFrames.Mod ├── DialogGraphics.Mod ├── DialogGroupBoxes.Mod ├── DialogInsert.Mod ├── DialogIntSliders.Mod ├── DialogIntegerSliders.Mod ├── DialogKepler.Menu.Text ├── DialogKeplers.Mod ├── DialogLines.Mod ├── DialogListBoxes.Mod ├── DialogRadioButtons.Mod ├── DialogRectangles.Mod ├── DialogSliders.Mod ├── DialogStaticTexts.Mod ├── DialogTexts.Mod ├── DialogUtils.Mod ├── Dialogs.Changes.Text ├── Dialogs.Mod ├── Dialogs.Text ├── Dialogs.Tool ├── DialogsForMac.Text ├── DialogsPackage.txt ├── DlgItems.Ini ├── GetSet.Dlg ├── GraphicUtils.Mod ├── Insert.Dlg ├── Inspector.Dlg ├── MoreMathL.Mod ├── MyEdit.Mod ├── MyUI.Mod ├── Open.Dlg ├── Print.Dlg ├── Search.Dlg └── Test.Dlg ├── V4_Elems ├── AddAttr.Panel ├── AreaButtonElems.Mod ├── BalloonElems.Mod ├── ButtonElems.Mod ├── Calc.Panel ├── Calender.Panel ├── CheckBoxElems.Mod ├── ColorElems.Mod ├── ContainerElems.Mod ├── Directories.Mod ├── Directories.c0 ├── DynamicAttributes.Panel ├── ElemTools.Mod ├── Elems.Mod ├── Elems.Panel ├── Elems.Text ├── Elems.Tool ├── ElemsUI.Mod ├── Files.Panel ├── FilesPanel.Menu.Text ├── Font.Panel ├── FrameElems.Mod ├── GUtils.Mod ├── Help.Panel ├── IndexElems.Mod ├── InfoElems.Mod ├── Inspector.Panel ├── LinkElems.Mod ├── ListElems.Mod ├── LockedPanel.Menu.Text ├── MarkElems.Mod ├── MultiButtonElems.Mod ├── OpenElems.Mod ├── PElems.Mod ├── Panel.Menu.Text ├── Panel.Mod ├── PanelElems.Mod ├── PanelFrames.Mod ├── Parc.Panel ├── Pictures.Mod ├── Print.Panel ├── RadioButtonElems.Mod ├── ShowError.Mod ├── StaticTextElems.Mod ├── TextAreaElems.Mod ├── TextFieldElems.Mod └── VersionElems.Mod ├── V4_ofront ├── linux386 │ ├── Fontfix.Mod │ ├── InputTest.Mod │ ├── Kernel.Mod │ ├── Modules.Mod │ ├── My.Tool │ ├── Ofront.par │ ├── README │ ├── Reals.Mod │ ├── SYSTEM.h │ ├── Syntax10.Scn.Fnt │ ├── System.Tool │ ├── Test.Mod │ ├── Test2.Mod │ ├── Texts │ ├── Unix.Mod │ ├── cl.bash │ ├── makeDialogs │ ├── makeElems │ ├── makefile │ ├── makev4 │ ├── ob │ ├── oberon.bash │ ├── ocl.bash │ └── po ├── raspbian │ ├── GPIO.Mod │ ├── GPIO.c0 │ ├── Kernel.Mod │ ├── Modules.Mod │ ├── My.Tool │ ├── OberonStartup.Mod │ ├── Ofront.par │ ├── README │ ├── RPI.Mod │ ├── RPI.c0 │ ├── RPItest.Mod │ ├── Reals.Mod │ ├── SYSTEM.h │ ├── Syntax10.Scn.Fnt │ ├── System.Tool │ ├── Test.Mod │ ├── TestPi.Mod │ ├── TestPiMain.Mod │ ├── Unix.Mod │ ├── WiringPi.Mod │ ├── cl.bash │ ├── fmap.txt │ ├── makefile │ ├── ob │ ├── oberon.bash │ ├── ocl.bash │ └── po └── share │ ├── Args.Mod │ ├── AsciiCoder.Mod │ ├── Bitmaps.Mod │ ├── Browser.Mod │ ├── BrowserCmd.Mod │ ├── Calc.Mod │ ├── ChartElems.Mod │ ├── ClockElems.Mod │ ├── CmdlnTexts.Mod │ ├── Colors.Mod │ ├── Compiler.Mod │ ├── CompilerCmd.Mod │ ├── Compress.Mod │ ├── Console.Mod │ ├── Curves.Mod │ ├── Dates.Mod │ ├── Display.Mod │ ├── Display1.Mod │ ├── Documents.Mod │ ├── Draw.Mod │ ├── EdiT.Mod │ ├── Edit.Mod │ ├── EditKeys.Mod │ ├── EditTools.Mod │ ├── ErrorElems.Mod │ ├── FKeys.Mod │ ├── Files.Mod │ ├── FoldElems.Mod │ ├── Folds.Mod │ ├── FontToBDF.Mod │ ├── Fonts.Mod │ ├── GraphicElems.Mod │ ├── GraphicFrames.Mod │ ├── GraphicOps.Mod │ ├── Graphics.Mod │ ├── HandlerElems.Mod │ ├── Hennessy.Mod │ ├── Hex.Mod │ ├── IconElems.Mod │ ├── In.Mod │ ├── Input.Mod │ ├── Kepler.Mod │ ├── Kepler1.Mod │ ├── Kepler2.Mod │ ├── Kepler4.Mod │ ├── Kepler5.Mod │ ├── Kepler6.Mod │ ├── Kepler7.Mod │ ├── Kepler8.Mod │ ├── Kepler9.Mod │ ├── KeplerElems.Mod │ ├── KeplerFrames.Mod │ ├── KeplerGraphs.Mod │ ├── KeplerPorts.Mod │ ├── Kernel.Mod │ ├── LineElems.Mod │ ├── Mailer.Mod │ ├── Math.Mod │ ├── MathL.Mod │ ├── MathLX.Mod │ ├── MenuElems.Mod │ ├── MenuViewers.Mod │ ├── Miscellaneous.Mod │ ├── Modules.Mod │ ├── OCatCmd.Mod │ ├── Oberon.Mod │ ├── Ofront.Mod │ ├── OfrontCmd.Mod │ ├── OfrontOPB.Mod │ ├── OfrontOPC.Mod │ ├── OfrontOPM.Mod │ ├── OfrontOPM.cmdln.Mod │ ├── OfrontOPP.Mod │ ├── OfrontOPS.Mod │ ├── OfrontOPT.Mod │ ├── OfrontOPV.Mod │ ├── Out.Mod │ ├── ParcElems.Mod │ ├── PerfectHash.Mod │ ├── PopupElems.Mod │ ├── Printer.Mod │ ├── Reals.Mod │ ├── Rectangles.Mod │ ├── SYSTEM.Mod │ ├── SYSTEM.c0 │ ├── Splines.Mod │ ├── StampElems.Mod │ ├── Strings.Mod │ ├── StyleElems.Mod │ ├── System.Mod │ ├── TableElems.Mod │ ├── TextFrames.Mod │ ├── TextPFrames.Mod │ ├── TextPreview.Mod │ ├── TextPrinter.Mod │ ├── Texts.Mod │ ├── Types.Mod │ ├── Viewers.Mod │ ├── X11.Mod │ ├── XIn.Mod │ ├── oberon.Mod │ └── ofrontparam.c ├── fonts ├── Courier.Lm3.Fnt ├── Courier10.Scn.Fnt ├── Courier12.Scn.Fnt ├── Courier8.Scn.Fnt ├── Elektra.Pr3.Fnt ├── Elektra.Scn.Fnt ├── GreekSyntax10.Pr3.Fnt ├── GreekSyntax10.Scn.Fnt ├── GreekSyntax12.Pr3.Fnt ├── GreekSyntax12.Scn.Fnt ├── GreekSyntax14.Pr3.Fnt ├── GreekSyntax14.Scn.Fnt ├── GreekSyntax16.Pr3.Fnt ├── GreekSyntax16.Scn.Fnt ├── GreekSyntax20.Pr3.Fnt ├── GreekSyntax20.Scn.Fnt ├── GreekSyntax24.Pr3.Fnt ├── GreekSyntax24.Scn.Fnt ├── Math.Lm3.Fnt ├── Math10.Pr3.Fnt ├── Math10.Scn.Fnt ├── Math12.Pr3.Fnt ├── Math12.Scn.Fnt ├── Math14.Pr3.Fnt ├── Math14.Scn.Fnt ├── Math16.Pr3.Fnt ├── Math16.Scn.Fnt ├── Math20.Pr3.Fnt ├── Math20.Scn.Fnt ├── Math24.Pr3.Fnt ├── Math24.Scn.Fnt ├── Oberon.Courier10.Scn.bdf ├── Oberon.Courier12.Scn.bdf ├── Oberon.Courier8.Scn.bdf ├── Oberon.Elektra.Scn.bdf ├── Oberon.GreekSyntax10.Scn.bdf ├── Oberon.GreekSyntax12.Scn.bdf ├── Oberon.GreekSyntax14.Scn.bdf ├── Oberon.GreekSyntax16.Scn.bdf ├── Oberon.GreekSyntax20.Scn.bdf ├── Oberon.GreekSyntax24.Scn.bdf ├── Oberon.LetterHead.Scn.bdf ├── Oberon.Math10.Scn.bdf ├── Oberon.Math12.Scn.bdf ├── Oberon.Math14.Scn.bdf ├── Oberon.Math16.Scn.bdf ├── Oberon.Math20.Scn.bdf ├── Oberon.Math24.Scn.bdf ├── Oberon.Syntax10.Scn.bdf ├── Oberon.Syntax10b.Scn.bdf ├── Oberon.Syntax10i.Scn.bdf ├── Oberon.Syntax10m.Scn.bdf ├── Oberon.Syntax10w.Scn.bdf ├── Oberon.Syntax10x.Scn.bdf ├── Oberon.Syntax11m.Scn.bdf ├── Oberon.Syntax12.Scn.bdf ├── Oberon.Syntax12b.Scn.bdf ├── Oberon.Syntax12i.Scn.bdf ├── Oberon.Syntax12m.Scn.bdf ├── Oberon.Syntax14.Scn.bdf ├── Oberon.Syntax14b.Scn.bdf ├── Oberon.Syntax14i.Scn.bdf ├── Oberon.Syntax14m.Scn.bdf ├── Oberon.Syntax16.Scn.bdf ├── Oberon.Syntax16b.Scn.bdf ├── Oberon.Syntax16i.Scn.bdf ├── Oberon.Syntax16m.Scn.bdf ├── Oberon.Syntax20.Scn.bdf ├── Oberon.Syntax20b.Scn.bdf ├── Oberon.Syntax20i.Scn.bdf ├── Oberon.Syntax20m.Scn.bdf ├── Oberon.Syntax24.Scn.bdf ├── Oberon.Syntax24b.Scn.bdf ├── Oberon.Syntax24i.Scn.bdf ├── Oberon.Syntax24m.Scn.bdf ├── Oberon.Syntax8.Scn.bdf ├── Oberon.Syntax8b.Scn.bdf ├── Oberon.Syntax8i.Scn.bdf ├── Oberon.Syntax8m.Scn.bdf ├── Oberon.Syntax9m.Scn.bdf ├── Oberon.Times10.Scn.bdf ├── Oberon.Times10b.Scn.bdf ├── Oberon.Times10i.Scn.bdf ├── Oberon.Times12.Scn.bdf ├── Oberon.Times12b.Scn.bdf ├── Oberon.Times12i.Scn.bdf ├── Oberon.Times14.Scn.bdf ├── Oberon.Times14b.Scn.bdf ├── Oberon.Times14i.Scn.bdf ├── Oberon.Times16.Scn.bdf ├── Oberon.Times16b.Scn.bdf ├── Oberon.Times16i.Scn.bdf ├── Oberon.Times20.Scn.bdf ├── Oberon.Times20b.Scn.bdf ├── Oberon.Times20i.Scn.bdf ├── Oberon.Times24.Scn.bdf ├── Oberon.Times24b.Scn.bdf ├── Oberon.Times24i.Scn.bdf ├── Oberon.Times8.Scn.bdf ├── Oberon.Times8b.Scn.bdf ├── Oberon.Times8i.Scn.bdf ├── Oberon.cmr14.Scn.bdf ├── Syntax.Lm3.Fnt ├── Syntax10.Pr3.Fnt ├── Syntax10.Scn.Fnt ├── Syntax10b.Pr3.Fnt ├── Syntax10b.Scn.Fnt ├── Syntax10i.Pr3.Fnt ├── Syntax10i.Scn.Fnt ├── Syntax10m.Pr3.Fnt ├── Syntax10m.Scn.Fnt ├── Syntax10w.Scn.Fnt ├── Syntax10x.Scn.Fnt ├── Syntax11m.Pr3.Fnt ├── Syntax11m.Scn.Fnt ├── Syntax12.Pr3.Fnt ├── Syntax12.Scn.Fnt ├── Syntax12b.Pr3.Fnt ├── Syntax12b.Scn.Fnt ├── Syntax12i.Pr3.Fnt ├── Syntax12i.Scn.Fnt ├── Syntax12m.Pr3.Fnt ├── Syntax12m.Scn.Fnt ├── Syntax14.Pr3.Fnt ├── Syntax14.Scn.Fnt ├── Syntax14b.Pr3.Fnt ├── Syntax14b.Scn.Fnt ├── Syntax14i.Pr3.Fnt ├── Syntax14i.Scn.Fnt ├── Syntax14m.Pr3.Fnt ├── Syntax14m.Scn.Fnt ├── Syntax16.Pr3.Fnt ├── Syntax16.Scn.Fnt ├── Syntax16b.Pr3.Fnt ├── Syntax16b.Scn.Fnt ├── Syntax16i.Pr3.Fnt ├── Syntax16i.Scn.Fnt ├── Syntax16m.Pr3.Fnt ├── Syntax16m.Scn.Fnt ├── Syntax20.Pr3.Fnt ├── Syntax20.Scn.Fnt ├── Syntax20b.Pr3.Fnt ├── Syntax20b.Scn.Fnt ├── Syntax20i.Pr3.Fnt ├── Syntax20i.Scn.Fnt ├── Syntax20m.Pr3.Fnt ├── Syntax20m.Scn.Fnt ├── Syntax24.Pr3.Fnt ├── Syntax24.Scn.Fnt ├── Syntax24b.Pr3.Fnt ├── Syntax24b.Scn.Fnt ├── Syntax24i.Pr3.Fnt ├── Syntax24i.Scn.Fnt ├── Syntax24m.Pr3.Fnt ├── Syntax24m.Scn.Fnt ├── Syntax8.Pr3.Fnt ├── Syntax8.Scn.Fnt ├── Syntax8b.Pr3.Fnt ├── Syntax8b.Scn.Fnt ├── Syntax8i.Pr3.Fnt ├── Syntax8i.Scn.Fnt ├── Syntax8m.Pr3.Fnt ├── Syntax8m.Scn.Fnt ├── Syntax9m.Pr3.Fnt ├── Syntax9m.Scn.Fnt ├── Times.Lm3.Fnt ├── Times10.Scn.Fnt ├── Times10b.Scn.Fnt ├── Times10i.Scn.Fnt ├── Times12.Scn.Fnt ├── Times12b.Scn.Fnt ├── Times12i.Scn.Fnt ├── Times14.Scn.Fnt ├── Times14b.Scn.Fnt ├── Times14i.Scn.Fnt ├── Times16.Scn.Fnt ├── Times16b.Scn.Fnt ├── Times16i.Scn.Fnt ├── Times20.Scn.Fnt ├── Times20b.Scn.Fnt ├── Times20i.Scn.Fnt ├── Times24.Scn.Fnt ├── Times24b.Scn.Fnt ├── Times24i.Scn.Fnt ├── Times8.Scn.Fnt ├── Times8b.Scn.Fnt ├── Times8i.Scn.Fnt └── fonts.dir └── man1 ├── oberon.1 ├── ocat.1 ├── ocl.1 ├── ofront.1 └── showdef.1 /.gitignore: -------------------------------------------------------------------------------- 1 | *.Bak 2 | *~ 3 | *.a 4 | *.o 5 | *.so 6 | *.sym 7 | *.tar 8 | *.gz 9 | .tmp.* 10 | 11 | /V4_ofront/raspbian/Directories.c0 12 | /V4_ofront/linux386/Directories.c0 13 | /V4_ofront/raspbian/TestDir.Mod 14 | /V4_ofront/raspbian/TestGC.Mod 15 | /V4_ofront/raspbian/TestX.Mod 16 | /V4_ofront/linux386/TestGC.Mod 17 | /V4_ofront/linux386/TestGC.c0 18 | /V4_ofront/linux386/TestDir.Mod 19 | /V4_ofront/linux386/Fonttest.Mod 20 | -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | ofront is an Oberon-2 to C translator written in Oberon-2. 2 | It supports both ANSI and K&R style C and supports cross 3 | translation to arbitrary target platforms. ofront includes 4 | a runtime system including an automatic garbage collector 5 | for Linux, the Oberon V4 system, and a set of command-line tools. 6 | 7 | Download ofront 1.4 for Linux/i386 or Raspbian from http://www.software-templ.com/shareware.html. 8 | 9 | The directory structure of the project ofront is as follows: 10 | 11 | fonts 12 | A set of bitmap fonts for the Oberon system. 13 | This directory is not required for building ofront. 14 | 15 | man1 16 | A set of section 1 manual pages. 17 | This directory is not required for building ofront. 18 | 19 | V4 20 | A set of example modules and resource files for the original Oberon V4 system. 21 | This directory is not required for building ofront. 22 | 23 | V4_ofront 24 | The files that are required for building ofront. 25 | 26 | share 27 | A set of source files not specific for any particular ofront version. 28 | 29 | linux386 30 | The set of files specifically adapted for the linux-386 version of ofront. 31 | This includes adapted low level modules as well as 32 | the 'makefile' and the parameter file 'Ofront.par'. 33 | 34 | raspbian 35 | The set of files specifically adapted for the raspbian version of ofront. 36 | This includes adapted low level modules as well as 37 | the 'makefile' and the parameter file 'Ofront.par'. 38 | This version is in many aspects similar to linux386. 39 | One difference is the added module WiringPi, which provides an interface to 40 | the popular libwiringPi.so for the Raspberry Pi. 41 | 42 | -------------------------------------------------------------------------------- /V4/AsciiCoder.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/AsciiCoder.Tool -------------------------------------------------------------------------------- /V4/Big.Map: -------------------------------------------------------------------------------- 1 | #fontmapfile 2 | Courier8.Scn.Fnt Courier10.Scn.Fnt 3 | Courier10.Scn.Fnt Courier12.Scn.Fnt 4 | Syntax8.Scn.Fnt Syntax12.Scn.Fnt 5 | Syntax8b.Scn.Fnt Syntax12b.Scn.Fnt 6 | Syntax8i.Scn.Fnt Syntax12i.Scn.Fnt 7 | Syntax8m.Scn.Fnt Syntax12m.Scn.Fnt 8 | Syntax10.Scn.Fnt Syntax14.Scn.Fnt 9 | Syntax10b.Scn.Fnt Syntax14b.Scn.Fnt 10 | Syntax10i.Scn.Fnt Syntax14i.Scn.Fnt 11 | Syntax10m.Scn.Fnt Syntax14m.Scn.Fnt 12 | Syntax10w.Scn.Fnt Syntax14.Scn.Fnt 13 | Syntax10x.Scn.Fnt Syntax14.Scn.Fnt 14 | Syntax12.Scn.Fnt Syntax16.Scn.Fnt 15 | Syntax12b.Scn.Fnt Syntax16b.Scn.Fnt 16 | Syntax12i.Scn.Fnt Syntax16i.Scn.Fnt 17 | Syntax12m.Scn.Fnt Syntax16m.Scn.Fnt 18 | Syntax14.Scn.Fnt Syntax20.Scn.Fnt 19 | Syntax14b.Scn.Fnt Syntax20b.Scn.Fnt 20 | Syntax14i.Scn.Fnt Syntax20i.Scn.Fnt 21 | Syntax14m.Scn.Fnt Syntax20m.Scn.Fnt 22 | Syntax16.Scn.Fnt Syntax24.Scn.Fnt 23 | Syntax16b.Scn.Fnt Syntax24b.Scn.Fnt 24 | Syntax16i.Scn.Fnt Syntax24i.Scn.Fnt 25 | Syntax16m.Scn.Fnt Syntax24m.Scn.Fnt 26 | Syntax20.Scn.Fnt Syntax24.Scn.Fnt 27 | Syntax20b.Scn.Fnt Syntax24b.Scn.Fnt 28 | Syntax20i.Scn.Fnt Syntax24i.Scn.Fnt 29 | Syntax20m.Scn.Fnt Syntax24m.Scn.Fnt 30 | GreekSyntax10.Scn.Fnt GreekSyntax14.Scn.Fnt 31 | GreekSyntax12.Scn.Fnt GreekSyntax16.Scn.Fnt 32 | GreekSyntax14.Scn.Fnt GreekSyntax20.Scn.Fnt 33 | GreekSyntax16.Scn.Fnt GreekSyntax24.Scn.Fnt 34 | GreekSyntax20.Scn.Fnt GreekSyntax24.Scn.Fnt 35 | Math10.Scn.Fnt Math14.Scn.Fnt 36 | Math12.Scn.Fnt Math16.Scn.Fnt 37 | Math14.Scn.Fnt Math20.Scn.Fnt 38 | Math16.Scn.Fnt Math24.Scn.Fnt 39 | Math20.Scn.Fnt Math24.Scn.Fnt 40 | Times8.Scn.Fnt Times10.Scn.Fnt 41 | Times8b.Scn.Fnt Times10b.Scn.Fnt 42 | Times8i.Scn.Fnt Times10i.Scn.Fnt 43 | Times10.Scn.Fnt Times12.Scn.Fnt 44 | Times10b.Scn.Fnt Times12b.Scn.Fnt 45 | Times10i.Scn.Fnt Times12i.Scn.Fnt 46 | Times12.Scn.Fnt Times14.Scn.Fnt 47 | Times12b.Scn.Fnt Times14b.Scn.Fnt 48 | Times12i.Scn.Fnt Times14i.Scn.Fnt 49 | Times14.Scn.Fnt Times16.Scn.Fnt 50 | Times14b.Scn.Fnt Times16b.Scn.Fnt 51 | Times14i.Scn.Fnt Times16i.Scn.Fnt 52 | Times16.Scn.Fnt Times20.Scn.Fnt 53 | Times16b.Scn.Fnt Times20b.Scn.Fnt 54 | Times16i.Scn.Fnt Times20i.Scn.Fnt 55 | Times20.Scn.Fnt Times24.Scn.Fnt 56 | Times20b.Scn.Fnt Times24b.Scn.Fnt 57 | Times20i.Scn.Fnt Times24i.Scn.Fnt 58 | -------------------------------------------------------------------------------- /V4/Browser.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Browser.Tool -------------------------------------------------------------------------------- /V4/Colors.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Colors.Tool -------------------------------------------------------------------------------- /V4/Compiler.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Compiler.Tool -------------------------------------------------------------------------------- /V4/Documents.Profile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Documents.Profile -------------------------------------------------------------------------------- /V4/Draw.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Draw.Text -------------------------------------------------------------------------------- /V4/Draw.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Draw.Tool -------------------------------------------------------------------------------- /V4/Easter.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Easter.Mod -------------------------------------------------------------------------------- /V4/EdiT.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/EdiT.Tool -------------------------------------------------------------------------------- /V4/Edit.Guide.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Edit.Guide.Text -------------------------------------------------------------------------------- /V4/Edit.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Edit.Menu.Text -------------------------------------------------------------------------------- /V4/Edit.Programming.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Edit.Programming.Text -------------------------------------------------------------------------------- /V4/Edit.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Edit.Tool -------------------------------------------------------------------------------- /V4/EditKeys.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/EditKeys.Text -------------------------------------------------------------------------------- /V4/EditKeys.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/EditKeys.Tool -------------------------------------------------------------------------------- /V4/Elem.Guide.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Elem.Guide.Text -------------------------------------------------------------------------------- /V4/FKeys.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/FKeys.Tool -------------------------------------------------------------------------------- /V4/FoldElems.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/FoldElems.Tool -------------------------------------------------------------------------------- /V4/Folds.Profile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Folds.Profile -------------------------------------------------------------------------------- /V4/Hex.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Hex.Tool -------------------------------------------------------------------------------- /V4/IFS.Mod: -------------------------------------------------------------------------------- 1 | MODULE IFS; 2 | (* Iterated Function System, page 92 *) 3 | IMPORT RandomNumbers, In, Out, XYplane; 4 | 5 | VAR 6 | a1, b1, c1, d1, e1, f1, p1: REAL; (* IFS parameters *) 7 | a2, b2, c2, d2, e2, f2, p2: REAL; (* IFS parameters *) 8 | a3, b3, c3, d3, e3, f3, p3: REAL; (* IFS parameters *) 9 | a4, b4, c4, d4, e4, f4, p4: REAL; (* IFS parameters *) 10 | X, Y: REAL; (* the position of the pen *) 11 | x0: INTEGER; (* Distance of origin fm left edge[pixels] *) 12 | y0: INTEGER; (* Distance of origin from bottom edge[pixels] *) 13 | e: INTEGER; (* Size of unit interval [pixels] *) 14 | initialized: BOOLEAN; (* Are parameters initialized? *) 15 | 16 | PROCEDURE Draw*; (* command marked for export *) 17 | VAR 18 | x, y: REAL; (* new position *) 19 | xi, eta: INTEGER; (* pixel coordinates of pen *) 20 | rn: REAL; 21 | BEGIN 22 | IF initialized THEN 23 | REPEAT 24 | rn := RandomNumbers.Uniform(); 25 | IF rn < p1 THEN 26 | x := a1 * X + b1 * Y + e1; y := c1 * X + d1 * Y + f1 27 | ELSIF rn < (p1 + p2) THEN 28 | x := a2 * X + b2 * Y + e2; y := c2 * X + d2 * Y + f2 29 | ELSIF rn < (p1 + p2 + p3) THEN 30 | x := a3 * X + b3 * Y + e3; y := c3 * X + d3 * Y + f3 31 | ELSE 32 | x := a4 * X + b4 * Y + e4; y := c4 * X + d4 * Y + f4 33 | END; 34 | X := x; xi := x0 + SHORT(ENTIER(X*e)); 35 | Y := y; eta := y0 + SHORT(ENTIER(Y*e)); 36 | XYplane.Dot(xi, eta, XYplane.draw) 37 | UNTIL "s" = XYplane.Key() 38 | END 39 | END Draw; 40 | 41 | PROCEDURE Init*; (* command marked for export *) 42 | BEGIN 43 | X := 0; Y := 0; (* Initial position of pen *) 44 | initialized := FALSE; 45 | In.Open; 46 | In.Int(x0); In.Int(y0); In.Int(e); 47 | In.Real(a1); In.Real(a2); In.Real(a3); In.Real(a4); 48 | In.Real(b1); In.Real(b2); In.Real(b3); In.Real(b4); 49 | In.Real(c1); In.Real(c2); In.Real(c3); In.Real(c4); 50 | In.Real(d1); In.Real(d2); In.Real(d3); In.Real(d4); 51 | In.Real(e1); In.Real(e2); In.Real(e3); In.Real(e4); 52 | In.Real(f1); In.Real(f2); In.Real(f3); In.Real(f4); 53 | In.Real(p1); In.Real(p2); In.Real(p3); In.Real(p4); 54 | IF In.Done THEN XYplane.Open; initialized := TRUE 55 | ELSE Out.String("Parameter error"); Out.Ln 56 | END 57 | END Init; 58 | 59 | BEGIN initialized := FALSE 60 | END IFS. (* Copyright M. Reiser, 1992 *) 61 | 62 | 63 | fractal farn 64 | IFS.Init 320 0 64 65 | 0.0 0.85 0.2 -0.15 0.0 0.04 -0.26 0.28 66 | 0.0 -0.04 0.23 0.26 0.16 0.85 0.22 0.24 67 | 0.0 0.0 0.0 0.0 0.0 1.6 1.6 0.44 68 | 0.01 0.85 0.07 0.07 69 | 70 | IFS.Draw 71 | Note: press key 's' to stop drawing 72 | -------------------------------------------------------------------------------- /V4/IFS.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/IFS.Tool -------------------------------------------------------------------------------- /V4/IconElems.Icon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/IconElems.Icon -------------------------------------------------------------------------------- /V4/InstallXFonts.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/InstallXFonts.Tool -------------------------------------------------------------------------------- /V4/Kepler.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Kepler.Text -------------------------------------------------------------------------------- /V4/Kepler.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Kepler.Tool -------------------------------------------------------------------------------- /V4/Log.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Log.Menu.Text -------------------------------------------------------------------------------- /V4/Mailer.MailboxMenu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Mailer.MailboxMenu.Text -------------------------------------------------------------------------------- /V4/Mailer.ReplyMenu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Mailer.ReplyMenu.Text -------------------------------------------------------------------------------- /V4/Mailer.ShowMenu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Mailer.ShowMenu.Text -------------------------------------------------------------------------------- /V4/Mailer.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Mailer.Tool -------------------------------------------------------------------------------- /V4/Medium.Map: -------------------------------------------------------------------------------- 1 | #fontmapfile 2 | Courier8.Scn.Fnt Courier10.Scn.Fnt 3 | Courier10.Scn.Fnt Courier12.Scn.Fnt 4 | Syntax8.Scn.Fnt Syntax10.Scn.Fnt 5 | Syntax8b.Scn.Fnt Syntax10b.Scn.Fnt 6 | Syntax8i.Scn.Fnt Syntax10i.Scn.Fnt 7 | Syntax8m.Scn.Fnt Syntax10m.Scn.Fnt 8 | Syntax9m.Scn.Fnt Syntax11.Scn.Fnt 9 | Syntax10.Scn.Fnt Syntax12.Scn.Fnt 10 | Syntax10b.Scn.Fnt Syntax12b.Scn.Fnt 11 | Syntax10i.Scn.Fnt Syntax12i.Scn.Fnt 12 | Syntax10m.Scn.Fnt Syntax12m.Scn.Fnt 13 | Syntax10w.Scn.Fnt Syntax12.Scn.Fnt 14 | Syntax10x.Scn.Fnt Syntax12.Scn.Fnt 15 | Syntax11m.Scn.Fnt Syntax12m.Scn.Fnt 16 | Syntax12.Scn.Fnt Syntax14.Scn.Fnt 17 | Syntax12b.Scn.Fnt Syntax14b.Scn.Fnt 18 | Syntax12i.Scn.Fnt Syntax14i.Scn.Fnt 19 | Syntax12m.Scn.Fnt Syntax14m.Scn.Fnt 20 | Syntax14.Scn.Fnt Syntax16.Scn.Fnt 21 | Syntax14b.Scn.Fnt Syntax16b.Scn.Fnt 22 | Syntax14i.Scn.Fnt Syntax16i.Scn.Fnt 23 | Syntax14m.Scn.Fnt Syntax16m.Scn.Fnt 24 | Syntax16.Scn.Fnt Syntax20.Scn.Fnt 25 | Syntax16b.Scn.Fnt Syntax20b.Scn.Fnt 26 | Syntax16i.Scn.Fnt Syntax20i.Scn.Fnt 27 | Syntax16m.Scn.Fnt Syntax20m.Scn.Fnt 28 | Syntax20.Scn.Fnt Syntax24.Scn.Fnt 29 | Syntax20b.Scn.Fnt Syntax24b.Scn.Fnt 30 | Syntax20i.Scn.Fnt Syntax24i.Scn.Fnt 31 | Syntax20m.Scn.Fnt Syntax24m.Scn.Fnt 32 | GreekSyntax10.Scn.Fnt GreekSyntax12.Scn.Fnt 33 | GreekSyntax12.Scn.Fnt GreekSyntax14.Scn.Fnt 34 | GreekSyntax14.Scn.Fnt GreekSyntax16.Scn.Fnt 35 | GreekSyntax16.Scn.Fnt GreekSyntax20.Scn.Fnt 36 | GreekSyntax20.Scn.Fnt GreekSyntax24.Scn.Fnt 37 | Math10.Scn.Fnt Math12.Scn.Fnt 38 | Math12.Scn.Fnt Math14.Scn.Fnt 39 | Math14.Scn.Fnt Math16.Scn.Fnt 40 | Math16.Scn.Fnt Math20.Scn.Fnt 41 | Math20.Scn.Fnt Math24.Scn.Fnt 42 | Times8.Scn.Fnt Times10.Scn.Fnt 43 | Times8b.Scn.Fnt Times10b.Scn.Fnt 44 | Times8i.Scn.Fnt Times10i.Scn.Fnt 45 | Times10.Scn.Fnt Times12.Scn.Fnt 46 | Times10b.Scn.Fnt Times12b.Scn.Fnt 47 | Times10i.Scn.Fnt Times12i.Scn.Fnt 48 | Times12.Scn.Fnt Times14.Scn.Fnt 49 | Times12b.Scn.Fnt Times14b.Scn.Fnt 50 | Times12i.Scn.Fnt Times14i.Scn.Fnt 51 | Times14.Scn.Fnt Times16.Scn.Fnt 52 | Times14b.Scn.Fnt Times16b.Scn.Fnt 53 | Times14i.Scn.Fnt Times16i.Scn.Fnt 54 | Times16.Scn.Fnt Times20.Scn.Fnt 55 | Times16b.Scn.Fnt Times20b.Scn.Fnt 56 | Times16i.Scn.Fnt Times20i.Scn.Fnt 57 | Times20.Scn.Fnt Times24.Scn.Fnt 58 | Times20b.Scn.Fnt Times24b.Scn.Fnt 59 | Times20i.Scn.Fnt Times24i.Scn.Fnt 60 | -------------------------------------------------------------------------------- /V4/Menu.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Menu.Tool -------------------------------------------------------------------------------- /V4/Miscellaneous.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Miscellaneous.Tool -------------------------------------------------------------------------------- /V4/ModToOberon.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/ModToOberon.Text -------------------------------------------------------------------------------- /V4/OberonEBNF.Text: -------------------------------------------------------------------------------- 1 | ident = letter {letter | digit}. 2 | number = integer | real. 3 | integer = digit {digit} | digit {hexDigit} "H". 4 | real = digit {digit} "." {digit} [ScaleFactor]. 5 | ScaleFactor = ("E" | "D") ["+" | "-"] digit {digit}. 6 | hexDigit = digit | "A" | "B" | "C" | "D" | "E" | "F". 7 | digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9". 8 | CharConstant = '"' character '"' | digit {hexDigit} "X". 9 | string = '"' {character} '"' . 10 | 11 | identdef = ident ["*"]. 12 | qualident = [ident "."] ident. 13 | ConstantDeclaration = identdef "=" ConstExpression. 14 | ConstExpression = expression. 15 | TypeDeclaration = identdef "=" type. 16 | type = qualident | ArrayType | RecordType | PointerType | ProcedureType. 17 | ArrayType = ARRAY length {"," length} OF type. 18 | length = ConstExpression. 19 | RecordType = RECORD ["(" BaseType ")"] FieldListSequence END. 20 | BaseType = qualident. 21 | FieldListSequence = FieldList {";" FieldList}. 22 | FieldList = [IdentList ":" type]. 23 | IdentList = identdef {"," identdef}. 24 | PointerType = POINTER TO type. 25 | ProcedureType = PROCEDURE [FormalParameters]. 26 | VariableDeclaration = IdentList ":" type. 27 | 28 | designator = qualident {"." ident | "[" ExpList "]" | "(" qualident ")" | "^" }. 29 | ExpList = expression {"," expression}. 30 | expression = SimpleExpression [relation SimpleExpression]. 31 | relation = "=" | "#" | "<" | "<=" | ">" | ">=" | IN | IS. 32 | SimpleExpression = ["+"|"-"] term {AddOperator term}. 33 | AddOperator = "+" | "-" | OR . 34 | term = factor {MulOperator factor}. 35 | MulOperator = "*" | "/" | DIV | MOD | "&" . 36 | factor = number | CharConstant | string | NIL | set | 37 | designator [ActualParameters] | "(" expression ")" | "~" factor. 38 | set = "{" [element {"," element}] "}". 39 | element = expression [".." expression]. 40 | ActualParameters = "(" [ExpList] ")" . 41 | statement = [assignment | ProcedureCall | 42 | IfStatement | CaseStatement | WhileStatement | RepeatStatement | 43 | LoopStatement | WithStatement | EXIT | RETURN [expression] ]. 44 | assignment = designator ":=" expression. 45 | ProcedureCall = designator [ActualParameters]. 46 | StatementSequence = statement {";" statement}. 47 | IfStatement = IF expression THEN StatementSequence 48 | {ELSIF expression THEN StatementSequence} 49 | [ELSE StatementSequence] END. 50 | CaseStatement = CASE expression OF case {"|" case} 51 | [ELSE StatementSequence] END. 52 | case = [CaseLabelList ":" StatementSequence]. 53 | CaseLabelList = CaseLabels {"," CaseLabels}. 54 | CaseLabels = ConstExpression [".." ConstExpression]. 55 | WhileStatement = WHILE expression DO StatementSequence END. 56 | RepeatStatement = REPEAT StatementSequence UNTIL expression. 57 | LoopStatement = LOOP StatementSequence END. 58 | WithStatement = WITH qualident ":" qualident DO StatementSequence END . 59 | 60 | ProcedureDeclaration = ProcedureHeading ";" ProcedureBody ident. 61 | ProcedureHeading = PROCEDURE ["*"] identdef [FormalParameters]. 62 | ProcedureBody = DeclarationSequence [BEGIN StatementSequence] END. 63 | ForwardDeclaration = PROCEDURE "^" ident ["*"] [FormalParameters]. 64 | DeclarationSequence = {CONST {ConstantDeclaration ";"} | 65 | TYPE {TypeDeclaration ";"} | VAR {VariableDeclaration ";"}} 66 | {ProcedureDeclaration ";" | ForwardDeclaration ";"}. 67 | FormalParameters = "(" [FPSection {";" FPSection}] ")" [":" qualident]. 68 | FPSection = [VAR] ident {"," ident} ":" FormalType. 69 | FormalType = {ARRAY OF} (qualident | ProcedureType). 70 | ImportList = IMPORT import {"," import} ";" . 71 | import = ident [":=" ident]. 72 | module = MODULE ident ";" [ImportList] DeclarationSequence 73 | [BEGIN StatementSequence] END ident "." . 74 | -------------------------------------------------------------------------------- /V4/OberonGuide.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/OberonGuide.Text -------------------------------------------------------------------------------- /V4/OberonStartup.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/OberonStartup.Mod -------------------------------------------------------------------------------- /V4/OberonV4.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/OberonV4.Text -------------------------------------------------------------------------------- /V4/Ofront.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Ofront.Tool -------------------------------------------------------------------------------- /V4/OfrontUser.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/OfrontUser.Text -------------------------------------------------------------------------------- /V4/Palette.Kep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Palette.Kep -------------------------------------------------------------------------------- /V4/RandomNumbers.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/RandomNumbers.Mod -------------------------------------------------------------------------------- /V4/SortDemo.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/SortDemo.Mod -------------------------------------------------------------------------------- /V4/Swarm.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Swarm.Mod -------------------------------------------------------------------------------- /V4/Syntax10.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Syntax10.Scn.Fnt -------------------------------------------------------------------------------- /V4/System.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/System.Menu.Text -------------------------------------------------------------------------------- /V4/System.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/System.Tool -------------------------------------------------------------------------------- /V4/TTL0.Graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/TTL0.Graph -------------------------------------------------------------------------------- /V4/TTL0.Lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/TTL0.Lib -------------------------------------------------------------------------------- /V4/TTL1.Graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/TTL1.Graph -------------------------------------------------------------------------------- /V4/TTL1.Lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/TTL1.Lib -------------------------------------------------------------------------------- /V4/Welcome.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/Welcome.Text -------------------------------------------------------------------------------- /V4/XYplane.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4/XYplane.Mod -------------------------------------------------------------------------------- /V4/hello.Mod: -------------------------------------------------------------------------------- 1 | MODULE hello; 2 | IMPORT Console; 3 | BEGIN 4 | Console.String("hello world"); Console.Ln 5 | END hello. 6 | -------------------------------------------------------------------------------- /V4_Dialogs/Calc.Dlg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Calc.Dlg -------------------------------------------------------------------------------- /V4_Dialogs/DEInit.Dlg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DEInit.Dlg -------------------------------------------------------------------------------- /V4_Dialogs/Dialog.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Dialog.Menu.Text -------------------------------------------------------------------------------- /V4_Dialogs/Dialog.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Dialog.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogAnalogClocks.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogAnalogClocks.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogButtons.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogButtons.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogCheckBoxes.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogCheckBoxes.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogCircles.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogCircles.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogClocks.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogClocks.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogColorPickers.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogColorPickers.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogComboBoxes.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogComboBoxes.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogDates.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogDates.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogDraw.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogDraw.Menu.Text -------------------------------------------------------------------------------- /V4_Dialogs/DialogEdit.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogEdit.Menu.Text -------------------------------------------------------------------------------- /V4_Dialogs/DialogElem.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogElem.Menu.Text -------------------------------------------------------------------------------- /V4_Dialogs/DialogElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogElems.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogFrames.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogFrames.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogGraphics.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogGraphics.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogGroupBoxes.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogGroupBoxes.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogInsert.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogInsert.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogIntSliders.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogIntSliders.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogIntegerSliders.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogIntegerSliders.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogKepler.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogKepler.Menu.Text -------------------------------------------------------------------------------- /V4_Dialogs/DialogKeplers.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogKeplers.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogLines.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogLines.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogListBoxes.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogListBoxes.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogRadioButtons.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogRadioButtons.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogRectangles.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogRectangles.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogSliders.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogSliders.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogStaticTexts.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogStaticTexts.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogTexts.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogTexts.Mod -------------------------------------------------------------------------------- /V4_Dialogs/DialogUtils.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogUtils.Mod -------------------------------------------------------------------------------- /V4_Dialogs/Dialogs.Changes.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Dialogs.Changes.Text -------------------------------------------------------------------------------- /V4_Dialogs/Dialogs.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Dialogs.Mod -------------------------------------------------------------------------------- /V4_Dialogs/Dialogs.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Dialogs.Text -------------------------------------------------------------------------------- /V4_Dialogs/Dialogs.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Dialogs.Tool -------------------------------------------------------------------------------- /V4_Dialogs/DialogsForMac.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DialogsForMac.Text -------------------------------------------------------------------------------- /V4_Dialogs/DlgItems.Ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/DlgItems.Ini -------------------------------------------------------------------------------- /V4_Dialogs/GetSet.Dlg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/GetSet.Dlg -------------------------------------------------------------------------------- /V4_Dialogs/GraphicUtils.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/GraphicUtils.Mod -------------------------------------------------------------------------------- /V4_Dialogs/Insert.Dlg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Insert.Dlg -------------------------------------------------------------------------------- /V4_Dialogs/Inspector.Dlg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Inspector.Dlg -------------------------------------------------------------------------------- /V4_Dialogs/MoreMathL.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/MoreMathL.Mod -------------------------------------------------------------------------------- /V4_Dialogs/MyEdit.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/MyEdit.Mod -------------------------------------------------------------------------------- /V4_Dialogs/MyUI.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/MyUI.Mod -------------------------------------------------------------------------------- /V4_Dialogs/Open.Dlg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Open.Dlg -------------------------------------------------------------------------------- /V4_Dialogs/Print.Dlg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Print.Dlg -------------------------------------------------------------------------------- /V4_Dialogs/Search.Dlg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Search.Dlg -------------------------------------------------------------------------------- /V4_Dialogs/Test.Dlg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Dialogs/Test.Dlg -------------------------------------------------------------------------------- /V4_Elems/AddAttr.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/AddAttr.Panel -------------------------------------------------------------------------------- /V4_Elems/AreaButtonElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/AreaButtonElems.Mod -------------------------------------------------------------------------------- /V4_Elems/BalloonElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/BalloonElems.Mod -------------------------------------------------------------------------------- /V4_Elems/ButtonElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/ButtonElems.Mod -------------------------------------------------------------------------------- /V4_Elems/Calc.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Calc.Panel -------------------------------------------------------------------------------- /V4_Elems/Calender.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Calender.Panel -------------------------------------------------------------------------------- /V4_Elems/CheckBoxElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/CheckBoxElems.Mod -------------------------------------------------------------------------------- /V4_Elems/ColorElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/ColorElems.Mod -------------------------------------------------------------------------------- /V4_Elems/ContainerElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/ContainerElems.Mod -------------------------------------------------------------------------------- /V4_Elems/Directories.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Directories.Mod -------------------------------------------------------------------------------- /V4_Elems/Directories.c0: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | static INTEGER mapError(INTEGER err) { 6 | switch (err) { 7 | case ENOENT: return 1; /* badName */ 8 | case ENOTDIR: return 5; /* notADir */ 9 | default: return 7; /* otherError */ 10 | } 11 | } 12 | 13 | static INTEGER enumFiles(void* dir, const char* dirpath, Directories_FileProc filter) { 14 | DIR *dirp = opendir(dirpath); 15 | if (dirp) { 16 | struct dirent de; 17 | struct dirent *result; 18 | int res = readdir_r(dirp, &de, &result); 19 | BOOLEAN cont = 1; 20 | while (res == 0 && result && cont) { 21 | if (de.d_type == DT_REG || de.d_type == DT_DIR) { 22 | filter(dir, de.d_name, sizeof(de.d_name), de.d_type == DT_DIR, &cont); 23 | } 24 | res = readdir_r(dirp, &de, &result); 25 | } 26 | closedir(dirp); 27 | return res; 28 | } else { 29 | return errno; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /V4_Elems/DynamicAttributes.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/DynamicAttributes.Panel -------------------------------------------------------------------------------- /V4_Elems/ElemTools.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/ElemTools.Mod -------------------------------------------------------------------------------- /V4_Elems/Elems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Elems.Mod -------------------------------------------------------------------------------- /V4_Elems/Elems.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Elems.Panel -------------------------------------------------------------------------------- /V4_Elems/Elems.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Elems.Text -------------------------------------------------------------------------------- /V4_Elems/Elems.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Elems.Tool -------------------------------------------------------------------------------- /V4_Elems/ElemsUI.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/ElemsUI.Mod -------------------------------------------------------------------------------- /V4_Elems/Files.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Files.Panel -------------------------------------------------------------------------------- /V4_Elems/FilesPanel.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/FilesPanel.Menu.Text -------------------------------------------------------------------------------- /V4_Elems/Font.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Font.Panel -------------------------------------------------------------------------------- /V4_Elems/FrameElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/FrameElems.Mod -------------------------------------------------------------------------------- /V4_Elems/GUtils.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/GUtils.Mod -------------------------------------------------------------------------------- /V4_Elems/Help.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Help.Panel -------------------------------------------------------------------------------- /V4_Elems/IndexElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/IndexElems.Mod -------------------------------------------------------------------------------- /V4_Elems/InfoElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/InfoElems.Mod -------------------------------------------------------------------------------- /V4_Elems/Inspector.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Inspector.Panel -------------------------------------------------------------------------------- /V4_Elems/LinkElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/LinkElems.Mod -------------------------------------------------------------------------------- /V4_Elems/ListElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/ListElems.Mod -------------------------------------------------------------------------------- /V4_Elems/LockedPanel.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/LockedPanel.Menu.Text -------------------------------------------------------------------------------- /V4_Elems/MarkElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/MarkElems.Mod -------------------------------------------------------------------------------- /V4_Elems/MultiButtonElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/MultiButtonElems.Mod -------------------------------------------------------------------------------- /V4_Elems/OpenElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/OpenElems.Mod -------------------------------------------------------------------------------- /V4_Elems/PElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/PElems.Mod -------------------------------------------------------------------------------- /V4_Elems/Panel.Menu.Text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Panel.Menu.Text -------------------------------------------------------------------------------- /V4_Elems/Panel.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Panel.Mod -------------------------------------------------------------------------------- /V4_Elems/PanelElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/PanelElems.Mod -------------------------------------------------------------------------------- /V4_Elems/PanelFrames.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/PanelFrames.Mod -------------------------------------------------------------------------------- /V4_Elems/Parc.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Parc.Panel -------------------------------------------------------------------------------- /V4_Elems/Pictures.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Pictures.Mod -------------------------------------------------------------------------------- /V4_Elems/Print.Panel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/Print.Panel -------------------------------------------------------------------------------- /V4_Elems/RadioButtonElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/RadioButtonElems.Mod -------------------------------------------------------------------------------- /V4_Elems/ShowError.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/ShowError.Mod -------------------------------------------------------------------------------- /V4_Elems/StaticTextElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/StaticTextElems.Mod -------------------------------------------------------------------------------- /V4_Elems/TextAreaElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/TextAreaElems.Mod -------------------------------------------------------------------------------- /V4_Elems/TextFieldElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/TextFieldElems.Mod -------------------------------------------------------------------------------- /V4_Elems/VersionElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_Elems/VersionElems.Mod -------------------------------------------------------------------------------- /V4_ofront/linux386/Fontfix.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/linux386/Fontfix.Mod -------------------------------------------------------------------------------- /V4_ofront/linux386/InputTest.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/linux386/InputTest.Mod -------------------------------------------------------------------------------- /V4_ofront/linux386/Kernel.Mod: -------------------------------------------------------------------------------- 1 | MODULE Kernel; 2 | (* 3 | communication with C-runtime and storage management, Linux Version 4 | 1995-04-16, jt, original version 5 | 2016-10-03, jt, trap cleaners added 6 | *) 7 | 8 | IMPORT SYSTEM, Unix, Args; 9 | 10 | TYPE 11 | RealTime = POINTER TO TimeDesc; 12 | TimeDesc = RECORD 13 | sec, min, hour, mday, mon, year, wday, isdst, zone, gmtoff: LONGINT 14 | END ; 15 | 16 | KeyCmd* = PROCEDURE; 17 | 18 | ObjFinalizer* = PROCEDURE(obj: SYSTEM.PTR); 19 | 20 | TrapCleaner* = PROCEDURE (data: LONGINT); 21 | TrapCleanerNode = POINTER TO RECORD 22 | trapCleaner: TrapCleaner; 23 | data: LONGINT; 24 | next: TrapCleanerNode; 25 | END ; 26 | 27 | VAR 28 | (* trap handling *) 29 | trapEnv*: Unix.JmpBuf; (* saved stack environment for trap handling *) 30 | 31 | (* oberon heap management *) 32 | nofiles*: LONGINT; 33 | 34 | (* input event handling *) 35 | readSet*, readySet*: Unix.FdSet; 36 | 37 | FKey*: ARRAY 16 OF KeyCmd; 38 | 39 | littleEndian*: BOOLEAN; 40 | 41 | TimeUnit*: LONGINT; (* 1 sec *) 42 | 43 | LIB*, CWD*: ARRAY 256 OF CHAR; 44 | OBERON*: ARRAY 1024 OF CHAR; 45 | 46 | 47 | timeStart: LONGINT; (* milliseconds *) 48 | trapCleaners: TrapCleanerNode; 49 | 50 | 51 | PROCEDURE -include() 52 | "#include "; 53 | 54 | PROCEDURE -Lock*() 55 | "SYSTEM_lock++"; 56 | 57 | PROCEDURE -Unlock*() 58 | "SYSTEM_lock--; if (SYSTEM_interrupted && SYSTEM_lock == 0) __HALT(-9)"; 59 | 60 | PROCEDURE -Exit*(n: LONGINT) 61 | "exit(n)"; 62 | 63 | PROCEDURE -sigsetjmp*(VAR env: Unix.JmpBuf; savemask: LONGINT): LONGINT 64 | "__sigsetjmp(env, savemask)"; 65 | 66 | PROCEDURE -siglongjmp*(VAR env:Unix.JmpBuf; val: LONGINT) 67 | "Kernel_CallTrapCleaners(); siglongjmp(env, val)"; 68 | 69 | PROCEDURE -heapsize*(): LONGINT 70 | "SYSTEM_heapsize"; 71 | 72 | PROCEDURE -allocated*(): LONGINT 73 | "SYSTEM_allocated"; 74 | 75 | PROCEDURE -localtime(VAR clock: LONGINT): RealTime 76 | "(Kernel_RealTime)localtime(clock)"; 77 | 78 | PROCEDURE -malloc*(size: LONGINT): LONGINT 79 | "(LONGINT)malloc(size)"; 80 | 81 | PROCEDURE -free*(adr: LONGINT) 82 | "(void)free(adr)"; 83 | 84 | PROCEDURE -getcwd(VAR cwd: Unix.Name) 85 | "getcwd(cwd, cwd__len)"; 86 | 87 | 88 | PROCEDURE GetClock* (VAR t, d: LONGINT); 89 | VAR tv: Unix.Timeval; tz: Unix.Timezone; time: RealTime; 90 | BEGIN 91 | Unix.Gettimeofday(tv, tz); 92 | time := localtime(tv.sec); 93 | t := time.sec + ASH(time.min, 6) + ASH(time.hour, 12); 94 | d := time.mday + ASH(time.mon+1, 5) + ASH(time.year MOD 100, 9); 95 | END GetClock; 96 | 97 | PROCEDURE GetClock4* (VAR t, d: LONGINT); (* returns year with all (4) digits *) 98 | VAR tv: Unix.Timeval; tz: Unix.Timezone; time: RealTime; 99 | BEGIN 100 | Unix.Gettimeofday(tv, tz); 101 | time := localtime(tv.sec); 102 | t := time.sec + ASH(time.min, 6) + ASH(time.hour, 12); 103 | d := time.mday + ASH(time.mon+1, 5) + ASH(time.year, 9); 104 | END GetClock4; 105 | 106 | PROCEDURE SetClock* (t, d: LONGINT); 107 | VAR err: ARRAY 25 OF CHAR; 108 | BEGIN err := "not yet implemented"; HALT(99) 109 | END SetClock; 110 | 111 | PROCEDURE Time*(): LONGINT; 112 | VAR timeval: Unix.Timeval; timezone: Unix.Timezone; 113 | BEGIN 114 | Unix.Gettimeofday(timeval, timezone); 115 | RETURN (timeval.usec DIV 1000 + timeval.sec * 1000 - timeStart) MOD 7FFFFFFFH 116 | END Time; 117 | 118 | (* 119 | PROCEDURE UserTime*(): LONGINT; 120 | VAR rusage: Unix.Rusage; 121 | BEGIN 122 | Unix.Getrusage(0, S.ADR(rusage)); 123 | RETURN rusage.utime.sec*1000 + rusage.utime.usec DIV 1000 124 | (* + rusage.stime.sec*1000 + rusage.stime.usec DIV 1000*) 125 | END UserTime; 126 | *) 127 | 128 | PROCEDURE Select*(delay: LONGINT); 129 | VAR rs, ws, xs: Unix.FdSet; n: LONGINT; tv: Unix.Timeval; 130 | BEGIN 131 | rs := readSet; 132 | FOR n := 0 TO LEN(rs) - 1 DO ws[n] := {}; xs[n] := {}; readySet[n] := {} END; 133 | IF delay < 0 THEN delay := 0 END ; 134 | tv.sec := delay DIV 1000; tv.usec := delay MOD 1000 * 1000; 135 | n := Unix.Select(LEN(rs) * 32, rs, ws, xs, tv); 136 | IF n >= 0 THEN readySet := rs END 137 | END Select; 138 | 139 | PROCEDURE -GC*(markStack: BOOLEAN) 140 | "SYSTEM_GC(markStack)"; 141 | 142 | PROCEDURE -RegisterObject*(obj: SYSTEM.PTR; finalize: ObjFinalizer) 143 | "SYSTEM_REGFIN(obj, finalize)"; 144 | 145 | PROCEDURE -SetHalt*(p: PROCEDURE(n: LONGINT)) 146 | "SYSTEM_Halt = p"; 147 | 148 | PROCEDURE InstallTermHandler*(p: PROCEDURE); 149 | (* not yet supported; no Modules.Free *) 150 | END InstallTermHandler; 151 | 152 | PROCEDURE LargestAvailable*(): LONGINT; 153 | BEGIN 154 | (* dummy proc for System 3 compatibility 155 | no meaningful value except may be the remaining swap space can be returned 156 | in the context of an extensible heap *) 157 | RETURN MAX(LONGINT) 158 | END LargestAvailable; 159 | 160 | PROCEDURE Halt(n: LONGINT); 161 | VAR res: LONGINT; 162 | BEGIN res := Unix.Kill(Unix.Getpid(), 4); 163 | END Halt; 164 | 165 | PROCEDURE EndianTest; 166 | VAR i: LONGINT; dmy: INTEGER; 167 | BEGIN 168 | dmy := 1; i := SYSTEM.ADR(dmy); 169 | SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *) 170 | END EndianTest; 171 | 172 | PROCEDURE -SizeofUnixJmpBuf(): INTEGER 173 | "sizeof(Unix_JmpBuf)"; 174 | 175 | PROCEDURE -SizeofSigJmpBuf(): INTEGER 176 | "sizeof(sigjmp_buf)"; 177 | 178 | PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER) 179 | "write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)"; 180 | 181 | PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf; better avoid Unix_JmpBuf *) 182 | VAR x, y: LONGINT; 183 | BEGIN 184 | x := SizeofUnixJmpBuf(); 185 | y := SizeofSigJmpBuf(); 186 | IF x < y THEN 187 | Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52); 188 | Exit(1); 189 | END 190 | END JmpBufCheck; 191 | 192 | PROCEDURE PushTrapCleaner*(trapCleaner: TrapCleaner; data: LONGINT); 193 | VAR n: TrapCleanerNode; 194 | BEGIN NEW(n); n.trapCleaner := trapCleaner; n.data := data; n.next := trapCleaners; trapCleaners := n 195 | END PushTrapCleaner; 196 | 197 | PROCEDURE PopTrapCleaner*; 198 | BEGIN 199 | IF trapCleaners # NIL THEN trapCleaners := trapCleaners.next END 200 | END PopTrapCleaner; 201 | 202 | PROCEDURE CallTrapCleaners*; 203 | BEGIN 204 | WHILE trapCleaners # NIL DO trapCleaners.trapCleaner(trapCleaners.data); PopTrapCleaner END 205 | END CallTrapCleaners; 206 | 207 | BEGIN 208 | EndianTest(); 209 | SetHalt(Halt); 210 | CWD := ""; OBERON := "."; LIB := ""; 211 | getcwd(CWD); 212 | Args.GetEnv("OBERON", OBERON); 213 | Args.GetEnv("OBERON_LIB", LIB); 214 | TimeUnit := 1000; timeStart := 0; timeStart := Time(); 215 | JmpBufCheck() 216 | END Kernel. 217 | -------------------------------------------------------------------------------- /V4_ofront/linux386/My.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/linux386/My.Tool -------------------------------------------------------------------------------- /V4_ofront/linux386/Ofront.par: -------------------------------------------------------------------------------- 1 | CHAR 1 1 2 | BOOLEAN 1 1 3 | SHORTINT 1 1 4 | INTEGER 2 2 5 | LONGINT 4 4 6 | SET 4 4 7 | REAL 4 4 8 | LONGREAL 8 4 9 | PTR 4 4 10 | PROC 4 4 11 | RECORD 1 1 12 | ENDIAN 1 0 13 | -------------------------------------------------------------------------------- /V4_ofront/linux386/README: -------------------------------------------------------------------------------- 1 | Tested on 32-bit Debian Linux 2.6 and 3.2 distribution. 2 | Uses libc.so.6, libm.so.6, libX11.so.6. 3 | 4 | Run 'make' for a build. 5 | Look at the 'makefile' for the build process. 6 | 7 | It may be required to create a link for libX11.so: 8 | libX11.so -> /usr/lib/i386-linux-gnu/libX11.so.6 9 | -------------------------------------------------------------------------------- /V4_ofront/linux386/Reals.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/linux386/Reals.Mod -------------------------------------------------------------------------------- /V4_ofront/linux386/Syntax10.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/linux386/Syntax10.Scn.Fnt -------------------------------------------------------------------------------- /V4_ofront/linux386/System.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/linux386/System.Tool -------------------------------------------------------------------------------- /V4_ofront/linux386/Test.Mod: -------------------------------------------------------------------------------- 1 | MODULE Test; 2 | IMPORT Edit, Out; 3 | 4 | VAR x: INTEGER; 5 | 6 | PROCEDURE Do*; 7 | BEGIN 8 | Out.String("Test.Do "); Out.Int(x, 2); INC(x); Out.Ln 9 | END Do; 10 | 11 | BEGIN 12 | Out.String("loading Test"); Out.Ln; HALT(99) (* for testing TRAP in module body *) 13 | END Test. -------------------------------------------------------------------------------- /V4_ofront/linux386/Test2.Mod: -------------------------------------------------------------------------------- 1 | MODULE Test2; 2 | IMPORT Test, Edit, Out; 3 | 4 | VAR x: INTEGER; 5 | 6 | PROCEDURE Do*; 7 | BEGIN 8 | Out.String("Test2.Do "); Out.Int(x, 2); INC(x); Out.Ln 9 | END Do; 10 | 11 | BEGIN 12 | Out.String("loading Test2"); Out.Ln 13 | END Test2. -------------------------------------------------------------------------------- /V4_ofront/linux386/Texts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/linux386/Texts -------------------------------------------------------------------------------- /V4_ofront/linux386/cl.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # This script is called by the command ocl for compiling and linking an Oberon 4 | # module from .c into a shared library lib.so or, 5 | # if the option -m is specified, into an executable file named . 6 | # 7 | # SYNOPSIS 8 | # cl.bash M outname options ccOptions 9 | # 10 | # options = "-" {"m" | "V" | "G" | "O"} 11 | # ccOptions = quoted string passed to cc 12 | # m compile into executable main program 13 | # V verbose mode 14 | # G generate debug symbols 15 | # O optimize generated code 16 | 17 | if [[ $# != 4 ]]; then 18 | echo "cl.bash: illegal number of arguments" 19 | exit 1 20 | else 21 | opt="" 22 | if [[ $3 =~ .*G.* ]]; then 23 | opt="$opt -g" 24 | fi 25 | if [[ $3 =~ .*O.* ]]; then 26 | opt="$opt -O" 27 | fi 28 | if [[ $3 =~ .*m.* ]]; then 29 | # compile and link .c into executable 30 | rm -f $2 31 | if [[ $3 =~ .*V.* ]]; then 32 | echo "rm -f $2" 33 | echo "cc $opt $1.c -I$OFRONT_HOME/V4_ofront -o $2 -L. -L$OFRONT_HOME/lib $4" 34 | fi 35 | cc $opt $1.c -I$OFRONT_HOME/V4_ofront -o $2 -L. -L$OFRONT_HOME/lib $4 36 | else 37 | # compile and link .c into shared library lib.so 38 | rm -f lib$2.so 39 | if [[ $3 =~ .*V.* ]]; then 40 | echo "rm -f lib$2.so" 41 | echo "cc $opt $1.c -I$OFRONT_HOME/V4_ofront -shared -o lib$2.so -L. -L$OFRONT_HOME/lib $4" 42 | fi 43 | cc $opt $1.c -I$OFRONT_HOME/V4_ofront -shared -o lib$2.so -L. -L$OFRONT_HOME/lib $4 44 | fi 45 | fi 46 | -------------------------------------------------------------------------------- /V4_ofront/linux386/makeDialogs: -------------------------------------------------------------------------------- 1 | # makefile for Dialogs package of Linz Oberon V4 2 | # 3 | # environment variable for setting C compiler options: CCOPT 4 | 5 | LIBRARY = libOberonDialogs.so 6 | SETPATH = OBERON=.:../share:../../V4_Dialogs 7 | OFRONT = $(SETPATH) ofront -s 8 | LD = cc $(CCOPT) -shared -o $(LIBRARY) -L. -lOberonV4 9 | ZIP = gzip -f 10 | TARDIR = /tmp/OberonDialogs 11 | TARFILE = /tmp/OberonDialogs_linux386.tar 12 | 13 | all: lib 14 | 15 | lib: oflib cclib tar 16 | 17 | oflib: 18 | $(OFRONT) \ 19 | OberonDialogs.Mod \ 20 | Bitmaps.Div.Mod Dialogs.Mod DialogFrames.Mod GraphicUtils.Mod \ 21 | DialogTexts.Mod DialogStaticTexts.Mod DialogButtons.Mod \ 22 | Dialog.Mod DialogCheckBoxes.Mod DialogGroupBoxes.Mod \ 23 | DialogRadioButtons.Mod DialogLines.Mod DialogCircles.Mod \ 24 | DialogRectangles.Mod DialogSliders.Mod \ 25 | DialogDates.Mod DialogClocks.Mod DialogIntSliders.Mod \ 26 | DialogAnalogClocks.Mod DialogColorPickers.Mod DialogGraphics.Mod \ 27 | DialogKeplers.Mod DialogListBoxes.Mod DialogComboBoxes.Mod \ 28 | MyEdit.Mod DialogElems.Mod DialogInsert.Mod \ 29 | DialogUtils.Mod XIn.Mod MoreMathL.Mod MyUI.Mod 30 | cclib: 31 | $(LD) \ 32 | OberonDialogs.c \ 33 | Bitmaps.c Dialogs.c DialogFrames.c GraphicUtils.c \ 34 | DialogTexts.c DialogStaticTexts.c DialogButtons.c \ 35 | Dialog.c DialogCheckBoxes.c DialogGroupBoxes.c \ 36 | DialogRadioButtons.c DialogLines.c DialogCircles.c \ 37 | DialogRectangles.c DialogSliders.c \ 38 | DialogDates.c DialogClocks.c DialogIntSliders.c \ 39 | DialogAnalogClocks.c DialogColorPickers.c DialogGraphics.c \ 40 | DialogKeplers.c DialogListBoxes.c DialogComboBoxes.c \ 41 | MyEdit.c DialogElems.c DialogInsert.c \ 42 | DialogUtils.c XIn.c MoreMathL.c MyUI.c 43 | 44 | tar: 45 | rm -fr $(TARDIR) 46 | rm -f $(TARFILE) 47 | mkdir $(TARDIR) 48 | mkdir $(TARDIR)/V4 49 | mkdir $(TARDIR)/lib 50 | mkdir $(TARDIR)/V4_ofront 51 | chmod -R a+rx $(TARDIR) 52 | cp $(LIBRARY) $(TARDIR)/lib 53 | cp ../../V4_Dialogs/* $(TARDIR)/V4 54 | cp OberonDialogs.c \ 55 | Bitmaps.h Dialogs.h DialogFrames.h GraphicUtils.h \ 56 | DialogTexts.h DialogStaticTexts.h DialogButtons.h \ 57 | Dialog.h DialogCheckBoxes.h DialogGroupBoxes.h \ 58 | DialogRadioButtons.h DialogLines.h DialogCircles.h \ 59 | DialogRectangles.h DialogSliders.h \ 60 | DialogDates.h DialogClocks.h DialogIntSliders.h \ 61 | DialogAnalogClocks.h DialogColorPickers.h DialogGraphics.h \ 62 | DialogKeplers.h DialogListBoxes.h DialogComboBoxes.h \ 63 | MyEdit.h DialogElems.h DialogInsert.h \ 64 | DialogUtils.h XIn.h MoreMathL.h MyUI.h \ 65 | OberonDialogs.sym \ 66 | Bitmaps.sym Dialogs.sym DialogFrames.sym GraphicUtils.sym \ 67 | DialogTexts.sym DialogStaticTexts.sym DialogButtons.sym \ 68 | Dialog.sym DialogCheckBoxes.sym DialogGroupBoxes.sym \ 69 | DialogRadioButtons.sym DialogLines.sym DialogCircles.sym \ 70 | DialogRectangles.sym DialogSliders.sym \ 71 | DialogDates.sym DialogClocks.sym DialogIntSliders.sym \ 72 | DialogAnalogClocks.sym DialogColorPickers.sym DialogGraphics.sym \ 73 | DialogKeplers.sym DialogListBoxes.sym DialogComboBoxes.sym \ 74 | MyEdit.sym DialogElems.sym DialogInsert.sym \ 75 | DialogUtils.sym XIn.sym MoreMathL.sym MyUI.sym \ 76 | $(TARDIR)/V4_ofront 77 | rm -f $(TARDIR)/V4/*.Bak 78 | rm -f $(TARDIR)/V4/.tmp.* 79 | rm -f $(TARDIR)/V4/*~ 80 | cd $(TARDIR)/..; tar cf $(TARFILE) OberonDialogs 81 | $(ZIP) $(TARFILE) 82 | echo "created file" $(TARFILE).gz 83 | 84 | # System.Execute make -f makeDialogs 85 | # System.Execute make -f makeDialogs tar 86 | -------------------------------------------------------------------------------- /V4_ofront/linux386/makeElems: -------------------------------------------------------------------------------- 1 | # makefile for Elems package of Linz Oberon V4 2 | # 3 | # environment variable for setting C compiler options: CCOPT 4 | 5 | LIBRARY = libOberonElems.so 6 | SETPATH = OBERON=.:../share:../../V4_Elems 7 | OFRONT = $(SETPATH) ofront -s 8 | LD = cc $(CCOPT) -shared -o $(LIBRARY) -L. -lOberonV4 9 | ZIP = gzip -f 10 | TARDIR = /tmp/OberonElems 11 | TARFILE = /tmp/OberonElems_linux386.tar 12 | 13 | all: lib 14 | 15 | lib: oflib cclib tar 16 | 17 | oflib: 18 | cp ../../V4_Elems/Directories.c0 Directories.c0 19 | $(OFRONT) \ 20 | OberonElems.Mod \ 21 | Directories.Mod \ 22 | Bitmaps.Div.Mod \ 23 | MarkElems.Mod \ 24 | LinkElems.Mod \ 25 | OpenElems.Mod \ 26 | InfoElems.Mod \ 27 | GUtils.Mod \ 28 | Elems.Mod \ 29 | PanelElems.Mod \ 30 | Panel.Mod \ 31 | PanelFrames.Mod \ 32 | AreaButtonElems.Mod \ 33 | ButtonElems.Mod \ 34 | CheckBoxElems.Mod \ 35 | FrameElems.Mod \ 36 | MultiButtonElems.Mod \ 37 | RadioButtonElems.Mod \ 38 | StaticTextElems.Mod \ 39 | ElemTools.Mod \ 40 | TextAreaElems.Mod \ 41 | TextFieldElems.Mod \ 42 | ColorElems.Mod \ 43 | ListElems.Mod \ 44 | BalloonElems.Mod \ 45 | VersionElems.Mod \ 46 | IndexElems.Mod \ 47 | XIn.Mod \ 48 | ContainerElems.Mod \ 49 | ElemsUI.Mod 50 | 51 | cclib: 52 | $(LD) \ 53 | OberonElems.c \ 54 | Directories.c \ 55 | Bitmaps.c \ 56 | MarkElems.c \ 57 | LinkElems.c \ 58 | OpenElems.c \ 59 | InfoElems.c \ 60 | GUtils.c \ 61 | Elems.c \ 62 | PanelElems.c \ 63 | Panel.c \ 64 | PanelFrames.c \ 65 | AreaButtonElems.c \ 66 | ButtonElems.c \ 67 | CheckBoxElems.c \ 68 | FrameElems.c \ 69 | MultiButtonElems.c \ 70 | RadioButtonElems.c \ 71 | StaticTextElems.c \ 72 | ElemTools.c \ 73 | TextAreaElems.c \ 74 | TextFieldElems.c \ 75 | ColorElems.c \ 76 | ListElems.c \ 77 | BalloonElems.c \ 78 | VersionElems.c \ 79 | IndexElems.c \ 80 | XIn.c \ 81 | ContainerElems.c \ 82 | ElemsUI.c 83 | 84 | tar: 85 | rm -fr $(TARDIR) 86 | rm -f $(TARFILE) 87 | mkdir $(TARDIR) 88 | mkdir $(TARDIR)/V4 89 | mkdir $(TARDIR)/lib 90 | mkdir $(TARDIR)/V4_ofront 91 | chmod -R a+rx $(TARDIR) 92 | cp $(LIBRARY) $(TARDIR)/lib 93 | cp ../../V4_Elems/* $(TARDIR)/V4 94 | cp OberonElems.h \ 95 | Directories.h Directories.c0 Bitmaps.h MarkElems.h \ 96 | LinkElems.h OpenElems.h InfoElems.h \ 97 | GUtils.h Elems.h PanelElems.h \ 98 | Panel.h PanelFrames.h AreaButtonElems.h \ 99 | ButtonElems.h CheckBoxElems.h FrameElems.h \ 100 | MultiButtonElems.h RadioButtonElems.h StaticTextElems.h \ 101 | ElemTools.h TextAreaElems.h \ 102 | TextFieldElems.h ColorElems.h ListElems.h \ 103 | BalloonElems.h VersionElems.h IndexElems.h \ 104 | XIn.h ContainerElems.h ElemsUI.h \ 105 | OberonElems.sym \ 106 | Directories.sym Bitmaps.sym MarkElems.sym \ 107 | LinkElems.sym OpenElems.sym InfoElems.sym \ 108 | GUtils.sym Elems.sym PanelElems.sym \ 109 | Panel.sym PanelFrames.sym AreaButtonElems.sym \ 110 | ButtonElems.sym CheckBoxElems.sym FrameElems.sym \ 111 | MultiButtonElems.sym RadioButtonElems.sym StaticTextElems.sym \ 112 | ElemTools.sym TextAreaElems.sym \ 113 | TextFieldElems.sym ColorElems.sym ListElems.sym \ 114 | BalloonElems.sym VersionElems.sym IndexElems.sym \ 115 | XIn.sym ContainerElems.sym ElemsUI.sym \ 116 | $(TARDIR)/V4_ofront 117 | rm -f $(TARDIR)/V4/*.Bak 118 | rm -f $(TARDIR)/V4/.tmp.* 119 | rm -f $(TARDIR)/V4/*~ 120 | cd $(TARDIR)/..; tar cf $(TARFILE) OberonElems 121 | $(ZIP) $(TARFILE) 122 | echo "created file" $(TARFILE).gz 123 | 124 | # System.Execute make -f makeElems 125 | # System.Execute make -f makeElems tar 126 | -------------------------------------------------------------------------------- /V4_ofront/linux386/makev4: -------------------------------------------------------------------------------- 1 | # makefile for V4, fonts, man1, raspbian_all 2 | # 3 | 4 | RELEASE = 1.4 5 | outputDIR = /tmp 6 | 7 | v4DIR = V4 8 | v4PATH = $(outputDIR)/$(v4DIR) 9 | v4TAR = $(outputDIR)/v4-$(RELEASE)-share.tar 10 | 11 | fontsDIR = fonts 12 | fontsPATH = $(outputDIR)/$(fontsDIR) 13 | fontsTAR = $(outputDIR)/fonts.tar 14 | 15 | manDIR = man1 16 | manPATH = $(outputDIR)/$(manDIR) 17 | manTAR = $(outputDIR)/man1.tar 18 | 19 | ZIP = gzip -f 20 | 21 | all: clean v4 man fonts 22 | 23 | clean: 24 | rm -fr $(v4PATH) $(manPATH) $(fontsPATH) 25 | rm -f $(v4TAR) $(manTAR) $(fontsTAR) 26 | 27 | v4: 28 | rm -fr $(v4PATH) $(v4TAR) 29 | mkdir $(v4PATH) 30 | cp ../../V4/* ../../V4_Dialogs/* ../../V4_Elems/* $(v4PATH) 31 | cp ../../V4_ofront/share/* $(v4PATH) 32 | rm -f $(v4PATH)/*.Bak 33 | rm -f $(v4PATH)/.tmp* 34 | rm -f $(v4PATH)/*~ 35 | rm -f $(v4PATH)/*.c0 36 | chmod a+rx $(v4PATH) 37 | chmod a+r $(v4PATH)/* 38 | chmod a-w $(v4PATH)/* 39 | cd $(v4PATH)/..; tar cf $(v4TAR) $(v4DIR) 40 | $(ZIP) $(v4TAR) 41 | echo "created file" $(v4TAR).gz 42 | 43 | man: 44 | rm -fr $(manPATH) $(manTAR) 45 | mkdir $(manPATH) 46 | cp ../../man1/* $(manPATH) 47 | rm -f $(manPATH)/*.Bak 48 | rm -f $(manPATH)/.tmp* 49 | rm -f $(manPATH)/*~ 50 | chmod a+rx $(manPATH) 51 | chmod a+r $(manPATH)/* 52 | chmod a-w $(manPATH)/* 53 | cd $(manPATH)/..; tar cf $(manTAR) $(manDIR) 54 | $(ZIP) $(manTAR) 55 | echo "created file" $(manTAR).gz 56 | 57 | fonts: 58 | rm -fr $(fontsPATH) $(fontsTAR) 59 | mkdir $(fontsPATH) 60 | cp ../../fonts/* $(fontsPATH) 61 | rm -f $(fontsPATH)/*.Bak 62 | rm -f $(fontsPATH)/.tmp* 63 | rm -f $(fontsPATH)/*~ 64 | chmod a+rx $(fontsPATH) 65 | chmod a+r $(fontsPATH)/* 66 | chmod a-w $(fontsPATH)/* 67 | cd $(fontsPATH)/..; tar cf $(fontsTAR) $(fontsDIR) 68 | $(ZIP) $(fontsTAR) 69 | echo "created file" $(fontsTAR).gz 70 | 71 | -------------------------------------------------------------------------------- /V4_ofront/linux386/ob: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export OFRONT_HOME=~/Desktop/ofront_1.4 4 | export OBERON=.:../share:../../V4:../../fonts:../../man1 5 | export LD_LIBRARY_PATH=.:$OFRONT_HOME/lib 6 | export PATH=.:$OFRONT_HOME/bin:$OFRONT_HOME:$PATH 7 | 8 | $OFRONT_HOME/bin/oberon $* & 9 | -------------------------------------------------------------------------------- /V4_ofront/linux386/oberon.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z "$OFRONT_HOME" ]; then 4 | export OFRONT_HOME=. 5 | echo "OFRONT_HOME set to ." 6 | fi 7 | export OBERON=.:$OFRONT_HOME/V4_ofront:$OFRONT_HOME/V4:$OFRONT_HOME/fonts 8 | export LD_LIBRARY_PATH=.:$OFRONT_HOME/lib 9 | export PATH=.:$OFRONT_HOME/bin:$PATH 10 | 11 | $OFRONT_HOME/bin/oberon $* & 12 | -------------------------------------------------------------------------------- /V4_ofront/linux386/ocl.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # compile an Oberon module .Mod into a shared library lib.so 4 | # or, if ofront option -m is specified, into an executable file 5 | # 6 | # SYNOPSIS 7 | # ocl.bash moduleName [ofrontOptions [ccOptions]] 8 | 9 | if [ -z "$1" ]; then 10 | echo "Compile an Oberon module .Mod into a shared library lib.so" 11 | echo "or, if ofront option -m is specified, into an executable file ." 12 | echo 13 | echo Usage: $0 moduleName [ofrontOptions [ccOptions]] 14 | echo 15 | echo Use single character - or "\"\"" to skip ofrontOptions. 16 | echo Examples: 17 | echo " " $0 hello - -g 18 | echo " " $0 MyModule -s "\""-g -Lmypath -lMyImport1 -lMyImport2"\"" 19 | echo " " $0 TestPi -s "\""-g -lWiringPi"\"" 20 | else 21 | # translate .Mod to .c 22 | rm -f $1.c 23 | $OFRONT_HOME/bin/ofront $1.Mod $2 24 | if [ -r $1.c ]; then 25 | if [[ $2 =~ .*m.* ]]; then 26 | # compile and link .c into executable 27 | rm -f $1 28 | cc $1.c -I$OFRONT_HOME/V4_ofront -o $1 -L. -L$OFRONT_HOME/lib -lOberonV4 $3 29 | # show result 30 | ls -l $1 31 | else 32 | # compile and link .c into lib.so 33 | rm -f lib$1.so 34 | cc $1.c -I$OFRONT_HOME/V4_ofront -shared -o lib$1.so -L. -L$OFRONT_HOME/lib -lOberonV4 $3 35 | # show result 36 | ls -l lib$1.so 37 | fi 38 | fi 39 | fi 40 | -------------------------------------------------------------------------------- /V4_ofront/linux386/po: -------------------------------------------------------------------------------- 1 | pgrep oberon 2 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/GPIO.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/raspbian/GPIO.Mod -------------------------------------------------------------------------------- /V4_ofront/raspbian/GPIO.c0: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | /* cf. Broadcom BCM2835 ARM Peripherals */ 9 | #define GPIO_BASE 0x0 // address in physical map that we want this memory block to expose 10 | #define GPIO_SIZE 0xB4 11 | 12 | static void* gpioMem; 13 | 14 | static int mapGpiomem(void) { 15 | int mem_fd; // file descriptor to physical gpio memory virtual file '/dev/gpiomem' 16 | if (gpioMem) { // already open 17 | return 0; 18 | }; 19 | if ((mem_fd = open("/dev/gpiomem", O_RDWR | O_SYNC) ) < 0) { 20 | printf("Failed to open /dev/gpiomem, check permissions.\n"); 21 | return -1; 22 | } 23 | gpioMem = mmap(NULL, GPIO_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, mem_fd, GPIO_BASE); 24 | close(mem_fd); 25 | if (gpioMem == MAP_FAILED) { 26 | perror("mmap"); 27 | gpioMem = NULL; 28 | return -1; 29 | } 30 | return 0; 31 | } 32 | 33 | static void unmapGpiomem(void) { 34 | if (gpioMem) { 35 | munmap(gpioMem, GPIO_SIZE); 36 | gpioMem = NULL; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/Kernel.Mod: -------------------------------------------------------------------------------- 1 | MODULE Kernel; 2 | (* 3 | communication with C-runtime and storage management, Linux Version 4 | 1995-04-16, jt, original version 5 | 2016-10-03, jt, trap cleaners added 6 | *) 7 | 8 | IMPORT SYSTEM, Unix, Args; 9 | 10 | TYPE 11 | RealTime = POINTER TO TimeDesc; 12 | TimeDesc = RECORD 13 | sec, min, hour, mday, mon, year, wday, isdst, zone, gmtoff: LONGINT 14 | END ; 15 | 16 | KeyCmd* = PROCEDURE; 17 | 18 | ObjFinalizer* = PROCEDURE(obj: SYSTEM.PTR); 19 | 20 | TrapCleaner* = PROCEDURE (data: LONGINT); 21 | TrapCleanerNode = POINTER TO RECORD 22 | trapCleaner: TrapCleaner; 23 | data: LONGINT; 24 | next: TrapCleanerNode; 25 | END ; 26 | 27 | VAR 28 | (* trap handling *) 29 | trapEnv*: Unix.JmpBuf; (* saved stack environment for trap handling *) 30 | 31 | (* oberon heap management *) 32 | nofiles*: LONGINT; 33 | 34 | (* input event handling *) 35 | readSet*, readySet*: Unix.FdSet; 36 | 37 | FKey*: ARRAY 16 OF KeyCmd; 38 | 39 | littleEndian*: BOOLEAN; 40 | 41 | TimeUnit*: LONGINT; (* 1 sec *) 42 | 43 | LIB*, CWD*: ARRAY 256 OF CHAR; 44 | OBERON*: ARRAY 1024 OF CHAR; 45 | 46 | 47 | timeStart: LONGINT; (* milliseconds *) 48 | trapCleaners: TrapCleanerNode; 49 | 50 | 51 | PROCEDURE -include() 52 | "#include "; 53 | 54 | PROCEDURE -Lock*() 55 | "SYSTEM_lock++"; 56 | 57 | PROCEDURE -Unlock*() 58 | "SYSTEM_lock--; if (SYSTEM_interrupted && SYSTEM_lock == 0) __HALT(-9)"; 59 | 60 | PROCEDURE -Exit*(n: LONGINT) 61 | "exit(n)"; 62 | 63 | PROCEDURE -sigsetjmp*(VAR env: Unix.JmpBuf; savemask: LONGINT): LONGINT 64 | "__sigsetjmp(env, savemask)"; 65 | 66 | PROCEDURE -siglongjmp*(VAR env:Unix.JmpBuf; val: LONGINT) 67 | "Kernel_CallTrapCleaners(); siglongjmp(env, val)"; 68 | 69 | PROCEDURE -heapsize*(): LONGINT 70 | "SYSTEM_heapsize"; 71 | 72 | PROCEDURE -allocated*(): LONGINT 73 | "SYSTEM_allocated"; 74 | 75 | PROCEDURE -localtime(VAR clock: LONGINT): RealTime 76 | "(Kernel_RealTime)localtime(clock)"; 77 | 78 | PROCEDURE -malloc*(size: LONGINT): LONGINT 79 | "(LONGINT)malloc(size)"; 80 | 81 | PROCEDURE -free*(adr: LONGINT) 82 | "(void)free(adr)"; 83 | 84 | PROCEDURE -getcwd(VAR cwd: Unix.Name) 85 | "getcwd(cwd, cwd__len)"; 86 | 87 | 88 | PROCEDURE GetClock* (VAR t, d: LONGINT); 89 | VAR tv: Unix.Timeval; tz: Unix.Timezone; time: RealTime; 90 | BEGIN 91 | Unix.Gettimeofday(tv, tz); 92 | time := localtime(tv.sec); 93 | t := time.sec + ASH(time.min, 6) + ASH(time.hour, 12); 94 | d := time.mday + ASH(time.mon+1, 5) + ASH(time.year MOD 100, 9); 95 | END GetClock; 96 | 97 | PROCEDURE GetClock4* (VAR t, d: LONGINT); (* returns year with all (4) digits *) 98 | VAR tv: Unix.Timeval; tz: Unix.Timezone; time: RealTime; 99 | BEGIN 100 | Unix.Gettimeofday(tv, tz); 101 | time := localtime(tv.sec); 102 | t := time.sec + ASH(time.min, 6) + ASH(time.hour, 12); 103 | d := time.mday + ASH(time.mon+1, 5) + ASH(time.year, 9); 104 | END GetClock4; 105 | 106 | PROCEDURE SetClock* (t, d: LONGINT); 107 | VAR err: ARRAY 25 OF CHAR; 108 | BEGIN err := "not yet implemented"; HALT(99) 109 | END SetClock; 110 | 111 | PROCEDURE Time*(): LONGINT; 112 | VAR timeval: Unix.Timeval; timezone: Unix.Timezone; 113 | BEGIN 114 | Unix.Gettimeofday(timeval, timezone); 115 | RETURN (timeval.usec DIV 1000 + timeval.sec * 1000 - timeStart) MOD 7FFFFFFFH 116 | END Time; 117 | 118 | (* 119 | PROCEDURE UserTime*(): LONGINT; 120 | VAR rusage: Unix.Rusage; 121 | BEGIN 122 | Unix.Getrusage(0, S.ADR(rusage)); 123 | RETURN rusage.utime.sec*1000 + rusage.utime.usec DIV 1000 124 | (* + rusage.stime.sec*1000 + rusage.stime.usec DIV 1000*) 125 | END UserTime; 126 | *) 127 | 128 | PROCEDURE Select*(delay: LONGINT); 129 | VAR rs, ws, xs: Unix.FdSet; n: LONGINT; tv: Unix.Timeval; 130 | BEGIN 131 | rs := readSet; 132 | FOR n := 0 TO LEN(rs) - 1 DO ws[n] := {}; xs[n] := {}; readySet[n] := {} END; 133 | IF delay < 0 THEN delay := 0 END ; 134 | tv.sec := delay DIV 1000; tv.usec := delay MOD 1000 * 1000; 135 | n := Unix.Select(LEN(rs) * 32, rs, ws, xs, tv); 136 | IF n >= 0 THEN readySet := rs END 137 | END Select; 138 | 139 | PROCEDURE -GC*(markStack: BOOLEAN) 140 | "SYSTEM_GC(markStack)"; 141 | 142 | PROCEDURE -RegisterObject*(obj: SYSTEM.PTR; finalize: ObjFinalizer) 143 | "SYSTEM_REGFIN(obj, finalize)"; 144 | 145 | PROCEDURE -SetHalt*(p: PROCEDURE(n: LONGINT)) 146 | "SYSTEM_Halt = p"; 147 | 148 | PROCEDURE InstallTermHandler*(p: PROCEDURE); 149 | (* not yet supported; no Modules.Free *) 150 | END InstallTermHandler; 151 | 152 | PROCEDURE LargestAvailable*(): LONGINT; 153 | BEGIN 154 | (* dummy proc for System 3 compatibility 155 | no meaningful value except may be the remaining swap space can be returned 156 | in the context of an extensible heap *) 157 | RETURN MAX(LONGINT) 158 | END LargestAvailable; 159 | 160 | PROCEDURE Halt(n: LONGINT); 161 | VAR res: LONGINT; 162 | BEGIN res := Unix.Kill(Unix.Getpid(), 4); 163 | END Halt; 164 | 165 | PROCEDURE EndianTest; 166 | VAR i: LONGINT; dmy: INTEGER; 167 | BEGIN 168 | dmy := 1; i := SYSTEM.ADR(dmy); 169 | SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *) 170 | END EndianTest; 171 | 172 | PROCEDURE -SizeofUnixJmpBuf(): INTEGER 173 | "sizeof(Unix_JmpBuf)"; 174 | 175 | PROCEDURE -SizeofSigJmpBuf(): INTEGER 176 | "sizeof(sigjmp_buf)"; 177 | 178 | PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER) 179 | "write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)"; 180 | 181 | PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf; better avoid Unix_JmpBuf *) 182 | VAR x, y: LONGINT; 183 | BEGIN 184 | x := SizeofUnixJmpBuf(); 185 | y := SizeofSigJmpBuf(); 186 | IF x < y THEN 187 | Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52); 188 | Exit(1); 189 | END 190 | END JmpBufCheck; 191 | 192 | PROCEDURE PushTrapCleaner*(trapCleaner: TrapCleaner; data: LONGINT); 193 | VAR n: TrapCleanerNode; 194 | BEGIN NEW(n); n.trapCleaner := trapCleaner; n.data := data; n.next := trapCleaners; trapCleaners := n 195 | END PushTrapCleaner; 196 | 197 | PROCEDURE PopTrapCleaner*; 198 | BEGIN 199 | IF trapCleaners # NIL THEN trapCleaners := trapCleaners.next END 200 | END PopTrapCleaner; 201 | 202 | PROCEDURE CallTrapCleaners*; 203 | BEGIN 204 | WHILE trapCleaners # NIL DO trapCleaners.trapCleaner(trapCleaners.data); PopTrapCleaner END 205 | END CallTrapCleaners; 206 | 207 | BEGIN 208 | EndianTest(); 209 | SetHalt(Halt); 210 | CWD := ""; OBERON := "."; LIB := ""; 211 | getcwd(CWD); 212 | Args.GetEnv("OBERON", OBERON); 213 | Args.GetEnv("OBERON_LIB", LIB); 214 | TimeUnit := 1000; timeStart := 0; timeStart := Time(); 215 | JmpBufCheck() 216 | END Kernel. 217 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/My.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/raspbian/My.Tool -------------------------------------------------------------------------------- /V4_ofront/raspbian/OberonStartup.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/raspbian/OberonStartup.Mod -------------------------------------------------------------------------------- /V4_ofront/raspbian/Ofront.par: -------------------------------------------------------------------------------- 1 | CHAR 1 1 2 | BOOLEAN 1 1 3 | SHORTINT 1 1 4 | INTEGER 2 2 5 | LONGINT 4 4 6 | SET 4 4 7 | REAL 4 4 8 | LONGREAL 8 8 9 | PTR 4 4 10 | PROC 4 4 11 | RECORD 1 1 12 | ENDIAN 1 0 13 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/README: -------------------------------------------------------------------------------- 1 | Tested on 32-bit Raspbian Linux for Raspberry PI 3B. 2 | Uses libc.so.6, libm.so.6, libX11.so.6. 3 | 4 | Run 'make' for a build. 5 | Look at the 'makefile' for the build process. 6 | 7 | It may be required to create a link for libX11.so: 8 | libX11.so -> /usr/lib/i386-linux-gnu/libX11.so.6 9 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/RPI.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/raspbian/RPI.Mod -------------------------------------------------------------------------------- /V4_ofront/raspbian/RPI.c0: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | /* cf. Broadcom BCM2835 ARM Peripherals */ 9 | #define PERI_SIZE 0x1000000 /* size of peripherals data */ 10 | 11 | static void* periMem; //BCM2835 peripherals memory 12 | 13 | static int mapPeripherals(long periBase) { 14 | int mem_fd; // file descriptor to peripherals memory virtual file '/dev/mem' 15 | long euid; 16 | if (periMem) { // already open 17 | return 0; 18 | }; 19 | euid = geteuid(); 20 | if (euid == -1) { 21 | perror("RPI.Open: geteuid"); //probably never 22 | return -1; 23 | } 24 | if (euid != 0) { 25 | int res = seteuid(0); //temporarily set effective user id to root; requires: user id == root 26 | if (res == -1) { 27 | perror("RPI.Open: seteuid(root)"); 28 | return -1; 29 | } 30 | } 31 | if ((mem_fd = open("/dev/mem", O_RDWR | O_SYNC) ) == -1) { 32 | //printf("RPI.Open: failed to open '/dev/mem', check permissions.\n"); 33 | perror("RPI.Open: open"); 34 | if (euid != 0) { 35 | if (seteuid(euid) == -1) { 36 | perror("RPI.Open: seteuid(euid)"); 37 | return -1; 38 | } 39 | } 40 | return -1; 41 | } 42 | if (euid != 0) { 43 | if (seteuid(euid) == -1) { 44 | perror("RPI.Open: seteuid(euid)"); 45 | return -1; 46 | } 47 | } 48 | periMem = mmap(NULL, PERI_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, mem_fd, periBase); 49 | if (periMem == MAP_FAILED) { 50 | perror("RPI.Open: mmap"); 51 | periMem = NULL; 52 | close(mem_fd); 53 | return -1; 54 | } 55 | if (close(mem_fd) == -1) { 56 | perror("RPI.Open: close"); //probably never 57 | return -1; 58 | } 59 | return 0; 60 | } 61 | 62 | static void unmapPeripherals() { 63 | if (periMem) { 64 | if (munmap(periMem, PERI_SIZE) == 0) { 65 | periMem = NULL; 66 | } else { 67 | perror("RPI.Close: munmap"); // should never occur 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/RPItest.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/raspbian/RPItest.Mod -------------------------------------------------------------------------------- /V4_ofront/raspbian/Reals.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/raspbian/Reals.Mod -------------------------------------------------------------------------------- /V4_ofront/raspbian/Syntax10.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/raspbian/Syntax10.Scn.Fnt -------------------------------------------------------------------------------- /V4_ofront/raspbian/System.Tool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/raspbian/System.Tool -------------------------------------------------------------------------------- /V4_ofront/raspbian/Test.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/raspbian/Test.Mod -------------------------------------------------------------------------------- /V4_ofront/raspbian/TestPi.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/raspbian/TestPi.Mod -------------------------------------------------------------------------------- /V4_ofront/raspbian/TestPiMain.Mod: -------------------------------------------------------------------------------- 1 | MODULE TestPiMain; 2 | 3 | IMPORT WiringPi, Console; 4 | 5 | VAR 6 | i: INTEGER; 7 | model, rev, mem, maker, overVolted: LONGINT; 8 | 9 | BEGIN 10 | WiringPi.SetupSys; 11 | FOR i := 0 TO 15 DO 12 | Console.Int(i, 2); 13 | Console.String(": model="); Console.String(WiringPi.piModelNames[i]^); 14 | Console.String(", revision="); Console.String(WiringPi.piRevisionNames[i]^); 15 | Console.String(", maker="); Console.String(WiringPi.piMakerNames[i]^); 16 | Console.Ln 17 | END; 18 | Console.String("PiBoardRev="); Console.Int(WiringPi.PiBoardRev(), 1); Console.Ln; 19 | WiringPi.PiBoardId(model, rev, mem, maker, overVolted); 20 | Console.String("PiBoardId: model="); Console.Int(model, 1); 21 | Console.String(", rev="); Console.Int(rev, 1); 22 | Console.String(", mem="); Console.Int(mem, 1); 23 | Console.String(", maker="); Console.Int(maker, 1); 24 | Console.String(", overVolted="); Console.Int(overVolted, 1); 25 | Console.Ln 26 | END TestPiMain. -------------------------------------------------------------------------------- /V4_ofront/raspbian/cl.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # compile an Oberon module .c into a shared library lib.so 4 | # or, if the option -m is specified, into an executable file 5 | # 6 | # SYNOPSIS 7 | # cl.bash moduleName outname options ccOptions 8 | 9 | if [ -z "$1" ]; then 10 | echo "Compile an Oberon module .c into a shared library lib.so" 11 | echo "or, if the option -m is specified, into an executable file ." 12 | echo "ccOptions must be enclosed in quotes." 13 | echo 14 | echo "Usage: $0 moduleName outname options ccOptions" 15 | echo "options = -mgO where m is for main, g for debug and O for optimze" 16 | echo 17 | echo "Examples:" 18 | echo " " $0 MyModule Oberon_MyModule -g "\""-g -Lmypath -lOberon_MyImport1"\"" 19 | echo " " $0 MyMainModule Main -g "\""-g -Lmypath -lOberon_MyImport1"\"" -m 20 | else 21 | if [[ $3 =~ .*m.* ]]; then 22 | # compile and link .c into executable 23 | rm -f $2 24 | cc $1.c -I$OFRONT_HOME/V4_ofront -g -o $2 -L. -L$OFRONT_HOME/lib $4 25 | else 26 | # compile and link .c into shared library lib.so 27 | rm -f lib$2.so 28 | cc $1.c -I$OFRONT_HOME/V4_ofront -g -shared -o lib$2.so -L. -L$OFRONT_HOME/lib $4 29 | fi 30 | fi 31 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/fmap.txt: -------------------------------------------------------------------------------- 1 | #fontmapfile 2 | Syntax10.Scn.Fnt Syntax14.Scn.Fnt 3 | Syntax10i.Scn.Fnt Syntax14i.Scn.Fnt 4 | Syntax10b.Scn.Fnt Syntax14b.Scn.Fnt 5 | Syntax10m.Scn.Fnt Syntax14m.Scn.Fnt 6 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/ob: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export OFRONT_HOME=~/ofront_1.4 4 | export OBERON=.:../share:../../V4:../../fonts 5 | export LD_LIBRARY_PATH=.:$OFRONT_HOME/lib 6 | 7 | $OFRONT_HOME/bin/oberon $* & 8 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/oberon.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z "$OFRONT_HOME" ]; then 4 | OFRONT_HOME=. 5 | echo "OFRONT_HOME set to ." 6 | fi 7 | export OBERON=.:$OFRONT_HOME/V4_ofront:$OFRONT_HOME/V4:$OFRONT_HOME/fonts 8 | export LD_LIBRARY_PATH=.:$OFRONT_HOME/lib 9 | 10 | $OFRONT_HOME/bin/oberon $* & 11 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/ocl.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # compile an Oberon module .Mod into a shared library lib.so 4 | # or, if ofront option -m is specified, into an executable file 5 | # 6 | # SYNOPSIS 7 | # ocl.bash moduleName [ofrontOptions [ccOptions]] 8 | 9 | if [ -z "$1" ]; then 10 | echo "Compile an Oberon module .Mod into a shared library lib.so" 11 | echo "or, if ofront option -m is specified, into an executable file ." 12 | echo 13 | echo Usage: $0 moduleName [ofrontOptions [ccOptions]] 14 | echo 15 | echo Use single character - or "\"\"" to skip ofrontOptions. 16 | echo Examples: 17 | echo " " $0 hello - -g 18 | echo " " $0 MyModule -s "\""-g -Lmypath -lMyImport1 -lMyImport2"\"" 19 | echo " " $0 TestPi -s "\""-g -lWiringPi"\"" 20 | else 21 | # translate .Mod to .c 22 | rm -f $1.c 23 | $OFRONT_HOME/bin/ofront $1.Mod $2 24 | if [ -r $1.c ]; then 25 | if [[ $2 =~ .*m.* ]]; then 26 | # compile and link .c into executable 27 | rm -f $1 28 | cc $1.c -I$OFRONT_HOME/V4_ofront -o $1 -L. -L$OFRONT_HOME/lib -lOberonV4 $3 29 | # show result 30 | ls -l $1 31 | else 32 | # compile and link .c into lib.so 33 | rm -f lib$1.so 34 | cc $1.c -I$OFRONT_HOME/V4_ofront -shared -o lib$1.so -L. -L$OFRONT_HOME/lib -lOberonV4 $3 35 | # show result 36 | ls -l lib$1.so 37 | fi 38 | fi 39 | fi 40 | -------------------------------------------------------------------------------- /V4_ofront/raspbian/po: -------------------------------------------------------------------------------- 1 | pgrep oberon 2 | -------------------------------------------------------------------------------- /V4_ofront/share/Args.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Args.Mod -------------------------------------------------------------------------------- /V4_ofront/share/AsciiCoder.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/AsciiCoder.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Bitmaps.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Bitmaps.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Browser.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Browser.Mod -------------------------------------------------------------------------------- /V4_ofront/share/BrowserCmd.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/BrowserCmd.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Calc.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Calc.Mod -------------------------------------------------------------------------------- /V4_ofront/share/ChartElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/ChartElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/ClockElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/ClockElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Colors.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Colors.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Compiler.Mod: -------------------------------------------------------------------------------- 1 | MODULE Compiler; 2 | 3 | (* like Ofront.Translate but in addition calls the C-compiler and linker *) 4 | 5 | IMPORT Kernel, Modules, Oberon, Out, Texts, 6 | OfrontOPP, OfrontOPB, OfrontOPT, OfrontOPV, OfrontOPC, OfrontOPM; 7 | 8 | VAR 9 | cl*: ARRAY 128 OF CHAR; (* command to call C-compiler and linker for a module *) 10 | 11 | PROCEDURE Append(VAR s: ARRAY OF CHAR; VAR len: INTEGER; x: ARRAY OF CHAR); 12 | VAR i: INTEGER; 13 | BEGIN i := 0; 14 | WHILE x[i] # 0X DO s[len] := x[i]; INC(len); INC(i) END ; 15 | s[len] := 0X 16 | END Append; 17 | 18 | PROCEDURE LinkImports(obj: OfrontOPT.Object; VAR clCmd: ARRAY OF CHAR; VAR len: INTEGER); 19 | BEGIN 20 | IF obj # NIL THEN 21 | LinkImports(obj^.left, clCmd, len); 22 | IF (obj^.mode = OfrontOPT.Mod) & (obj^.mnolev # 0) THEN 23 | Append(clCmd, len, " -l"); 24 | Append(clCmd, len, Modules.libPrefix); 25 | Append(clCmd, len, OfrontOPT.GlbMod[-obj^.mnolev].name); 26 | END ; 27 | LinkImports(obj^.right, clCmd, len) 28 | END 29 | END LinkImports; 30 | 31 | PROCEDURE GetClCmd(main: BOOLEAN; VAR clCmd: ARRAY OF CHAR); (* must be before OfrontOPT.Close *) 32 | VAR len: INTEGER; import: OfrontOPT.Object; 33 | BEGIN 34 | clCmd[0] := 0X; len := 0; 35 | Append(clCmd, len, cl); 36 | Append(clCmd, len, " "); 37 | (* module *) 38 | Append(clCmd, len, OfrontOPT.SelfName); 39 | Append(clCmd, len, " "); 40 | (* outname *) 41 | IF ~main THEN Append(clCmd, len, Modules.libPrefix) END ; 42 | Append(clCmd, len, OfrontOPT.SelfName); 43 | (* options *) 44 | Append(clCmd, len, " -"); 45 | IF main THEN Append(clCmd, len, "m") END ; 46 | IF OfrontOPM.clverbose IN OfrontOPM.opt THEN Append(clCmd, len, "V") END ; 47 | IF OfrontOPM.cldebug IN OfrontOPM.opt THEN Append(clCmd, len, "G") END ; 48 | IF OfrontOPM.cloptimize IN OfrontOPM.opt THEN Append(clCmd, len, "O") END ; 49 | (* ccOptions *) 50 | Append(clCmd, len, ' "'); 51 | IF OfrontOPT.SelfName # "SYSTEM" THEN Append(clCmd, len, "-l"); 52 | Append(clCmd, len, Modules.libPrefix); Append(clCmd, len, "SYSTEM") 53 | END ; 54 | LinkImports(OfrontOPT.topScope^.right, clCmd, len); 55 | Append(clCmd, len, " "); 56 | Append(clCmd, len, OfrontOPM.clOpts); 57 | Append(clCmd, len, '"') 58 | END GetClCmd; 59 | 60 | PROCEDURE Module*(VAR done: BOOLEAN); 61 | VAR ext, new, verbose: BOOLEAN; p: OfrontOPT.Node; 62 | clCmd: POINTER TO ARRAY 4000 OF CHAR; status: LONGINT; out: Texts.Buffer; res: INTEGER; 63 | BEGIN 64 | clCmd := NIL; 65 | OfrontOPP.Module(p, OfrontOPM.opt); 66 | IF OfrontOPM.noerr THEN 67 | OfrontOPV.Init; 68 | OfrontOPV.AdrAndSize(OfrontOPT.topScope); 69 | OfrontOPT.Export(ext, new); 70 | IF OfrontOPM.noerr THEN 71 | NEW(clCmd); 72 | OfrontOPM.OpenFiles(OfrontOPT.SelfName); 73 | OfrontOPC.Init; 74 | OfrontOPV.Module(p); 75 | IF OfrontOPM.noerr THEN 76 | IF (OfrontOPM.mainprog IN OfrontOPM.opt) & (OfrontOPM.modName # "SYSTEM") THEN 77 | OfrontOPM.DeleteNewSym; OfrontOPM.LogWStr(" main program"); 78 | GetClCmd(TRUE, clCmd^) 79 | ELSE 80 | IF new THEN OfrontOPM.LogWStr(" new symbol file"); OfrontOPM.RegisterNewSym 81 | ELSIF ext THEN OfrontOPM.LogWStr(" extended symbol file"); OfrontOPM.RegisterNewSym 82 | END ; 83 | GetClCmd(FALSE, clCmd^) 84 | END 85 | ELSE 86 | OfrontOPM.DeleteNewSym 87 | END ; 88 | END 89 | END ; 90 | verbose := OfrontOPM.clverbose IN OfrontOPM.opt; 91 | OfrontOPM.CloseFiles; OfrontOPT.Close; 92 | OfrontOPM.LogWLn; 93 | IF clCmd # NIL THEN (* must be after OfrontOPM.CloseFiles *) 94 | Oberon.ExecShell(clCmd^, status, out); 95 | IF verbose THEN Out.String(clCmd^); Out.Ln END ; 96 | IF (status # 0) OR verbose THEN Texts.Append(Oberon.Log, out) END 97 | END ; 98 | done := OfrontOPM.noerr & (status = 0); 99 | Oberon.Call("oberon.PinLog", Oberon.Par, FALSE, res); (* force scrolling *) 100 | END Module; 101 | 102 | PROCEDURE Compile*; 103 | VAR done: BOOLEAN; 104 | BEGIN 105 | OfrontOPM.OpenPar; 106 | OfrontOPT.bytetyp.size := OfrontOPM.ByteSize; 107 | OfrontOPT.sysptrtyp.size := OfrontOPM.PointerSize; 108 | OfrontOPT.chartyp.size := OfrontOPM.CharSize; 109 | OfrontOPT.settyp.size := OfrontOPM.SetSize; 110 | OfrontOPT.realtyp.size := OfrontOPM.RealSize; 111 | OfrontOPT.inttyp.size := OfrontOPM.IntSize; 112 | OfrontOPT.linttyp.size := OfrontOPM.LIntSize; 113 | OfrontOPT.lrltyp.size := OfrontOPM.LRealSize; 114 | OfrontOPT.sinttyp.size := OfrontOPM.SIntSize; 115 | OfrontOPT.booltyp.size := OfrontOPM.BoolSize; 116 | LOOP 117 | OfrontOPM.Init("compiling", done); 118 | IF ~done THEN EXIT END ; 119 | OfrontOPM.InitOptions; 120 | Module(done); 121 | Kernel.GC(TRUE); (* someone might Oberon.Call("Compiler.Compile"...), so we have to mark the stack *) 122 | IF ~done THEN EXIT END 123 | END 124 | END Compile; 125 | 126 | PROCEDURE SetCL*; 127 | VAR S: Texts.Scanner; T: Texts.Text; beg, end, time: LONGINT; 128 | BEGIN 129 | Texts.OpenScanner(S, Oberon.Par.text, Oberon.Par.pos); Texts.Scan(S); 130 | IF (S.class = Texts.Char) & (S.c = "^") OR (S.line # 0) THEN 131 | Oberon.GetSelection(T, beg, end, time); 132 | IF time >= 0 THEN Texts.OpenScanner(S, T, beg); Texts.Scan(S) END 133 | END; 134 | IF S.class IN {Texts.Name, Texts.String} THEN 135 | COPY(S.s, cl) 136 | END 137 | END SetCL; 138 | 139 | PROCEDURE ShowCL*; 140 | BEGIN Out.String(cl); Out.Ln 141 | END ShowCL; 142 | 143 | BEGIN 144 | cl := "cl.bash"; 145 | OfrontOPB.typSize := OfrontOPV.TypSize; OfrontOPT.typSize := OfrontOPV.TypSize 146 | END Compiler. -------------------------------------------------------------------------------- /V4_ofront/share/CompilerCmd.Mod: -------------------------------------------------------------------------------- 1 | MODULE CompilerCmd; 2 | 3 | (* like Compiler but as a stand-alone main program *) 4 | 5 | IMPORT 6 | SYSTEM, Unix, Kernel, Args, 7 | OfrontOPP, OfrontOPB, OfrontOPT, OfrontOPV, OfrontOPC, OfrontOPM; 8 | 9 | VAR 10 | cl: ARRAY 64 OF CHAR; (* command to call C-compiler and linker for a module *) 11 | libPrefix: ARRAY 20 OF CHAR; 12 | 13 | PROCEDURE -fin() 14 | "SYSTEM_FINALL()"; 15 | 16 | PROCEDURE -halt(): LONGINT 17 | "SYSTEM_halt"; 18 | 19 | PROCEDURE -system(cmd: ARRAY OF CHAR): LONGINT 20 | "(LONGINT)system(cmd)"; 21 | 22 | PROCEDURE Trap(sig, siginfo, sigctx: LONGINT); 23 | BEGIN fin(); 24 | IF sig = 3 THEN Unix.Exit(1) 25 | ELSE 26 | IF (sig = 4) & (halt() = -15) THEN 27 | OfrontOPM.LogWStr(" --- ofront: internal error"); OfrontOPM.LogWLn 28 | END ; 29 | Unix.Exit(2) 30 | END 31 | END Trap; 32 | 33 | PROCEDURE Append(VAR s: ARRAY OF CHAR; VAR len: INTEGER; x: ARRAY [1] OF CHAR); 34 | VAR i: INTEGER; 35 | BEGIN i := 0; 36 | WHILE x[i] # 0X DO s[len] := x[i]; INC(len); INC(i) END ; 37 | s[len] := 0X 38 | END Append; 39 | 40 | PROCEDURE LinkImports(obj: OfrontOPT.Object; VAR clCmd: ARRAY OF CHAR; VAR len: INTEGER); 41 | BEGIN 42 | IF obj # NIL THEN 43 | LinkImports(obj^.left, clCmd, len); 44 | IF (obj^.mode = OfrontOPT.Mod) & (obj^.mnolev # 0) THEN 45 | Append(clCmd, len, " -l"); 46 | Append(clCmd, len, libPrefix); 47 | Append(clCmd, len, OfrontOPT.GlbMod[-obj^.mnolev].name); 48 | END ; 49 | LinkImports(obj^.right, clCmd, len) 50 | END 51 | END LinkImports; 52 | 53 | PROCEDURE GetClCmd(main: BOOLEAN; VAR clCmd: ARRAY OF CHAR); (* must be before OfrontOPT.Close *) 54 | VAR len: INTEGER; import: OfrontOPT.Object; 55 | BEGIN 56 | clCmd[0] := 0X; len := 0; 57 | Append(clCmd, len, cl); 58 | Append(clCmd, len, " "); 59 | (* module *) 60 | Append(clCmd, len, OfrontOPT.SelfName); 61 | Append(clCmd, len, " "); 62 | (* outname *) 63 | IF ~main THEN Append(clCmd, len, libPrefix) END ; 64 | Append(clCmd, len, OfrontOPT.SelfName); 65 | (* options *) 66 | Append(clCmd, len, " -"); 67 | IF main THEN Append(clCmd, len, "m") END ; 68 | IF OfrontOPM.clverbose IN OfrontOPM.opt THEN Append(clCmd, len, "V") END ; 69 | IF OfrontOPM.cldebug IN OfrontOPM.opt THEN Append(clCmd, len, "G") END ; 70 | IF OfrontOPM.cloptimize IN OfrontOPM.opt THEN Append(clCmd, len, "O") END ; 71 | (* ccOptions *) 72 | Append(clCmd, len, ' "'); 73 | IF OfrontOPT.SelfName # "SYSTEM" THEN Append(clCmd, len, "-l"); 74 | Append(clCmd, len, libPrefix); Append(clCmd, len, "SYSTEM") 75 | END ; 76 | LinkImports(OfrontOPT.topScope^.right, clCmd, len); 77 | Append(clCmd, len, " "); 78 | Append(clCmd, len, OfrontOPM.clOpts); 79 | Append(clCmd, len, '"') 80 | END GetClCmd; 81 | 82 | PROCEDURE Module*(VAR done: BOOLEAN); 83 | VAR ext, new, verbose: BOOLEAN; p: OfrontOPT.Node; 84 | clCmd: POINTER TO ARRAY 4000 OF CHAR; status: LONGINT; res: INTEGER; 85 | BEGIN 86 | clCmd := NIL; 87 | OfrontOPP.Module(p, OfrontOPM.opt); 88 | IF OfrontOPM.noerr THEN 89 | OfrontOPV.Init; 90 | OfrontOPV.AdrAndSize(OfrontOPT.topScope); 91 | OfrontOPT.Export(ext, new); 92 | IF OfrontOPM.noerr THEN 93 | NEW(clCmd); 94 | OfrontOPM.OpenFiles(OfrontOPT.SelfName); 95 | OfrontOPC.Init; 96 | OfrontOPV.Module(p); 97 | IF OfrontOPM.noerr THEN 98 | IF (OfrontOPM.mainprog IN OfrontOPM.opt) & (OfrontOPM.modName # "SYSTEM") THEN 99 | OfrontOPM.DeleteNewSym; OfrontOPM.LogWStr(" main program"); 100 | GetClCmd(TRUE, clCmd^) 101 | ELSE 102 | IF new THEN OfrontOPM.LogWStr(" new symbol file"); OfrontOPM.RegisterNewSym 103 | ELSIF ext THEN OfrontOPM.LogWStr(" extended symbol file"); OfrontOPM.RegisterNewSym 104 | END ; 105 | GetClCmd(FALSE, clCmd^) 106 | END 107 | ELSE 108 | OfrontOPM.DeleteNewSym 109 | END ; 110 | END 111 | END ; 112 | verbose := OfrontOPM.clverbose IN OfrontOPM.opt; 113 | OfrontOPM.CloseFiles; OfrontOPT.Close; 114 | OfrontOPM.LogWLn; 115 | IF clCmd # NIL THEN (* must be after OfrontOPM.CloseFiles *) 116 | IF verbose THEN OfrontOPM.LogWStr(clCmd^); OfrontOPM.LogWLn END; 117 | status := system(clCmd^) 118 | END ; 119 | done := OfrontOPM.noerr & (status = 0); 120 | END Module; 121 | 122 | PROCEDURE Compile*; (* Note: export mark keeps C optimizers from inlining into main, 123 | which may invalidate SYSTEM_mainfrm and thereby stack collection *) 124 | VAR done: BOOLEAN; 125 | BEGIN 126 | OfrontOPM.OpenPar("Ofront (TM) - Oberon-2 Compiler V1.4", "ocl"); 127 | OfrontOPT.bytetyp.size := OfrontOPM.ByteSize; 128 | OfrontOPT.sysptrtyp.size := OfrontOPM.PointerSize; 129 | OfrontOPT.chartyp.size := OfrontOPM.CharSize; 130 | OfrontOPT.settyp.size := OfrontOPM.SetSize; 131 | OfrontOPT.realtyp.size := OfrontOPM.RealSize; 132 | OfrontOPT.inttyp.size := OfrontOPM.IntSize; 133 | OfrontOPT.linttyp.size := OfrontOPM.LIntSize; 134 | OfrontOPT.lrltyp.size := OfrontOPM.LRealSize; 135 | OfrontOPT.sinttyp.size := OfrontOPM.SIntSize; 136 | OfrontOPT.booltyp.size := OfrontOPM.BoolSize; 137 | LOOP 138 | OfrontOPM.Init("compiling", done); 139 | IF ~done THEN 140 | IF ~OfrontOPM.noerr THEN (* source file not found *) fin(); Unix.Exit(1) END; 141 | EXIT (* end of argument vector *) 142 | END ; 143 | OfrontOPM.InitOptions; 144 | Module(done); 145 | Kernel.GC(TRUE); (* someone might Oberon.Call("Compiler.Compile"...), so we have to mark the stack *) 146 | IF ~done THEN fin(); Unix.Exit(1) END 147 | END 148 | END Compile; 149 | 150 | BEGIN 151 | libPrefix := "_V4_"; Args.GetEnv("OBERON_LIBPREFIX", libPrefix); (* see also ./Modules.Mod *) 152 | cl := "cl.bash"; 153 | OfrontOPB.typSize := OfrontOPV.TypSize; OfrontOPT.typSize := OfrontOPV.TypSize; 154 | Unix.SigSetHandler(2, Trap); (* interrupt *) 155 | Unix.SigSetHandler(3, Trap); (* quit *) 156 | Unix.SigSetHandler(4, Trap); (* illegal instruction, HALT *) 157 | Compile 158 | END CompilerCmd. -------------------------------------------------------------------------------- /V4_ofront/share/Compress.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Compress.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Console.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Console.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Curves.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Curves.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Dates.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Dates.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Display1.Mod: -------------------------------------------------------------------------------- 1 | MODULE Display1; (* RC 11.12.92*) 2 | 3 | IMPORT Display, X11, Console, Unix, Kernel, S := SYSTEM; 4 | 5 | CONST 6 | white = 0; grey1 = 1; grey2 = 2; grey3 = 3; grey4 = 4; black = 5; 7 | texture0 = 6; texture1 = 7; texture2 = 8; texture3 = 9; 8 | 9 | VAR 10 | GcC: X11.GC; 11 | Window: X11.Window; 12 | lastcolC, lastmodeC, lastx, lasty, lastw, lasth: INTEGER; 13 | width0: BOOLEAN; 14 | scrPat: ARRAY 10 OF LONGINT; 15 | 16 | PROCEDURE GetPatternSize*(pat: X11.Pattern; VAR w, h: INTEGER); 17 | (* Returns the pattern size. *) 18 | VAR p: X11.PatternPtr; 19 | BEGIN p := S.VAL(X11.PatternPtr, pat); w := p.w; h := p.h 20 | END GetPatternSize; 21 | 22 | PROCEDURE ThisPattern*(n: INTEGER): X11.Pattern; 23 | (* Returns the n-th predefined pattern (corresponding to the printer patterns). If the pattern is not available, 24 | 0 is returned. n must be >= 0. Currently 10 patterns are predefined (0 .. 9). *) 25 | BEGIN 26 | IF n >= LEN(scrPat) THEN RETURN 0 27 | ELSE RETURN scrPat[n] 28 | END 29 | END ThisPattern; 30 | 31 | PROCEDURE Secondary(F: Display.Frame; col, mode: INTEGER): BOOLEAN; 32 | VAR cliprect: X11.Rectangle; 33 | BEGIN 34 | IF X11.lclen > 0 THEN X11.FlushLCache END ; 35 | Kernel.Lock(); 36 | IF (F.X # lastx) OR (F.Y # lasty) OR (F.W # lastw) OR (F.H # lasth) THEN 37 | lastx := F.X; lasty := F.Y; lastw := F.W; lasth := F.H; 38 | cliprect.x := lastx; cliprect.y := X11.Height-lasty-lasth; cliprect.w := lastw; cliprect.h := lasth; 39 | IF lasty >= 0 THEN Window := X11.primary ELSE Window := X11.secondary; INC(cliprect.y, X11.UBottom) END ; 40 | IF (cliprect.x <= 0) & (cliprect.y <= 0) & (cliprect.w >= X11.Width) & (cliprect.h >= X11.Height) THEN (* no clipping *) 41 | X11.SetClipMask(X11.display, GcC, X11.None) 42 | ELSE 43 | X11.SetClipRectangles(X11.display, GcC, 0, 0, S.ADR(cliprect), 1, X11.YXBanded) 44 | END 45 | END ; 46 | IF mode = X11.paint THEN mode := X11.replace END ; 47 | IF mode # lastmodeC THEN X11.SetFunction(X11.display, GcC, X11.function[mode]); lastmodeC := mode END ; 48 | IF col # lastcolC THEN X11.SetForeground(X11.display, GcC, X11.pixelValues[col]); lastcolC := col END ; 49 | Kernel.Unlock(); 50 | RETURN Window = X11.secondary 51 | END Secondary; 52 | 53 | PROCEDURE Line*(F: Display.Frame; col, X0, Y0, X1, Y1, mode: INTEGER); 54 | (* Draws a line from (X0, Y0) to (X1, Y1) inclusive, clipped against F. For all line points (x, y) the following holds 55 | always: (min(X0, X1) <= x) & (x <= max(X0, X1) & (min(Y0, Y0) <= y) & (y <= max(Y0, Y1). *) 56 | BEGIN 57 | IF Secondary(F, col, mode) THEN DEC(Y0, X11.UBottom); DEC(Y1, X11.UBottom) END ; 58 | Kernel.Lock(); 59 | IF ~width0 THEN width0 := TRUE; X11.SetLineAttributes(X11.display, GcC, 0, X11.LineSolid, X11.CapButt, X11.JoinMiter) END ; 60 | X11.DrawLine(X11.display, Window, GcC, X0, X11.Height-Y0-1, X1, X11.Height-Y1-1); 61 | Kernel.Unlock() 62 | END Line; 63 | 64 | PROCEDURE Circle*(F: Display.Frame; col, X, Y, R, mode: INTEGER); 65 | (* Draws a circle with center (X, Y) and radius R, clipped against F. For all circle points (x, y) the following holds always: 66 | (X-R <= x) & (x < X+R) & (Y-R <= y) & (y < Y+R). *) 67 | BEGIN 68 | IF R > 0 THEN (* else problem in X *) 69 | IF Secondary(F, col, mode) THEN DEC(Y, X11.UBottom) END ; 70 | Kernel.Lock(); 71 | IF width0 THEN width0 := FALSE; X11.SetLineAttributes(X11.display, GcC, 1, X11.LineSolid, X11.CapButt, X11.JoinMiter) END ; 72 | X11.DrawArc(X11.display, Window, GcC, X-R, X11.Height-Y-R, 2*R-1, 2*R-1, 0, 360*64); 73 | Kernel.Unlock() 74 | END 75 | END Circle; 76 | 77 | PROCEDURE Ellipse*(F: Display.Frame; col, X, Y, A, B, mode: INTEGER); 78 | (* Draws an ellipse with center (X, Y) and radii A and B, clipped against F. For all ellipse points (x, y) the following holds 79 | always: (X-A <= x) & (x < X+A) & (Y-B <= y) & (y < Y+B). When A = B the resulting ellipse has the same shape 80 | as the corresponding circle with R = A. *) 81 | BEGIN 82 | IF (A > 0) & (B > 0) THEN (* else problem in X *) 83 | IF Secondary(F, col, mode) THEN DEC(Y, X11.UBottom) END ; 84 | Kernel.Lock(); 85 | IF width0 THEN width0 := FALSE; X11.SetLineAttributes(X11.display, GcC, 1, X11.LineSolid, X11.CapButt, X11.JoinMiter) END ; 86 | X11.DrawArc(X11.display, Window, GcC, X-A, X11.Height-Y-B, 2*A-1, 2*B-1, 0, 360*64); 87 | Kernel.Unlock() 88 | END 89 | END Ellipse; 90 | 91 | PROCEDURE CreateGC; 92 | BEGIN 93 | Kernel.Lock(); 94 | GcC := X11.CreateGC(X11.display, X11.primary, 0, 0); 95 | IF GcC = 0 THEN Console.String("Cannot create X graphic context"); Console.Ln; Unix.Exit(1) END ; 96 | X11.SetPlaneMask(X11.display, GcC, X11.planesMask); 97 | X11.SetGraphicsExposures(X11.display, GcC, X11.True); 98 | X11.SetBackground(X11.display, GcC, X11.background); 99 | X11.SetLineAttributes(X11.display, GcC, 0, X11.LineSolid, X11.CapButt, X11.JoinMiter); 100 | X11.SetArcMode(X11.display, GcC, X11.ArcPieSlice); 101 | lastcolC := -1; lastmodeC := -1; width0 := TRUE; 102 | lastx := -1; lasty := -1; lastw := -1; lasth := -1; 103 | Window := X11.secondary; 104 | Kernel.Unlock() 105 | END CreateGC; 106 | 107 | PROCEDURE Init; 108 | VAR image: ARRAY 17 OF SET; 109 | 110 | PROCEDURE Repl(step: INTEGER); 111 | VAR i: INTEGER; 112 | BEGIN i := step; 113 | WHILE i < 16 DO image[i+1] := image[i-step+1]; INC(i) END 114 | END Repl; 115 | 116 | BEGIN 117 | 118 | (*-- initialize screen patterns ---*) 119 | image[1] := {}; 120 | Repl(1); 121 | scrPat[white] := Display.NewPattern(image, 16, 16); 122 | 123 | image[4] := {0, 8}; 124 | image[3] := {}; 125 | image[2] := {4, 12}; 126 | image[1] := {}; 127 | Repl(4); 128 | scrPat[grey1] := Display.NewPattern(image, 16, 16); 129 | 130 | image[2] := {0, 4, 8, 12}; 131 | image[1] := {2, 6, 10, 14}; 132 | Repl(2); 133 | scrPat[grey2] := Display.NewPattern(image, 16, 16); 134 | 135 | image[1] := {0, 2, 4, 6, 8, 10, 12, 14}; 136 | image[0] := {1, 3, 5, 7, 9, 11, 13, 15}; 137 | Repl(2); 138 | scrPat[grey3] := Display.NewPattern(image, 16, 16); 139 | 140 | image[2] := {1..3, 5..7, 9..11, 13..15}; 141 | image[1] := {0, 1, 3..5, 7..9, 11..13, 15}; 142 | Repl(2); 143 | scrPat[grey4] := Display.NewPattern(image, 16, 16); 144 | 145 | image[1] := {0..15}; 146 | Repl(1); 147 | scrPat[black] := Display.NewPattern(image, 16, 16); 148 | 149 | image[4] :={3, 7, 11, 15}; 150 | image[3] :={2, 6, 10, 14}; 151 | image[2] :={1, 5, 9, 13}; 152 | image[1] :={0, 4, 8, 12}; 153 | Repl(4); 154 | scrPat[texture0] := Display.NewPattern(image, 16, 16); 155 | 156 | image[4] :={0, 4, 8, 12}; 157 | image[3] :={1, 5, 9, 13}; 158 | image[2] :={2, 6, 10, 14}; 159 | image[1] :={3, 7, 11, 15}; 160 | Repl(4); 161 | scrPat[texture1] := Display.NewPattern(image, 16, 16); 162 | 163 | image[1] := {2, 6, 10, 14}; 164 | Repl(1); 165 | scrPat[texture2] := Display.NewPattern(image, 16, 16); 166 | 167 | image[4] := {}; 168 | image[3] := {}; 169 | image[2] := {}; 170 | image[1] := {0..15}; 171 | Repl(4); 172 | scrPat[texture3] := Display.NewPattern(image, 16, 16); 173 | 174 | END Init; 175 | 176 | 177 | BEGIN 178 | CreateGC; 179 | Init 180 | END Display1. 181 | -------------------------------------------------------------------------------- /V4_ofront/share/Documents.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Documents.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Draw.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Draw.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Edit.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Edit.Mod -------------------------------------------------------------------------------- /V4_ofront/share/EditKeys.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/EditKeys.Mod -------------------------------------------------------------------------------- /V4_ofront/share/EditTools.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/EditTools.Mod -------------------------------------------------------------------------------- /V4_ofront/share/ErrorElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/ErrorElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/FKeys.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/FKeys.Mod -------------------------------------------------------------------------------- /V4_ofront/share/FoldElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/FoldElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Folds.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Folds.Mod -------------------------------------------------------------------------------- /V4_ofront/share/FontToBDF.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/FontToBDF.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Fonts.Mod: -------------------------------------------------------------------------------- 1 | MODULE Fonts; (*JG 27.8.90/RC 9.7.91*) 2 | 3 | IMPORT X11, Display, SYSTEM, Files, Kernel, Console, Unix, Args; 4 | 5 | CONST 6 | FontFileId = 0DBX; 7 | defaultMapFileName = ""; 8 | 9 | TYPE 10 | Name* = ARRAY 32 OF CHAR; 11 | Font* = POINTER TO FontDesc; 12 | FontDesc* = RECORD 13 | name*: Name; 14 | height*, minX*, maxX*, minY*, maxY*: INTEGER; 15 | raster*: Display.Font; 16 | next: Font 17 | END; 18 | 19 | VAR 20 | Default*, First: Font; nofFonts: INTEGER; 21 | mapFileName: ARRAY 64 OF CHAR; 22 | Unit*: INTEGER; (* pixel size derived from options -u and -f *) 23 | 24 | PROCEDURE This* (name: ARRAY OF CHAR): Font; 25 | 26 | TYPE 27 | RunRec = RECORD beg, end: INTEGER END; 28 | BoxRec = RECORD dx, x, y, w, h: INTEGER END; 29 | 30 | VAR 31 | F: Font; raster: X11.Font; 32 | f: Files.File; R: Files.Rider; 33 | pixmap, pixmapX, pixmapDX, pixmapW, pixmapH, RasterBase, b, n, a: LONGINT; 34 | NofRuns, NofBoxes: INTEGER; 35 | k, l, m, w, h: INTEGER; 36 | ch: CHAR; 37 | run: ARRAY 16 OF RunRec; 38 | box: ARRAY 256 OF BoxRec; 39 | list, count: LONGINT; 40 | fileName: ARRAY 64 OF CHAR; 41 | rb: SYSTEM.PTR; 42 | end, adr: LONGINT; (* J. Templ, for checking valid bitmap addressing *) 43 | 44 | PROCEDURE Convert (from: ARRAY OF CHAR; VAR to: ARRAY OF CHAR); 45 | VAR f: Files.File; r: Files.Rider; src, dst: ARRAY 64 OF CHAR; 46 | 47 | PROCEDURE Name (VAR s: ARRAY OF CHAR); 48 | VAR ch: CHAR; i: INTEGER; 49 | BEGIN 50 | Files.Read (r, ch); 51 | WHILE ~r.eof & (ch < "#") DO Files.Read (r, ch) END ; 52 | i := 0; 53 | WHILE ~r.eof & (ch > "#") DO s[i] := ch; INC(i); Files.Read (r, ch) END ; 54 | s[i] := 0X 55 | END Name; 56 | 57 | BEGIN 58 | f := Files.Old (mapFileName); 59 | IF f # NIL THEN 60 | Files.Set (r, f, 0); Files.Read (r, ch); 61 | REPEAT 62 | WHILE ~r.eof & (ch # "#") DO Files.Read (r, ch) END ; 63 | Name(src) 64 | UNTIL r.eof OR (src = "fontmapfile"); 65 | Name(src); Name(dst); 66 | WHILE (src # "") & (src # from) DO Name(src); Name(dst) END; 67 | IF src = "" THEN COPY (from, to) ELSE COPY (dst, to) END 68 | ELSE COPY (from, to) 69 | END; 70 | END Convert; 71 | 72 | PROCEDURE DummyCh(m: INTEGER); 73 | VAR raster: X11.Font; 74 | BEGIN 75 | raster := SYSTEM.VAL(X11.Font, F.raster); 76 | raster.metrics[m].dx := 0; 77 | raster.metrics[m].x := 0; 78 | raster.metrics[m].y := 0; 79 | raster.metrics[m].p.x := 0; 80 | raster.metrics[m].p.y := 0; 81 | raster.metrics[m].p.w := 0; 82 | raster.metrics[m].p.h := 0 83 | END DummyCh; 84 | 85 | BEGIN F := First; 86 | LOOP 87 | IF F = NIL THEN EXIT END; 88 | IF name = F.name THEN EXIT END; 89 | F := F.next 90 | END; 91 | IF F = NIL THEN 92 | Convert (name, fileName); 93 | f := Files.Old(fileName); 94 | IF f # NIL THEN 95 | Files.Set(R, f, 0); Files.Read(R, ch); 96 | IF ch = FontFileId THEN 97 | Files.Read(R, ch); (*abstraction*) 98 | Files.Read(R, ch); (*family*) 99 | Files.Read(R, ch); (*variant*) 100 | NEW(F); 101 | Files.ReadInt(R, F.height); 102 | Files.ReadInt(R, F.minX); Files.ReadInt(R, F.maxX); 103 | Files.ReadInt(R, F.minY); Files.ReadInt(R, F.maxY); 104 | Files.ReadInt(R, NofRuns); 105 | NofBoxes := 0; k := 0; 106 | WHILE k # NofRuns DO 107 | Files.ReadInt(R, run[k].beg); Files.ReadInt(R, run[k].end); 108 | NofBoxes := NofBoxes + run[k].end - run[k].beg; 109 | INC(k) 110 | END; 111 | pixmapW := 0; l := 0; 112 | WHILE l # NofBoxes DO 113 | Files.ReadInt(R, box[l].dx); 114 | Files.ReadInt(R, box[l].x); Files.ReadInt(R, box[l].y); 115 | Files.ReadInt(R, box[l].w); Files.ReadInt(R, box[l].h); 116 | pixmapW := pixmapW + (box[l].w + 7) DIV 8; 117 | INC(l) 118 | END; 119 | pixmapH := F.maxY - F.minY; 120 | NEW(raster); F.raster := SYSTEM.VAL(Display.Font, raster); 121 | SYSTEM.NEW(rb, pixmapW*pixmapH); (* temporary *) 122 | RasterBase := SYSTEM.VAL(LONGINT, rb); 123 | end := RasterBase + pixmapW*pixmapH; 124 | pixmapX := 0; 125 | k := 0; l := 0; m := 0; 126 | WHILE k < NofRuns DO 127 | WHILE m < run[k].beg DO DummyCh(m); INC(m) END; 128 | WHILE m < run[k].end DO 129 | raster.metrics[m].dx := box[l].dx; 130 | raster.metrics[m].x := box[l].x; 131 | raster.metrics[m].y := box[l].y; 132 | raster.metrics[m].p.x := pixmapX; 133 | raster.metrics[m].p.y := 0; 134 | w := box[l].w; raster.metrics[m].p.w := w; 135 | h := box[l].h; raster.metrics[m].p.h := h; 136 | pixmapDX := (w + 7) DIV 8; 137 | n := pixmapDX * h; 138 | a := RasterBase + pixmapX DIV 8; 139 | b := 0; 140 | WHILE b < n DO 141 | Files.Read(R, ch); 142 | adr := a + (h - 1 - b DIV pixmapDX)*pixmapW + b MOD pixmapDX; 143 | IF (adr >= RasterBase) & (adr < end) THEN SYSTEM.PUT(adr, ch) 144 | ELSE (* ignore; font Syntax10w.Scn.Fnt has bitmap data for characters 33-36 out of valid range *) 145 | END; 146 | INC(b) 147 | END; 148 | INC(l); INC(m); 149 | INC(pixmapX, 8*pixmapDX) 150 | END; 151 | INC(k) 152 | END; 153 | WHILE m < 256 DO DummyCh(m); INC(m) END; 154 | pixmap := X11.RasterToPixmap(RasterBase, 8*pixmapW, pixmapH); 155 | m := 0; 156 | WHILE m < 256 DO raster.metrics[m].p.pixmap := pixmap; INC(m) END ; 157 | COPY(name, F.name); 158 | INC(nofFonts); F.next := First; First := F; 159 | list := X11.ListFonts(X11.display, SYSTEM.ADR(fileName), 1, count); 160 | IF (list # 0) & (count = 1) THEN 161 | raster.xid := X11.LoadFont(X11.display, SYSTEM.ADR(fileName)); 162 | X11.FreeFontNames(list) 163 | ELSE raster.xid := 0 164 | END 165 | END 166 | ELSE F := Default 167 | END 168 | END; 169 | RETURN F 170 | END This; 171 | 172 | PROCEDURE Init; 173 | VAR u: LONGINT; 174 | BEGIN 175 | mapFileName := defaultMapFileName; 176 | Args.Get(Args.Pos("-f") + 1, mapFileName); 177 | Default := This("Syntax10.Scn.Fnt"); 178 | IF Default = NIL THEN 179 | Console.String("Fonts.Init: default font not found: Syntax10.Scn.Fnt"); Console.Ln; 180 | Unix.Exit(1) 181 | END; 182 | IF mapFileName = "Big.Map" THEN Unit := 8000 183 | ELSIF mapFileName = "Medium.Map" THEN Unit := 9000 184 | ELSE Unit := 10000 185 | END; 186 | u := Unit; Args.GetInt(Args.Pos("-u") + 1, u); Unit := SHORT(u); 187 | Display.Unit := Unit 188 | END Init; 189 | 190 | BEGIN 191 | First := NIL; Default := NIL; nofFonts := 0; Init 192 | END Fonts. 193 | -------------------------------------------------------------------------------- /V4_ofront/share/GraphicElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/GraphicElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/GraphicFrames.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/GraphicFrames.Mod -------------------------------------------------------------------------------- /V4_ofront/share/GraphicOps.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/GraphicOps.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Graphics.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Graphics.Mod -------------------------------------------------------------------------------- /V4_ofront/share/HandlerElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/HandlerElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Hennessy.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Hennessy.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Hex.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Hex.Mod -------------------------------------------------------------------------------- /V4_ofront/share/IconElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/IconElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/In.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/In.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Kepler.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Kepler.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Kepler1.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Kepler1.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Kepler2.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Kepler2.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Kepler4.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Kepler4.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Kepler5.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Kepler5.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Kepler6.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Kepler6.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Kepler7.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Kepler7.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Kepler8.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Kepler8.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Kepler9.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Kepler9.Mod -------------------------------------------------------------------------------- /V4_ofront/share/KeplerElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/KeplerElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/KeplerFrames.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/KeplerFrames.Mod -------------------------------------------------------------------------------- /V4_ofront/share/KeplerGraphs.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/KeplerGraphs.Mod -------------------------------------------------------------------------------- /V4_ofront/share/KeplerPorts.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/KeplerPorts.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Kernel.Mod: -------------------------------------------------------------------------------- 1 | MODULE Kernel; 2 | (* 3 | J. Templ, 16.4.95 4 | communication with C-runtime and storage management 5 | *) 6 | 7 | IMPORT SYSTEM, Unix, Args; 8 | 9 | TYPE 10 | RealTime = POINTER TO TimeDesc; 11 | TimeDesc = RECORD 12 | sec, min, hour, mday, mon, year, wday, isdst, zone, gmtoff: LONGINT 13 | END ; 14 | 15 | KeyCmd* = PROCEDURE; 16 | 17 | ObjFinalizer* = PROCEDURE(obj: SYSTEM.PTR); 18 | 19 | TrapCleaner* = PROCEDURE (data: LONGINT); 20 | TrapCleanerNode = POINTER TO RECORD 21 | trapCleaner: TrapCleaner; 22 | data: LONGINT; 23 | next: TrapCleanerNode; 24 | END ; 25 | 26 | VAR 27 | (* trap handling *) 28 | trapEnv*: Unix.JmpBuf; (* saved stack environment for trap handling *) 29 | 30 | (* oberon heap management *) 31 | nofiles*: LONGINT; 32 | 33 | (* input event handling *) 34 | readSet*, readySet*: Unix.FdSet; 35 | 36 | FKey*: ARRAY 16 OF KeyCmd; 37 | 38 | littleEndian*: BOOLEAN; 39 | 40 | TimeUnit*: LONGINT; (* 1 sec *) 41 | 42 | LIB*, CWD*: ARRAY 256 OF CHAR; 43 | OBERON*: ARRAY 1024 OF CHAR; 44 | 45 | 46 | timeStart: LONGINT; (* milliseconds *) 47 | trapCleaners: TrapCleanerNode; 48 | 49 | 50 | PROCEDURE -include() 51 | "#include "; 52 | 53 | PROCEDURE -Lock*() 54 | "SYSTEM_lock++"; 55 | 56 | PROCEDURE -Unlock*() 57 | "SYSTEM_lock--; if (SYSTEM_interrupted && SYSTEM_lock == 0) __HALT(-9)"; 58 | 59 | PROCEDURE -Exit*(n: LONGINT) 60 | "exit(n)"; 61 | 62 | PROCEDURE -sigsetjmp*(VAR env: Unix.JmpBuf; savemask: LONGINT): LONGINT 63 | "sigsetjmp(env, savemask)"; (* ormay be better __sigsetjmp *) 64 | 65 | PROCEDURE -siglongjmp*(VAR env:Unix. JmpBuf; val: LONGINT) 66 | "Kernel_CallTrapCleaners(); siglongjmp(env, val)"; 67 | 68 | PROCEDURE -heapsize*(): LONGINT 69 | "SYSTEM_heapsize"; 70 | 71 | PROCEDURE -allocated*(): LONGINT 72 | "SYSTEM_allocated"; 73 | 74 | PROCEDURE -localtime(VAR clock: LONGINT): RealTime 75 | "(Kernel_RealTime)localtime(clock)"; 76 | 77 | PROCEDURE -malloc*(size: LONGINT): LONGINT 78 | "(LONGINT)malloc(size)"; 79 | 80 | PROCEDURE -free*(adr: LONGINT) 81 | "(void)free(adr)"; 82 | 83 | PROCEDURE -getcwd(VAR cwd: Unix.Name) 84 | "getcwd(cwd, cwd__len)"; 85 | 86 | 87 | PROCEDURE GetClock* (VAR t, d: LONGINT); 88 | VAR tv: Unix.Timeval; tz: Unix.Timezone; time: RealTime; 89 | BEGIN 90 | Unix.Gettimeofday(tv, tz); 91 | time := localtime(tv.sec); 92 | t := time.sec + ASH(time.min, 6) + ASH(time.hour, 12); 93 | d := time.mday + ASH(time.mon+1, 5) + ASH(time.year MOD 100, 9); 94 | END GetClock; 95 | 96 | PROCEDURE GetClock4* (VAR t, d: LONGINT); (* returns year with all (4) digits *) 97 | VAR tv: Unix.Timeval; tz: Unix.Timezone; time: RealTime; 98 | BEGIN 99 | Unix.Gettimeofday(tv, tz); 100 | time := localtime(tv.sec); 101 | t := time.sec + ASH(time.min, 6) + ASH(time.hour, 12); 102 | d := time.mday + ASH(time.mon+1, 5) + ASH(time.year, 9); 103 | END GetClock4; 104 | 105 | PROCEDURE SetClock* (t, d: LONGINT); 106 | VAR err: ARRAY 25 OF CHAR; 107 | BEGIN err := "not yet implemented"; HALT(99) 108 | END SetClock; 109 | 110 | PROCEDURE Time*(): LONGINT; 111 | VAR timeval: Unix.Timeval; timezone: Unix.Timezone; 112 | BEGIN 113 | Unix.Gettimeofday(timeval, timezone); 114 | RETURN (timeval.usec DIV 1000 + timeval.sec * 1000 - timeStart) MOD 7FFFFFFFH 115 | END Time; 116 | 117 | (* 118 | PROCEDURE UserTime*(): LONGINT; 119 | VAR rusage: Unix.Rusage; 120 | BEGIN 121 | Unix.Getrusage(0, S.ADR(rusage)); 122 | RETURN rusage.utime.sec*1000 + rusage.utime.usec DIV 1000 123 | (* + rusage.stime.sec*1000 + rusage.stime.usec DIV 1000*) 124 | END UserTime; 125 | *) 126 | 127 | PROCEDURE Select*(delay: LONGINT); 128 | VAR rs, ws, xs: Unix.FdSet; n: LONGINT; tv: Unix.Timeval; 129 | BEGIN 130 | rs := readSet; 131 | FOR n := 0 TO LEN(rs) - 1 DO ws[n] := {}; xs[n] := {}; readySet[n] := {} END; 132 | IF delay < 0 THEN delay := 0 END ; 133 | tv.sec := delay DIV 1000; tv.usec := delay MOD 1000 * 1000; 134 | n := Unix.Select(LEN(rs) * 32, rs, ws, xs, tv); 135 | IF n >= 0 THEN readySet := rs END 136 | END Select; 137 | 138 | PROCEDURE -GC*(markStack: BOOLEAN) 139 | "SYSTEM_GC(markStack)"; 140 | 141 | PROCEDURE -RegisterObject*(obj: SYSTEM.PTR; finalize: ObjFinalizer) 142 | "SYSTEM_REGFIN(obj, finalize)"; 143 | 144 | PROCEDURE -SetHalt*(p: PROCEDURE(n: LONGINT)) 145 | "SYSTEM_Halt = p"; 146 | 147 | PROCEDURE InstallTermHandler*(p: PROCEDURE); 148 | (* not yet supported; no Modules.Free *) 149 | END InstallTermHandler; 150 | 151 | PROCEDURE LargestAvailable*(): LONGINT; 152 | BEGIN 153 | (* dummy proc for System 3 compatibility 154 | no meaningful value except may be the remaining swap space can be returned 155 | in the context of an extensible heap *) 156 | RETURN MAX(LONGINT) 157 | END LargestAvailable; 158 | 159 | PROCEDURE Halt(n: LONGINT); 160 | VAR res: LONGINT; 161 | BEGIN res := Unix.Kill(Unix.Getpid(), 4); 162 | END Halt; 163 | 164 | PROCEDURE EndianTest; 165 | VAR i: LONGINT; dmy: INTEGER; 166 | BEGIN 167 | dmy := 1; i := SYSTEM.ADR(dmy); 168 | SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *) 169 | END EndianTest; 170 | 171 | PROCEDURE -SizeofUnixJmpBuf(): INTEGER 172 | "sizeof(Unix_JmpBuf)"; 173 | 174 | PROCEDURE -SizeofSigJmpBuf(): INTEGER 175 | "sizeof(sigjmp_buf)"; 176 | 177 | PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER) 178 | "write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)"; 179 | 180 | PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf *) 181 | VAR x, y: LONGINT; 182 | BEGIN 183 | x := SizeofUnixJmpBuf(); 184 | y := SizeofSigJmpBuf(); 185 | IF x < y THEN 186 | Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52); 187 | Exit(1); 188 | END 189 | END JmpBufCheck; 190 | 191 | PROCEDURE PushTrapCleaner*(trapCleaner: TrapCleaner; data: LONGINT); 192 | VAR n: TrapCleanerNode; 193 | BEGIN NEW(n); n.trapCleaner := trapCleaner; n.data := data; n.next := trapCleaners; trapCleaners := n 194 | END PushTrapCleaner; 195 | 196 | PROCEDURE PopTrapCleaner*; 197 | BEGIN 198 | IF trapCleaners # NIL THEN trapCleaners := trapCleaners.next END 199 | END PopTrapCleaner; 200 | 201 | PROCEDURE CallTrapCleaners*; 202 | BEGIN 203 | WHILE trapCleaners # NIL DO trapCleaners.trapCleaner(trapCleaners.data); PopTrapCleaner END 204 | END CallTrapCleaners; 205 | 206 | BEGIN 207 | EndianTest(); 208 | SetHalt(Halt); 209 | CWD := ""; OBERON := "."; LIB := ""; 210 | getcwd(CWD); 211 | Args.GetEnv("OBERON", OBERON); 212 | Args.GetEnv("OBERON_LIB", LIB); 213 | TimeUnit := 1000; timeStart := 0; timeStart := Time() 214 | END Kernel. 215 | -------------------------------------------------------------------------------- /V4_ofront/share/LineElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/LineElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Mailer.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Mailer.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Math.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Math.Mod -------------------------------------------------------------------------------- /V4_ofront/share/MathL.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/MathL.Mod -------------------------------------------------------------------------------- /V4_ofront/share/MathLX.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/MathLX.Mod -------------------------------------------------------------------------------- /V4_ofront/share/MenuElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/MenuElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/MenuViewers.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/MenuViewers.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Modules.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Modules.Mod -------------------------------------------------------------------------------- /V4_ofront/share/OCatCmd.Mod: -------------------------------------------------------------------------------- 1 | MODULE OCatCmd; (* J. Templ, 13-Jan-96 *) 2 | 3 | (* looks at the OBERON search path and writes one or more Oberon or ascii texts to standard out. 4 | Horizontal tabulator characters are converted to a pair of spaces by default. 5 | CR is converted to LF. 6 | 7 | SYNOPSIS: ocat [-t] files... 8 | 9 | -t no tabulator conversion 10 | 11 | *) 12 | 13 | IMPORT Args, Console, Files, Texts := CmdlnTexts; 14 | 15 | CONST TAB = 09X; CR = 0DX; LF = 0AX; 16 | 17 | PROCEDURE Cat*; 18 | VAR optTab: BOOLEAN; path: ARRAY 128 OF CHAR; arg: INTEGER; 19 | T: Texts.Text; R: Texts.Reader; ch: CHAR; 20 | BEGIN 21 | optTab := FALSE; path := ""; arg := 1; NEW(T); 22 | Args.Get(arg, path); 23 | IF path = "-t" THEN optTab := TRUE; arg := 2; path := ""; Args.Get(arg, path) END ; 24 | WHILE path # "" DO 25 | IF Files.Old(path) # NIL THEN 26 | Texts.Open(T, path); 27 | Texts.OpenReader(R, T, 0); Texts.Read(R, ch); 28 | WHILE ~R.eot DO 29 | IF ch >= " " THEN Console.Char(ch) 30 | ELSIF ch = TAB THEN 31 | IF optTab THEN Console.Char(TAB) ELSE Console.String(" ") END 32 | ELSIF ch = CR THEN Console.Char(LF) 33 | END ; 34 | Texts.Read(R, ch) 35 | END 36 | ELSE 37 | Console.String("ocat: cannot open "); Console.String(path); Console.Ln 38 | END ; 39 | INC(arg); path := ""; 40 | Args.Get(arg, path) 41 | END ; 42 | Console.Flush 43 | END Cat; 44 | 45 | BEGIN Cat 46 | END OCatCmd. 47 | -------------------------------------------------------------------------------- /V4_ofront/share/Oberon.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Oberon.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Ofront.Mod: -------------------------------------------------------------------------------- 1 | MODULE Ofront; (* J. Templ 3.2.95 *) 2 | 3 | IMPORT Kernel, 4 | OPP := OfrontOPP, OPB := OfrontOPB, OPT := OfrontOPT, 5 | OPV := OfrontOPV, OPC := OfrontOPC, OPM := OfrontOPM; 6 | 7 | PROCEDURE Module*(VAR done: BOOLEAN); 8 | VAR ext, new: BOOLEAN; p: OPT.Node; 9 | BEGIN 10 | OPP.Module(p, OPM.opt); 11 | IF OPM.noerr THEN 12 | OPV.Init; 13 | OPV.AdrAndSize(OPT.topScope); 14 | OPT.Export(ext, new); 15 | IF OPM.noerr THEN 16 | OPM.OpenFiles(OPT.SelfName); 17 | OPC.Init; 18 | OPV.Module(p); 19 | IF OPM.noerr THEN 20 | IF (OPM.mainprog IN OPM.opt) & (OPM.modName # "SYSTEM") THEN 21 | OPM.DeleteNewSym; OPM.LogWStr(" main program") 22 | ELSE 23 | IF new THEN OPM.LogWStr(" new symbol file"); OPM.RegisterNewSym 24 | ELSIF ext THEN OPM.LogWStr(" extended symbol file"); OPM.RegisterNewSym 25 | END 26 | END 27 | ELSE OPM.DeleteNewSym 28 | END 29 | END 30 | END ; 31 | OPM.CloseFiles; OPT.Close; 32 | OPM.LogWLn; done := OPM.noerr 33 | END Module; 34 | 35 | PROCEDURE Translate*; 36 | VAR done: BOOLEAN; 37 | BEGIN 38 | OPM.OpenPar; 39 | OPT.bytetyp.size := OPM.ByteSize; 40 | OPT.sysptrtyp.size := OPM.PointerSize; 41 | OPT.chartyp.size := OPM.CharSize; 42 | OPT.settyp.size := OPM.SetSize; 43 | OPT.realtyp.size := OPM.RealSize; 44 | OPT.inttyp.size := OPM.IntSize; 45 | OPT.linttyp.size := OPM.LIntSize; 46 | OPT.lrltyp.size := OPM.LRealSize; 47 | OPT.sinttyp.size := OPM.SIntSize; 48 | OPT.booltyp.size := OPM.BoolSize; 49 | LOOP 50 | OPM.Init("translating", done); 51 | IF ~done THEN EXIT END ; 52 | OPM.InitOptions; 53 | Module(done); 54 | Kernel.GC(TRUE); (* someone might Oberon.Call("Ofront.Translate"...), so we have to mark the stack *) 55 | IF ~done THEN EXIT END 56 | END 57 | END Translate; 58 | 59 | BEGIN 60 | OPB.typSize := OPV.TypSize; OPT.typSize := OPV.TypSize 61 | END Ofront. 62 | -------------------------------------------------------------------------------- /V4_ofront/share/OfrontCmd.Mod: -------------------------------------------------------------------------------- 1 | MODULE OfrontCmd; (* J. Templ 3.2.95 *) 2 | 3 | IMPORT 4 | SYSTEM, Unix, Kernel, 5 | OPP := OfrontOPP, OPB := OfrontOPB, OPT := OfrontOPT, 6 | OPV := OfrontOPV, OPC := OfrontOPC, OPM := OfrontOPM; 7 | 8 | PROCEDURE -fin() 9 | "SYSTEM_FINALL()"; 10 | 11 | PROCEDURE -halt(): LONGINT 12 | "SYSTEM_halt"; 13 | 14 | (* 15 | PROCEDURE -gclock() 16 | "SYSTEM_gclock = 1"; 17 | *) 18 | 19 | PROCEDURE Trap(sig, siginfo, sigctx: LONGINT); 20 | BEGIN fin(); 21 | IF sig = 3 THEN Unix.Exit(1) 22 | ELSE 23 | IF (sig = 4) & (halt() = -15) THEN OPM.LogWStr(" --- ofront: internal error"); OPM.LogWLn END ; 24 | Unix.Exit(2) 25 | END 26 | END Trap; 27 | 28 | PROCEDURE Module*(VAR done: BOOLEAN); 29 | VAR ext, new: BOOLEAN; p: OPT.Node; 30 | BEGIN 31 | OPP.Module(p, OPM.opt); 32 | IF OPM.noerr THEN 33 | OPV.Init; 34 | OPV.AdrAndSize(OPT.topScope); 35 | OPT.Export(ext, new); 36 | IF OPM.noerr THEN 37 | OPM.OpenFiles(OPT.SelfName); 38 | OPC.Init; 39 | OPV.Module(p); 40 | IF OPM.noerr THEN 41 | IF (OPM.mainprog IN OPM.opt) & (OPM.modName # "SYSTEM") THEN 42 | OPM.DeleteNewSym; OPM.LogWStr(" main program") 43 | ELSE 44 | IF new THEN OPM.LogWStr(" new symbol file"); OPM.RegisterNewSym 45 | ELSIF ext THEN OPM.LogWStr(" extended symbol file"); OPM.RegisterNewSym 46 | END 47 | END 48 | ELSE OPM.DeleteNewSym 49 | END 50 | END 51 | END ; 52 | OPM.CloseFiles; OPT.Close; 53 | OPM.LogWLn; done := OPM.noerr 54 | END Module; 55 | 56 | PROCEDURE Translate*; 57 | VAR done: BOOLEAN; 58 | BEGIN 59 | OPM.OpenPar("Ofront (TM) - Oberon-2 to C Translator V1.4", "ofront"); 60 | (* gclock(); slightly faster translation but may lead to opening "too many files" *) 61 | OPT.bytetyp.size := OPM.ByteSize; 62 | OPT.sysptrtyp.size := OPM.PointerSize; 63 | OPT.chartyp.size := OPM.CharSize; 64 | OPT.settyp.size := OPM.SetSize; 65 | OPT.realtyp.size := OPM.RealSize; 66 | OPT.inttyp.size := OPM.IntSize; 67 | OPT.linttyp.size := OPM.LIntSize; 68 | OPT.lrltyp.size := OPM.LRealSize; 69 | OPT.sinttyp.size := OPM.SIntSize; 70 | OPT.booltyp.size := OPM.BoolSize; 71 | LOOP 72 | OPM.Init("translating", done); 73 | IF ~done THEN 74 | IF ~OPM.noerr THEN (* source file not found *) fin(); Unix.Exit(1) END; 75 | EXIT (* end of argument vector *) 76 | END ; 77 | OPM.InitOptions; 78 | Kernel.GC(FALSE); 79 | Module(done); 80 | IF ~done THEN fin(); Unix.Exit(1) END 81 | END 82 | END Translate; 83 | 84 | BEGIN 85 | Unix.SigSetHandler(2, Trap); (* interrupt *) 86 | Unix.SigSetHandler(3, Trap); (* quit *) 87 | Unix.SigSetHandler(4, Trap); (* illegal instruction, HALT *) 88 | OPB.typSize := OPV.TypSize; OPT.typSize := OPV.TypSize; Translate 89 | END OfrontCmd. 90 | -------------------------------------------------------------------------------- /V4_ofront/share/OfrontOPS.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/OfrontOPS.Mod -------------------------------------------------------------------------------- /V4_ofront/share/OfrontOPT.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/OfrontOPT.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Out.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Out.Mod -------------------------------------------------------------------------------- /V4_ofront/share/ParcElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/ParcElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/PerfectHash.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/PerfectHash.Mod -------------------------------------------------------------------------------- /V4_ofront/share/PopupElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/PopupElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Printer.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Printer.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Reals.Mod: -------------------------------------------------------------------------------- 1 | MODULE Reals; 2 | (* JT, 5.2.89/7.3.95 conversion between reals and strings for sparc *) 3 | 4 | IMPORT SYSTEM, Kernel; 5 | 6 | VAR inc: LONGINT; 7 | 8 | (* not reentrant but portable; *) 9 | PROCEDURE -ecvt (x: LONGREAL; ndigit: LONGINT; VAR decpt, sign: LONGINT): LONGINT 10 | "ecvt (x, ndigit, decpt, sign)"; 11 | 12 | PROCEDURE Ten* (e: INTEGER): REAL; 13 | VAR r, power: LONGREAL; 14 | BEGIN r := 1; 15 | power := 10; 16 | WHILE e > 0 DO 17 | IF ODD(e) THEN r := r * power END ; 18 | power := power * power; e := e DIV 2 19 | END ; 20 | RETURN SHORT(r) 21 | END Ten; 22 | 23 | PROCEDURE TenL* (e: INTEGER): LONGREAL; 24 | VAR r, power: LONGREAL; 25 | BEGIN r := 1; 26 | power := 10; 27 | LOOP 28 | IF ODD(e) THEN r := r * power END ; 29 | e := e DIV 2; 30 | IF e <= 0 THEN RETURN r END ; 31 | power := power * power 32 | END 33 | END TenL; 34 | 35 | PROCEDURE Expo* (x: REAL): INTEGER; 36 | BEGIN RETURN SHORT(ASH(SYSTEM.VAL(LONGINT, x), -23) MOD 256) 37 | END Expo; 38 | 39 | PROCEDURE ExpoL* (x: LONGREAL): INTEGER; 40 | VAR h: LONGINT; 41 | BEGIN 42 | SYSTEM.GET(SYSTEM.ADR(x)+inc, h); 43 | RETURN SHORT(ASH(h, -20) MOD 2048) 44 | END ExpoL; 45 | 46 | PROCEDURE SetExpo*(e: INTEGER; VAR x: REAL); 47 | BEGIN 48 | SYSTEM.PUT(SYSTEM.ADR(x), SYSTEM.VAL(SET, x) - {23..30} + SYSTEM.VAL(SET, ASH(LONG(e), 23))) 49 | END SetExpo; 50 | 51 | PROCEDURE SetExpoL*(e: INTEGER; VAR x: LONGREAL); 52 | VAR h: SET; 53 | BEGIN 54 | SYSTEM.GET(SYSTEM.ADR(x)+inc, h); 55 | h := h - {20..30} + SYSTEM.VAL(SET, ASH(LONG(e), 20)); 56 | SYSTEM.PUT(SYSTEM.ADR(x)+inc, h) 57 | END SetExpoL; 58 | 59 | PROCEDURE Convert* (x: REAL; n: INTEGER; VAR d: ARRAY OF CHAR); 60 | VAR i, k: LONGINT; 61 | BEGIN 62 | i := ENTIER(x); k := 0; 63 | WHILE k < n DO 64 | d[k] := CHR(i MOD 10 + 48); i := i DIV 10; INC(k) 65 | END 66 | END Convert; 67 | 68 | PROCEDURE ConvertL* (x: LONGREAL; n: INTEGER; VAR d: ARRAY OF CHAR); 69 | VAR decpt, sign, i: LONGINT; buf: (* ARRAY 32 OF CHAR; *) LONGINT; 70 | BEGIN 71 | (*x := x - 0.5; already rounded in ecvt*) 72 | buf := ecvt(x, n + 2, decpt, sign); 73 | i := 0; 74 | WHILE i < decpt DO SYSTEM.GET(buf + i, d[n - i -1]); INC(i) END ; 75 | i := n - i - 1; 76 | WHILE i >= 0 DO d[i] := "0"; DEC(i) END ; 77 | END ConvertL; 78 | 79 | PROCEDURE Unpack(VAR b, d: ARRAY OF SYSTEM.BYTE); 80 | VAR i, k: SHORTINT; 81 | BEGIN i := 0; 82 | WHILE i < LEN(b) DO 83 | k := SHORT(ORD(SYSTEM.VAL(CHAR, b[i])) DIV 16); 84 | IF k > 9 THEN d[i*2] := k + 55 ELSE d[i*2] := k + 48 END ; 85 | k := SHORT(ORD(SYSTEM.VAL(CHAR, b[i])) MOD 16); 86 | IF k > 9 THEN d[i*2+1] := k + 55 ELSE d[i*2+1] := k + 48 END ; 87 | INC(i) 88 | END 89 | END Unpack; 90 | 91 | PROCEDURE ConvertH* (y: REAL; VAR d: ARRAY OF CHAR); 92 | BEGIN Unpack(y, d) 93 | END ConvertH; 94 | 95 | PROCEDURE ConvertHL* (x: LONGREAL; VAR d: ARRAY OF CHAR); 96 | BEGIN Unpack(x, d) 97 | END ConvertHL; 98 | 99 | BEGIN 100 | IF Kernel.littleEndian THEN inc := 4 ELSE inc := 0 END 101 | END Reals. 102 | -------------------------------------------------------------------------------- /V4_ofront/share/Rectangles.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Rectangles.Mod -------------------------------------------------------------------------------- /V4_ofront/share/SYSTEM.c0: -------------------------------------------------------------------------------- 1 | /* 2 | * The body prefix file of the Ofront runtime system, Version 1.0 3 | * 4 | * Copyright (c) Software Templ, 1994-2016 5 | * 6 | * Module SYSTEM is subject to change any time without prior notification. 7 | * Software Templ disclaims all warranties with regard to module SYSTEM, 8 | * in particular shall Software Templ not be liable for any damage resulting 9 | * from inappropriate use or modification of module SYSTEM. 10 | * 11 | * Version 1.1 jt, 24.11.95 fixes for correct pointer arithmetic on Cray computers 12 | * jt 31.1.2007 ANSI prototypes for malloc and exit in order to avoid cc warnings 13 | * jt 22.09.2016 module loading/unloading integrated with shared objects 14 | * 15 | */ 16 | 17 | #include "SYSTEM.h" 18 | #ifdef __STDC__ 19 | #include "stdarg.h" 20 | #else 21 | #include "varargs.h" 22 | #endif 23 | 24 | extern void *malloc(long size); 25 | extern void exit(int status); 26 | 27 | void (*SYSTEM_Halt)(); 28 | LONGINT SYSTEM_halt; /* x in HALT(x) */ 29 | LONGINT SYSTEM_assert; /* x in ASSERT(cond, x) */ 30 | LONGINT SYSTEM_argc; 31 | LONGINT SYSTEM_argv; 32 | LONGINT SYSTEM_lock; 33 | BOOLEAN SYSTEM_interrupted; 34 | static LONGINT SYSTEM_mainfrm; /* adr of main proc stack frame, used for stack collection */ 35 | 36 | #define Lock SYSTEM_lock++ 37 | #define Unlock SYSTEM_lock--; if (SYSTEM_interrupted && (SYSTEM_lock == 0)) __HALT(-9) 38 | 39 | 40 | static void SYSTEM_InitHeap(); 41 | void *SYSTEM__init(); 42 | 43 | void SYSTEM_INIT(argc, argvadr) 44 | int argc; long argvadr; 45 | { 46 | SYSTEM_mainfrm = argvadr; 47 | SYSTEM_argc = argc; 48 | SYSTEM_argv = *(long*)argvadr; 49 | SYSTEM_InitHeap(); 50 | SYSTEM_halt = -128; 51 | SYSTEM__init(); 52 | } 53 | 54 | void SYSTEM_FINI() 55 | { 56 | SYSTEM_FINALL(); 57 | } 58 | 59 | long SYSTEM_XCHK(i, ub) long i, ub; {return __X(i, ub);} 60 | long SYSTEM_RCHK(i, ub) long i, ub; {return __R(i, ub);} 61 | long SYSTEM_ASH(i, n) long i, n; {return __ASH(i, n);} 62 | long SYSTEM_ABS(i) long i; {return __ABS(i);} 63 | double SYSTEM_ABSD(i) double i; {return __ABS(i);} 64 | 65 | void SYSTEM_INHERIT(t, t0) 66 | long *t, *t0; 67 | { 68 | t -= __TPROC0OFF; 69 | t0 -= __TPROC0OFF; 70 | while (*t0 != __EOM) {*t = *t0; t--; t0--;} 71 | } 72 | 73 | void SYSTEM_ENUMP(adr, n, P) 74 | long *adr; 75 | long n; 76 | void (*P)(); 77 | { 78 | while (n > 0) {P(*adr); adr++; n--;} 79 | } 80 | 81 | void SYSTEM_ENUMR(adr, typ, size, n, P) 82 | char *adr; 83 | long *typ, size, n; 84 | void (*P)(); 85 | { 86 | long *t, off; 87 | if (typ == 0) return; /* not yet initialized */ 88 | typ++; 89 | while (n > 0) { 90 | t = typ; 91 | off = *t; 92 | while (off >= 0) {P(*(long*)(adr+off)); t++; off = *t;} 93 | adr += size; n--; 94 | } 95 | } 96 | 97 | long SYSTEM_DIV(x, y) 98 | unsigned long x, y; 99 | { if ((long) x >= 0) return (x / y); 100 | else return -((y - 1 - x) / y); 101 | } 102 | 103 | long SYSTEM_MOD(x, y) 104 | unsigned long x, y; 105 | { unsigned long m; 106 | if ((long) x >= 0) return (x % y); 107 | else { m = (-x) % y; 108 | if (m != 0) return (y - m); else return 0; 109 | } 110 | } 111 | 112 | long SYSTEM_ENTIER(x) 113 | double x; 114 | { 115 | long y; 116 | if (x >= 0) 117 | return (long)x; 118 | else { 119 | y = (long)x; 120 | if (y <= x) return y; else return y - 1; 121 | } 122 | } 123 | 124 | void SYSTEM_HALT(n) 125 | int n; 126 | { 127 | SYSTEM_halt = n; 128 | if (SYSTEM_Halt!=0) SYSTEM_Halt(n); 129 | exit(n); 130 | } 131 | 132 | #ifdef __STDC__ 133 | SYSTEM_PTR SYSTEM_NEWARR(long *typ, long elemsz, int elemalgn, int nofdim, int nofdyn, ...) 134 | #else 135 | SYSTEM_PTR SYSTEM_NEWARR(typ, elemsz, elemalgn, nofdim, nofdyn, va_alist) 136 | long *typ, elemsz; 137 | int elemalgn, nofdim, nofdyn; 138 | va_dcl 139 | #endif 140 | { 141 | long nofelems, size, dataoff, n, nptr, *x, *p, nofptrs, i, *ptab, off; 142 | va_list ap; 143 | #ifdef __STDC__ 144 | va_start(ap, nofdyn); 145 | #else 146 | va_start(ap); 147 | #endif 148 | nofelems = 1; 149 | while (nofdim > 0) { 150 | nofelems = nofelems * va_arg(ap, long); nofdim--; 151 | if (nofelems <= 0) __HALT(-20); 152 | } 153 | va_end(ap); 154 | dataoff = nofdyn * sizeof(long); 155 | if (elemalgn > sizeof(long)) { 156 | n = dataoff % elemalgn; 157 | if (n != 0) dataoff += elemalgn - n; 158 | } 159 | size = dataoff + nofelems * elemsz; 160 | Lock; 161 | if (typ == NIL) { 162 | /* element typ does not contain pointers */ 163 | x = SYSTEM_NEWBLK(size); 164 | } 165 | else if (typ == POINTER__typ) { 166 | /* element type is a pointer */ 167 | x = SYSTEM_NEWBLK(size + nofelems * sizeof(long)); 168 | p = (long*)x[-1]; 169 | p[-nofelems] = *p; /* build new type desc in situ: 1. copy block size; 2. setup ptr tab; 3. set sentinel; 4. patch tag */ 170 | p -= nofelems - 1; n = 1; /* n =1 for skipping the size field */ 171 | while (n <= nofelems) {*p = n*sizeof(long); p++; n++;} 172 | *p = - (nofelems + 1) * sizeof(long); /* sentinel */ 173 | x[-1] -= nofelems * sizeof(long); 174 | } 175 | else { 176 | /* element type is a record that contains pointers */ 177 | ptab = typ + 1; nofptrs = 0; 178 | while (ptab[nofptrs] >= 0) {nofptrs++;} /* number of pointers per element */ 179 | nptr = nofelems * nofptrs; /* total number of pointers */ 180 | x = SYSTEM_NEWBLK(size + nptr * sizeof(long)); 181 | p = (long*)x[- 1]; 182 | p[-nptr] = *p; /* build new type desc in situ; 1. copy block size; 2. setup ptr tab; 3. set sentinel; 4. patch tag */ 183 | p -= nptr - 1; n = 0; off = dataoff; 184 | while (n < nofelems) {i = 0; 185 | while (i < nofptrs) {*p = off + ptab[i]; p++; i++;} 186 | off += elemsz; n++; 187 | } 188 | *p = - (nptr + 1) * sizeof(long); /* sentinel */ 189 | x[-1] -= nptr * sizeof(long); 190 | } 191 | if (nofdyn != 0) { 192 | /* setup len vector for index checks */ 193 | #ifdef __STDC__ 194 | va_start(ap, nofdyn); 195 | #else 196 | va_start(ap); 197 | #endif 198 | p = x; 199 | while (nofdyn > 0) {*p = va_arg(ap, long); p++, nofdyn--;} 200 | va_end(ap); 201 | } 202 | Unlock; 203 | return x; 204 | } 205 | 206 | /* registers must be stored on the stack before doing garbage collection on the stack. 207 | Pretty portable version: uses jump buffer for saving processor state incl. registers on the stack. 208 | */ 209 | 210 | #include 211 | extern void SYSTEM_MarkStack (void); 212 | 213 | static void SYSTEM_callMarkStack(void) { 214 | jmp_buf env; 215 | setjmp(env); 216 | SYSTEM_MarkStack(); 217 | } 218 | 219 | /* ----------- end of SYSTEM.co ------------- */ 220 | 221 | -------------------------------------------------------------------------------- /V4_ofront/share/Splines.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Splines.Mod -------------------------------------------------------------------------------- /V4_ofront/share/StampElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/StampElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Strings.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Strings.Mod -------------------------------------------------------------------------------- /V4_ofront/share/StyleElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/StyleElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/TableElems.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/TableElems.Mod -------------------------------------------------------------------------------- /V4_ofront/share/TextFrames.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/TextFrames.Mod -------------------------------------------------------------------------------- /V4_ofront/share/TextPFrames.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/TextPFrames.Mod -------------------------------------------------------------------------------- /V4_ofront/share/TextPreview.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/TextPreview.Mod -------------------------------------------------------------------------------- /V4_ofront/share/TextPrinter.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/TextPrinter.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Types.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Types.Mod -------------------------------------------------------------------------------- /V4_ofront/share/Viewers.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/Viewers.Mod -------------------------------------------------------------------------------- /V4_ofront/share/XIn.Mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/V4_ofront/share/XIn.Mod -------------------------------------------------------------------------------- /V4_ofront/share/oberon.Mod: -------------------------------------------------------------------------------- 1 | MODULE oberon; (* jt 5.4.95 *) 2 | 3 | (* in addition to the standard configuration, this module sets up an intelligent scrolling log viewer 4 | with a command-level pin point *) 5 | 6 | IMPORT 7 | Viewers, Oberon, TextFrames, MenuViewers, Display, Texts, FKeys, System, Out, Modules; 8 | 9 | VAR 10 | pinPos: LONGINT; 11 | 12 | PROCEDURE PinLog*; (* can be activated with Oberon.Call("oberon.PinLog", ...) to force scrolling *) 13 | BEGIN pinPos := Oberon.Log.len; 14 | END PinLog; 15 | 16 | PROCEDURE HandleLog(F: Display.Frame; VAR M: Display.FrameMsg); 17 | VAR ch: CHAR; R: Texts.Reader; org: LONGINT; 18 | BEGIN 19 | TextFrames.Handle(F, M); 20 | IF M IS TextFrames.UpdateMsg THEN 21 | WITH M: TextFrames.UpdateMsg DO 22 | IF (M.text = Oberon.Log) & (M.id = TextFrames.insert) & (M.beg > 0) THEN 23 | Texts.OpenReader(R, Oberon.Log, M.beg-1); Texts.Read(R, ch); 24 | IF ch = 0DX THEN 25 | WITH F: TextFrames.Frame DO 26 | IF M.beg > TextFrames.Pos(F, F.X + F.W, F.Y) + 1 THEN org := M.beg - 200; 27 | IF org < 0 THEN org := 0 END 28 | ELSE org := F.org 29 | END ; 30 | WHILE (org < pinPos) & (org < M.beg) & (TextFrames.Pos(F, F.X + F.W, F.Y) < M.end-1) DO 31 | Texts.OpenReader(R, F.text, org); 32 | REPEAT Texts.Read(R, ch) UNTIL R.eot OR (ch = 0DX); 33 | org := Texts.Pos(R); TextFrames.Show(F, org) 34 | END 35 | END 36 | END 37 | END 38 | END 39 | END 40 | END HandleLog; 41 | 42 | PROCEDURE Init*; 43 | VAR logV, toolV: Viewers.Viewer; X, Y: INTEGER; logger: Oberon.Task; 44 | startup: Modules.Module; 45 | BEGIN 46 | Oberon.OpenDisplay(Display.Width DIV 8 * 5, Display.Width DIV 8 * 3, Display.Height); 47 | Oberon.FocusViewer := Viewers.This(0, 0); 48 | Oberon.AllocateSystemViewer(0, X, Y); 49 | logV := MenuViewers.New( 50 | TextFrames.NewMenu("System.Log", "^Log.Menu.Text"), 51 | TextFrames.NewText(Oberon.Log, 0), 52 | TextFrames.menuH, 53 | X, Y); 54 | logV.dsc.next.handle := HandleLog; 55 | Oberon.AllocateSystemViewer(0, X, Y); 56 | toolV := MenuViewers.New( 57 | TextFrames.NewMenu("System.Tool", "^System.Menu.Text"), 58 | TextFrames.NewText(TextFrames.Text("System.Tool"), 0), 59 | TextFrames.menuH, 60 | X, Y + 50) ; 61 | NEW(logger); logger.safe := FALSE; logger.time := -1; logger.handle := PinLog; 62 | Oberon.Install(logger); 63 | FKeys.Set(12, FKeys.InternationalKey); 64 | FKeys.Set(10, FKeys.InternationalKey); 65 | Out.String("Ofront 1.4, Oberon V4"); Out.Ln; 66 | startup := Modules.ThisMod("OberonStartup"); 67 | Oberon.Loop 68 | END Init; 69 | 70 | BEGIN Init 71 | END oberon. 72 | -------------------------------------------------------------------------------- /V4_ofront/share/ofrontparam.c: -------------------------------------------------------------------------------- 1 | /* J. Templ 23.6.95 2 | this program tests and outputs important characteristics of 3 | the C compiler and SYSTEM.h file used to compile it. 4 | The output of this program is accepted by Ofront as file Ofront.par. 5 | % cc ofrontparam.c; a.out > Ofront.par 6 | */ 7 | 8 | 9 | #include "SYSTEM.h" 10 | 11 | struct {CHAR ch; CHAR x;} c; 12 | struct {CHAR ch; BOOLEAN x;} b; 13 | struct {CHAR ch; SHORTINT x;} si; 14 | struct {CHAR ch; INTEGER x;} i; 15 | struct {CHAR ch; LONGINT x;} li; 16 | struct {CHAR ch; SET x;} s; 17 | struct {CHAR ch; REAL x;} r; 18 | struct {CHAR ch; LONGREAL x;} lr; 19 | struct {CHAR ch; void *x;} p; 20 | struct {CHAR ch; void (*x)();} f; 21 | struct {CHAR ch;} rec0; 22 | struct {CHAR ch; LONGREAL x;} rec1; 23 | struct {char x[65];} rec2; 24 | 25 | void main() 26 | { 27 | long x, y; 28 | /* get size and alignment of standard types */ 29 | printf("CHAR %d %d\n", sizeof(CHAR), (char*)&c.x - (char*)&c); 30 | printf("BOOLEAN %d %d\n", sizeof(BOOLEAN), (char*)&b.x - (char*)&b); 31 | printf("SHORTINT %d %d\n", sizeof(SHORTINT), (char*)&si.x - (char*)&si); 32 | printf("INTEGER %d %d\n", sizeof(INTEGER), (char*)&i.x - (char*)&i); 33 | printf("LONGINT %d %d\n", sizeof(LONGINT), (char*)&li.x - (char*)&li); 34 | printf("SET %d %d\n", sizeof(SET), (char*)&s.x - (char*)&s); 35 | printf("REAL %d %d\n", sizeof(REAL), (char*)&r.x - (char*)&r); 36 | printf("LONGREAL %d %d\n", sizeof(LONGREAL), (char*)&lr.x - (char*)&lr); 37 | printf("PTR %d %d\n", sizeof p.x, (char*)&p.x - (char*)&p); 38 | printf("PROC %d %d\n", sizeof f.x, (char*)&f.x - (char*)&f); 39 | printf("RECORD %d %d\n", (sizeof rec2 == 65) == (sizeof rec0 == 1), sizeof rec2 - 64); 40 | x = 1; 41 | printf("ENDIAN %d %d\n", *(char*)&x, 0); 42 | 43 | if (sizeof(CHAR)!=1) printf("error: CHAR should have size 1\n"); 44 | if (sizeof(BOOLEAN)!=1) printf("error: BOOLEAN should have size 1\n"); 45 | if (sizeof(SHORTINT)!=1) printf("error: SHORTINT should have size 1\n"); 46 | if (sizeof(long)!=sizeof p.x) printf("error: LONGINT should have the same size as pointers\n"); 47 | if (sizeof(long)!=sizeof f.x) printf("error: LONGINT should have the same size as function pointers\n"); 48 | if (((sizeof rec2 == 65) == (sizeof rec0 == 1)) && ((sizeof rec2 - 64) != sizeof rec0)) 49 | printf("error: unsupported record layout sizeof rec0 = %d sizeof rec2 = %d\n", sizeof rec0, sizeof rec2); 50 | 51 | /* test the __ASHR macro */ 52 | if (__ASHR(-1, 1) != -1) printf("error: ASH(-1, -1) # -1\n"); 53 | if (__ASHR(-2, 1) != -1) printf("error: ASH(-2, -1) # -1\n"); 54 | if (__ASHR(0, 1) != 0) printf("error: ASH(0, 1) # 0\n"); 55 | if (__ASHR(1, 1) != 0) printf("error: ASH(1, 1) # 0\n"); 56 | if (__ASHR(2, 1) != 1) printf("error: ASH(2, 1) # 1\n"); 57 | 58 | /* test the __SETRNG macro */ 59 | x = 0; y = sizeof(SET)*8 - 1; 60 | if (__SETRNG(x, y) != -1) printf("error: SETRNG(0, MAX(SET)) != -1\n"); 61 | 62 | /* test string comparison for extended ascii */ 63 | {char a[10], b[10]; 64 | a[0] = (CHAR)128; a[1] = 0; 65 | b[0] = 0; 66 | if (__STRCMP(a, b) < 0) printf("error: __STRCMP(a, b) with extended ascii charcters; should be unsigned\n"); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /fonts/Courier.Lm3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Courier.Lm3.Fnt -------------------------------------------------------------------------------- /fonts/Courier10.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Courier10.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Courier12.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Courier12.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Courier8.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Courier8.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Elektra.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Elektra.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Elektra.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Elektra.Scn.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax10.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax10.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax10.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax10.Scn.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax12.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax12.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax12.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax12.Scn.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax14.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax14.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax14.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax14.Scn.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax16.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax16.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax16.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax16.Scn.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax20.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax20.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax20.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax20.Scn.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax24.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax24.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/GreekSyntax24.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/GreekSyntax24.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Math.Lm3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math.Lm3.Fnt -------------------------------------------------------------------------------- /fonts/Math10.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math10.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Math10.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math10.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Math12.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math12.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Math12.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math12.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Math14.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math14.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Math14.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math14.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Math16.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math16.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Math16.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math16.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Math20.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math20.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Math20.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math20.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Math24.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math24.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Math24.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Math24.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax.Lm3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax.Lm3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax10.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax10.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax10.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax10.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax10b.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax10b.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax10b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax10b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax10i.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax10i.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax10i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax10i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax10m.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax10m.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax10m.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax10m.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax10w.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax10w.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax10x.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax10x.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax11m.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax11m.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax11m.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax11m.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax12.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax12.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax12.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax12.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax12b.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax12b.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax12b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax12b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax12i.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax12i.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax12i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax12i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax12m.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax12m.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax12m.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax12m.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax14.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax14.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax14.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax14.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax14b.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax14b.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax14b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax14b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax14i.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax14i.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax14i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax14i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax14m.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax14m.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax14m.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax14m.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax16.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax16.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax16.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax16.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax16b.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax16b.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax16b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax16b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax16i.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax16i.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax16i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax16i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax16m.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax16m.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax16m.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax16m.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax20.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax20.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax20.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax20.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax20b.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax20b.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax20b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax20b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax20i.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax20i.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax20i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax20i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax20m.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax20m.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax20m.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax20m.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax24.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax24.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax24.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax24.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax24b.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax24b.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax24b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax24b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax24i.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax24i.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax24i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax24i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax24m.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax24m.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax24m.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax24m.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax8.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax8.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax8.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax8.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax8b.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax8b.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax8b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax8b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax8i.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax8i.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax8i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax8i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax8m.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax8m.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax8m.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax8m.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Syntax9m.Pr3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax9m.Pr3.Fnt -------------------------------------------------------------------------------- /fonts/Syntax9m.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Syntax9m.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times.Lm3.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times.Lm3.Fnt -------------------------------------------------------------------------------- /fonts/Times10.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times10.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times10b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times10b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times10i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times10i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times12.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times12.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times12b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times12b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times12i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times12i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times14.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times14.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times14b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times14b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times14i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times14i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times16.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times16.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times16b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times16b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times16i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times16i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times20.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times20.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times20b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times20b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times20i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times20i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times24.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times24.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times24b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times24b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times24i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times24i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times8.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times8.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times8b.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times8b.Scn.Fnt -------------------------------------------------------------------------------- /fonts/Times8i.Scn.Fnt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtempl/ofront/46f758c6200fa08c1ba4f5dd6821eeaebfa52e95/fonts/Times8i.Scn.Fnt -------------------------------------------------------------------------------- /fonts/fonts.dir: -------------------------------------------------------------------------------- 1 | 71 2 | Oberon.Times8i.Scn.bdf times8i.scn.fnt 3 | Oberon.Syntax10x.Scn.bdf syntax10x.scn.fnt 4 | Oberon.Courier8.Scn.bdf courier8.scn.fnt 5 | Oberon.Times16.Scn.bdf times16.scn.fnt 6 | Oberon.Times20.Scn.bdf times20.scn.fnt 7 | Oberon.Syntax10w.Scn.bdf syntax10w.scn.fnt 8 | Oberon.Times14.Scn.bdf times14.scn.fnt 9 | Oberon.Times12.Scn.bdf times12.scn.fnt 10 | Oberon.Times24.Scn.bdf times24.scn.fnt 11 | Oberon.cmr14.Scn.bdf cmr14.scn.fnt 12 | Oberon.Times10.Scn.bdf times10.scn.fnt 13 | Oberon.Times8b.Scn.bdf times8b.scn.fnt 14 | Oberon.Syntax24i.Scn.bdf syntax24i.scn.fnt 15 | Oberon.Syntax10m.Scn.bdf syntax10m.scn.fnt 16 | Oberon.Syntax12i.Scn.bdf syntax12i.scn.fnt 17 | Oberon.Syntax11m.Scn.bdf syntax11m.scn.fnt 18 | Oberon.Syntax16b.Scn.bdf syntax16b.scn.fnt 19 | Oberon.Syntax20b.Scn.bdf syntax20b.scn.fnt 20 | Oberon.Elektra.Scn.bdf elektra.scn.fnt 21 | Oberon.Syntax24m.Scn.bdf syntax24m.scn.fnt 22 | Oberon.Syntax10i.Scn.bdf syntax10i.scn.fnt 23 | Oberon.Syntax12m.Scn.bdf syntax12m.scn.fnt 24 | Oberon.Syntax14b.Scn.bdf syntax14b.scn.fnt 25 | Oberon.Syntax14m.Scn.bdf syntax14m.scn.fnt 26 | Oberon.Syntax16i.Scn.bdf syntax16i.scn.fnt 27 | Oberon.Syntax20i.Scn.bdf syntax20i.scn.fnt 28 | Oberon.Syntax24b.Scn.bdf syntax24b.scn.fnt 29 | Oberon.Syntax12b.Scn.bdf syntax12b.scn.fnt 30 | Oberon.Syntax14i.Scn.bdf syntax14i.scn.fnt 31 | Oberon.Syntax16m.Scn.bdf syntax16m.scn.fnt 32 | Oberon.Syntax20m.Scn.bdf syntax20m.scn.fnt 33 | Oberon.Syntax10b.Scn.bdf syntax10b.scn.fnt 34 | Oberon.Times16i.Scn.bdf times16i.scn.fnt 35 | Oberon.Times20i.Scn.bdf times20i.scn.fnt 36 | Oberon.Times12b.Scn.bdf times12b.scn.fnt 37 | Oberon.Times24b.Scn.bdf times24b.scn.fnt 38 | Oberon.Times14i.Scn.bdf times14i.scn.fnt 39 | Oberon.Syntax8.Scn.bdf syntax8.scn.fnt 40 | Oberon.Times10b.Scn.bdf times10b.scn.fnt 41 | Oberon.Times12i.Scn.bdf times12i.scn.fnt 42 | Oberon.Times24i.Scn.bdf times24i.scn.fnt 43 | Oberon.Courier12.Scn.bdf courier12.scn.fnt 44 | Oberon.Math12.Scn.bdf math12.scn.fnt 45 | Oberon.Math24.Scn.bdf math24.scn.fnt 46 | Oberon.Courier10.Scn.bdf courier10.scn.fnt 47 | Oberon.Math10.Scn.bdf math10.scn.fnt 48 | Oberon.Times16b.Scn.bdf times16b.scn.fnt 49 | Oberon.Times20b.Scn.bdf times20b.scn.fnt 50 | Oberon.Times10i.Scn.bdf times10i.scn.fnt 51 | Oberon.Math16.Scn.bdf math16.scn.fnt 52 | Oberon.Math20.Scn.bdf math20.scn.fnt 53 | Oberon.Math14.Scn.bdf math14.scn.fnt 54 | Oberon.Times14b.Scn.bdf times14b.scn.fnt 55 | Oberon.GreekSyntax12.Scn.bdf greeksyntax12.scn.fnt 56 | Oberon.GreekSyntax24.Scn.bdf greeksyntax24.scn.fnt 57 | Oberon.Syntax12.Scn.bdf syntax12.scn.fnt 58 | Oberon.Syntax24.Scn.bdf syntax24.scn.fnt 59 | Oberon.GreekSyntax10.Scn.bdf greeksyntax10.scn.fnt 60 | Oberon.Syntax10.Scn.bdf syntax10.scn.fnt 61 | Oberon.Syntax8b.Scn.bdf syntax8b.scn.fnt 62 | Oberon.GreekSyntax16.Scn.bdf greeksyntax16.scn.fnt 63 | Oberon.GreekSyntax20.Scn.bdf greeksyntax20.scn.fnt 64 | Oberon.Syntax16.Scn.bdf syntax16.scn.fnt 65 | Oberon.Syntax20.Scn.bdf syntax20.scn.fnt 66 | Oberon.GreekSyntax14.Scn.bdf greeksyntax14.scn.fnt 67 | Oberon.Syntax14.Scn.bdf syntax14.scn.fnt 68 | Oberon.Syntax8i.Scn.bdf syntax8i.scn.fnt 69 | Oberon.LetterHead.Scn.bdf letterhead.scn.fnt 70 | Oberon.Times8.Scn.bdf times8.scn.fnt 71 | Oberon.Syntax8m.Scn.bdf syntax8m.scn.fnt 72 | Oberon.Syntax9m.Scn.bdf syntax9m.scn.fnt 73 | -------------------------------------------------------------------------------- /man1/oberon.1: -------------------------------------------------------------------------------- 1 | .TH OBERON 1 2 | .SH NAME 3 | oberon - the Oberon operating environment 4 | .SH SYNOPSIS 5 | oberon [-f fontmapfile] [-u displayunit] [-d display] [-g geometry] [-c] 6 | .SH DESCRIPTION 7 | oberon starts the Oberon operating environment, which may be used as an 8 | integrated Ofront development system. Oberon requires an X-Windows server, 9 | a three button mouse and a postscript printing device. 10 | The Oberon process may be terminated by executing (i.e., by clicking with the middle mouse 11 | button on) the command System.Quit (after removing the leading !) within the 12 | Oberon environment or by sending a QUIT signal (3) to the Oberon process. 13 | Oberon supports the DISPLAY environment 14 | variable and the -display and -geometry options as usual for X clients. 15 | For speeding up character display, Oberon fonts can be converted to X11 16 | fonts. The Oberon tool InstallXFonts.Tool gives further information about 17 | this conversion, however, it is not a Unix or X-Windows tutorial. 18 | If you are not familiar with Unix or X-Windows, ask your system 19 | administrator to help in installing the fonts. 20 | 21 | Special keys used by Oberon and their meanings are: 22 | 23 | key meaning 24 | .ti +0 25 | ---------------------------------- 26 | .ti +0 27 | F1 set * marker 28 | .ti +0 29 | F2 alias to Escape 30 | .ti +0 31 | F3 Break character 32 | .ti +0 33 | F4 init colors 34 | .ti +0 35 | F6..F10 (+Shift, +Ctrl, +Ctrl-Shift) 36 | .ti +0 37 | characters beyond 127. 38 | .ti +0 39 | Ctrl-a, o, u, A, O, U, s german Umlaute and double s 40 | .ti +0 41 | Ctrl-L redraw all viewers 42 | 43 | * On older SUN OpenWindows configurations remove the line 44 | xmodmap -e 'keysym F1 = Help' 45 | from your .xinitrc file in order to make F1 available to Oberon. 46 | An alternative that avoids changing the .xinitrc file is to use the command 47 | xmodmap -e 'keycode 12 = F1' 48 | to use the F1 key. 49 | .ti +0 50 | Keyboard interrupts may be generated by sending the Oberon process a 51 | SIGINT signal either by typing Ctrl-C on the controlling terminal or, 52 | if there is no controling terminal, by sending the signal using the kill -2 command. 53 | .SH OPTIONS 54 | .TP 55 | -f fontmapfile 56 | defines that font names should be mapped according to fontmapfile. 57 | If option -f is not specified, no font mapping is performed. 58 | The main purpose of this option is to map fonts to bigger ones on displays 59 | with very small or unsharp pixels such as color monitors or for video projection. 60 | The files Big.Map and Medium.Map are provided as examples for enlarging fonts. 61 | See option -u for the effect of using Big.Map or Medium.Map on the display unit size. 62 | If font mapping is performed, the result of printing documents will not be exact. 63 | Therefore, if you want to get high quality printing results, don't use 64 | this option. 65 | .TP 66 | -u displayunit 67 | defines the size of a display unit (pixel) in world coordinates, where one millimeter equals 36000. 68 | The default display unit is 10000, which is adequate for displays with about 90 dots per inch. 69 | If option -f Big.Map ist used, the default changes to 8000, for Medium.Map to 9000. 70 | displayunit must be a positive integer number smaller than 32768. 71 | .TP 72 | -d display 73 | specifies the display server as usual for X clients. 74 | .TP 75 | -g geometry 76 | specifies the window geometry as usual for X clients. 77 | .TP 78 | -c 79 | requests as many colors as possible from the window manager. 80 | If not specified, Oberon requests 16 colors. 81 | .SH ENVIRONMENT 82 | .TP 83 | OBERON 84 | a colon-separated list of directories in which Oberon searches for files. 85 | If OBERON is not defined, files are only searched in the current working directory. 86 | Note that shell specific characters like "~" are not supported by Oberon. 87 | The environment variable OBERON may be set e.g. under the C-shell by 88 | .ti +0 89 | % setenv OBERON .:Mylib:OberonLib 90 | .TP 91 | LD_LIBRARY_PATH, LIBPATH, SHLIB_PATH, etc. 92 | a colon-separated list of directories in which the dynamic linker searches for 93 | shared object libraries. The lookup strategies between different Unix versions differ slightly. 94 | The name of the environment variable to be used for library lookup is also platform specific. 95 | SunOS and Linux use LD_LIBRARY_PATH, AIX uses LIBPATH, and HP-UX uses SHLIB_PATH. 96 | .TP 97 | OberonStartup 98 | This optional module is loaded upon startup of oberon in order to allow for automating user specific settings. It requires dynamic module loading being available, which is for example the case under Linux. The distribution does not contain binaries for this module but provides a template module in source form. 99 | .SH FILES 100 | .TP 101 | temporary files 102 | Oberon allocates temporary files prefixed with '.tmp.' and removes them when terminated with System.Quit. 103 | If the Oberon process is abnormally terminated (e.g. by a kill signal (9)), the .tmp.* files may survive and 104 | should be explicitly deleted by the user. Do not delete .tmp.* files while Oberon is using them. 105 | .TP 106 | Oberon.Printfile.ps 107 | Oberon allocates a file 'Oberon.Printfile.ps' when printing documents. If the name of the printer is "none", 108 | this file will not be sent to the printer and contains the generated postscript output; 109 | otherwise it will be sent and deleted afterwards. 110 | .SH DOCUMENTATION 111 | Oberon contains basic online documentation to enable 112 | first-time users to get started. In particular it contains the Oberon 113 | text files OberonGuide.Text, OfrontUser.Text and the Edit.Guide.Text. 114 | For serious work we recommend the following books published by Addison-Wesley 115 | and Springer Verlag. 116 | 117 | N. Wirth and M. Reiser: "Programming in Oberon. Steps beyond Pascal and Modula-2." 118 | Addison Wesley, 1992, ISBN 0-201-56543-9. 119 | Textbook for the Oberon programming language 120 | (German edition will be available in Sept. 94). 121 | 122 | M. Reiser: "The Oberon System. User Guide and Programmer's Manual." 123 | Addison Wesley, 1991, ISBN 0-201-54422-9. 124 | User manual for the programming environment and reference for the standard 125 | module library. 126 | 127 | N. Wirth and J. Gutknecht: "Project Oberon. The Design of an Operating System and Compiler." 128 | Addison Wesley, 1992, ISBN 0-201-54428-8. 129 | Contains program listings with explanations for the whole Oberon system, 130 | including the compiler for NS32000. The source code is also available in electronic form 131 | via anonymous ftp from neptune.inf.ethz.ch /Oberon/Sources/ProjectOberon.tar.Z. 132 | 133 | H. Moessenboeck: "Object-Oriented Programming in Oberon-2." Springer Verlag, 1993 (also available in German). 134 | An introduction to object-oriented programming using Oberon-2 as a teaching language. 135 | 136 | An Oberon-FAQ (frequently asked questions) list is available via anonymous ftp from 137 | rtfm.mit.edu /pub/usenet/news.answers/Oberon-FAQ. 138 | 139 | The Internet newsgroup comp.lang.oberon 140 | is also sometimes a valuable source of information and the preferred 141 | forum for Oberon related discussions. A mail gateway to this newsgroup exists via a mailing list 142 | called oberon-news@inf.ethz.ch managed by listproc@inf.ethz.ch. 143 | Send a mail with the keyword 'help' in the body 144 | 145 | To: listproc@inf.ethz.ch 146 | 147 | help 148 | 149 | to get more information about the available services. 150 | .SH COPYRIGHT 151 | Copyright 1995 by Institute for Computer Systems, ETH Zurich. 152 | See 'Welcome.Text' for a full statement of rights and permissions. 153 | .SH AUTHORS 154 | Design and implementation of the original Oberon system is due to Prof. Niklaus Wirth and 155 | Prof. Juerg Gutknecht from the Institute for Computer Systems, ETH Zurich. 156 | The implementation of Oberon based on ofront is due to Josef Templ. Comments or suggestions may be sent to Josef.Templ@gmail.com. 157 | 158 | Project ofront is hosted on https://github.com/jtempl/ofront. 159 | 160 | 161 | -------------------------------------------------------------------------------- /man1/ocat.1: -------------------------------------------------------------------------------- 1 | .TH SHOWDEF 1 2 | .SH NAME 3 | ocat - dump Oberon text file to standard out 4 | .SH SYNOPSIS 5 | ocat documentname | filepath 6 | .SH DESCRIPTION 7 | ocat reads the specified Oberon text document, which is either stored in the Oberon V4 binary format or as ASCII text, and displays its ASCII text on the standard output device. 8 | .SH ENVIRONMENT 9 | .TP 10 | OBERON 11 | a colon-separated list of directories in which ocat searches for the text document unless an explicit file path is provided. 12 | If OBERON is not defined, files are only searched in the current working directory. 13 | The environment variable OBERON may be set e.g. under the bash shell by 14 | .ti +0 15 | % export OBERON=.:Mylib:OberonLib 16 | .SH COPYRIGHT 17 | Copyright 1995 by Josef Templ. 18 | 19 | Transferred to the Free BSD License in 2012. 20 | .SH AUTHORS 21 | Design and implementation of ocat is due to Josef Templ. 22 | Comments or suggestions may be sent to Josef.Templ@gmail.com. 23 | 24 | Project ofront is hosted on https://github.com/jtempl/ofront. 25 | 26 | -------------------------------------------------------------------------------- /man1/ofront.1: -------------------------------------------------------------------------------- 1 | .TH OFRONT 1 2 | .SH NAME 3 | ofront - Oberon-2 to C Translator 4 | .SH SYNOPSIS (EBNF) 5 | command = "ofront" options {path options}. 6 | .ti +0 7 | options = ["-" {option} ]. 8 | .ti +0 9 | option = "m" | "s" | "e" | "i" | "r" | "x" | "a" | "p" |"t". 10 | .SH DESCRIPTION 11 | ofront is a tool that translates Oberon-2 programs into semantically equivalent 12 | C programs. Full error analysis is performed on the Oberon input program and in 13 | case of no errors, up to three files are generated as output: 14 | .ti +4 15 | 1. an Oberon symbol file (suffix .sym) 16 | .ti +4 17 | 2. a C header file (suffix .h) 18 | .ti +4 19 | 3. a C body file (suffix .c). 20 | .ti +0 21 | The C header and body files follow widely used C programming conventions. Ofront is also capable of generating main programs by translating the body of a module into a C main function (see option -m). In this case only the body file is generated. Ofront does not invoke the C compiler or linkage editor. This may be done in separate shell scripts or make files and is inherently dependent on the C compiler and linkage editor being used. Ofront accepts an arbitrary number of input file parameters. Every file is expected to contain one Oberon module. Oberon source files typically (but not necessarily) have the file name extension .Mod. Options affecting the translation process may be specified immediately after the command name or after a file name. The former apply to all files, the latter only to the preceeding one; thus, the order in which file names and options are specified is important. Specifying an option twice has no additional effect. Note that options must not contain whitespace. 22 | .SH OPTIONS 23 | .TP 24 | -m 25 | generate a main module (default off) 26 | .ti +0 27 | This option signals Ofront that the module body should be translated into a C main function, which is the entry point of an application. Every application consists of exactly one main module. Modules which are intended for a library should never be compiled with option m. 28 | .TP 29 | -s 30 | allow changing the symbol file (default off) 31 | .ti +0 32 | The interface of an Oberon module is represented in a compact and efficient form in the module's symbol file (suffix .sym). Changing the symbol file of a module therefore means changing the interface of the module. An example of such a change is to insert, rename or delete an exported type, variable or procedure. Those clients, which depend on the changed feature have to be adapted to the new interface and recompiled. Note that, unlike earlier Modula-2 or Oberon-2 compilers, only those clients of the module that depend on the changed feature(s) need to be recompiled, not all modules which import the changed service module. The new fine-grained interface checking supports the evolution of software over time much better than its coarse grained predecessor. To avoid unintended interface changes, this option is turned off by default. 33 | .TP 34 | -e 35 | allow extending the module interface (default off) 36 | .ti +0 37 | This option is similar to s but restricts interface changes to extensions. For example, it is possible to export additional global variables or procedures if option e is specified. Renaming or deleting a procedure or variable is not allowed. To avoid unintended interface extensions, this option is turned off by default. 38 | .TP 39 | -i 40 | include header and body prefix files (default off) 41 | .ti +0 42 | Specifying this option enables the inclusion of C code that is prepended to the generated header and body files. For a module M, the header and body prefix files are expected to be named M.h0 and M.c0 respectively. Non-existing prefix files are silently ignored. 43 | .TP 44 | -r 45 | check value ranges (default off) 46 | .ti +0 47 | Specifying this option turns on value range checking such as checking if SHORT of a LONGINT variable is in the INTEGER value range. Since this option is not related to memory integrity, it is turned off by default. 48 | .TP 49 | -x 50 | check array indices (default on) 51 | .ti +0 52 | Specifying this option turns off array index bounds checking. Since index checks are inlined and consist only of a single unsigned compare, they are very fast and it is normally not necessary to turn them off in order to get good performance. Furthermore, optimizers can remove index checks in many places without giving up security. 53 | .TP 54 | -a 55 | check assertions (default on) 56 | .ti +0 57 | Specifying this option turns off run-time checking of ASSERT statements. Use this option only in carefully tested production code when utmost efficiency is required. An unchecked assertion is nothing but a comment. 58 | .TP 59 | -p 60 | pointer initialization (default on) 61 | .ti +0 62 | Specifying this option turns off automatic pointer initialization. Note that Oberon does not specify the value of local pointer variables before they are assigned a value. Even with pointer initialization, it is not correct to make assumptions about the initial value of a pointer. In particular, it is not allowed to assume that they are set to NIL. Pointer initialization is a technique to ensure memory integrity even in case of erroneous programs and/or to detect uninitialized pointers as soon as possible. 63 | .TP 64 | -t 65 | check type guards (default on) 66 | .ti +0 67 | Specifying this option turns off run-time type guard checking. Since type guard checks are very efficient anyway and undetected type guard failures can easily destroy memory integrity, we recommend using this option only in very rare cases such as low-level modules where every machine cycle counts. 68 | .SH EXAMPLE 69 | % ofront -sr M1.Mod M2.Mod M3.Mod -m 70 | .ti +0 71 | translates three modules with generation of new symbol files being allowed (option s), range checking switched on (option r) and treating module M3 as a main program. 72 | .SH ENVIRONMENT 73 | .TP 74 | OBERON 75 | a colon-separated list of directories in which ofront searches for input files. 76 | If OBERON is not defined, files are only searched in the current working directory. 77 | Note that shell specific characters like "~" are not supported by ofront. 78 | The environment variable OBERON may be set e.g. under the bash shell by 79 | .ti +0 80 | % export OBERON=.:Mylib:OberonLib 81 | .SH FILES 82 | .TP 83 | temporary files 84 | ofront allocates temporary files prefixed with '.tmp.' and the process id in the current working directory. 85 | If the ofront process terminates abnormally, temporary files may survive and 86 | should be explicitly deleted by the user. Do not delete .tmp.* files while ofront is using them. 87 | .SH DOCUMENTATION 88 | For more details about ofront please refer to the Ofront User Guide, which is provided as 89 | Oberon text file (OfrontUser.Text). 90 | .SH COPYRIGHT 91 | Copyright 1995 by Josef Templ. 92 | 93 | Transferred to the Free BSD License in 2012. 94 | .SH AUTHORS 95 | Design and implementation of ofront is due to Josef Templ. Comments or suggestions may be sent to Josef.Templ@gmail.com. ofront has been based in part on Regis Crelier's PhD thesis and Stefan Gehring's diploma thesis, both at ETH Zurich, Institute for Computer Systems. 96 | 97 | Project ofront is hosted on https://github.com/jtempl/ofront. 98 | 99 | -------------------------------------------------------------------------------- /man1/showdef.1: -------------------------------------------------------------------------------- 1 | .TH SHOWDEF 1 2 | .SH NAME 3 | showdef - show interface definition of an Oberon module 4 | .SH SYNOPSIS 5 | showdef modulename 6 | .SH DESCRIPTION 7 | showdef decodes the symbol file .sym of the specified module and displays the interface definition in a human-readable form on the standard output device. 8 | .SH ENVIRONMENT 9 | .TP 10 | OBERON 11 | a colon-separated list of directories in which showdef searches for symbol files. 12 | If OBERON is not defined, files are only searched in the current working directory. 13 | Note that shell specific characters such as "~" are not supported by showdef. 14 | The environment variable OBERON may be set e.g. under the bash shell by 15 | .ti +0 16 | % export OBERON=.:Mylib:OberonLib 17 | .SH COPYRIGHT 18 | Copyright 1995 by Josef Templ. 19 | 20 | Transferred to the Free BSD License in 2012. 21 | .SH AUTHORS 22 | Design and implementation of showdef is due to Josef Templ. 23 | Comments or suggestions may be sent to Josef.Templ@gmail.com. 24 | 25 | Project ofront is hosted on https://github.com/jtempl/ofront. 26 | 27 | --------------------------------------------------------------------------------