System

Overview

Compared to EPO, version 8.0, module System is changed as follows:

  • the trap and abort handlers are moved to module Errors
  • the installation of the real time clock (RTC) is moved to module Oberon
  • System.Watch and System.ShowModules are extended
  • new command System.ShowProcesses
  • System.Date is improved

Due to the first two points, System does not need to be loaded for a working system. It will be dynamically loaded as any other module upon execution of one of the commands.

Removed

Trap and Abort Handlers

Since Oberon RTS has a module Errors dedicated to handling run-time errors, the trap and abort handlers are moved there. These handlers are also substantially modified. The trap and abort handlers in EPO do not make any reference to any other element in module System, so this (re-) moval does not lead to any follow-up changes.

RTC

The installation of the real-time clock is moved to module Oberon as part of the start-up sequence. This installation does not make any reference to any element of module System anyway, and to install the RTC in module Oberon enables start-up logging to put real-time timestamps on the entries.

Extended Commands

System.Watch

System.Watch displays additional information, such as about the memory layout, and the scheduler performance, as described here.

System.ShowModules

System.Modules is expanded to show more information about the loaded modules:

name                  base adr code adr code end  data  code  slot  refs   num
System                00014FA0 000153C8 0001774C   984  9092 10688     0    30
LogView               00013A60 00013E78 00014E40   968  4040  5440     0    29
Oberon                00013240 000134C8 000138FC   568  1076  2080     1    28
Errors                00012860 00012910 000130FC    96  2028  2528     1    27
Cmds                  00011C80 00011E08 00012708   312  2304  3040     2    26
Start                 00011120 000115FC 00011B50  1164  1364  2912     2    25
Upload                00010D60 00010DB4 00010FF8     4   580   960     1    24
Processes             0000F140 0000F354 00010AB4   452  5984  7200     4    23
ProcMonitor           0000EDE0 0000EE30 0000EFD0     0   416   864     1    22
Log                   0000E940 0000E9B4 0000ECA0    36   748  1184     5    21
RTC                   0000E180 0000E1D8 0000E7FC     8  1572  1984     2    20
SPIu                  0000DC00 0000DC50 0000E05C     0  1036  1408     1    19
SPIdev                0000D960 0000D9C4 0000DAF8    20   308   672     3    18
Interrupts            0000D680 0000D6D0 0000D824     0   340   736     2    17
Watchdog              0000D460 0000D4B4 0000D564     4   176   544     3    16
SysCtrl               0000CEC0 0000CF18 0000D298     8   896  1440     4    15
ProcDevsig            0000CC40 0000CC90 0000CDB4     0   292   640     1    14
ProcDelay             0000C980 0000C9D0 0000CB28     0   344   704     1    13
ProcTimers            0000C680 0000C6D0 0000C868     0   408   768     1    12
Coroutines            0000C2C0 0000C324 0000C558    20   564   960     1    11
Calltrace             0000B9A0 0000BA30 0000C15C    64  1836  2336     4    10
StackMonitor          0000B740 0000B790 0000B88C     0   252   608     4     9
Console               0000B420 0000B47C 0000B600    12   388   800     6     8
RS232b                0000AD40 0000AD90 0000B2F0     0  1376  1760     2     7
RS232dev              0000A900 0000A964 0000AC20    20   700  1088     3     6
Texts                 00009420 000094E8 0000A7D0   120  4840  5344    12     5
Modules               00007E20 00007F08 000092E0   152  5080  5632     6     4
Files                 00005660 00005744 00007C7C   148  9528 10176     3     3
FileDir               00003620 000036AC 00005530    60  7812  8256     1     2
Kernel                00000100 0000218C 000034AC  8252  4896 13600     6     1
                                           total             96352
  • name: module name
  • base adr: base address of the module
  • code adr: starting address of the code segment
  • code end: end address of the code segment
  • data: size of the module data segment, in bytes
  • code: size of the code segment, in bytes (‘code end’ minus ‘code adr’)
  • slot: total size of the slot in module memory occupied by the module, in bytes
  • refs: number of references of other modules to this module
  • num: module number as allocated by the loader
  • total: total size of currently occupied module memory

New Commands

System.ShowProcesses

System.ShowProcesses list the currently installed processes and their status data, as described here.

Improved Commands

System.Date

Improved error checking on the input data.