Skip to content

MarkowEduard/Oberon2013Modifications

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Disk Image Latest Release Latest Automated Build

Oberon 2013 Modifications

Here you can find modifications (I deliberately do not call them enhancements) I did to Project Oberon 2013.

Unlike the Oberon modules in the OberonEmulator repository, these modifications do not depend on my emulator and may be used on any emulator or even on bare metal.

Some modifications require recompiling the inner core, or even recompiling the bootloader, but those requirements are clearly listed in the accompanying README.md file.

To recompile and link the inner core, you can use Andreas Pirklbauer's Boot Linker, which is (for convenience; it is impossible to use that repo as a submodule as it is frequently rebased) also available in this repo.

Available modifications

Modifications marked with a † are not included in the prebuilt release. Either they collide with other modifications, they need larger changes to the system which cannot be done by recompiling a few files and writing a new inner core, or they are not designed to be used on a day-by-day basis.

The CommandLineCompiler is available as a separate release.

Modifications marked with a ‡ are only included in the prebuilt "debug release". These modifications aid in debugging, but have a high performance or binary size overhead, and are therefore undesirable in normal builds.

There are also two separate releases available that include the rescue system (the normal one and the "debug" one).

Name/Link Short description Requirements
BugFixes Fixes for what I consider to be bugs Optionally recompile inner core
ConvertEOL Convert line terminators when loading text files as ASCII Recompile Texts.Mod
MinimalFonts Minimal Fonts modules with a single font embedded to save space and avoid filesystem access Recompile Fonts.Mod
RescueSystem Boot into secondary inner core in case main one is unable to boot Compile two inner cores, move filesystem offset
DrawAddons More features for Oberon Draw Optionally recompile Graphics.Mod
Calculator Simple prefix notation calculator None
ResourceMonitor Continually display module space and heap usage None
DefragmentFreeSpace Defragment all files and move them to the beginning of the filesystem Recompile inner core
RealTimeClock Add a "ticking" real-time clock that is updated on demand based on Kernel.Time Recompile inner core
DoubleTrap Detect when a trap occurs in the trap handler and work around it Minimal: Recompile System.Mod; Full: Recompile inner core
MinimalBootstrapSystem Minimal disk image that can be used to bootstrap/compile the normal system Recompile everything except inner core
OnScreenKeyboard Little keyboard on the screen when no real keyboard is available Recompile Input.Mod and dependant modules
WeakReferences Add weak references to the Project Oberon 2013 kernel Recompile inner core
RebuildToolBuilder Build a list of modules that need to be rebuilt None
KeyboardTester Test if all keys on your (emulated) keyboard work None
RemoveFloatingPoint Build an Oberon system without Floating Point support Recompile inner core
RobustTrapViewer Make sure TRAPs in system modules are seen None (load it manually)
TrapBacktrace Print a backtrace on TRAP and ABORT Optionally update the boot loader
ZeroLocalVariables Zero local variables to avoid memory corruption due to uninitialized variables Recompile ORG.Mod
VariableLinespace Support lines of different height in the same Text viewer Recompile TextFrames.Mod
UTF8Charset Display UTF-8 characters in a Text viewer Recompile outer core and compiler
UTF8CharsetLite UTF-8 support, limited to special Unicode text viewers Recompile Fonts.Mod
RemoveFilesizeLimit Remove the 3MB file size limit Recompile inner core
ORInspect Inspect global module variables and heap pointers Recompile compiler and all modules you want to inspect
ORStackInspect Inspect stack variables when printing a backtrace Apply DoubleTrap, TrapBacktrace, ZeroLocalVariables and ORInspect; recompile everything including inner core
StackOverflowProtector Trigger TRAP 9 at stack overflows Recompile inner core
CommandExitCodes Let commands return an exit code so that scripts can react to it Recompile outer core
CommandLineCompiler Run the Oberon compiler in a command line emulator Patch emulator
KernelDebugger Debug and inspect one RISC5 machine from another one via serial link Apply ORStackInspect; recompile everything including inner core
InnerEmulator Emulate a RISC processor on the Oberon system None (except patience when starting it up)
ReproducibleBuild How to build Oberon disk images that are bit-for-bit identical Recompile everything
FontConversion Conversions to and between Oberon .Scn.Fnt files Optionally patch Display.Mod
DynamicMemorySplit Move the address that separates heap from stack and modules Rebuild inner core
Clock Show a clock in the lower right corner None
CrossCompiler Compile a second set of modules without affecting the current system Recompile compiler
ImageBuilder Build disk images None
HardwareEnumerator Make disk images hardware independent by enumerating hardware at startup Recompile inner core
SeamlessResize Automatically resize the Oberon system when emulator window is resized Hardware Enumerator
ColorSupport Support both monochrome and 16-color modes Hardware Enumerator
ColorPalette ColorPalette - Display and edit the color palette Color Support
StartupCommand Run a command (from System.Tool) when Oberon starts Recompile System.Mod
DebugConsole Write debug strings to MMIO address and view them in emulator output Hardware Enumerator
Scripting Run multiple commands and react on their outcome Apply CommandExitCodes
ChangeResolution Dynamically change the display resolution if the driver supports it Recompile outer core
LanguageServerProtocolHelper Backend service for an Oberon LSP Server None
EmbeddableCompiler Version of the Oberon RISC Compiler that does not (directly) depend on Fonts/Texts/Oberon None
EditImprovements Edit.Locate and ~.Search display the target location in the first line of the viewer Recompile Edit.Mod

About

Clone of Schierl Michael's repo with the same name

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 87.3%
  • C 12.7%