[archimedes] Re: [2] Wir basteln uns ein !Boot

  • From: Markus Huber <info@xxxxxxxxxxxxxx>
  • To: archimedes@xxxxxxxxxxxxx
  • Date: Thu, 14 Apr 2016 00:14:29 +0200 (BST)

Wie sieht es also in !Boot aus?

!Boot beinhaltet
Obey !Run
Obey PreDesk
Obey Desk
Text !Help
Verzeichnis System

Das wars! Bis hier her schon mal selbsterklärend. Oder? Vielleicht
nicht ganz. Denn das Verzeichnis System hat nichts mit dem !System zu
tun. Da im folgenden etwas kommt,

Set Boot$Dir <Obey$Dir>.System
Set Boot$Path <Boot$Dir>.

was mich selbst überrascht, könnte nun statt !Boot.System nun doch
!Boot.Boot besser passen? Wir werden sehen.

Inhalt von !Boot.!Run


If "<Wimp$State>"="desktop" Then Filer_OpenDir |<Boot$Dir>
If "<Boot$Dir>"<>"" Then Obey

Set Boot$Verbose ""
|Set Boot$Verbose "-v"

Set Boot$Compile ""
|Set Boot$Compile "-c"

Set User$Filename "Markus"

Do Obey <Boot$Verbose><Boot$Compile> <Obey$Dir>.PreDesk


Der Doppelklick auf !Boot öffnet ein Filer Fenster von !Boot.System
Denn der Doppelklick startet ja "erneut" !Run Im ersten Durchgang, im
tatsächlichen Boot-Prozess ist <Wimp$State> nicht "desktop" daher ist
das If nicht erfüllt.

Es geht weiter mit dem If das im Falle eines Problems: <Boot$Dir> gibt
es schon aber <Wimp$State> war trotzdem nicht "dekstop", die Obey Datei
hier abbricht.

Boot$Verbose ist eine Systemvariable, die allen folgenden Prozessen
"mitteilt" ob Informationen über den fortschritt des Boot-Vorgangs
ausgegeben werden sollen.

Boot$Compile ist eine Systemvariable die allen folgenden Prozessen
"mitteilt" ob vorhandene automatisch generierte Obeys einfach verwendet
werden oder neu angelegt werden sollen.

User$Filename ist der Name für eine einfache Mehrbenutzerstruktur. Er
wird als Verzeichnisname verwendet um Konfigurationsdateien automatisch
in den Unterverzeichnissen für diesen Nutzer landen zu lassen.

Do ... startet nun die neben !Run liegende Obey Datei PreDesk

Tja und in der PreDesk steht nun "dummerweise" erst mal folgender Block:

Set Root$Dir <Obey$Dir>.^
Set Root$Path <Root$Dir>.
Set Boot$Dir <Obey$Dir>.System
Set Boot$Path <Boot$Dir>.

Das bedeutet das Verzeichnis mit dem Namen System liegt in den
Systemvariablen Boot$... Warum machte ich das so? Keine Ahnung mehr.
Gibts da in den weiteren untiefen Konflikte? Es sind ja möglichst
viele Dinge des originalen !Boot so berücksichtigt, daß ein gutes
Programm nichts von dem vollkommen anderen Aufbau von !Boot mitbekommt.
Ich merke mir das nun als Möglichkeit aus System doch Boot zumachen.

Nun aber gleich mal hineingeschaut ins !Boot.System

!Apps
!Choices
!Fonts
!Init
!Run
!Scrap
!Sounds
!Sources
!Sprites
!SysLog
!System
!Trace
!Transfer
!Unicode
!Waste
!Work

Nur Pseudo-Apps die so gut wie alles abdecken was ich bisher im
Boot-Prozess machen will und alle systemweiten Dinge bereit stellen.

Dadurch sind all diese Dinge verschiebbar, um neue Sachen erweiterbar,
zentral, ihren Ort selbstdefinierend. Es gibt nur eine einzige feste
Zuordnung von !Boot aus. !Boot muss ja die Pseudo-Apps in der
erforderlichen Reihenfolge starten können. Diese Verknüpfung steht
aber nur ein einziges mal in der PreDesk. Es gibt keine ...$Dirs
....$Pathes deren Ort, ausgehend von !Boot, fest geschrieben stehen.
Alle Pseudo-Apps definieren sich mit dem Start selbst, wo sie zu finden
sind.

Um neue Sachen erweiterbar: wir hatten vor kurzem die Frage, wo bzw.
ob die "digital certificates" nicht zentral zur Verfügung gestellt
werden sollten. Der Ort dafür wäre hier. Entweder eine weitere
eigenständige Pseudo-App oder in !Sources

--
Markus

.


Other related posts:

  • » [archimedes] Re: [2] Wir basteln uns ein !Boot - Markus Huber