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
andSystem.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.