!!!!!
never do something in the system unit at initialization!
(between the final begin and end. )
That is wrong. The whole
System unit is supposed to be initialized there (parameter parsing, I/O, heap, etc.). Just look at what the
initialization-section (which is equivalent to
begin … end in units) does in other targets.