home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / monitors / rsys / doc / rsys12.doc < prev    next >
Text File  |  1995-02-27  |  125KB  |  2,847 lines

  1.  
  2.  
  3.      _____________________________________________________________________
  4.      _____________________________________________________________________
  5.      
  6.      #########     #########                            ####      #######
  7.      ##       ##  ##       ##                          ## ##     ##     ##
  8.      ##       ##  ##                                  ##  ##            ##
  9.      ##       ##  ##                                 ##   ##            ##
  10.      #########     ########   ##      ##  #######         ##          ##
  11.      ##   ##               ##  ##    ##  ##               ##         ##
  12.      ##    ##              ##   ##  ##    ######          ##        ##
  13.      ##     ##    ##       ##    ####          ##         ## ###  ##
  14.      ##      ###   ########       ##     #######          ## ###  ########
  15.      ___________________________ ## ______________________________________
  16.      _________________________ ### _______________________________________
  17.  
  18. Was ist RSys?
  19. *************
  20.  
  21.    `RSYS' ist von allem ein bißchen `:-)'
  22.  
  23.    Die Hauptanregung zu `RSys' bekam ich durch die verschiedenen
  24. Systemutilities, wie `Xoper', `ARTM', `TaskX' und andere.  Die einen erlaubten
  25. einen tiefgreifenden Einblick in das Betriebssystem (`Xoper'), waren aber etwas
  26. unkomfortabel in der Bedienung, andere wiederum boten zwar viel Information
  27. (`ARTM'), waren dann aber nicht ganz absturzsicher und boten einfach zuviel,
  28. worunter die Übersicht litt.  Wieder andere boten noch andere Features, wie
  29. WorkBench-Unterstützung und Application Icons (AppIcons), bzw.  -Windows
  30. (Toolmanager), aber keine Systeminformationen.  Bei fast allen Programmen aber
  31. war kein Quellcode dabei, weswegen wirklich gute Programmierlösungen nur den
  32. Programmierern vorbehalten war.
  33.  
  34.    Aus diesen Überlegungen heraus entstand `RSYS'.  `RSYS' hat etwas von
  35. `ARTM' und `Xoper', aber auch ein wenig vom `Toolmanager' und von `Icon'.
  36. Eines hat aber `RSYS' den anderen Programmen voraus:  der Sourcecode ist
  37. dokumentiert und im Lieferumfang dabei.
  38.  
  39.    Bei der Source legte ich Wert auf eine gute Dokumentation und die Lesbarkeit
  40. der Programmteile.  Allerdings war ich auch etwas faul, was eine ausführliche
  41. Dokumentation angeht.  Das Programm habe ich völlig in Public Domain gestellt,
  42. bitte aber dennoch (natürlich :-) um konstruktive Kritik.  Sie soll dazu
  43. beitragen, Verbesserungen einzubauen und Fehler auszumerzen.
  44.  
  45.    Ziemlich am Ende dieser Dokumentation habe ich auch einige Hintergrundinfos
  46. zu den einzelnen Systemlisten und -objekten geschrieben (RSys und
  47. Hintergrundinfos).  Außerdem ist in den Quelltexten einiges an Informationen
  48. zu den einzelnen Programmpunkten ausgeführt, so daß sich ein Blick in das
  49. Programm immer lohnt.
  50.  
  51. Installation von RSys
  52. *********************
  53.  
  54.    Die Installation von `RSYS' gestaltet sich recht einfach.  Zum einen ist
  55. `RSYS' ein CLI-Programm, d.h. es kann vom CLI wie ein AmigaDOS-Befehl
  56. aufgerufen und gleich wieder verlassen werden.
  57.  
  58.    Zum anderen ist es ein Befehl für das `wbstartup'-Verzeichnis der
  59. Bootpartition.  Wird das Icon und das Programm in dieses Verzeichnis gelegt, so
  60. erscheint ein neues Icon auf der WorkBench, das wie eine verkleinerte Form des
  61. Hauptfensters von `RSYS' aussieht.  Durch einen Doppelklick auf das Icon oder
  62. einen CLI-Aufruf verschwindet das Icon und das Hauptfenster erscheint.  Wenn
  63. `RSYS' schon im Hintergrund läuft, d.h.  vom `wbstartup'-Verzeichnis aus
  64. geladen wurde, wird das Programm nach einem weiteren Aufruf aus dem CLI
  65. natürlich viel schneller erscheinen.
  66.  
  67.    Ab Version 1.2 kann die Installation vollständig mit dem `Installer'
  68. vorgenommen werden.  Dem Programmpaket liegt ein entsprechender Script-File bei
  69. (`RSys12.Install').  Mit ihm könnt Ihr nicht nur alle Programmteile und
  70. Dateien installieren, sondern auch einzelne Teile des Programmpaketes
  71. nachinstallieren. Der `Installer' ist seid kurzem frei verfügbar, liegt aber
  72. `RSYS' nicht bei. Er sollte in jeder guten Mailbox oder bei einem PD-Händler
  73. erhältlich sein.
  74.  
  75.    Entsprechend der verschiedenen Verwendungsmöglichkeiten gestaltet sich auch
  76. die Installation von `RSYS' (falls sie von Hand vorgenommen werden soll), die
  77. jetzt im Einzelnen besprochen wird.
  78.  
  79. Aufruf vom CLI
  80. ==============
  81.  
  82.    Möchtet Ihr `RSYS' als reinen CLI-Befehl installieren, so kopiert einfach
  83. das Programm `RSYS' in das `C:'-Verzeichnis Eures Bootdevices, also i.a. in
  84. `SYS:C'.  `RSYS' kann dann wie ein normaler CLI-Befehl verwendet werden.
  85.  
  86.    Mit dem Aufruf
  87.  
  88.                                        `RSYS' ?
  89.  
  90.    bekommt   ihr   gemäß  den  AmigaDOS-Konventionen  eine  Kommandoschablone
  91. (Template) angezeigt.  Dieses hat folgendes Format:
  92.  
  93.         `RSYS' 1.0 (07-Aug-92) [11:47] (c) by Rolf Boehme
  94.         T=TASKS/S,L=LIBRARIES/S,M=MEMORY/S,P=PORTS/S,V=VOLUMES/S,A=ASSIGNS/S,
  95.         F=FONTS/S,R=RESOURCES/S,I=INTERRUPTS/S,W=WINDOWS/S,S=SCREENS/S,
  96.         H=INPUTHDL/S
  97.  
  98.    Ihr   könnt  beim  Aufruf  entweder  die  Kurzform  angeben,  oder  die
  99. vollständige Form, z.B.
  100.  
  101.         `RSYS' T               oder      `RSYS' TASKS
  102.  
  103.    Beide  Aufrufe  haben den gleichen Effekt.  Der Typ `/S' sagt, daß es sich
  104. um  Schalter  handelt,  d.h.   jeder  Parameter  veranlaßt  `RSYS'  zu einer
  105. entsprechenden Ausgabe im ListView des Hauptfensters (Die Gadgets und das
  106. ListView).
  107.  
  108.    Es   können  mehrere  Schalter  angegeben  werden,  ist  aber  ziemlich
  109. zwecklos,  da  nur  der  erste  Parameter  gilt und "behandelt" wird.  Die
  110. Aufrufe
  111.  
  112.         `RSYS' T L P R A        und       `RSYS' T
  113.  
  114.    haben also den gleichen Effekt.
  115.  
  116.    Das Programm könnt Ihr dann mit einem Druck auf die ESC-Taste sofort
  117. verlassen.  Falls Ihr `RSYS' einfach mal kleiner machen wollt, könnt ihr das
  118. Zoomgadget rechts oben verwenden.  Allerdings bleibt das Start-CLI bis zur
  119. Beendigung des Programms immer noch gesperrt.
  120.  
  121.    Ab `RSYS' 1.2 kann man das Programm nicht mehr in den Iconify-Zustand
  122. bringen, wenn es von einem CLI aus aufgerufen wurde.  Iconify ist jetzt nur
  123. möglich, wenn `RSYS' vom `wbstartup'-Verzeichnis oder über die WorkBench
  124. aufgerufen wurde.
  125.  
  126. Aufruf von der WorkBench
  127. ========================
  128.  
  129.    Dazu wird `RSYS' und die mitgelieferte Info-Datei `RSys.info' in das
  130. `wbstartup'-Verzeichnis der Bootpartition oder -diskette kopiert.
  131.  
  132.    Der  Aufruf von der WorkBench aus über das `wbstartup'-Verzeichnis bietet
  133. ein  paar mehr Möglichkeiten.  Zunächst aber zu den Parametern vom Icon, den
  134. *ToolTypes*.  `RSYS' unterstützt in dieser Version mehrere ToolTypes.  Im
  135. folgenden sind sie alle aufgelistet, zunächst die Tastenkombinationen der
  136. verschiedenen Utilities von `RSYS':
  137.  
  138.       - Tooltype: CX_HOTKEY (DEFAULT: `lshift rshift y')
  139.           Mit  dieser  Tastenkombination  kann `RSYS' aktiviert werden, falls
  140.           es im System schon existiert.  Es erscheint dann das Hauptfenster von
  141.           `RSYS'.
  142.  
  143.       - ToolType: CX_CRYPT (DEFAULT: `lshift rshift k')
  144.           Es  erscheint  nach dieser Tastenkombination das `Crypt Files'-Window
  145.           von `RSYS'.
  146.  
  147.       - ToolType: CX_FINDFILE (DEFAULT: `lshift rshift s')
  148.           Diese  Tastenkombination  startet die Benutzeroberfläche zum Suchen
  149.           von Dateien.
  150.  
  151.       - ToolType: CX_FORMAT (DEFAULT: `lshift rshift f')
  152.           Es  erscheint  ein  kleines  Window,  in  dem der `Format'-Befehl
  153.           einfach konfiguriert und gestartet werden kann.
  154.  
  155.       - ToolType: CX_HUNKLIST (DEFAULT: `lshift rshift h')
  156.           Diese Tastenkombination läßt ein Fenster erscheinen, in dem die
  157.           Hunkstruktur eines Executables aufgelistet werden kann.  Sehr
  158.           nützlich für Programmierer.
  159.  
  160.       - ToolType: CX_CRC (DEFAULT: `lshift rshift c')
  161.           Nach dieser Tastenkombination erscheint ein kleines Fenster, in dem
  162.           die CRC-Checksummen von Dateien berechnet werden können.
  163.  
  164.       - ToolType: CX_SAVEWINDOW (DEFAULT: `lshift rshift w')
  165.           Durch diese Tastenkombination erscheint ein Window, in dem Windows,
  166.           die im  System  geöffnet  worden  sind,  als  IFF-Dateien
  167.           abgespeichert werden können.
  168.  
  169.  
  170.    Im weiteren folgen die Tooltypes, mit denen die Benutzungseigenschaften von
  171. `RSYS' beeinflußt werden können:
  172.  
  173.       - ToolType: NOFASTMODE (DEFAULT: OFF)
  174.           Das  Haupt-Listview von `RSYS' (Die Gadgets und das ListView) wird
  175.           normalerweise erst dann aktualisiert, wenn  alle  Einträge  erzeugt
  176.           worden sind.  Wird dieses Tooltype gesetzt, wird  die  Anzeige
  177.           während der Erzeugung der Listeneinträge aktualisiert.  Bei
  178.           größeren  Listen  kann  es  dann etwas länger dauern, bis die Anzeige
  179.           fertig ist (deshalb *NO*FASTMODE).
  180.  
  181.       - ToolType: NOSORT (DEFAULT: OFF)
  182.           Alle Listen, bis auf die, die in der Liste selber noch Unterpunkte
  183.           oder Überschriften  haben,  werden alphabetisch sortiert angezeigt.
  184.           Mit diesem Flag kann die Sortierung der Listeneinträge abgeschaltet
  185.           werden.
  186.  
  187.       - ToolType: WORKINGBAR (DEFAULT: OFF)
  188.           Mit diesem Flag wird die Anzeige eines Statusbalkens eingeschaltet.
  189.           Während eine Liste im ListView aktualisiert wird, läuft ein
  190.           Statusbalken mit. Für den Balken wird der Bereich des `Informationen
  191.           / Messages'-Gadgets (Die Gadgets und das ListView) verwendet.
  192.  
  193.       - ToolType: MOUSEWINDOW (DEFAULT: ON)
  194.           Ist  dieses  Flag  gesetzt,  werden  alle  Fenster  von `RSYS'
  195.           relativ zur Mausposition geöffnet.
  196.  
  197.       - ToolType: TOPAZFONT (DEFAULT: OFF)
  198.           `RSYS' ist so programmiert, daß es theoretisch mit *jedem* Font
  199.           verwendet werden kann.  Ist der Font zu groß, wird automatisch der
  200.           Systemfont `Topaz 8' verwendet.  Ist dieses Tooltype aktiv, wird
  201.           sofort `Topaz 8' verwendet.  Das ist dann nützlich, wenn als
  202.           Bildschirmzeichensatz entweder ein zu großer Font, oder aber ein
  203.           proportionaler Font gewählt wurde.  Die ListView-Einträge werden mit
  204.           Leerzeichen formatiert, da Tabulatoren in fast jedem Font als kleine
  205.           Rechtecke gezeichnet werden.  Infolgedessen sieht die Formatierung
  206.           unter einem proportionalen Font etwas zerrissen aus.
  207.  
  208.       - ToolType: OUTWINDOW (DEFAULT: -)
  209.           Über das AppIcon von `RSYS' können Aktionen gestartet werden,
  210.           insbesondere durch den Aufruf von externen Programmen (Die
  211.           Actions-Datei).  Dieser Tooltype legt das Ein- und Ausgabefenster von
  212.           `RSYS' fest.
  213.  
  214.       - ToolType: NOAPPICON (DEFAULT: EIN)
  215.           Damit wird verhindert, daß ein AppIcon (Das Icon) auf der WorkBench
  216.           erscheint.  Natürlich ist damit auch das Actioning nicht mehr
  217.           möglich.
  218.  
  219.       - ToolType: BACKPATTERNCOL (DEFAULT: 0)
  220.           Das Hauptfenster kann ähnlich wie bei den Systemrequestern, mit einem
  221.           Hintergrundmuster versehen werden.  Die Farbe kann mit diesem Tooltype
  222.           festgelegt werden.
  223.  
  224.       - ToolType: BACKGROUNDCOL (DEFAULT: 0)
  225.           Die Hintergrundfarbe des Pattern-Musters kann hier gesetzt werden.
  226.           Abhängig von der Auflösung des Bildschirms kann beispielsweise ein
  227.           leicht gelbliches Muster erzeugt werden, wenn BACKPATTERNCOL auf
  228.           Schwarz und BACKGROUNDCOL auf Weiß gesetzt wird.
  229.  
  230.       - ToolType: BACKPATTERN (DEFAULT: 5555AAAA)
  231.           Hiermit wird das Hintergrundmuster selbst festgelegt.  Die anzugebende
  232.           long-Hexzahl legt die "erste" und "zweite Reihe" des Musters fest, das
  233.           dann für das Füllen des Fensters verwendet wird.  Welches Muster
  234.           dabei heraus kommt, kann man sich auf folgende Weise einfach
  235.           vorstellen.  Die Hexzahl schreibt man sich in der binären
  236.           Darstellung mit 32 Stellen hin.  Für den Default-Wert sieht die
  237.           Darstellung so aus:
  238.                   5555AAAA = 01010101010101011010101010101010
  239.           Nun   teilt   man  diese  long-Zahl  in  zwei  Hälften  und
  240.           schreibt  sie untereinander, also so:
  241.                   5555AAAA = 0101010101010101
  242.                              1010101010101010
  243.           Die gesetzten Pixel sind die Einsen.  Man sieht, daß sich aus diesem
  244.           Wert ein `Schachbrett-Muster' ergibt, das auch bei den
  245.           Systemrequestern verwendet wird.  Mit dem Muster 0000FFFF kann man
  246.           sich übrigens ein waagerecht gestreiftes Muster, mit CCCCCCCC ein
  247.           senkrecht gestreiftes erzeugen lassen.
  248.  
  249.       - ToolType: DETAILPEN (DEFAULT: 0)
  250.       - ToolType: BLOCKPEN (DEFAULT: 1)
  251.       - ToolType: MENUPEN (DEFAULT: 0)
  252.           Mit  diesen  ToolTypes  kann man die Farben des Hauptwindows und des
  253.           Menüs des  Hauptwindows  festlegen.   Eine  nette  Farbvariation
  254.           ist  2,  3, 1, Reihenfolge, wie oben angeführt.
  255.  
  256.  
  257.    Wurde `RSYS' von der WorkBench aus gestartet, erscheint ein neues Icon.
  258. Wird es doppelgeklickt, erscheint das Hauptfenster von `RSYS'.  Den gleichen
  259. Effekt hat ein erneuter Aufruf vom CLI.  Danach wird jedoch das CLI wieder
  260. freigegeben, da `RSYS' bereits gestartet wurde.
  261.  
  262.    Ab Version 1.2 sind *alle* `RSYS'-Fenster mit diesem Patternmuster versehen.
  263.  
  264. Die ENV-Variablen
  265. =================
  266.  
  267.    `RSYS' benötigt zwei Hilfsdateien.  In der einen steht in Textform eine
  268. kurzer Online-Hilfe (Die Help-Datei), in der anderen sogenannte
  269. `Aktionseinträge', die ausgeführt werden, falls ein Icon über das AppIcon
  270. (Das Icon) gezogen und der Dateityp erkannt wurde, stehen.
  271.  
  272.    Dazu sollten zwei ENV:-Variablen definiert werden:  `RSYSHELP' und
  273. `RSYSACTION'.  Die Variablen enthalten gültige und vollständige
  274. Dateibezeichnungen (mit Dateipfad!) für die entsprechenden Dateien.  Sollten
  275. die eine oder beide Variablen fehlen, so wird `RSYS' bei entsprechender
  276. Aktivierung darauf hinweisen.
  277.  
  278.    Doch nun zu den Formaten beider Hilfsdateien.
  279.  
  280. Die Help-Datei
  281. --------------
  282.  
  283.    Nach  der  Betätigung der Help-Taste im Hauptfenster von Main oder nach
  284. Anklicken  des  entsprechenden Menüpunktes wird diese Datei einfach in das
  285. ListView eingelesen und dargestellt.
  286.  
  287.    Die  Datei  ist  eine  einfache  Textdatei  mit  einem rechten Rand von
  288. höchstens 45 Zeichen.  Die erste Zeile enthält nur die maximale Anzahl der in
  289. dieser Datei enthaltenen Zeilen minus eins.
  290.  
  291.    Die   Help-Datei   hat  den  Default-Namen  `RSys.HLP'  kann  aber  unter
  292. Verwendung der `ENV:'-Variablen (Die ENV-Variablen) leicht geändert werden.
  293. Auch der Inhalt kann den eigenen Bedürfnissen einfach angepasst werden.
  294.  
  295. Die Actions-Datei
  296. -----------------
  297.  
  298.    Erscheint auf der WorkBench das AppIcon, so können in bekannter Manier eine
  299. oder mehrere WorkBench-Icons (also Directories, Dateien, Disc-Icons, etc.) auf
  300. dieses Icon gezogen werden.  Daraufhin erscheint ein kleines Window mit
  301. mehreren Gadgets, das Action Window.
  302.  
  303.    Im  Gegensatz zur Hilfedatei müssen die Einträge in der Aktionsdatei in
  304. einem  bestimmten  Format  stehen.   In  der ersten Zeile steht wieder die
  305. Anzahl  der  Zeilen  in  der Datei minus 1.  Die Schablone für eine solche
  306. Aktionszeile lautet folgendermaßen:
  307.  
  308.        <lfd.Nr>#<Typ der Datei>#<Eintrag im ListView>#<Befehl>#<Wait/Close>#
  309.  
  310.    Alle Teile werden durch ein `#' voneinander getrennt.
  311.  
  312.    Die `lfd.Nr' und der `Typ der Datei' entsprechen der Numerierung und
  313. Deklarierung in dem Programm.  Sie sollten tunlichst nicht verändert werden.
  314. Der `Typ der Datei' sollte maximal 20 Zeichen lang sein.
  315.  
  316.    Der `Eintrag im ListView' erscheint in selbigem, wenn eine Dateiart erkannt
  317. wurde und ein kleines Aktionsfenster erscheint.  Es dient der Information des
  318. Benutzers und kann beliebig gewählt werden, sollte jedoch nicht länger als 30
  319. Zeichen sein.
  320.  
  321.    Der  `Befehl'  kann  255 Zeichen lang werden und enthält einen gültigen
  322. Aufruf  im  CLI-Format.   Hierbei  wird  der  Dateiname einfach angehängt,
  323. weswegen  das  letzte  Zeichen vor dem trennenden `#' ein Leerzeichen sein
  324. sollte.
  325.  
  326.    Der  letzte  Parameter  `Wait/Close' bestimmt, ob nach einer Aktion das
  327. kleine  Fenster  und  damit die Aktionen beendet werden sollen oder nicht.
  328. Hierbei steht `W' für `Wait' und `C' für `Close' nach einer Aktion.  Hier ein
  329. paar Beispiele:
  330.  
  331.         6#Assembler file#Anzeigen#OwnC:MuchMore #W#
  332.         ^ ^              ^        ^              ^- Nach dem Befehl wird das
  333.         | |              |        |                 Fenster nicht geschlossen.
  334.         +-+              |        +- MuchMore im C:-Verz. wird mit dem
  335.           |              |           Dateinamen aufgerufen, die Datei also
  336.           |              |           angezeigt.
  337.           |              +- Im ListView erscheint als Eintrag
  338.           |                 "Anzeigen". Wird dieser Eintrag
  339.           |                 geklickt, wird dieser Befehl
  340.           |                 ausgeführt
  341.           +- Die Datei ist ein Assembler-File
  342.  
  343.    Von  einem  Type  können  auch  mehrere  Einträge  stehen.  Dann werden
  344. entsprechend mehr ListView-Einträge angeboten.  Also z.B.
  345.  
  346.         4#C Sourcefile#Bearbeiten#OwnC:ed #W#
  347.         4#C Sourcefile#Anzeigen#OwnC:MuchMore #W#
  348.         4#C Sourcefile#Compilieren#CC:cc #W#
  349.  
  350.    Hier  erscheinen  drei Einträge im ListView, die dann entsprechend gewählt
  351. und ausgeführt werden können.
  352.  
  353.    Die  Action-Datei  hat  voreinstellungsmäßig den  Namen  `RSys.ACT'  kann
  354. aber  unter Verwendung  der  `ENV:'-Variablen  leicht  geändert werden.  Auch
  355. der Inhalt kann den eigenen Bedürfnissen einfach angepasst werden.
  356.  
  357. Gadgets - Menüs - das Icon
  358. **************************
  359.  
  360.    Wie  aus  dem  Vorangegangenen  ersichtlich,  kann  man  bei  `RSYS' zwei
  361. verschiedene Zustände unterscheiden.  Zum einen erscheint das Hauptfenster mit
  362. diversen  Anzeigen  und  einem  Menü,  zum  anderen erscheint auf der
  363. WorkBench ein Icon, das verschiedene Aktionen ausführen kann.  Beide
  364. Möglichkeiten werden hier vorgestellt.
  365.  
  366. Das Hauptfenster
  367. ================
  368.  
  369.    Nach  einem  Aufruf  vom  CLI oder einem Doppelklick auf das AppIcon
  370. erscheint  das  Hauptfenster  von  `RSYS'.   Es  ist  grob  in fünf Bereiche
  371. unterteilt:
  372.  
  373.          +---------------------------------------------------------------+
  374.          | Menübereich                                                   |
  375.          +---------------------------------------------------------------+
  376.      
  377.                         +----------------------------------+
  378.                         |    Tabellenkopf/Titelzeile       |
  379.                         +----------------------------------+
  380.                         |                                  |
  381.                         |                                  |
  382.                         |       Anzeigebereich/LV          |
  383.                         |                                  |
  384.                         |                                  |
  385.                         +----------------------------------+
  386.                         |      Informationen/Messages      |
  387.                         +----------------------------------+
  388.                         |                                  |
  389.                         |         Gadgetbereich            |
  390.                         |                                  |
  391.                         +----------------------------------+
  392.  
  393.    Der Bereich `Tabellenkopf / Titelzeile' enthält entsprechend die Spalten-
  394. bezeichnung der ListView-Einträge im Anzeigebereich.  Im `Gadget'- und
  395. `Menü'-Bereich können die gewünschten Listen angewählt werden.  Allgemeine
  396. Informationen erscheinen einzeilig in dem Bereich `Informationen / Messages'.
  397. Die einzelnen Bereiche sollen nun genauer beschrieben werden.
  398.  
  399. Die Gadgets und das ListView
  400. ============================
  401.  
  402.    Im  ListView  werden  die  angeforderten  Systemlisten  angezeigt.  Die
  403. entsprechenden  Einträge  im ListView können modifiziert werden, indem der
  404. Eintrag angeklickt wird.  Falls eine Veränderung der Einträge erlaubt ist,
  405. erscheint  dann  ein  Systemrequester mit weiteren Informationen, oder im
  406. Bereich  `Informationen/Messages'  eine  Mitteilung, das Veränderungen nicht
  407. möglich sind.
  408.  
  409.    Die  einzelnen  Gadgets  und  die  damit  erzeugten Listen, die dann im
  410. ListView  gezeigt  werden,  nun  im  Einzelnen.
  411.  
  412. Task-Liste der ExecBase
  413. -----------------------
  414.  
  415.  - Gadget: Tasks (TASTE: T KOMMANDOPARAMETER: T)
  416.  
  417.    Beispielausgabe:
  418.      Taskname           Typ  Pri Stack Stat Cli
  419.      ---------------------------------------------
  420.      ConClip Process   Proc    0  4000 Wait   2
  421.      ^                 ^       ^  ^    ^      ^
  422.      |                 |       |  |    |      +- CLI-Nummer, falls es
  423.      |                 |       |  |    |         sich um einen Prozeß handelt
  424.      |                 |       |  |    +- Status des Prozesses/Tasks (P/T)
  425.      |                 |       |  |       Inv : Invalid. P/T ist "kaputt"
  426.      |                 |       |  |       Add : P/T wird gerade erzeugt
  427.      |                 |       |  |       Run : P/T wird gerade abgearbeitet,
  428.      |                 |       |  |             in jedem Falle der aktive
  429.      |                 |       |  |             P/T, also `RSYS'!
  430.      |                 |       |  |       Rdy : Prozeß ist fertig zum Start
  431.      |                 |       |  |       Wait: P/T wartet auf Event
  432.      |                 |       |  |       Excp: Task hat eine Exception
  433.      |                 |       |  |             ausgelöst
  434.      |                 |       |  |       Rem : Task wird gerade entfernt
  435.      |                 |       |  +- Stack des P/T
  436.      |                 |       +- Priorität des Tasks
  437.      |                 +- Typ des Eintrags
  438.      |                    Proc : Eintrag ist ein Prozeß
  439.      |                    Task : Eintrag ist ein Task
  440.      +- Name des P/T
  441.  
  442.    Aktionen:  Nach  dem  Anklicken  erscheint ein Systemrequester mit vielen
  443. Daten zu dem geklickten Eintrag und sieben Gadgets.
  444.  
  445.    * `Continue':
  446.  
  447.      Es wird zum Hauptfenster zurückgekehrt.
  448.  
  449.    * `^C, ^D, ^E, ^F':
  450.  
  451.      Die entsprechenden `Break-Signale' werden an den P/T gesendet.
  452.  
  453.    * `Taskpri':
  454.  
  455.      Über ein erscheinendes Window kann die Priorität des P/T verändert
  456.      werden.  Das  Close-  und  Cancelgadget  beenden die Eingabe ohne die
  457.      Priorität zu ändern;  `Ok'  übernimmt  die neue Priorität und setzt
  458.      den P/T entsprechend.  Im Stringgadget kann die Eingabe direkt geschehen.
  459.  
  460.    * `Kill task!:'
  461.  
  462.      Zunächst  werden  an  den P/T alle möglichen Signale (also `^C' bis `^F')
  463.      gesendet.    Falls   der   P/T  immer  noch  existiert,  wird  nach  einer
  464.      Sicherheitsabfrage  der  Task  per "RemTask()" entfernt.  Danach werden
  465.      alle gefunden Objekte, die mit dem Task in Verbindung stehen (Screens,
  466.      Windows, Ports), aus dem System entfernt.
  467.  
  468. Library-Liste der ExecBase
  469. --------------------------
  470.  
  471.  - Gadget: Libraries (TASTE: L, KOMMANDOPARAMETER: L)
  472.  
  473.    Beispielausgabe:
  474.      Libraryname                Version OpenCnt O
  475.      ---------------------------------------------
  476.      kd_freq.library              3.13        1 *
  477.      ^                            ^           ^ ^
  478.      |                            |           | +- Falls ein * erscheint, ist
  479.      |                            |           |    die entsprechende Lib offen
  480.      |                            |           |    und wird von mindestens einem
  481.      |                            |           |    Programm benutzt
  482.      |                            |           +- Anzahl, wie oft die Lib
  483.      |                            |              geöffnet wurde. Ist die Anzahl
  484.      |                            |              0, kann die Lib aus dem System
  485.      |                            |              entfernt werden
  486.      |                            +- Versions- und Revisionsnummer der
  487.      |                               Library
  488.      +- Name der Library
  489.  
  490.    Aktionen:  Nach dem Anklicken erscheint ein Systemrequester mit drei Gadgets:
  491.    * `Continue':
  492.  
  493.      Es wird zum Hauptfenster zurückgekehrt.
  494.  
  495.    * `Flush Lib':
  496.  
  497.      Es wird nach einer Sicherheitsabfrage versucht, die Library aus dem System
  498.      zu entfernen.
  499.  
  500. Memory-Liste in der ExecBase
  501. ----------------------------
  502.  
  503.  - Gadget: Memory (TASTE: M, KOMMANDOPARAMETER: M)
  504.  
  505.    Beispielausgabe:
  506.      Memory address     Size    Type
  507.      ---------------------------------------------
  508.      Gesamt :  4717504 C:  295944 F: 2042112 <- Gesamtspeicheranzeige
  509.      Largest:          C:  270288 F: 2014344 <- Größter zusammenhg. Speicher
  510.      -------------- Fragmentierung ---------
  511.      00200000        4194272 FAST
  512.      00212840              8 FAST-CHUNK
  513.      ^                     ^ ^
  514.      |                     | +- Typ des Eintrags
  515.      |                     |    FAST           : Fast-Memory (gesamt)
  516.      |                     |    FAST-CHUNK     : Typ des Memoryeintrags
  517.      |                     |    CHIP           : Chip-Memory (gesamt)
  518.      |                     |    CHIP-CHUNK     : Typ des Memoryeintrags
  519.      |                     +- Größe des Listeneintrags
  520.      +- Adresse des Listeneintrags
  521.  
  522.    Aktionen:  Diese Liste zeigt die Fragmentierung des Speichers im einzelnen
  523. an. Jedes einzelne Speicherfragment ist mit seiner Adresse, der Größe und dem
  524. Typ angegeben. AmigaOS verwaltet seinen Speicher in minimal acht Byte-Blöcken.
  525. Die Anzahl der acht Byte-Blöcke ist also ein Maß für die Fragmentierung des
  526. Speichers.
  527.  
  528. Port-Liste in der ExecBase
  529. --------------------------
  530.  
  531.  - Gadget: Ports (TASTE: P, KOMMANDOPARAMETER: P)
  532.  
  533.    Beispielausgabe:
  534.      Portname               Signal-Task      Pri
  535.      ---------------------------------------------
  536.      AREXX                  RexxMaster         0
  537.      ^                      ^                  ^
  538.      |                      |                  +- Priorität des Ports
  539.      |                      |
  540.      |                      +- Name des Tasks, der die Signale vom
  541.      |                         Port verarbeitet
  542.      +- Name des Ports
  543.  
  544.    Aktionen:  Es erscheint ein Systemrequester mit zwei Gadgets:
  545.  
  546.    * `Continue':
  547.  
  548.      Es wird zum Hauptfenster zurückgekehrt.
  549.  
  550.    * `Kill Port':
  551.  
  552.      Nach einer Sicherheitsabfrage wird der Port aus der Systemliste entfernt.
  553.  
  554. Volume-Liste der DOSBase
  555. ------------------------
  556.  
  557.  - Gadget: Volumes (TASTE: V, KOMMANDOPARAMETER: V)
  558.  
  559.    Beispielausgabe:
  560.      Volumename     K-Free K-Used %Used F Sta Typ
  561.      ---------------------------------------------
  562.      AmigaDOS:          76   6084   98% * R/O FFS
  563.      ^                  ^    ^      ^   ^ ^   ^
  564.      |                  |    |      |   | |   +- Typ des Volumes
  565.      |                  |    |      |   | |      FFS  : FastFileSystem
  566.      |                  |    |      |   | |      DOS  : Standard DOS-Filesystem
  567.      |                  |    |      |   | |      BAD  : Unformatierte Disk,
  568.      |                  |    |      |   | |             unlesbar
  569.      |                  |    |      |   | |      NDO  : Keine DOS-Disk
  570.      |                  |    |      |   | |      KIC  : Kickstart-Diskette
  571.      |                  |    |      |   | |      MSD  : MS-DOS-Disk
  572.      |                  |    |      |   | |      ???  : Sollte NIE auftreten :)
  573.      |                  |    |      |   | +- Status des Volumes
  574.      |                  |    |      |   |    R/O  : Read Only
  575.      |                  |    |      |   |    VAL  : Volume wird gerade
  576.      |                  |    |      |   |           validiert
  577.      |                  |    |      |   |    R/W  : Read/Write
  578.      |                  |    |      |   |    ???  : Sonstiger Status
  579.      |                  |    |      |   +- Falls die Volume mehr als zu
  580.      |                  |    |      |      90% voll ist, steht da ein `*'
  581.      |                  |    |      +- Anzahl der benutzen KByte der Partition
  582.      |                  |    |         oder Diskette in Prozent
  583.      |                  |    +- Anzahl der benutzen KByte der Partition
  584.      |                  |       oder Diskette in KBytes
  585.      |                  +- Anzahl der freien Kapazität in KBytes
  586.      +- Name des Volumes
  587.  
  588.    Aktionen:  Nach dem Anklicken erscheint ein Systemrequester mit zwei Gadgets.
  589.  
  590.    * `Continue':
  591.  
  592.      Es wird zum Hauptfenster zurückgekehrt.
  593.  
  594.    * `Tree':
  595.  
  596.      Es erscheint ein neues Fenster mit einem ListView und zwei ausgeschalteten
  597.      Gadgets.  Nach dem Fensteraufbau wird sofort mit dem Einlesen der
  598.      Disk-Verzeichnis-Struktur begonnen.  Das Einlesen kann mit einem Anklicken
  599.      des Closegadgets links oben und der daraufhin erscheinenden
  600.      Sicherheitsabfrage abgebrochen werden.  Nach dem Einlesen werden die zwei
  601.      Gadgets aktiviert.
  602.  
  603.      Das linke Gadget ist ein Cycle-Gadget, mit dem zwischen zwei Darstellungen
  604.      der Verzeichnisstruktur gewechselt werden kann.  Voreinstellung ist die
  605.      `Tree'-Darstellung, also die Anzeige des Verzeichnisbaumes.  Nach dem
  606.      Anklicken wechselt die Darstellung auf die Anzeige der vollständigen
  607.      Pfadnamen. Befindet sich der Zeichensatz `IBM.font' im
  608.      `FONTS:'-Verzeichnis, werden die Graphikzeichen dieses Fonts verwendet, um
  609.      die Verzeichnisstruktur darzustellen.
  610.  
  611.      Das Gadget `Save Tree' bietet nach dem Anklicken einen Filerequester an,
  612.      mit welchem Ihr die Datei auswählen könnt, in der Ihr die momentan
  613.      aktive Darstellung (`Tree' oder `Path') abspeichern könnt.
  614.  
  615.      Das Fenster kann über das Closegadget geschlossen werden.
  616.  
  617. Assign-Liste der DOSBase
  618. ------------------------
  619.  
  620.  - Gadget: Assigns (TASTE: A, KOMMANDOPARAMETER: A)
  621.  
  622.    Beispielausgabe:
  623.      Assign        Directory
  624.      ---------------------------------------------
  625.      BATCH:        AmigaDos:c
  626.      ^             ^
  627.      |             +- Zu dem Assign gehörender Datei/Verzeichnisname
  628.      +- Name des Assigns
  629.  
  630.    Aktionen:  Siehe Volumes-Gadget.
  631.  
  632. Font-Liste der GfxBase
  633. ----------------------
  634.  
  635.  - Gadget: Fonts (TASTE: F, KOMMANDOPARAMETER: F)
  636.  
  637.    Beispielausgabe:
  638.      Fontname             Typ    Y   X Low Upp
  639.      ---------------------------------------------
  640.      topaz.font           ROM    8   8  32 255
  641.      ^                    ^      ^   ^  ^  ^
  642.      |                    |      |   |  |  +- Höchster ASCII-Wert, für den die
  643.      |                    |      |   |  |     Zeichen dieses Fonts definiert
  644.      |                    |      |   |  |     worden sind
  645.      |                    |      |   |  +- Niedrigster ASCII-Wert, für den
  646.      |                    |      |   |     die Zeichen in diesem Font definiert
  647.      |                    |      |   |     worden sind
  648.      |                    |      |   +- Breite eines Zeichens in diesem
  649.      |                    |      |      Zeichensatz
  650.      |                    |      +- Höhe eines Zeichens in diesem
  651.      |                    |         Zeichensatz
  652.      |                    +- Art des Zeichensatzes:
  653.      |                       ROM  : Der Zeichensatz wurde von einem
  654.      |                              Programm geladen oder ist ein
  655.      |                              Systemfont
  656.      |                       Disk : Der Font wurde noch nicht geladen
  657.      |                              und muß von Diskette oder Festplatte
  658.      |                              geladen werden
  659.      +- Name des Fonts
  660.  
  661.    Aktionen:  Nach dem Anklicken eines Eintrages im ListView erscheint ein
  662. Requester mit drei Gadgets:
  663.  
  664.    * `Continue':
  665.  
  666.      Es wird zum Hauptfenster zurückgekehrt.
  667.  
  668.    * `Show Font':
  669.  
  670.      Es  erscheint  ein Fenster mit den vier Gadgets `Normal', `Italic', `Bold'
  671.      und  `Underl'. Nach dem Anklicken eines dieser Toggle-Gadgets wird der
  672.      Beispieltext (im Format `(<fontsize>) <fontname>') entsprechend normal,
  673.      kursiv, fett oder unterstrichen dargestellt. Das Gadget `Normal'
  674.      inaktiviert alle anderen Gadgets.
  675.  
  676.    * `Remove Font':
  677.  
  678.      Nach einer Sicherheitsabfrage wird der Font aus dem System entfernt.
  679.  
  680. Resourcen-Liste der ExecBase
  681. ----------------------------
  682.  
  683.  - Gadget: Resourcen (TASTE: R, KOMMANDOPARAMETER: R)
  684.  
  685.    Beispielausgabe:
  686.      Resourcename               Version OpenCnt
  687.      ---------------------------------------------
  688.      Snap.resource                32.16       0
  689.      ^                            ^           ^
  690.      |                            |           +- Anzahl, wie oft die Resource
  691.      |                            |              geöffnet wurde
  692.      |                            +- Versions- und Revisionsnummer der
  693.      |                               Resourcen
  694.      +- Name der Resource
  695.  
  696.    Aktionen:  Alle im System verfügbaren Resourcen werden angezeigt.
  697.  
  698. Interrupt-Liste der ExecBase
  699. ----------------------------
  700.  
  701.  - Gadget: Interrupts (TASTE: I, KOMMANDOPARAMETER: I)
  702.  
  703.    Beispielausgabe:
  704.      Interruptname         Pri   Data     Code
  705.      ---------------------------------------------
  706.      disk.resource           0 00203624 00F8F774
  707.      ^                       ^ ^        ^
  708.      |                       | |        +- Falls einer der 16 Interrupts
  709.      |                       | |           aktiviert wird, wird der Code, dessen
  710.      |                       | |           Adresse angezeigt wird, ausgeführt
  711.      |                       | +- Der Zeiger auf den privaten Datenbereich der
  712.      |                       |    Interruptroutine
  713.      |                       +- Priorität dieses Interrupts
  714.      +- Handler oder Resource, der zu diesem Interrupt gehört
  715.  
  716.    Aktionen:  Die sechzehn Interrupts des Amigas werden unter Angabe des
  717. Namens, der Priorität und der Adressen der eventuell vorhandenen
  718. Interrupthandler aufgelistet.
  719.  
  720. Window-Liste der IntuitionBase
  721. ------------------------------
  722.  
  723.  - Gadget: Windows (TASTE: W, KOMMANDOPARAMETER: W)
  724.  
  725.    Beispielausgabe:
  726.      Windowtitle         H   W   X   Y Screen
  727.      ---------------------------------------------
  728.      AmigaShell        100 640   0   0 Workbench
  729.      ^                 ^   ^     ^   ^ ^
  730.      |                 |   |     |   | +- Name des Screens, zu dem dieses Window
  731.      |                 |   |     |   |    gehört
  732.      |                 |   |     |   +- Y-Koordinate der Position des Windows
  733.      |                 |   |     +- X-Koordinate der Position des Windows
  734.      |                 |   +- Breite des Windows
  735.      |                 +- Höhe des Windows
  736.      +- Titel des Windows. Steht hier ein `<no title>', so hat das Window
  737.         keine Titelzeile
  738.  
  739.    Aktionen:  Nach dem Anklicken eines Eintrages im ListView erscheint ein
  740. Requester mit zwei Gadgets:
  741.  
  742.    * `Continue':
  743.  
  744.      Es wird zum Hauptfenster zurückgekehrt.
  745.  
  746.    * `Close Window':
  747.  
  748.      Nach einer Sicherheitsabfrage wird versucht, das Window zu schließen.
  749.  
  750. Screen-Liste der IntuitionBase
  751. ------------------------------
  752.  
  753.  - Gadget: Screens (TASTE: S, KOMMANDOPARAMETER: S)
  754.  
  755.    Beispielausgabe:
  756.      Screentitle               H   W   X   Y Typ
  757.      ---------------------------------------------
  758.      Workbench Screen        272 684   0   0 W C
  759.      ^                       ^   ^     ^   ^ ^
  760.      |                       |   |     |   | +- Typ des angeklickten Screens.
  761.      |                       |   |     |   |    Mögliche Anzeigen:
  762.      |                       |   |     |   |    W   : Workbench-Screen
  763.      |                       |   |     |   |     P  : Public Screen
  764.      |                       |   |     |   |      C : Custom-Screen
  765.      |                       |   |     |   +- Y-Koordinate der Position des
  766.      |                       |   |     |      Screens
  767.      |                       |   |     +- X-Koordinate der Position des Screens
  768.      |                       |   +- Breite des Screens
  769.      |                       +- Höhe des Screens
  770.      +- Titelzeile des Screens
  771.  
  772.    Aktionen:  Nach dem Anklicken eines Eintrages im ListView erscheint ein
  773. Requester mit zwei Gadgets:
  774.  
  775.    * `Continue':
  776.  
  777.      Es wird zum Hauptfenster zurückgekehrt.
  778.  
  779.    * `Close Screen':
  780.  
  781.      Nach   einer  Sicherheitsabfrage  wird  versucht,  den  Screen  mit  allen
  782.      assoziierten Windows zu schließen.
  783.  
  784. Inputhandler-Liste
  785. ------------------
  786.  
  787.  - Gadget: HandlerInp (TASTE: H, KOMMANDOPARAMETER: H)
  788.  
  789.    Beispielausgabe:
  790.      Inputhandler name     Pri   Data     Code
  791.      ---------------------------------------------
  792.      Snap Input Handler     52 534E4150 003A46DE
  793.      ^                      ^  ^        ^
  794.      |                      |  |        +- Adresse des Codes, der bei der
  795.      |                      |  |           Aktivierung dieses Inputhandlers
  796.      |                      |  |           ausgeführt wird
  797.      |                      |  +- Zeiger auf den privaten Datenbereich des
  798.      |                      |     Inputhandlers
  799.      |                      +- Priorität des Inputhandlers
  800.      +- Name des Inputhandlers
  801.  
  802.    Aktionen:  Alle über das `input.device' direkt angemeldeten Input Handler
  803. werden angezeigt. Unter AmigaOS 2.0 übernimmt die `commodities.library' einen
  804. Großteil der Handler.
  805.  
  806. Allgemeine Systeminfo
  807. ---------------------
  808.  
  809.  - Gadget: Systeminfo (TASTE: Y, KOMMANDOPARAMETER: -)
  810.  
  811.    Beispielausgabe:
  812.                        Systeminfo
  813.      ----------------------------------------------
  814.      14.07.1993, 195. day, 28. week <- Datum, Tag und Woche
  815.      Tasks       : 30               <- Anzahl der entsprechenden
  816.      Libraries   : 24                  Systemobjekte
  817.      Ports       : 9
  818.      Volumes     : 11
  819.      Assigns     : 36
  820.      Fonts       : 5
  821.      Resources   : 9
  822.      Windows     : 4
  823.      Screens     : 2
  824.  
  825.    Aktionen:  Anzeige aller Systemobjekte (Tasks, Libraries, etc.) sowie Datum,
  826. Woche.
  827.  
  828. Hardware-Liste der ExpansionBase
  829. --------------------------------
  830.  
  831.  - Gadget: Hardware (TASTE: D, KOMMANDOPARAMETER: -)
  832.  
  833.    Beispielausgabe:
  834.                     Hardware/Expansion
  835.      ----------------------------------------------
  836.      ----- Hardware
  837.      Processor     : CPU 68030                <- Prozessortyp
  838.      Coprocessor   : FPU 68882                <- FPU-Typ
  839.      Memory Unit   : MMU 68030                <- MMU-Typ
  840.      Denise        : Normal Denise (8362)     <- Custom Chips
  841.      Agnus         : Normal Agnus
  842.      Chipset       : No AA-Chipset            <- Falls hier das AA-Chipset
  843.                                                  erkannt wurde, srehen hier
  844.      ----- Expansion                             noch mehr Infos
  845.      Type          : RAM Expansion              <- Beschreibung der
  846.      Company       : C= West Chester               Hardware-Erweiterung
  847.      Name          : A2630 MC68030 (2MB Stand.)
  848.      Init Action   : Need Driver
  849.                 >  : Private processed
  850.      Diagnosis     : No action attached
  851.      Manuf.nr.     : 514                        <- Hardware-Kennummern
  852.      Prod.nr.      : 81
  853.      Serial        : 0x00000000
  854.      Boardaddr.    : 0x00200000
  855.      Boardsize     : 2.097.152                  <- Hier steht die evtl.
  856.      Slotaddr.     : 0x00000020                    vorhandene Speichergröße
  857.      Slotsize      : 32                            der Erweiterung
  858.      
  859.      Summary       : 1 expansions found
  860.  
  861.    Aktionen:  Anzeige  des  Prozessor-  und  Co-Prozessortyps, wie er in der
  862. ExecBase verzeichnet ist, und aller internen Erweiterungen, dessen Einträge
  863. aus der ExpansionBase-Struktur entnommen wurden.
  864.  
  865. Abspeichern einer Liste
  866. -----------------------
  867.  
  868.  - Gadget: Save List (TASTE: -, KOMMANDOPARAMETER: -)
  869.  
  870.    Aktionen:  Die  aktuelle  angezeigt  Liste im ListView wird nach einer
  871. Abfrage mit einem Filerequester in die gewünschte Datei abgespeichert.
  872.  
  873. Springen zwischen Public Screens
  874. --------------------------------
  875.  
  876.  - Gadget: Jump (TASTE: J, KOMMANDOPARAMETER: -)
  877.  
  878.    Aktionen:  `RSYS'  schließt  das Hauptfenster, sucht in der Liste der
  879. Public Screens nach  dem  nächsten  geöffneten Screen, öffnet das
  880. Hauptfenster auf diesem und  holt  dann  den  Public  Screen  nach vorne.
  881. Existiert kein weiterer Public   Screen,   so   erscheint  eine  entsprechende
  882. Meldung  in  einem Systemrequester.
  883.  
  884. Das Modifizieren
  885. ================
  886.  
  887.    In den folgenden Listen ist eine Modifikation oder Anzeige von weiteren
  888. Eigenschaften  der  Einträge  möglich:  Tasks, Libraries, Ports, Volumes,
  889. Assignes, Fonts, Ressources, Windows und Screens.
  890.  
  891.    Die  entsprechenden  Datenstrukturen  werden  mit  maximaler Sicherheit
  892. modifiziert,  d.h.,  es  wird  im  Zweifelsfalle  mehrmals geprüft, ob das
  893. bearbeitete  Objekt  vor  und  nach  der  Modifikation existiert.  Da alle
  894. Systemlisten  nur *snapshot-artig* ausgelesen und angezeigt werden können, ist
  895. in  bestimmten  Fällen  eine  Modifikation nur eingeschränkt oder gar nicht
  896. möglich.   Das  ist  beispielsweise  der  Fall,  wenn  ein  Window
  897. modifiziert werden soll, das von dem entsprechenden Task schon geschlossen
  898. wurde.
  899.  
  900.    Als  Kontrollkriterium  wird primär die Adresse - diese ist als einzige im
  901. System  für  dieses  Objekt  eindeutig!   -  und sekundär der Name des
  902. jeweiligen  Objekts  herangezogen,  also  bei  Windows die Titelzeile, bei
  903. Tasks  der  Taskname etc.  Tritt in einem der beiden Fälle ein Fehler auf, so
  904. wird  die  Modifikation  mit  einer  Fehlermeldung  abgebrochen.  Eine
  905. Modifikation  der  Objekte  wird  erst  gar  nicht  begonnen,  falls in dem
  906. Namensfeld eines Objektes `RSYS' ein `-' eingetragen hat.  Diese Objekte
  907. können nicht eindeutig zugeordnet werden, weshalb diese also auch nicht
  908. modifiziert werden können.
  909.  
  910.    Da hierbei auf das verwendete Schutzprotokoll geachtet werden muß, hier ein
  911. paar Hinweise dazu.
  912.  
  913.    Intuition-Objekte werden beim Auslesen der Daten mit dem Protokoll
  914. "LockIBase() / UnlockIBase()" geschützt.  Damit werden die jeweiligen Listen
  915. vor der Veränderung durch Intuition-Routinen während des Auslesens
  916. ausreichend geschützt.  Bei der Veränderung der Objekte durch `RSYS' ist
  917. selten ein Schutzprotokoll erforderlich, da die Routinen von Intuition dieses
  918. meistens selbst erledigen.
  919.  
  920.    Alle  Exec-Objekte,  wie  Tasks, Ports, Libraries, etc., werden während des
  921. Auslesens durch ein "Forbid()/Permit()", im Falle von Tasks, sogar durch ein
  922. "Disable()/Enable()" vor Veränderung durch Systemroutinen geschützt.  Im
  923. Falle  der  Tasks ist zum Auslesen der Taskzeiger das Protokoll
  924. "Disable()/Enable()" zu  verwenden,  zum  Auslesen der Taskstruktur reicht
  925. jedoch ein "Forbid()/Permit()".
  926.  
  927.    "Disable()/Enable()" sollte deswegen verwendet werden, da die Systemliste in
  928. der  ExecBase durch den interruptgesteuerten Task-Scheduler laufend in ihrer
  929. Anordnung  geändert  wird  (man  denke nur an die Aktivierung eines Tasks,
  930. also  die  Umsetzung  des entsprechenden Taskknotenzeigers aus der Wait-Liste
  931. in   die   Ready-Liste   und   dann  in  den  Running-Zustand
  932. [ExecBase->ThisTask-Eintrag]).
  933.  
  934.    Die  Task-Struktur  selber  kann jedoch nur von einem Task oder Prozeß aus
  935. verändert  werden.   Daher  reicht  zum Auslesen der Taskstruktur das
  936. Protokoll  "Forbid()/Permit()"  aus.   Daraus  ergibt  sich  also  folgendes
  937. Schema:
  938.  
  939.         Reservieren der eigenen Struktur-Speicherbereiche
  940.      
  941.         "Forbid()";
  942.      
  943.            "Disable()";
  944.            Auslesen und Merken der Tasknodes
  945.            "Enable()";
  946.      
  947.            Auslesen der Taskstrukturen in eigene Strukturen (*ohne*
  948.            Verwendung von DOS-Routinen, also KEIN FGets(), Open() etc.)
  949.      
  950.         "Permit()";
  951.      
  952.         Auswerten der eigenen Strukturen
  953.         Freigeben der eigenen Struktur-Speicherbereiche
  954.  
  955.    Für die Implementation dieser Routinen könnt Ihr den dokumentierten
  956. Quelltext einsehen.
  957.  
  958. Das Menü
  959. ========
  960.  
  961.    In dem Menü befinden sich neben dem Window-Handling noch die Einträge für
  962. weitere Systemlisten - die aber seltener gebraucht werden - und das Handling
  963. einer internen Liste.  Weiterhin können vom Menü aus die Utilities gestartet
  964. und ein paar Änderungen an der Konfiguration von `RSYS' vorgenommen werden.
  965. Hier die Menüpunkte im einzelnen:
  966.  
  967. Project
  968. -------
  969.  
  970.  - Menüpunkt: Iconify (TASTENSEQUENZ: `RAMIGA-I')
  971.      Aktion:  Nach dem Aktivieren dieses Menüpunktes (direkt, ESC-Taste oder
  972.      `RAMIGA-I') wird das Hauptfenster geschlossen, und es erscheint auf der
  973.      WorkBench ein AppIcon.  Wurde `RSYS' vom CLI aus gestartet, wird durch ESC
  974.      das Programm beendet.
  975.  
  976.  - Menüpunkt: Help (TASTENSEQUENZ: `RAMIGA-H')
  977.      Aktion:  Die Environment-Variable `RSYSHELP' wird ausgelesen und der
  978.      Eintrag als vollständige Dateibezeichnung der Help-Datei von `RSYS'
  979.      verwendet.  Diese Datei wird ausgelesen und im ListView dargestellt.
  980.  
  981.  - Menüpunkt: Reload actionfile (TASTENSEQUENZ: -)
  982.      Aktion:  Wurde  die  Aktionsdatei verändert, so kann sie mit diesem
  983.      Menüpunkt erneut gelesen werden.
  984.  
  985.  - Menüpunkt: About... (TASTENSEQUENZ: -)
  986.      Aktion:  In  einem  Systemrequester  erscheint  eine  kurze  Information
  987.      zu  diesem Programm und die Adresse des Autors.
  988.  
  989.  - Menüpunkt: Quit `RSYS'... (TASTENSEQUENZ: `RAMIGA-Q')
  990.      Aktion:  Das  Programm wird mit einer Sicherheitsabfrage beendet.  Bei dem
  991.      erschei- nenden Systemrequester sind drei Möglichkeiten wählbar:
  992.         * `Ja': Das Programm wird beendet.
  993.  
  994.         * `Iconify': Das Hauptfenster verschwindet und ein AppIcon erscheint
  995.           auf der WorkBench.
  996.  
  997.         * `Nein': Rückkehr zum Hauptwindow.
  998.  
  999. Other Lists
  1000. -----------
  1001.  
  1002.    Ab `RSYS' 1.2 wurde das Menü mit den weiteren verfügbaren Listen
  1003. umgestellt. Die Listen sind jetzt nach der entsprechenden Library geordnet.
  1004.  
  1005. Exec
  1006. ....
  1007.  
  1008.  - Menüpunkt: Software Devices (TASTENSEQUENZ: `RAMIGA-1')
  1009.      Beispielausgabe:
  1010.           Devicename                  Version OpenCnt
  1011.           ----------------------------------------------
  1012.           audio.device                 37.10       0
  1013.           ^                            ^           ^
  1014.           |                            |           +-- Anzahl der Tasks oder
  1015.           |                            |               Prozesse, die das
  1016.           |                            |               Device öffneten
  1017.           |                            +-- Versions und Revisionsnummer
  1018.           +-- Name des Devices
  1019.  
  1020.      Aktionen:  Alle  Handler und Treiber werden angezeigt, also die Software
  1021.      Devices, die Handler oder Treiber für die Hardware darstellen.
  1022.  
  1023.  - Menüpunkt: Vectors (TASTENSEQUENZ: `RAMIGA-2')
  1024.      Beispielausgabe:
  1025.                          System Vectors
  1026.           ----------------------------------------------
  1027.           ----- Capture vectors
  1028.           ColdCapture    : 0x00000000
  1029.           CoolCapture    : 0x00000000
  1030.           WarmCapture    : 0x00000000
  1031.           
  1032.           ----- Kick pointer
  1033.           KickMemPtr     : 0x00000000
  1034.           KickTagPtr     : 0x00000000
  1035.           KickCheckSum   : 0x00000000
  1036.           
  1037.           ----- Exec special pointer
  1038.           Debug entry    : 0x00F82D58
  1039.           ResModules     : 0x002003E0
  1040.           MMU-Lock       : 0x00000000
  1041.  
  1042.      Aktion:  Die   Capture-Vektoren,  Kick-Pointer  und  die  speziellen
  1043.      Vektoren  der ExecBase  werden angezeigt.  Die Capture-Vektoren können
  1044.      einen Hinweis auf einen Virus sein, falls diese nicht `NULL' sind.
  1045.  
  1046.  - Menüpunkt: CLI processes (TASTENSEQUENZ: -)
  1047.      Beispielausgabe:
  1048.           CLI nr. Name             Pri  Stack
  1049.           ----------------------------------------------
  1050.           CLI 2   ConClip Process    0   4000
  1051.           ^       ^                  ^   ^
  1052.           |       |                  |   +-- Stack-Größe des CLI's
  1053.           |       |                  +-- Priorität des Prozesses
  1054.           |       +-- Name des CLI-Prozesses
  1055.           +-- Nummer des Prozesses in der Liste der CLI's
  1056.  
  1057.      Aktion:  AmigaOS 2.0 erlaubt ein einfaches Auslesen der geöffneten CLI's.
  1058.      Alle geöffneten CLI's werden im ListView angezeigt.  Die Numerierung ist
  1059.      systembedingt nicht fortlaufend.
  1060.  
  1061.  - Menüpunkt: Resident programs (TASTENSEQUENZ: -)
  1062.      Beispielausgabe:
  1063.           Resident name    UseCount  Type
  1064.           ----------------------------------------------
  1065.           Alias                  -2 INTERNAL
  1066.           ^                      ^  ^
  1067.           |                      |  +-- Typ des residenten Kommandos
  1068.           |                      |      INTERNAL : Ist in einer Shell
  1069.           |                      |                 eingebaut
  1070.           |                      |      EXTERNAL : Mit `Resident'
  1071.           |                      |                 eingebunden
  1072.           |                      +-- Anzahl der Benutzungen dieses Befehls.
  1073.           |                          Ist er -1, handelt es sich um einen
  1074.           |                          Handler oder CLI. -2 steht für einen
  1075.           |                          eingebauten Befehl.
  1076.           |                          Alle Zahlen > 0 geben die
  1077.           |                          Benutzungsanzahl an
  1078.           +-- Name des Handlers oder Befehls
  1079.  
  1080.      Aktion:  Die  gezeigte Liste entspricht fast der Ausgabe des Befehls
  1081.      `resident' des AmigaOS  2.0.   Jedoch  werden hier *alle* residenten
  1082.      Programme aufgelistet, auch die, die systemintern vorhanden sind.
  1083.  
  1084.  - Menüpunkt: Semaphores (TASTENSEQUENZ: -)
  1085.      Beispielausgabe:
  1086.           Semaphore name          Pri Ownertask
  1087.           ----------------------------------------------
  1088.           « SetPatch »              0 <no task>
  1089.           ^                         ^ ^
  1090.           |                         | +-- Name des Besitzer-Tasks
  1091.           |                         |     der Semaphore
  1092.           |                         +-- Priorität der Semaphore
  1093.           +-- Name der Semaphore
  1094.  
  1095.      Aktion:  Die Semaphore-Liste der ExecBase wird ausgelesen und dargestellt.
  1096.  
  1097. DOS
  1098. ...
  1099.  
  1100.  - Menüpunkt: Volume Locks (TASTENSEQUENZ: `RAMIGA-3')
  1101.      Beispielliste:
  1102.           File                     Access
  1103.           -----------------------------------
  1104.           AmigaDOS:                 READ
  1105.           ^                         ^
  1106.           |                         +-- Art des Locks:
  1107.           |                             READ : Zum Lesen geöffnet,
  1108.           |                                    auch mehrere Zugriffe
  1109.           |                                    möglich (shared)
  1110.           |                             WRITE: Exklusiv-Zugriff
  1111.           |                             -----: Unbekannter Typ
  1112.           +-- Pfadbezeichnung, auf dem der
  1113.               Lock existiert
  1114.  
  1115.      Aktion:  Alle vom System reservierten Dateien werden angezeigt.  Das sind
  1116.      alle Verzeichnisse, die durch ein "Open()" oder ein "Lock()" gehalten
  1117.      werden.
  1118.  
  1119.  - Menüpunkt: Physical Devices (TASTENSEQUENZ: `RAMIGA-2')
  1120.      Beispielausgabe:
  1121.           Device name   Driver/Handler
  1122.           ----------------------------------------------
  1123.           PIPE:         L:Queue-Handler
  1124.           ^             ^
  1125.           |             +-- Name des Handlers oder Treibers
  1126.           +-- Name des Devices
  1127.  
  1128.      Aktion:  Es  werden  alle  Devices  angezeigt,  die hardware-bezogen
  1129.      vorkommen, also Schnittstellen, Festplatten, Floppies, etc.
  1130.  
  1131. Graphics
  1132. ........
  1133.  
  1134.  - Menüpunkt: Display Modes (TASTENSEQUENZ: `RAMIGA-4')
  1135.      Beispielliste:
  1136.           Name              Depth   MinR      MaxR
  1137.           ----------------------------------------------
  1138.           PAL:High Res Lace    4    32,1    1008,1024
  1139.           ^                    ^    ^       ^
  1140.           |                    |    |       +-- Maximale Größe des
  1141.           |                    |    |           Screenrasters
  1142.           |                    |    +-- Minimale Größe des Screenrasters
  1143.           |                    +-- Tiefe des Screens, der Screen hat dann 2^n
  1144.           |                        Farben zur Verfügung, in diesem Fall also
  1145.           |                        2^4 = 16 Farben
  1146.           +-- Name des Monitortreibers
  1147.  
  1148.      Aktion:  Alle im System installierten Monitortreiber werden angezeigt.
  1149.  
  1150.  - Menüpunkt: Blitter Wait Queue (TASTENSEQUENZ: -)
  1151.      Aktion:  Die Tasks, die auf den Blitter warten, werden angezeigt.
  1152.  
  1153.  - Menüpunkt: TOF Wait Queue (TASTENSEQUENZ: -)
  1154.      Aktion:  Die Tasks, die auf das Top-Of-Frame warten, werden angezeigt.
  1155.  
  1156. Diskfont
  1157. ........
  1158.  
  1159.  - Menüpunkt: Fonts in FONTS: (TASTENSEQUENZ: `RAMIGA-5')
  1160.      Beispielausgabe:
  1161.           Font name            Type   Y Style
  1162.           ----------------------------------------------
  1163.           KaraGRANITE.font     DISK  55    N    C
  1164.           ^                    ^     ^     ^
  1165.           |                    |     |     +-- Style des Fonts:
  1166.           |                    |     |         N      : Normal
  1167.           |                    |     |          U     : Unterstrichen
  1168.           |                    |     |           B    : Bold
  1169.           |                    |     |            I   : Kursiv (italic)
  1170.           |                    |     |             E  : Extended
  1171.           |                    |     |              C : Colour-Font
  1172.           |                    |     |               T: Tagged
  1173.           |                    |     +-- Größe des Fonts in Pixel
  1174.           |                    +-- Typ des Fonts, ROM- oder DISK-Font
  1175.           +-- Name des Fonts
  1176.  
  1177.      Aktion:  Das logische Verzeichnis `FONTS:' wird ausgelesen und die
  1178.      ermittelten Fonts angezeigt.  Dazu gehören auch die Fonts, die bereits in
  1179.      das System eingebunden sind. Nach einem Anklicken eines ListView-Eintrages
  1180.      wird der Font in einem eigenen Fenster angezeigt.
  1181.  
  1182. Intuition
  1183. .........
  1184.  
  1185.  - Menüpunkt: Public Screens (TASTENSEQUENZ: `RAMIGA-6')
  1186.      Aktion:  Hier  werden  alle  im System geöffneten Public Screens, also
  1187.      die Screens, die  öffentlich  und  für  jedes  Programm zugänglich
  1188.      sind, angezeigt.  Die Anzeige besteht aus der Adresse, dem Namen, der
  1189.      Visitor-Anzahl (die Anzahl der geöffneten Windows auf diesem Screen) und
  1190.      dem zugehörigen Signal-Task, die aus der `PublicScreenNode'-Struktur
  1191.      ausgelesen werden können.
  1192.  
  1193.  - Menüpunkt: Gadgets (TASTENSEQUENZ: -)
  1194.      Beispielliste:
  1195.           Gadget text    Typ    PosX PosY    W    H
  1196.           ----------------------------------------------
  1197.           * SCR: Workbench Screen
  1198.           <has image>    SYSWUP  -22    0   23   11
  1199.           ** WIN: RU 1.2 FreeWare!
  1200.           Ja             REQBOO   14   26   35    9
  1201.           ^  ^           ^  ^     ^    ^    ^     ^
  1202.           |  |           |  |     |    |    |     +-- Höhe des Gadgets
  1203.           |  |           |  |     |    |    +-- Breite des Gadgets
  1204.           |  |           |  |     |    +-- Y-Position der linken oberen
  1205.           |  |           |  |     |        Ecke des Gadgets
  1206.           |  |           |  |     +-- X-Position der linken oberen
  1207.           |  |           |  |         Ecke des Gadgets
  1208.           |  |           |  +-- Aktivierungstyp des Gadgets:
  1209.           |  |           |      WDR: Window dragging
  1210.           |  |           |      SDR: Screen dragging
  1211.           |  |           |      WUP: Window upfront
  1212.           |  |           |      SUP: Screen upfront
  1213.           |  |           |      WDO: Window downback
  1214.           |  |           |      SDO: Screen downback
  1215.           |  |           |      CLO: Close Gadget
  1216.           |  |           |      BOO: Boolean Gadget
  1217.           |  |           |      G02: Dummy typ
  1218.           |  |           |      PRO: Proportional Gadget
  1219.           |  |           |      STR: String Gadget
  1220.           |  |           |      CUS: Custom Gadget
  1221.           |  |           |      SIZ: Sizing Gadget
  1222.           |  |           |      UNK: Unbekannter Typ
  1223.           |  |           +-- Objekttyp des Gadgets:
  1224.           |  |               SYS: System Gadget
  1225.           |  |               SCR: Screen Gadget
  1226.           |  |               GZZ: Gimmezerozero Gadget
  1227.           |  |               REQ: Requester Gadget
  1228.           |  |               CUS: Andere Gadgets
  1229.           |  +-- Window oder Screen-Titelzeile
  1230.           +-- Gadgettext, falls einer existiert, sonst `<has image>' oder
  1231.               ein `-', falls ein Image existiert oder kein Text vorhanden
  1232.               ist.
  1233.  
  1234.      Aktion:  Nach dem Anklicken werden alle Gadgets auf allen Screens und in
  1235.      allen Windows ermittelt und die wichtigsten Daten angezeigt.  Während
  1236.      dieser Aktion kann es passieren, daß man nicht weiterarbeiten kann.  Das
  1237.      ist normal!  Damit die Intuition-Listen systemkonform durchsucht werden
  1238.      können, muß während dieser Zeit die IntuitionBase mit dem Paar
  1239.      "LockIBase()/UnlockIBase()" gesperrt werden.  Der Zeitraum der Sperrung
  1240.      ist aber i.a.  so kurz, daß er vom Benutzer kaum wahrgenommen wird.
  1241.  
  1242. Preferences
  1243. ...........
  1244.  
  1245.  - Menüpunkt: Preferences (TASTENSEQUENZ: `RAMIGA-7')
  1246.      Beispielausgabe:
  1247.                             Preferences
  1248.           ----------------------------------------------
  1249.           ----- Input/Keyboard:
  1250.           Keyboard repeat speed  : 0 sec 6000   µsec
  1251.           Keyboard repeat delay  : 0 sec 400000 µsec
  1252.           Double click time      : 0 sec 800000 µsec
  1253.           
  1254.           ----- Pointer
  1255.           "Hot spot" X           : -1
  1256.           "Hot spot" Y           : 0
  1257.           Pointer Sprite Col 0   : 0x0E44
  1258.           Pointer Sprite Col 1   : 0x0000
  1259.           Pointer Sprite Col 2   : 0x0EEC
  1260.           Pointer Sensitivity    : 1
  1261.           
  1262.           ----- Workbench
  1263.           Height default font    : 8
  1264.           Standard Color 0       : 0x0AAA
  1265.           Standard Color 1       : 0x0000
  1266.           Standard Color 2       : 0x0FFF
  1267.           Standard Color 3       : 0x009A
  1268.           View X-Offset          : -26
  1269.           View Y-Offset          : -7
  1270.           View init offset X     : 129
  1271.           View init offset Y     : 44
  1272.           Height default font    : 8
  1273.           CLI availability       : CLI enabled
  1274.           Workbench interlaced   : No
  1275.           Override WB width      : 0
  1276.           Override WB height     : 0
  1277.           Override WB depth      : 0
  1278.           Extension Info size    : 0
  1279.           
  1280.           ----- Printer
  1281.           Printer port           : Parallel port
  1282.           Printer type           : Custom
  1283.           Printer Driver         : HP_LaserJet
  1284.           Print pitch            : 0
  1285.           Print quality          : Letter
  1286.           Lines per inch         : 6 LPI
  1287.           Left margin            : 0
  1288.           Right margin           : 75 Chars
  1289.           Print image            : Positive
  1290.           Print aspect           : Horizontal
  1291.           Print shade            : Color
  1292.           Print Threshold        : 7
  1293.           Paper length           : 66 Rows
  1294.           Paper type             : Single paper
  1295.           Temp file for printer  :
  1296.           Affect Rows/Columns    : 10
  1297.           User preference flags  : 0x0000080F
  1298.           Max width of picture   : 0 inch
  1299.           Max height of picture  : 0 inch
  1300.           Offset of picture      : 0 inch
  1301.           Print density          : 4
  1302.           
  1303.           ----- Serial configuration
  1304.           Baud rate              : MIDI (31.250 baud)
  1305.           Read bits              : 8
  1306.           Write bits             : 8
  1307.           Stop bits              : 1
  1308.           Parity                 : None
  1309.           Handshake              : RTS/CTS
  1310.  
  1311.      Aktion:  Die Preferences-Struktur wird ausgelesen und mit Klartext versehen
  1312.      angezeigt.
  1313.  
  1314.  - Menüpunkt: Printer Data (TASTENSEQUENZ: -)
  1315.      Beispielausgabe:
  1316.                            Printer data
  1317.           ----------------------------------------------
  1318.           Printer name           : HP_LaserJet
  1319.           Version                : 35
  1320.           Revision               : 59
  1321.           Printer class          : 1
  1322.           Color class            : 1
  1323.           Print columns          : 0
  1324.           Char sets              : 0
  1325.           Print head pins        : 1
  1326.           Max X-dots in dump     : 2325 dots
  1327.           Max Y-dots in dump     : 3198 dots
  1328.           Density X              : 300 dots/inch
  1329.           Density Y              : 300 dots/inch
  1330.           Timeout                : 60 sec
  1331.  
  1332.      Aktion:  Alle Daten in der Preferences-Datei, speziell die des
  1333.      Druckertreibers, werden angezeigt.
  1334.  
  1335.  - Menüpunkt: ENV-Variables (TASTENSEQUENZ: -)
  1336.      Beispielausgabe:
  1337.           ENV-Variable  Content
  1338.           ----------------------------------------------
  1339.           FREE_DRIVES   RAM:,df0:,df1:,vd0:,dh0:,dh1
  1340.           ^             ^
  1341.           |             +-- Inhalt der Environmentvariablen
  1342.           |                 <no text> : Die Variable ist keine Textdatei
  1343.           |                 <dir>     : Ein weiteres `ENV:'-Verzeichnis
  1344.           +-- Name der Variablen
  1345.  
  1346.      Aktion:  Das logische Verzeichnis `ENV:' wird ausgelesen und die Inhalte
  1347.      der Environmentvariablen im ListView dargestellt.  Hierbei wird davon
  1348.      ausgegangen, daß sich in einer `ENV'-Variablen *eine* Zeile befindet.
  1349.      Sollten sich mehr als eine Zeile in der entsprechenden Datei befinden,
  1350.      werden die nachfolgenden Zeilen nicht ausgelesen.
  1351.  
  1352.      Ab Version 1.2 werden die Dateien überprüft, ob eine Textdatei vorliegt.
  1353.      Es kommt immer mal vor, daß auch Binärdateien im `ENV:'-Verzeichnis zu
  1354.      finden sind. Die Ausgabe dieser binären Daten ist etwas unsauber.
  1355.  
  1356. Other Libraries
  1357. ...............
  1358.  
  1359.  - Menüpunkt: Commodities (TASTENSEQUENZ: `RAMIGA-8')
  1360.      Beispielausgabe:
  1361.           Commodity name      Prio
  1362.           ----------------------------------------------
  1363.           RSys                   0
  1364.           ^                      ^
  1365.           |                      +-- Priorität des Brokereintrags
  1366.           +-- Name des Brokers
  1367.  
  1368.      Aktion:  Alle Commodities, die auch im Fenster des Programmes `Exchange'
  1369.      erscheinen, werden angezeigt.  Dazu wird eine undokumentierte Funktion
  1370.      verwendet, die aber in der `commodities.library' enthalten ist.
  1371.  
  1372.      Anm.: Unter OS 3.0 wird ein Zeiger auf die Liste der Libraries
  1373.      zurückgegeben. Diese Funktion hat wurde also irgendwohin verlagert. Ein
  1374.      gutes Beispiel dafür, daß man nicht ungestraft undokumentierte Funktionen
  1375.      verwendet!
  1376.      
  1377.      Anm.  2:  Ich habe einen legalen Weg herausgefunden, wie man sich eine
  1378.      Liste aller Commodity-Einträge besorgen kann.  Dazu verwende ich einfach
  1379.      den Broker von RSys.  Beim Einrichten des Brokers wird ein Zeiger auf ein
  1380.      CxObj zurückgegeben.  Diesen *caste* (konvertiere) ich auf einen `struct
  1381.      Node'-Zeiger um und erhalte damit, analog zu den Input-Handlern, einen
  1382.      Einsprung in die Liste der angemeldeten Broker-Objekte!  Jetzt brauche ich
  1383.      nur noch zu dem Anfang der Liste zu hangeln (Commodore erhalte uns die
  1384.      doppelt verketteten Listen!  :-)) und von dort aus die Liste erneut
  1385.      durchzuscannen. Schon habe ich meine Liste!  Und alles durch eine
  1386.      `undokumentierte Vermutung', ich liebe `C'!
  1387.  
  1388.  - Menüpunkt: Amigaguide XRef (TASTENSEQUENZ: `RAMIGA-9')
  1389.      Beispielliste:
  1390.           XRef keyword   Type File           Line
  1391.           ----------------------------------------------
  1392.           Gadget         STRU +intuition.h     216
  1393.           ^              ^    ^^               ^
  1394.           |              |    ||               +-- Zeile des Includefiles,
  1395.           |              |    ||                   in der die Struktur
  1396.           |              |    ||                   vorkommt
  1397.           |              |    ++-- Dateibezeichnung Referenzfiles
  1398.           |              |         Falls die Bezeichnung länger ist, wird
  1399.           |              |         ein `+' anstelle des Pfades gesetzt
  1400.           |              +-- Der Typ des Eintrags. Hier können
  1401.           |                  folgende Werte stehen:
  1402.           |                   `LINK' : Amigaguide Link
  1403.           |                   `FUNC' : Funktionsbeschreibung
  1404.           |                            (z.B. C-Routine)
  1405.           |                   `COMM' : Befehlsbeschreibung
  1406.           |                   `INCL' : Include-Datei eines Compilers
  1407.           |                   `MACR' : Macro-Beschreibung
  1408.           |                   `STRU' : Struktur-Beschreibung
  1409.           |                            (z.B struct Gadget)
  1410.           |                   `FIEL' : Ein Feld einer Struktur
  1411.           |                   `TYPD' : Datentyp-Beschreibung
  1412.           |                            (z.B. typedef)
  1413.           |                   `DEFI' : #define-Macro-Beschreibung
  1414.           +-- Schlüsselwort des Objektes
  1415.  
  1416.      Aktion:  Mit dem Befehl LoadXRef des Amigaguide-Entwicklersystems können
  1417.      Kreuzreferenzen in den Speicher des Amigas geladen werden. Diese stehen
  1418.      dann bei jeder Amigaguide Session dem Benutzer zur Verfügung. Welche
  1419.      Informationen geladen sind, kann man mit diesem Menüpunkt erfahren.
  1420.  
  1421. Actions
  1422. -------
  1423.  
  1424.  - Menüpunkt: CRC Check
  1425.      Aktion:  Es erscheint eine kleines Window mit mehreren Gadgets.  Mit dem
  1426.      `Select'-Gadget kann man in dem erscheinenden Filerequester eine Datei
  1427.      auswählen, von der die CRC-Checksumme berechnet werden soll.  In dem
  1428.      Cycle-Gadget kann man den Modus, CRC-16 oder CRC-32, einstellen.  Hierbei
  1429.      ist zu beachten, daß die CRC-16-Methode nur für Dateien mit einer Größe
  1430.      kleiner als 65536 Bytes verwendet werden kann.
  1431.  
  1432.      Für größere Dateien ist die `CRC32'-Methode zu wählen.  Ist die Datei
  1433.      gewählt (der Dateiname erscheint in dem `File'-Gadget), wird mit dem
  1434.      `Compute'-Gadget die Berechnung gestartet.  Die berechnete CRC-Summe
  1435.      erscheint dann in hexadezimaler Form im `CRC'-Gadget.
  1436.  
  1437.  - Menüpunkt: Crypt
  1438.      Aktion:  Es erscheint wiederum ein kleines Window mit acht Gadgets.  Im
  1439.      `Source'-Gadget kann die Quelldatei, die kodiert werden soll, direkt
  1440.      eingegeben, oder mit dem danebenliegenden Gadget per Filerequester
  1441.      ausgewählt werden.  Ebenso bei dem `Dest'-Gadget, in dem der Name der Datei
  1442.      eingetragen wird, in der die kodierten Daten gespeichert werden.  Es
  1443.      werden zwei Modi zur Verschlüsselung von Text- oder Binärdateien
  1444.      angeboten.
  1445.  
  1446.      Die Modi können in dem Cyclegadget ausgewählt werden.  `Crypt' verwendet
  1447.      die Verschlüsselung von Dateien mittels einem *Zellular-Automaten*.
  1448.      Diese Routine habe ich aus Olaf 'Olsen' Barthels `term'-Source geratzt,
  1449.      weswegen er u.a.  auch ganz unten bei den Danksagungen erwähnt wird.
  1450.      Während `Crypt' auf jede Art von Dateien angewendet werden kann, wurde die
  1451.      `ROT 13'-Methode nur für Textdateien implementiert.  Dabei werden einfach
  1452.      die Buchstaben eines Textes um 13 Zeichen "verschoben".  Hierbei ist auch
  1453.      nicht möglich, wie bei `Crypt' ein Paßwort zu verwenden.
  1454.  
  1455.  - Menüpunkt: List Hunks
  1456.      Aktion:  Es erscheint ein Window mit drei Gadgets, einem ListView und zwei
  1457.      Booleangadgets, `Load' und `Save List'.  Zunächst wird mit `Load' und dem
  1458.      dann erscheinenden Filerequester eine Datei ausgewählt.  Danach wird
  1459.      diese Datei (i.a.  eine ausführbare oder ladbare Datei) bezüglich ihrer
  1460.      Hunk-Struktur analysiert.  Die ermittelten Daten erscheinen dann in dem
  1461.      ListView.  Wenn es sich um eine Library oder eine Objektbibliothek
  1462.      handelt, kann die Ausgabe etwas dauern.  Deshalb kann man die Aktion
  1463.      jederzeit durch das Anklicken des Closegadgets und nach einer
  1464.      Sicherheitsabfrage abbrechen.  Mit dem `Save List'-Gadget kann dann die
  1465.      Liste in eine auszuwählende Datei abgespeichert werden.
  1466.  
  1467.  - Menüpunkt: Find File
  1468.      Aktion:  Nach  der  Anwahl  diese  Menüpunktes erscheint ein großes
  1469.      Window mit zehn Gadgets.  Diese werden jetzt der Reihe nach beschrieben:
  1470.  
  1471.       - ListView: Devices
  1472.           In  diesem ListView stehen alle angemeldeten Devices und Assigns.
  1473.           Wenn ein  Eintrag angeklickt wird, erscheint der Eintrag in dem
  1474.           danebenliegenden ListView.
  1475.  
  1476.       - ListView: Selected Devices
  1477.           Damit  werden  alle die Verzeichnisse angewählt auf denen Dateien
  1478.           gesucht werden sollen.  Jeder Eintrag, der in den beiden ListViews
  1479.           angeklickt wird, erscheint  automatisch  in  dem  anderen  ListView.
  1480.           Bei einem Eintrag mit einem   `-'  davor  handelt  es  sich  um  ein
  1481.           Assign.   Ich  habe  diese Kennzeichnung  deshalb so gewählt, weil
  1482.           ich dann entsprechend die Einträge sortieren kann.  Erst die
  1483.           *echten*, dann die *logischen* Devices.
  1484.  
  1485.       - Cycle-Gadget: Case sense/No case sense
  1486.           Hier kann gewählt werden, ob die Dateien *case sensitive* (Groß-
  1487.           und Kleinschreibung wird berücksichtigt) oder *case insensitive*
  1488.           (Groß- und Kleinschreibung werden nicht unterschieden) gesucht
  1489.           werden.  Lautet z.B.  das Suchmuster `Test.exe', so wird mit `No case
  1490.           sense' sowohl die Datei `Test.exe', als auch die Datei `TeSt.ExE'
  1491.           gefunden.
  1492.  
  1493.       - Boolean Gadget: Sel all
  1494.       - Boolean Gadget: Sel none
  1495.           Damit  können  alle Einträge vom linken ListView in das rechte
  1496.           gebracht werden  (`Sel  all':   alle Verzeichnisse werden durchsucht)
  1497.           und umgekehrt (`Sel none':  Kein Verzeichnis soll durchsucht werden).
  1498.  
  1499.       - Boolean Gadget: Start/Stop Search
  1500.           Wurden Verzeichnisse ausgewählt und im Pattern-Gadget ein Suchmuster
  1501.           eingegeben, so ist dieses Gadget anwählbar und startet die Suche in
  1502.           den Verzeichnissen des `Selected Devices'-ListViews.  Wird das Gadget
  1503.           während eine Suche angeklickt, wird nach einer Sicherheitabfrage der
  1504.           Suchvorgang abgebrochen.
  1505.  
  1506.       - Boolean Gadget: Save found list
  1507.           Nach der Anwahl erscheint ein Filerequester, in dem die Namen der
  1508.           gefundenen Dateien in eine auszuwählende Datei abgespeichert werden
  1509.           können.
  1510.  
  1511.       - String Gadget: Pattern
  1512.           Hier kann ein Suchmuster (Dateiname oder Pattern) eingegeben werden.
  1513.           Hierbei gelten die üblichen Wildcards und Suchmuster des AmigaOS.
  1514.  
  1515.       - Cycle Gadget: Dirs + Files/Files/Directories
  1516.           Hier  kann  gewählt  werden,  was für ein Typ von Datei gefunden
  1517.           werden soll.
  1518.  
  1519.       - ListView: Found files/dirs
  1520.           In  diesem  ListView erscheinen alle gefunden Einträge mit
  1521.           vollständiger Pfadbezeichnung.   Diese  Liste  kann  nach  dem
  1522.           Anklicken des `Save found list'-Gadgets in eine Datei abgespeichert
  1523.           werden.
  1524.  
  1525.  - Menüpunkt: Format Disk
  1526.      Aktion:  Mit `Format Disk' wird eine kleine Schnittstelle zum
  1527.      `Format'-Befehl des AmigaDOS angeboten.  Die einzelnen Gadgets werden im
  1528.      folgenden näher beschrieben.
  1529.  
  1530.       - Stringgadget: Format
  1531.           In diesem Gadget steht der vollständige Pfadprogrammname des zu
  1532.           verwendenden `Format'-Befehls.  Dieser lautet üblicherweise
  1533.                   `SYS:System/Format'.
  1534.           Mit  dem  nebenstehenden  `Select'-Gadget  kann  das
  1535.           `Format'-Programm mit einem Filerequester ausgewählt werden.
  1536.  
  1537.       - ListView: Devices
  1538.           In  diesem ListView erscheinen alle formatierbaren Devices
  1539.           alphabetisch geordnet.   Das  ausgewählte  Device  wird  dann im
  1540.           zugehörigen Textgadget darunter angezeigt.
  1541.  
  1542.       - Stringgadget: Disk label
  1543.           Hier  wird  der Name des Mediums (voreingestellt und systemkonform
  1544.           `Empty') eingetragen.
  1545.  
  1546.       - Cycle: Icons/No Icons
  1547.       - Cycle: OFS/FFS
  1548.       - Cycle: International/No international
  1549.           Mit diesen Cyclegadgets können weitere Formatierungsvorgaben
  1550.           ausgewählt werden, also ob ein `Trashcan' auf dem formatierten Medium
  1551.           erzeugt, das Medium mit dem alten Filesystem oder dem Fastfilesystem
  1552.           formatiert und ob es im `internationalen Modus' formatiert werden
  1553.           soll.
  1554.  
  1555.       - Stringgadget: <ohne Namen>
  1556.           In  diesem  Stringgadget  ohne Namen steht der vollständige Befehl,
  1557.           der nach Festlegung aller Kriterien als eigenständiger Prozeß
  1558.           ausgeführt wird.
  1559.  
  1560.       - Booleangadgets: Format
  1561.       - Booleangadget: Quick
  1562.           Mit   diesen   Gadgets   wird   nach   einer   Sicherheitsabfrage
  1563.           das `Format'-Programm gestartet.  Mit `Format' wird das Medium auch
  1564.           physikalisch formatiert, mit `Quick' werden nur die Root-Blöcke
  1565.           überschrieben und so die eventuell vorhandenen Daten überschrieben.
  1566.  
  1567.  - Menüpunkt: Save windows
  1568.      Aktion:  Nach der Auswahl dieses Menüpunktes erscheint ein kleines
  1569.      Fenster mit drei Gadgets.
  1570.  
  1571.       - ListView: Windows
  1572.           In  diesem  ListView  erscheinen alle geöffneten Windows, die im
  1573.           System bekannt  sind.  Dabei werden auch die aufgeführt, die auf
  1574.           anderen Screens als dem WorkBench Screen geöffnet wurden.
  1575.  
  1576.       - Boolean: IFF File
  1577.           Wurde ein Fenster angewählt, wird dieses Gadget aktiviert.  Nach dem
  1578.           Anklicken erscheint ein Filerequester mit der Aufforderung, eine Datei
  1579.           auszuwählen, in der das angewählte Window als IFF-Datei
  1580.           abgespeichert werden soll.
  1581.  
  1582.       - Boolean: Rescan windows
  1583.           Damit kann die Window-Liste aktualisiert werden.  Dies geschieht nach
  1584.           dem Abspeichern eines Windows automatisch.
  1585.  
  1586.  - Menüpunkt: Check Libraries
  1587.      Aktion:  Alle  im  ROM  angelegten Libraries werden gecheckt, ob sie von
  1588.      anderen Programmen gepatcht wurden.  Sehr nützlich, um eventuell
  1589.      installierte Viren aufzuspüren.
  1590.  
  1591. Internal List
  1592. -------------
  1593.  
  1594.  - Menüpunkt: Save current list (TASTENSEQUENZ: `RAMIGA-S')
  1595.      Aktion:  Die   angezeigte  Liste  wird  in  eine  `RSYS'-interne  Liste
  1596.      kopiert  und gespeichert.    Der   Inhalt   bleibt   erhalten,   bis  eine
  1597.      neue  Liste abgespeichert wird,  der  Menüpunkt `Kill saved list'
  1598.      gewählt wurde oder das Programm beendet wird.
  1599.  
  1600.  - Menüpunkt: Restore saved list (TASTENSEQUENZ: `RAMIGA-R')
  1601.      Aktion:  Die `RSYS'-interne Liste wird in das ListView eingetragen.  Die
  1602.      ursprüngliche Liste kann durch ein nochmaliges Anklicken des
  1603.      entsprechenden Gadgets wieder erzeugt werden.  Die `RSYS'-interne Liste
  1604.      bleibt dabei erhalten.
  1605.  
  1606.  - Menüpunkt: Kill saved list (TASTENSEQUENZ: -)
  1607.      Aktion:  Eine   gespeicherte   `RSYS'-interne  Liste  wird  gelöscht  und
  1608.      die  damit verbundenen Speicherbereiche freigegeben.
  1609.  
  1610. Flushing
  1611. --------
  1612.  
  1613.  - Menüpunkt: Flush Libraries
  1614.      Aktion:  Entfernt  alle  Libraries  aus  dem  System, die einen Open-Count
  1615.      von 0 haben.   Diese  sind  geschlossen  und entfernen sich meistens nicht
  1616.      selbst aus dem System.
  1617.  
  1618.  - Menüpunkt: Flush Fonts
  1619.      Aktion:  Entfernt  alle  Fonts  aus dem System, die nicht mehr verwendet
  1620.      werden.
  1621.  
  1622.  - Menüpunkt: Flush all libraries and Fonts
  1623.      Aktion:  Entspricht beiden Menüpunkten `Flush Libraries' und `Flush
  1624.      Fonts'.
  1625.  
  1626. Clip
  1627. ----
  1628.  
  1629.  - Menüpunkt: Clip entry... (TASTENSEQUENZ: `RAMIGA-C')
  1630.      Aktion:  Nach Anwahl dieses Menüpunktes kann ein Eintrag im Hauptfenster
  1631.      von `RSYS' angeklickt werden.  Dieser Eintrag wird dann vom Programm ins
  1632.      Clipboard übernommen und kann von anderen Programmen gelesen und
  1633.      weiterverwendet werden.
  1634.  
  1635.  - Menüpunkt: Clip list (TASTENSEQUENZ: -)
  1636.      Aktion:  Mit  diesem  Menüpunkt  kann  die  ganze angezeigte Liste ins
  1637.      Clipboard kopiert werden.
  1638.  
  1639. Flags
  1640. -----
  1641.  
  1642.  - Menüpunkt: Fast Mode (TASTENSEQUENZ: `RAMIGA-F')
  1643.      Aktion:  Ist  dieser  Modus  aktiviert,  wird  das ListView beim Erzeugen
  1644.      der Liste nicht  aktualisiert,  sondern erst, nachdem die Liste erstellt
  1645.      worden ist.  Ist dieser Modus nicht aktiviert, wird nach jedem Erstellen
  1646.      eines Eintrags das ListView aktualisiert.  Default ist `EIN'.
  1647.  
  1648.  - Menüpunkt: Sorting (TASTENSEQUENZ: `RAMIGA-O')
  1649.      Aktion:  Ist  das  Sorting  aktiviert,  sortiert  `RSYS' automatisch die
  1650.      Einträge des ListViews.  Auf manche Listen hat dieses Flag keinen
  1651.      Einfluß (z.B.  Memory),  da  es  dort  auf  die  systemgegebene
  1652.      Reihenfolge  der Daten ankommt.  Default ist `EIN'.
  1653.  
  1654.  - Menüpunkt: Working bar (TASTENSEQUENZ: `RAMIGA-B')
  1655.      Aktion:  Mit diesem Flag kann die Anzeige eines Statusbalkens umgeschaltet
  1656.      werden.  Während eine Systemliste im ListView erzeugt wird, zeigt der
  1657.      Balken immer den entsprechenden Balkenabschnitt an. Als Balkenbereich wird
  1658.      das `Informationen / Messages'-Gadget (Die Gadgets und das ListView)
  1659.      verwendet.  Default ist `AUS'.
  1660.  
  1661.  - Menüpunkt: Auto front window (TASTENSEQUENZ: `RAMIGA-Z')
  1662.      Aktion:  Ist  dieses  Flag  aktiviert,  werden  das  Hauptfenster  und
  1663.      alle anderen Fenster  von  `RSYS'  automatisch nach vorne geholt, falls
  1664.      sie geöffnet oder *gezipt* wurden.
  1665.  
  1666.  - Menüpunkt: Mouse window (TASTENSEQUENZ: `RAMIGA-M')
  1667.      Aktion:  Wenn  diese  Option  angewählt  wurde,  wird  jedes  Fenster,
  1668.      das von `RSYS' geöffnet wird, zentriert unter dem Mauszeiger erscheinen.
  1669.  
  1670.  - Menüpunkt: Topaz font (TASTENSEQUENZ: `RAMIGA-T')
  1671.      Aktion:  Wurde  als System-Screen-Font ein Proportionalfont gewählt,
  1672.      sieht die Ausgabe   im  ListView  etwas  zerrissen  aus,  da  die  Anzeige
  1673.      nur  mit Leerzeichen  formatiert  werden kann.  Schaltet man diese Option
  1674.      ein, wird das    Hauptfenster    geschlossen    und    `RSYS'    erscheint
  1675.       mit   dem `Topaz-8'-Systemfont.
  1676.  
  1677.  - Menüpunkt: Speaking (TASTENSEQUENZ: `RAMIGA-N')
  1678.      Aktion:  Ist `Speaking' eingeschaltet, werden die Ausgaben im
  1679.      `Informationen / Message'-Bereich auch über das `Narrator'-Device, also
  1680.      die Sprachausgabe, ausgegeben.
  1681.  
  1682.  - Menüpunkt: Save asking (TASTENSEQUENZ: -)
  1683.      Aktion:  Ist dieses Menüflag gesetzt, werden alle Sicherheitsabfragen von
  1684.      `RSYS' unterdrückt. Genauer: es werden alle Ja-Nein-Abfragen unterdrückt.
  1685.  
  1686.                                *VORSICHT*
  1687.      Auch Sicherheitsabfragen, wie *Wollen Sie diesen Task killen?*
  1688.                werden anstandslos mit *Ja* beantwortet!!!
  1689.  
  1690. Das Icon
  1691. ========
  1692.  
  1693.    Wurde  der  Menüpunkt  `Iconify'  gewählt  oder  das  Programm  von der
  1694. WorkBench  gestartet,  erscheint  auf dem WorkBench-Screen ein sogenanntes
  1695. AppIcon.  Darauf können andere WorkBench-Objekte, wie Schubladen, Textdateien,
  1696. Devices etc.,  deren Icon sichtbar ist, gezogen werden.
  1697.  
  1698.    Ab `RSYS' 1.2 gibt es die Möglichkeit, durch Angabe von `NOAPPICON' in den
  1699. ToolTypes kein Icon erscheinen zu lassen.  Damit ist dann auch das nachfolgend
  1700. beschriebene `Actioning' nicht durchführbar.
  1701.  
  1702. Das Actioning
  1703. -------------
  1704.  
  1705.    Nach dem Aktivieren des Icons durch Anklicken oder Draufziehen eines
  1706. WorkBench-Objektes öffnet `RSYS' ein kleines Fenster mit drei Gadgets.  Die
  1707. Titelzeile des Fensters zeigt den Namen des Objektes an, das auf das
  1708. `RSYS'-Icon gezogen wurde.  Darunter wird der Typ des Objektes angezeigt.  In
  1709. dem ListView-Gadget werden alle Aktionen, die dem Typ dieses Objektes in der
  1710. Actions-Datei zugeordnet wurden, aufgelistet.  Das `Info'-Gadget gibt weitere
  1711. Informationen über das Objekt in Form eines Systemrequesters aus.
  1712.  
  1713.    Nach  der  Anwahl  eines ListView-Eintrages wird die entsprechende Aktion mit
  1714. diesem  Objekt  ausgeführt.   Dabei  wird  der  Name  des  Objekts  an den
  1715. entsprechenden  String  in  der Actions-Datei angehängt und als CLI-Befehl
  1716. ausgeführt.
  1717.  
  1718.    Hierzu  ein  Beispiel:   Für LHA-Archive existieren folgende Einträge:
  1719.  
  1720.         39#LHArc archive#Archiv listen#OwnC:LZ l #W#
  1721.         39#LHArc archive#Archiv testen#OwnC:LZ t #W#
  1722.  
  1723.    In der Titelzeile erscheint der Eintrag `LHArc archive' und in dem ListView
  1724. die Einträge `Archiv listen' und `Archiv testen'.  Wird der Eintrag `Archiv
  1725. listen' angeklickt, wird der Befehl `OwnC:LZ l <objektname>' ausgeführt.
  1726.  
  1727. Die Hotkey-Aktivierung
  1728. ----------------------
  1729.  
  1730.    In  dem  Icon-Zustand  von  `RSYS' kann das Hauptfenster mit dem Hotkey
  1731. `lshift rshift y'  wieder geöffnet werden.  Desweiteren kann `RSYS' auch mit
  1732. dem Programm `Exchange' angesteuert und auch beendet werden.
  1733.  
  1734.    Alle   Hotkeys   werden  voreingestellt  mit  den  beiden  Shift-Tasten
  1735. zusammen definiert.   Hier  eine Zusammenfassung aller Hotkey-Voreinstellungen,
  1736. wie sie auch den ToolTypes des `RSYS'-Icons entnommen werden können, versehen
  1737. mit ein paar Erklärungen:
  1738.  
  1739.  - ToolType: OUTWINDOW DEFAULT: CON:/10//150/`RSYS' WINDOW/AUTO/CLOSE
  1740.      Manche  Aktionen  von  `RSYS' erfordern einen Ein-/Ausgabe-Kanal.  Diese
  1741.      Ein-  und  Ausgaben  werden dann auf das angegebene CLI-Window umgeleitet.
  1742.  
  1743.      Anm.:  Dieser Eintrag ist *ZWINGEND*!!!  NIL:  oder das NULL:-Device
  1744.      sollten *NICHT* verwendet werden, wenn man einen Guru vermeiden will!
  1745.  
  1746.  - ToolType: CX_HOTKEY DEFAULT: `LSHIFT RSHIFT Y'
  1747.      Mit diesem Hotkey kann `RSYS' aktiviert werden, wenn das AppIcon
  1748.      existiert.  Falls das Hauptfenster offen ist, guckt `RSYS' nach, ob der
  1749.      vorderste Screen ein PublicScreen ist und öffnet das Hauptfenster auf
  1750.      diesem.
  1751.  
  1752.  - ToolType: CX_CRYPT DEFAULT: `LSHIFT RSHIFT K'
  1753.      Damit  wird  das  Verschlüsselungs-Tool von `RSYS' aufgerufen (Menüpunkt
  1754.      Crypt).
  1755.  
  1756.  - ToolType: CX_FINDFILE DEFAULT: `LSHIFT RSHIFT S'
  1757.      Damit  wird  das  Dateisuchfenster  von  `RSYS'  aufgerufen  (Menüpunkt
  1758.      Find File).
  1759.  
  1760.  - ToolType: CX_FORMAT DEFAULT: `LSHIFT RSHIFT F'
  1761.      Damit  wird  das  `Format-Disk'-Fenster  von  `RSYS' aufgerufen
  1762.      (Menüpunkt Format).
  1763.  
  1764. Die Utilities von RSys
  1765. **********************
  1766.  
  1767.    An  dieser  Stelle  noch  ein  paar  zusätzliche  Informationen  zu den
  1768. Menüpunkten.
  1769.  
  1770. Verschlüsseln von Daten und Dateien
  1771. ===================================
  1772.  
  1773.    Bei  der Verschlüsselung der Daten werden zwei Methoden verwendet.  Die
  1774. `ROT 13'-Methode   ist   ein  einfaches  Verschlüsselungsverfahren,  das  die
  1775. Buchstaben  eines  Textes  einfach  um  13  Zeichen  nach vorn oder zurück
  1776. gezählte Buchstaben macht.  Dazu ein Beispiel:  aus der Zeile
  1777.  
  1778.                  "Das ist ein Satz, der 1 mal kodiert werden soll!"
  1779.      
  1780.      34 68 97 115 32 105 115 116 32 101 105 110 32 83 97 116 122 44 32 100 101
  1781.      114 32 49 32 109 97 108 32 107 111 100 105 101 114 116 32 119 101 114 100
  1782.      101 110 32 115 111 108 108 33 34
  1783.  
  1784.    macht das `ROT 13'-Verfahren
  1785.  
  1786.                  "Qnf vfg rva Fngm, qre 1 zny xbqvreg jreqra fbyy!"
  1787.      
  1788.      34 81 110 102 32 118 102 103 32 114 118 97 32 70 110 103 109 44 32 113 114
  1789.      101 32 49 32 122 110 121 32 120 98 113 118 114 101 103 32 106 114 101 113
  1790.      114 97 32 102 98 121 121 33 34
  1791.  
  1792.    Darunter habe ich mal die entsprechenden ASCII-Kodierungen geschrieben.  Es
  1793. ist deutlich zu erkennen, daß nur Buchstaben kodiert (verschoben) werden.
  1794. Interpunktionen und Zahlen werden nicht berücksichtigt.
  1795.  
  1796.    Das zweite Verfahren basiert auf einen zellularen Automaten ähnlich dem der
  1797. Spielsimulation `Life'.  Dabei wird ein Ring von Zellen angelegt, der dann
  1798. durch  ein  vorgegebenes  Paßwort mit Nummern aufgefüllt wird.  Mit diesen
  1799. Nummern schließlich, wird eine Datei kodiert.  Diese Methode stammt von  der
  1800. Verschlüsselungsmethode,  die  in Olaf "Olsen" Barthels `term' zur Kodierung
  1801. des Telefonbuches verwendet wird.
  1802.  
  1803.    `Anm.:'   Das  Paßwort  ist  überaus  *WICHTIG*!   Es  sollte  erstens  nie
  1804. vergessen  und zweitens ein echtes Paßwort verwendet werden.  Das
  1805. Paßwort-Gadget  sollte  also  nie leer sein, da sonst die Methode zufällige
  1806. Verschlüsselungen  erzeugt  und  diese Datei nie wieder restauriert werden
  1807. kann!
  1808.  
  1809. Dateien suchen
  1810. ==============
  1811.  
  1812.    Diese  Utility  arbeitet  intensiv  mit  der  Funktion  "ExAll()" und den
  1813. Funktionen "MatchPattern()/MatchPatternNoCase()" der DOS-Library.  Dabei werden
  1814. zuächst alle Dateien bestimmt und währenddessen untersucht, ob es sich
  1815. jeweils um ein Verzeichnis oder eine Datei handelt.  Trifft dann auch das
  1816. Suchmuster zu, wird es in das ListView eingetragen.
  1817.  
  1818. CRC-Checksummen berechnen
  1819. =========================
  1820.  
  1821.    Ich habe mehrere Programme, die CRC-Summen berechnen, zum Vergleich mit
  1822. meinen Routinen gestartet.  Alle Programme gaben für ein und dieselbe Datei
  1823. andere Werte aus, als meine Routine.  Ich suche den Fehler heute noch.  Wenn
  1824. sich also eine hilfreiche Seele finden sollte, die den Fehler findet, dieser
  1825. ist eine Tüte Gummibärchen sicher `:-)'
  1826.  
  1827. Fenster in IFF-Dateien speichern
  1828. ================================
  1829.  
  1830.    Hierbei kam auch eine Routine zum Einsatz, die ich von Olsens `term' geratzt
  1831. habe.  Leider funktioniert Olsens Routine nicht mit allen Fenstern, was an der
  1832. Verwendung der Funktion "ClipBlit()" liegt, die zwar die ausgewählte BitMap
  1833. eines Windows berücksichtigt, aber die überlappenden Bereiche anderer Fenster
  1834. mit Datenmüll füllt.  Außerdem verwendet Olsen die BitMap des zu einem
  1835. Fenster gehörenden Screen-RastPorts anstelle des Window-RastPorts.
  1836.  
  1837.    Dieses  Problem  der  Überlappung  habe  ich  durch  die Verwendung der
  1838. Routinen  "BltBitMap()"  und  "WindowToFront()"  behoben.   Damit  wird das zu
  1839. speichernde  Fenster  nach vorne geholt, weswegen auch keine Überlappungen mit
  1840. anderen  Fenstern auftreten.  Dieses Verfahren funktioniert natürlich nicht
  1841. mit Backdrop-Fenstern.
  1842.  
  1843.    Es  muß  aber eine Möglichkeit geben, *nur* den Fensterinhalt abspeichern
  1844. zu  können.   Immerhin kann es die `DumpRastPort'-Routine des `printer.device'
  1845. auch.   Wer  also  sachdienliche  Hinweise  zu diesem Thema hat, möge sich
  1846. bitte mit mir in Verbindung setzen.
  1847.  
  1848. Der Text-Formatter
  1849. ******************
  1850.  
  1851.    Ab  `RSYS'  1.2  ist es möglich, beim Abspeichern einer Liste die Ausgabe
  1852. noch  etwas  zu formatieren.  Dazu erscheint nach jedem Filerequester ein
  1853. Fenster mit acht Gadgets.
  1854.  
  1855.  - Gadget: Prefix
  1856.      Hier wird eingetragen, was *vor* dem zu speichernden Listeneintrag stehen
  1857.      soll.
  1858.  
  1859.  - Gadget: Text to save
  1860.      In   diesem   Gadget   wird   die   Formatierung  des  zu  speichernden
  1861.      Listeneintrags angezeigt.  Diese kann sich ändern, wenn die Gadgets `Blank
  1862.      between texts' und `Quote-in text' gesetzt sind.
  1863.  
  1864.  - Gadget: Postfix
  1865.      Hier steht der Text, der *nach* dem Listeneintrag kommen soll.
  1866.  
  1867.  - Gadget: Blank between texts
  1868.      Ist  dieser  Schalter  angeklickt,  wird  zwischen  dem  Prefix und dem
  1869.      Listeneintrag  sowie  zwischen  dem  Listeneintrag  und  dem  Postfix  ein
  1870.      Leerzeichen (`Blank') eingefügt.
  1871.  
  1872.  - Gadget: Quote-in text
  1873.      Ist dieser   Schalter   angeklickt,   wird   der   Listeneintrag   in
  1874.      Anführungszeichen gesetzt.
  1875.  
  1876.  - Gadget: No header in file
  1877.      Bei formatierten Ausgaben ist es manchmal nicht wünschenswert, daß eine
  1878.      Titelzeile  in  die Datei geschrieben wird.  Das kann mit diesem Gadget
  1879.      abgeschaltet werden.
  1880.  
  1881.    Eine  Anwendung  wäre  zum Beispiel, wenn Ihr nach Dateien suchen laßt,
  1882. die  Ihr dann löschen wollt.  Ihr öffnet das `Find File'-Fenster und tragt
  1883. das  entsprechende  Pattern  ein,  z.B.  `#?.bak'.  Die ausgewählten Devices
  1884. werden  dann  nach  solchen  Dateien  durchsucht.  Habt Ihr alle zusammen,
  1885. speichert  Ihr  die  Datei  ab.   Nach  dem  Filerequester  erscheint  der
  1886. `Text-Formatter'.   Dort  schreibt  Ihr  als  Prefix  `Delete' hinein.  Dann
  1887. schaltet Ihr noch alle Schalter ein und klickt dann auf `Use format'.  Die
  1888. Einträge werden dann in dem Format
  1889.  
  1890.         Delete "datei.bak"
  1891.  
  1892.    abgespeichert.   Diese Datei könnt Ihr dann mit `Execute' ausführen und
  1893. alle gefundenen Dateien werden gelöscht.
  1894.  
  1895. RSys und Hintergrundinfos
  1896. *************************
  1897.  
  1898.    `RSYS'  wurde  unter Berücksichtigung aller mir bekannten Richtlinien der
  1899. Programmierung  unter  AmigaOS 2.0 geschrieben.  Alle kritischen Routinen
  1900. wurden  bis  zu  dreimal  abgesichert.   Das  bläht zwar etwas den Code,
  1901. gewährleistet aber die Lauffähigkeit auch unter Betriebssystemen >= 2.04.
  1902.  
  1903.    Besonderer  Wert  wurde  auf  die  Vermeidung  von  Speicherfehlern und
  1904. `Enforcer'-Hits  gelegt.   Bei einem auftretenden Speicherfehler wird in den
  1905. meisten   Fällen   das   Programm   unter   Angabe   von  Quelldatei-  und
  1906. Funktionsname,   sowie  der  Zeilennummer  im  Quelltext  abgebrochen  und
  1907. beendet.
  1908.  
  1909.    Einige  Listen  lassen  es  zu,  daß  man  die Einträge *systemkonform*
  1910. modifizieren  kann.   Dazu gehören zum Beispiel die Prioritäten von Tasks.
  1911. Andere  Listenelemente  können  unter  Beachtung wichtiger Regeln entfernt
  1912. werden.  Hierbei sind die sogenannten Schutzprotokolle zu berücksichigen.
  1913.  
  1914.    Bei der Modifizierung von Intuition-Objekten (Windows, Screens) ist das
  1915. Protokollpaar  "LockIBase()/UnlockIBase()"  zu  verwenden.   Geht es nur um
  1916. Veränderung  der  Lage von solchen Objekten, z.B.  mit "WindowToFront()", so
  1917. ist  diese Operation schon von Intuition ausreichend geschützt.  Bei allen
  1918. Listen  der  ExecBase ist das Paar "Forbid()/Permit()" zu verwenden, das das
  1919. Multitasking  für  die  Dauer der Operationen zwischen den beiden Routinen
  1920. ausschaltet.
  1921.  
  1922.    Bei manchen Listen reicht jedoch dieses Protokoll nicht aus.  Dazu  gehören
  1923. alle interruptgesteuerten Listen, wie die Task-, Interrupt-, Speicher-  und
  1924. Blitter-Queue-Listen.   Diese  müssen  zusätzlich  mit dem Protokoll
  1925. "Disable()/Enable()"  geschützt  werden.  Das Protokollpaar unterbricht die
  1926. Abarbeitung  von  Interrupts.   Da  fast  jedes  Multitasking  stark
  1927. interruptabhängig  ist,  kann  es  zu  einem  Absturz kommen, falls dieser
  1928. Zustand  zu lange  anhält.   Schätzungen über die Zeitdauer lauten bis etwa
  1929. 250  Mikrosekunden.  Obwohl diese Zeit ausreicht, um auch eine große Liste
  1930. auszulesen, sollte dieser Zustand nicht zu lange gehalten werden.
  1931.  
  1932.    "Disable()/Enable()"  beinhaltet  damit  auch logischerweise implizit ein
  1933. "Forbid()/Permit()".   Beide  Protokolle  sind  schachtelbar,  womit man ein
  1934. `totsicheres'  Varfahren  an  die Hand bekommt, um Systemlisten auszulesen.
  1935.  
  1936.    Unter diesen Vorsichtsmaßnahmen sollte es keine Probleme im Zusammenspiel
  1937. mit anderen Programmen geben, bis auf eine Einschränkung: `RSYS' kann nicht
  1938. mit Programmen zusammenarbeiten, die nicht systemkonform programmiert wurden.
  1939. Beispiele dafür sind Programme, die beispielsweise den Namen eines
  1940. öffentlichen Ports nicht korrekt initialisieren.  So kommt es beispielsweise
  1941. vor, daß ein Programm zwar einen Zeiger auf einen Portnamen ungleich Null hat,
  1942. diesen Zeiger aber uninitialisiert läßt und dieser dann folglich irgendwohin
  1943. zeigt.  Die Folge ist im harmlosesten Fall ein `Enforcer'-Hit des Typs
  1944. `READ-BYTE' (beim Auslesen des vermeintlichen Strings), im extremsten Fall ein
  1945. Guru!
  1946.  
  1947.    Ich habe das Problem jetzt so gelöst, daß ich bei den auszulesenen
  1948. Node-Namen das Typen-Flag untersuche.  Steht dort der Eintrag `NT_UNKNOWN' oder
  1949. nicht das erwartete Flag, lese ich den String einfach nicht aus, sondern trage
  1950. in das ListView
  1951.  
  1952.         <wrong type:0>
  1953.  
  1954.    ein. Hierbei steht die `0' für den ermittelten Knotentypen. Die möglichen
  1955. Knotentypen sind:
  1956.  
  1957.       Wert       Typ
  1958.      ------------------------------------------------------
  1959.         0        Unbekannter Node-Typ
  1960.         1        Task
  1961.         2        Interrupt
  1962.         3        Device
  1963.         4        Message Port
  1964.         5        Message
  1965.         6        `freie' Message
  1966.         7        Message wurde beantwortet
  1967.         8        Resource
  1968.         9        Library
  1969.        10        Memory-Node
  1970.        11        Softinterrupt
  1971.        12        Font
  1972.        13        Prozeß
  1973.        14        Semaphor
  1974.        15        Signalsemaphor
  1975.        16        Boo-Node
  1976.        17        Kick-Memory-Node
  1977.        18        Graphics-Node (Monitor-Node z.B.)
  1978.        19        Death Message (eine `tote' Nachricht)
  1979.       254        Benutzerdefinierter Node
  1980.       255        Erweiterung (auch benutzerdefiniert)
  1981.  
  1982.    Manche Systemutilities (z.B.  ARTM) achten darauf nicht und produzieren
  1983. `Enforcer'-Hits  en mas.  Diese Fehler lassen sich auch nicht vermeiden.  Der
  1984. Aufwand dafür  wäre  einfach  zu  groß,  da  man  ja praktisch Teile des
  1985. Programms `Enforcer'  in  das eigene Programm implementieren müßte.  Solange
  1986. man nicht davon  ausgehen  kann, daß *JEDER* Programmierer systemkonform
  1987. programmiert, wird es diese Lücke auch weiterhin geben.
  1988.  
  1989.    Ein weiterer typischer Fehler ist die Verwendung der Compiler-Funktion
  1990. "strcpy()" auf Quellstrings vorher unbekannter Länge.  Viele Programmierer
  1991. verwenden diese Routine, um schneller Strings zu kopieren.  Dabei wird nicht
  1992. beachtet, daß man eventuell  gar nicht soviel Speicherplatz reserviert hat, um
  1993. den Quellstring aufzunehmen.  Ein signifikantes Beispiel dafür ist das o.g.
  1994. Port-Namen-Problem.  Ist der String uninitialisiert und nicht mit `ASCII 0'
  1995. terminiert, kopiert "strcpy()" einen solchen Portnamen bis in alle Ewigkeit,
  1996. bis zum Ende des Speichers, bis zur nächsten Einsprungadresse eines anderen
  1997. Tasks oder bis zur nächsten Reise von Indian tours `:-)' Manche  Programmierer
  1998. sagen sich dann, überprüfen wir doch einfach mit "strlen()"  den Quellstring.
  1999. Nun, da "strlen()" auch solange zählt, bis `ASCII 0' erkannt wurde, ist diese
  2000. Methode auch für eine Auslandsreise nach Indien durchaus geeignet.
  2001.  
  2002.    Das einfachste und probateste Mittel in diesem Fall, ist die
  2003. Compiler-Funktion "strncpy()".  Damit kann man einfach festlegen, wieviel
  2004. Zeichen denn nun kopiert werden sollen.  Das einzige, was jetzt noch stört,
  2005. ist der `READ-BYTE'-Hit den man bekommt, wenn man *merkwürdige* Adressen an
  2006. "strncpy()" übergibt.
  2007.  
  2008.    Ein  weitere  Fehlerquelle  ist  die  Verwendung  von "printf()" in allen
  2009. seinen Erscheinungsformen ("sprintf()", "vsprintf()" etc.) im Zusammenhang mit
  2010. Systemlisten.   Da  die "printf()"-Routinen auch auf DOS-Routinen zugreifen,
  2011. sind  sie  zum  zügigen  Kopieren von mehreren Systemeinträgen ungeeignet.
  2012. Die Routine "RawDoFmt()" der Exec-Library ist jedoch *sicher*. Mit ihr kann man
  2013. sich selbst ein "sprintf()" zusammenbauen, was ich auch getan habe.
  2014. Normalerweise befindet sich aber diese Routine in der `amiga.lib'.
  2015.  
  2016.    Sicher  ist weiterhin die Verwendung der "str...()"-Routinen zwischen
  2017. Schutzprotokollen, da diese  nur  Speicherbereiche  kopieren  oder
  2018. verschieben.   Möchte man es trotzdem  noch  schneller  haben,  gibt es  noch
  2019. die Funktionen "CopyMem()" und "CopyMemQuick(").    Bei   letzterer   ist   zu
  2020. beachten,  daß  die  Daten auf longwords ausgerichtet   sein   müssen.
  2021. Beide   Routinen   gehören   zur `exec.library', können also bei
  2022. Systemlistenuntersuchungen verwendet werden.
  2023.  
  2024. Tips und Tricks
  2025. ***************
  2026.  
  2027.    Diese Sparte ist zunächst leer.  Sollten sich Anfragen und Tips aus dem
  2028. hoffentlich  großen  Kreis  von  `RSYS'-Benutzern,  wird sich dieser Bereich
  2029. füllen.
  2030.  
  2031.    Stop!  Einen Tip habe ich schon :-)
  2032.  
  2033.    Der  folgende  Batch (Name `tracer') war mir beim Testen des Programmes sehr
  2034. hilfreich:
  2035.  
  2036.      .KEY onoff,program/A
  2037.      .bra {
  2038.      .KET }
  2039.      
  2040.      if { program } eq ""
  2041.         echo "Aufruf: tracer [ON | OFF] [program]"
  2042.         quit
  2043.      endif
  2044.      
  2045.      if { onoff } eq ON
  2046.         assign t: doks:t
  2047.         cpu nofastrom
  2048.         run >NIL: <NIL: MungWall TASK {program}
  2049.         run >NIL: <NIL: IO_Torture
  2050.         run >NIL: <NIL: enforcer ON
  2051.         run sushi <>"CON:0/190//80/Sushi CTRL-E:Empty CTRL-F:File/AUTO/CLOSE"
  2052.                   ON BUFK=1024
  2053.      else
  2054.         if { onoff } eq OFF
  2055.            Utilities:ProgUtils/Sushi/sushi OFF
  2056.            run >NIL: <NIL: enforcer OFF
  2057.            tbreak IO_Torture
  2058.            tbreak MungWall
  2059.            cpu fastrom
  2060.            assign t: ram:t
  2061.         else
  2062.            echo "Aufruf: tracer [ON | OFF] <[program]>"
  2063.         endif
  2064.      endif
  2065.  
  2066.    Das  Programm `tbreak' sendet einen Break-Signal an den Task, dessen Name
  2067. als  Parameter  beim  Aufruf  mit  angegeben  wurde.   Es  ist ein kleines
  2068. Programm, daß ich mal quick and dirty gehackt habe.  Hier kommt der kleine
  2069. Quelltext dazu:
  2070.  
  2071.      #include <exec/types.h>
  2072.      #include <exec/execbase.h>
  2073.      
  2074.      #include <dos/dos.h>
  2075.      #include <dos/dosextens.h>
  2076.      
  2077.      #include <clib/dos_protos.h>
  2078.      #include <clib/exec_protos.h>
  2079.      
  2080.      #include <stdio.h>
  2081.      #include <string.h>
  2082.      
  2083.      #define STRINGEND '\0'
  2084.      
  2085.      char *
  2086.      B2CStr(char *ret, BSTR inp)
  2087.      {
  2088.         register int i;
  2089.         char *help = (char *)BADDR(inp);
  2090.      
  2091.         for (i = 0; i < *help; i++)
  2092.            *(ret + i) = *(help + i + 1);
  2093.      
  2094.         *(ret + i) = STRINGEND;
  2095.      
  2096.         return (ret);
  2097.      }
  2098.      
  2099.      int
  2100.      main(int argc,char **argv)
  2101.      {
  2102.         struct DOSBase *DOSBase = NULL;
  2103.         extern struct ExecBase *SysBase;
  2104.         int ret = RETURN_FAIL;
  2105.      
  2106.         if(DOSBase = (struct DOSBase *)OpenLibrary((STRPTR)"dos.library", 33L))
  2107.         {
  2108.            struct Node *node,*membernode[200];
  2109.            struct CommandLineInterface *CLI;
  2110.            char modname[200];
  2111.            int i,j,out;
  2112.      
  2113.            if(argc != 2)
  2114.               Printf((STRPTR)"Aufruf: %s <taskname>\n",argv[0]);
  2115.            else
  2116.            {
  2117.               Forbid();
  2118.               Disable();
  2119.      
  2120.               for (node = SysBase->TaskWait.lh_Head;
  2121.                    node->ln_Succ&& i < 200; node = node->ln_Succ)
  2122.                  membernode[i++] = node;
  2123.      
  2124.               for (node = SysBase->TaskReady.lh_Head;
  2125.                    node->ln_Succ && i < 200; node = node->ln_Succ)
  2126.                  membernode[i++] = node;
  2127.      
  2128.               if (i < 200)
  2129.                  membernode[i++] = &SysBase->ThisTask->tc_Node;
  2130.      
  2131.               Enable();
  2132.      
  2133.               out = FALSE;
  2134.      
  2135.               for (j = 0; j < i && !out && i < 200; j++)
  2136.               {
  2137.                  struct Process *proc = (struct Process *)membernode[j];
  2138.                  if(CLI = (struct CommandLineInterface *)BADDR(proc->pr_CLI))
  2139.                  {
  2140.                     B2CStr(modname,CLI->cli_CommandName);
  2141.                     if (!strcmp(argv[1],modname))
  2142.                     {
  2143.                        Signal((struct Task *)proc,
  2144.                               SIGBREAKF_CTRL_C | SIGBREAKF_CTRL_D |
  2145.                               SIGBREAKF_CTRL_E | SIGBREAKF_CTRL_F);
  2146.                        out = TRUE;
  2147.                     }
  2148.                  }
  2149.               }
  2150.      
  2151.               Permit();
  2152.      
  2153.               if(out == TRUE)
  2154.                  Printf((STRPTR)"Task with command \'%s\' signaled...\n",argv[1]);
  2155.               if(i >= 200)
  2156.                  PutStr((UBYTE *)"More than 200 tasks read!\n");
  2157.      
  2158.               ret = RETURN_OK;
  2159.            }
  2160.            CloseLibrary((struct Library *)DOSBase);
  2161.         }
  2162.      
  2163.         return(ret);
  2164.      }
  2165.  
  2166. Weitere Pläne
  2167. *************
  2168.  
  2169.    OS  2.0  gibt  mir  immer  neue  Ideen.   Das merke ich jedesmal, schon
  2170. während  ich  eine Routine programmiere.  Folgendes habe ich für die nächsten
  2171. Versionen geplant:
  2172.  
  2173.    * Ein Autolister für die Diskettenlaufwerke (Benutzeroberfläche ist schon
  2174.       da ;-), also Diskette rein, Inhalt automatisch lesen, Diskette raus,
  2175.      nächste Diskette rein usw.
  2176.  
  2177.    * Die Utilities werden als eigene Prozesse gestartet
  2178.  
  2179.    * Bei `RSYS' verschwinden evtl. die Gadgets und der Menüpunkt "Special
  2180.      lists", dafür kommt ein zweites ListView.
  2181.  
  2182.    * Ein erweiterte Dateitypen-Erkennung, evtl. eine FileType.library
  2183.  
  2184.    * Evtl. eine eigene Utility.library, die auch von anderen Programmen
  2185.      genutzt werden kann
  2186.  
  2187.    * Bugs beseitigen `:-)'
  2188.  
  2189.    * AmigaGuide-Unterstützung statt Hilfsfile
  2190.  
  2191.    Wer    einen    oder   mehrere   Fehler   findet,   der   sollte   mich
  2192. schnellstmöglichst  darüber informieren, wo und unter welchen Umständen es
  2193. zu  Problemen  kam.   Zu  einer  solchen  Fehlermeldung  gehören  folgende
  2194. Informationen über die Rechnerumgebung:
  2195.  
  2196.    * Verwendetes Rechnermodell (A500, A500+, A1000, A2000, A2000+,      A2500,
  2197.      A3000, A3000T, A4000, etc.)
  2198.  
  2199.    * Speicherausbaustufe
  2200.  
  2201.    * Prozessor-Hardware (68000, 68010, 68020, 68030, 68040, etc.)
  2202.  
  2203.    * Graphik-Hardware (ECS, AGA, ImpactVision, Domino, etc.)
  2204.  
  2205.    * Verwendete Betriebssystemversion und Art (A3000 ROM, A3000      Kickfile,
  2206.      A500+ ROM, A600 ROM, Kickfile, etc.)
  2207.  
  2208.    * Verwendete WorkBench-Version
  2209.  
  2210.    * Festplatten-Controller (sofern vorhanden)
  2211.  
  2212.    * Modemtyp und zur Ansteuerung des Modems verwendete Hardware
  2213.      (Multi-IO-Karten, etc.)
  2214.  
  2215.    Alle diese Listen können übrigens einfach mit `RSYS' erzeugt und in eine
  2216. Datei geschrieben werden.
  2217.  
  2218.    Wenn  der auftretende Fehler beschrieben wird, bitte soviel wie möglich
  2219. über  den  Arbeitsvorgang,  der  dem  Fehler  vorausging, mit aufschreiben!
  2220. Zuletzt bitte ich darum, den Text so sorgfältig zu schreiben, daß ich auch
  2221. wirklich  etwas  damit anfangen kann; vage Beschreibungen helfen mir nicht
  2222. besonders  und  wenn ich aus einer Fehlermeldung nicht schlau werden kann,
  2223. bleibt  ein  möglicher Fehler vielleicht so lange im Programm, bis ich ihn
  2224. zufällig selbst entdecke.
  2225.  
  2226.    Fehlermeldungen   können  mir  auf  jedem  sinnvoll  erscheinende  Wege
  2227. zugeleitet  werden,  es  hilft  allerdings  manchmal,  dies über Z-Netz zu
  2228. bewerkstelligen,  was  mir  die  Möglichkeit  gibt, bei Bedarf noch einmal
  2229. nachzufragen.
  2230.  
  2231. Copyrights und Verwendung
  2232. *************************
  2233.  
  2234.    Es  wird  keine  Garantie  gegeben, daß das Programm 100%ig zuverlässig
  2235. ist.   Ihr  benutzt dieses Programm auf eigene Gefahr.  Der Autor kann auf
  2236. keinen  Fall  für  irgendwelche Schäden verantwortlich gemacht werden, die
  2237. durch die Anwendung dieses Programmes entstehen.
  2238.  
  2239.    Weiterhin darf das Programm und der Quelltext zu `RSYS' 1.2 nicht zu
  2240. kommerziellen Zwecken jeder Art verwendet werden.  Desweiteren dürfen das
  2241. Programm und der Quelltext nicht direkt und nicht indirekt zu militärischen
  2242. Zwecken jeder Art verwendet werden!  Jede Veröffentlichung in Diskmagazinen
  2243. und Zeitschriften *muß* mit der Zustimmung des Autors stattfinden.
  2244.  
  2245.    Der Quelltext ist völlig Public Domain und Giftware, aber es wäre nett,
  2246. wenn mich der jeweilige Programmierer in einer kleinen Danksagung erwähnen
  2247. würde.  Auch wenn andere dieses Programm als Grundlage nehmen, um ein neues
  2248. `RSYS' zu programmieren, sollten diese sich mit mir in Verbindung setzen, damit
  2249. wir unsere Aktivitäten koordinieren können.
  2250.  
  2251.      Der Autor ist weiterhin sehr empfänglich für kleine Geschenke, also Geld
  2252.      :-), Gummibärchen, Briefe, Postkarten, Disketten, Musikkassetten u.v.a.m.
  2253.      Auch Geldspenden, Schecks oder Überweisungen werden nicht abgelehnt :-))
  2254.      Hier meine Adresse:
  2255.      
  2256.            Rolf Böhme
  2257.            Stammestr. 48
  2258.            30459 Hannover
  2259.            Germany
  2260.            EMAIL: R.BOEHME@COPS.ZER
  2261.            FIDO:  2:245/44.2 (Rolf Boehme)
  2262.  
  2263.    Ich  behalte  mir  weiterhin vor, den Typ des Programmes (PD, Freeware,
  2264. Shareware,  Payware)  zu  ändern.  Daher gelten diese Festlegungen nur für
  2265. `RSYS' 1.2.  Alle weiteren oder vorhergehenden Releases oder Versionen
  2266. unterliegen dann anderen Bestimmungen.
  2267.  
  2268. Danksagungen
  2269. ************
  2270.  
  2271.    * Klaus Spark (Klaspa)
  2272.  
  2273.      Mein  erster  und  kritischster  Betatester.   Ohne  ihn sähe `RSYS' ganz
  2274.        anders aus!  Danke Klaus!
  2275.  
  2276.    * Klaus Nolte (Viking)
  2277.  
  2278.      Der zweite Betatester. Seine Langzeitversuche sind die besten! Danke
  2279.      Klaus!
  2280.  
  2281.    * Lars Monecke (Mave)
  2282.  
  2283.      Er betatestete und steuerte die Icons zu `RSYS' bei, die ich ein klein
  2284.      wenig modifizierte. Danke Mave!
  2285.  
  2286.    * Michael (Pokey, Sysop der CASABLANCA)
  2287.  
  2288.      Seinen kritischen Anmerkungen verdankt das Installer-Script sein heutiges
  2289.       Aussehen. Danke Michael!
  2290.  
  2291.    * Olaf 'Olsen' Barthel
  2292.  
  2293.      Seine Quelltexte zu `term' und anderen sind ein wahre Fundgrube für jeden
  2294.        Programmierer!
  2295.  
  2296.    * Thomas Breit, Sysop der Box ACBW in Wolfsburg
  2297.  
  2298.      Er betatestete und fand einige Fehler.
  2299.  
  2300.    * Florian Faber
  2301.  
  2302.      Er  betatestete  und  trieb mich mit seinem 4000er fast an den Rand der
  2303.      Aufgabe. Danke Florian!
  2304.  
  2305.    * Franz-Josef Reichert (FJR)
  2306.  
  2307.      Ihm verdanke ich einige Hinweise zur Systemprogrammierung. Danke, FJ!
  2308.  
  2309.    * Michael Sinz
  2310.  
  2311.      Sein Enforcer ist der Beste. Viele Fehlerbeseitigungen gehen auf sein
  2312.      Konto `:-)'
  2313.  
  2314.    * Jan van den Baard
  2315.  
  2316.      Seine GadToolsBox erlaubte das Design von `RSYS'. Danke Jan!
  2317.  
  2318.    * Carolyn Scheppner
  2319.  
  2320.      Dein Sushi zeigte mir ohne viel Papierverschwendung, was über die
  2321.      Serielle an Hits kamen `:-)'
  2322.  
  2323.    * Thomas Carstens
  2324.  
  2325.      Sein Programm ShowGuru sagte mir, was ich schon wieder falsch gemacht
  2326.      habe `:-)'
  2327.  
  2328.                Viele, viele andere Leute im Z-Netz und sonstwo,
  2329.                 von denen ich gelernt habe, zu programmieren.
  2330.  
  2331. Verwendete Software
  2332. *******************
  2333.  
  2334.    Dieses Programm entstand mit Hilfe folgender Programme :
  2335.  
  2336.         Aztec C68k/Amiga 5.2a Sep 25 1991 17:04:29
  2337.         Copyright 1991 by Manx Software Systems, Inc.
  2338.      
  2339.         GadToolsBox 37.176 (01.9.92)
  2340.         (c) Copyright 1991,92 Jaba Development
  2341.      
  2342.         CEdPro2 Version 2.11
  2343.         (c) Copyright by CygnusSoft Software
  2344.      
  2345.         mungwall 36.45 (9.5.91)
  2346.         Copyright (c) 1990, 1991 Commodore-Amiga, Inc.
  2347.      
  2348.         Enforcer 37.25
  2349.         Copyright (c) 1992 Michael Sinz
  2350.      
  2351.         io_torture 37.6 (16.1.91)
  2352.      
  2353.         texinfo 2.109
  2354.         Copyright (C) 1985, 86, 88, 90, 91, 92, 1993
  2355.         Free Software Foundation, Inc.
  2356.      
  2357.         MakeInfo 1.55
  2358.         Copyright (C) 1993 Reinhard Spisser and Sebastiano Vigna
  2359.         Under GNU License
  2360.      
  2361.         DVI-Print - Version 1.07L for AMIGA (c) 1990/91
  2362.         (c)Copyright 1990-91, (hes/rbs) , All rights reserved. Feb  9 1991
  2363.      
  2364.         ShowDVI - Version 1.17L for AMIGA (c) 1990/91
  2365.         (c)Copyright 1990-91, (hes). All rights reserved. Sep 28 1991
  2366.  
  2367.    Da  das  Programm  Funktionen  der  Kickstart  2.0  verwendet, läuft  es
  2368. folglich nur auf Amigas mit Kickstart >= 2.0.
  2369.  
  2370. History
  2371. *******
  2372.  
  2373.      ============
  2374.      Version 1.01 (unveröffentlicht)
  2375.      ============
  2376.      
  2377.      10-Apr-93
  2378.      ---------
  2379.      
  2380.      -  BACKPATTERNCOL = 0, dann wurde das Fenster nach einem ZipWindow nicht
  2381.         korrekt aufgebaut. Bug fixed.
  2382.      -  Iconname (Programmname) global gemacht mit Notify auf die Icon-Datei.
  2383.      
  2384.      18-Apr-93
  2385.      ---------
  2386.      
  2387.      -  CenterWindow() erheblich vereinfacht
  2388.      -  Aus "Available fonts" wurde "Fonts in FONTS:", da die ROM-Fonts
  2389.         schon mit dem Button "Fonts" angezeigt werden können.
  2390.      -  Aus "Quit Sys" wurde "Quit RSys"
  2391.      
  2392.      22-Apr-93
  2393.      ---------
  2394.      
  2395.      -  Library offsets eingeführt, checkt die gepatchten Libraries und Devices
  2396.      
  2397.      
  2398.      ============
  2399.      Version 1.02 (unveröffentlicht)
  2400.      ============
  2401.      
  2402.      01-May-93
  2403.      ---------
  2404.      
  2405.      -  Das sprintf() bricht kein Forbid()! Daher schreibe ich alle
  2406.         Funktionen um.
  2407.      
  2408.      02-May-93
  2409.      ---------
  2410.      
  2411.      -  Die ASL-Routinen wurden gekürzt
  2412.      -  Das Einsortieren der Listeneinträge verursachte unter bestimmten
  2413.         Umständen Enforcer-Hits. Diese wurden beseitigt.
  2414.      -  Die Anzeige des DOS-Typs bei Volumes sah etwas wild aus. Beseitigt.
  2415.      -  Die Fontanpassung wurde etwas verbessert. Bei kleinen System-Screen-Font
  2416.         wurde bei einigen Anzeigen im ListView das letzte Zeichen verschluckt.
  2417.      
  2418.      06-May-93
  2419.      ---------
  2420.      
  2421.      -  Abspeichern ins Clipboard ist jetzt möglich. Eine ganze Liste kann im
  2422.         Clipboard abgelegt werden
  2423.      
  2424.      07-May-93
  2425.      ---------
  2426.      
  2427.      -  Ein neuer Menüpunkt ist dazugekommen: Flushing. Mit ihm können entweder
  2428.         alle unbenutzten Libraries oder Fonts aus dem System entfernt werden
  2429.      
  2430.      08-May-93
  2431.      ---------
  2432.      
  2433.      -  Die Source wurde ausführlicher dokumentiert. Jede Quelldatei hat nun
  2434.         ihren Header.
  2435.      -  Die Port-Liste wurde nicht sortiert. Bug fixed.
  2436.      -  Der eingebaute Font ibm.font wurde entfernt und durch ein
  2437.         OpenDiskFont()-Call ersetzt. Wird der ibm.font nicht gefunden, wird
  2438.         Standard-Topaz für die Baumstruktur verwendet.
  2439.      -  Das ListView wird Read Only, wenn ein Hunk-Listing erstellt wird.
  2440.      
  2441.      10-May-93
  2442.      ---------
  2443.      
  2444.      -  Es gibt ein neues Menü "ClipBoard". Es kann dort die ganze Liste, oder
  2445.         ein Eintrag aus dieser Liste ins ClipBoard kopiert werden.
  2446.      -  Ein Enforcer-Hit wurde beseitigt. Die Routine GetNode() funktioniert
  2447.         nun korrekt.
  2448.      
  2449.      13-May-93
  2450.      ---------
  2451.      
  2452.      -  Einige Requester wurden geändert
  2453.      -  Der Menüpunkt "Check Libraries" wurde ins Menü "Special Actions"
  2454.         verlagert.
  2455.      
  2456.      16-May-93
  2457.      ---------
  2458.      
  2459.      -  Das globale Steuerfeld bekommt ein Bit mehr. Darin wird verzeichnet, ob
  2460.         eine Zählstatistik im unteren Textgadget angezeigt werden soll.
  2461.      
  2462.      20-May-93
  2463.      ---------
  2464.      
  2465.      -  Bug im Menüpunkt "Speak" beseitigt. Nach einem "Topaz font" wurde
  2466.         dieser Menüpunkt nicht korrekt gesetzt.
  2467.      -  Es gibt jetzt einen Modus, in dem alle Ja/Nein-Abfragen von RSys
  2468.         default gesetzt werden. Damit wird die Bedienung etwas schneller, falls
  2469.         es gewünscht wird. Deshalb gibts dann auch das neue Tooltype
  2470.         NOSAVEASKING.
  2471.      -  Der Quelltext wurde etwas überarbeitet.
  2472.      -  Die Menüs wurden überarbeitet.
  2473.      
  2474.      20-May-93
  2475.      ---------
  2476.      
  2477.      -  Der Menüpunkt "Volume locks" ist dazugekommen.
  2478.      -  Bug in der Memory-Anzeige gekillt.
  2479.      -  Schweren Bug in der Jump()-Routine beseitigt!
  2480.      
  2481.      07-Jun-93
  2482.      ---------
  2483.      
  2484.      -  Jedes Fenster hat jetzt ein Pattern-Muster, wie das Hauptfenster.
  2485.      -  Die "Check Libraries-Routine funktionierte nicht mit 4000er-ROMS. Jetzt
  2486.         wird der korrekte Offset des KickROMs berechnet.
  2487.      
  2488.      12-Jun-93
  2489.      ---------
  2490.      
  2491.      -  Das APP-Icon kann jetzt abgestellt werden.
  2492.      -  Das Centering funktionierte mal wieder nicht. Behoben.
  2493.      -  Das Patternmuster der Fenster kann jetzt zweifarbig dargestellt werden.
  2494.      
  2495.      21-Jun-93
  2496.      ---------
  2497.      
  2498.      -  Es ist ein Textformatter für die Ausgaben auf Datei hinzugekommen.
  2499.      -  Die Sourcedateien wurden überarbeitet und weiter aufgeteilt
  2500.      -  Der MakeFile sieht etwas anders aus
  2501.      -  Das Installations-Script wurde vollständig neu geschrieben
  2502.      
  2503.      24-Jun-93
  2504.      ---------
  2505.      
  2506.      -  Riesenbug in der "Memory"-Anzeige beseitigt. Führte auf dem 2000er zu
  2507.         keinerlei Abstürzen, aber unter OS3 zu Chaos!
  2508.      -  Das Fehlerbehandlungssystem wurde total überarbeitet. Und schon wieder
  2509.         1.5 KB kürzer :-).
  2510.      -  Alle Libraries werden mit der Versionsnummer 36 geöffnet. Damit werden
  2511.         "falsche" Library-Aufrufe vermieden.
  2512.      
  2513.      25-Jun-93
  2514.      ---------
  2515.      
  2516.      -  Die Speicherverwaltung wurd etwas optimiert
  2517.      -  Ich habe endlich einen einigermaßen sicheren Weg gefunden,
  2518.         uninitialisierte Pointer auf Node-Namen korrekt abzufangen.
  2519.         Glücklicherweise trägt das System (manchmal) ein NT_UNKNOWN als Type
  2520.         des Nodes ein. Geschieht das, ist dieser Node sowieso Müll.
  2521.      -  Die Labels der Gadgets sind bei einer unglücklichen Wahl des
  2522.         Patternmusters und der Farben etwas "zerlegt". Bug fixed.
  2523.      -  Die Funktion, die den Namen eines Nodes in einen String kopiert, wurde
  2524.         jetzt vom Node-Typen abhängig gestaltet. Damit hoffe ich einige
  2525.         Enforcerhits, die sich bei unsauber eingerichteten Knotennamen ergaben
  2526.         den Garaus gemacht zu haben.
  2527.      -  Das Fenster zum Einstellen einer Taskpriorität bekam kein Pattern. Bug
  2528.         fixed.
  2529.      -  Gewaltiger Bug in der "Save Windows"-Routine entfernt!
  2530.      
  2531.      ===========
  2532.      Version 1.2
  2533.      ===========
  2534.      
  2535.      30-Jun-93
  2536.      ---------
  2537.      
  2538.      -  Die Dokument-Dateien wurden mit TexInfo bearbeitet und neu gesetzt.
  2539.      
  2540.      03-Jul-93
  2541.      ---------
  2542.      
  2543.      -  Die Menü-Leiste wurde gekürzt und das Menü etwas anders aufgeteilt
  2544.      
  2545.      07-Jul-93
  2546.      ---------
  2547.      
  2548.      -  Ein neuer Menüpunkt - Gadgets - ist hinzugekommen.
  2549.      -  Die Quelltexte wurden überarbeitet
  2550.      -  Das Icon wird jetzt vom Programmicon übernommen. Damit ist das
  2551.         eingebaute Icon überflüssig und RSys wieder kleiner geworden
  2552.      
  2553.      10-Jul-93
  2554.      ---------
  2555.      
  2556.      -  Noch einen Bug in der Menü-Iconify-Routine ausgebügelt
  2557.      -  Die Gadget-Texte haben einen Rahmen bekommen, eine Bevelbox
  2558.      -  Das Layout der einzelnen Fenster wurde etwas "verschönert"
  2559.      -  Ein neues Font-Anzeigefenster wurde programmiert
  2560.      
  2561.      15-Jul-93
  2562.      ---------
  2563.      
  2564.      -  Ein Statusbalken ist dazugekommen und ein neues Flag, "Working bar"
  2565.      -  Fehler in der Preference-Liste entdeckt! Harter Bug fixed.
  2566.      -  Dokumentation angepaßt
  2567.  
  2568. Anhang
  2569. ******
  2570.  
  2571. Funktionen
  2572. ==========
  2573.  
  2574.  
  2575.  
  2576.  `<ohne Namen>'                         Actions
  2577.  `About...'                             Project
  2578.  `Amigaguide XRef'                      Other Libraries
  2579.  `Assigns'                              Assign-Liste der DOSBase
  2580.  `Auto front window'                    Flags
  2581.  `BACKGROUNDCOL'                        Aufruf von der WorkBench
  2582.  `BACKPATTERN'                          Aufruf von der WorkBench
  2583.  `BACKPATTERNCOL'                       Aufruf von der WorkBench
  2584.  `Blank between texts'                  Der Text-Formatter
  2585.  `Blitter Wait Queue'                   Graphics
  2586.  `BLOCKPEN'                             Aufruf von der WorkBench
  2587.  `Case sense/No case sense'             Actions
  2588.  `Check Libraries'                      Actions
  2589.  `CLI processes'                        Exec
  2590.  `Clip entry...'                        Clip
  2591.  `Clip list'                            Clip
  2592.  `Commodities'                          Other Libraries
  2593.  `CopyMem()'                            RSys und Hintergrundinfos
  2594.  `CopyMemQuick()'                       RSys und Hintergrundinfos
  2595.  `CRC Check'                            Actions
  2596.  `Crypt'                                Actions
  2597.  `CX_CRC'                               Aufruf von der WorkBench
  2598.  `CX_CRYPT'                             Die Hotkey-Aktivierung
  2599.  `CX_CRYPT'                             Aufruf von der WorkBench
  2600.  `CX_FINDFILE'                          Die Hotkey-Aktivierung
  2601.  `CX_FINDFILE'                          Aufruf von der WorkBench
  2602.  `CX_FORMAT'                            Die Hotkey-Aktivierung
  2603.  `CX_FORMAT'                            Aufruf von der WorkBench
  2604.  `CX_HOTKEY'                            Die Hotkey-Aktivierung
  2605.  `CX_HOTKEY'                            Aufruf von der WorkBench
  2606.  `CX_HUNKLIST'                          Aufruf von der WorkBench
  2607.  `CX_SAVEWINDOW'                        Aufruf von der WorkBench
  2608.  `DETAILPEN'                            Aufruf von der WorkBench
  2609.  `Devices'                              Actions
  2610.  `Devices'                              Actions
  2611.  `Dirs + Files/Files/Directories'       Actions
  2612.  `Disable()/Enable()'                   RSys und Hintergrundinfos
  2613.  `Disk label'                           Actions
  2614.  `Display Modes'                        Graphics
  2615.  `ENV-Variables'                        Preferences
  2616.  `Fast Mode'                            Flags
  2617.  `Find File'                            Actions
  2618.  `Flush all libraries and Fonts'        Flushing
  2619.  `Flush Fonts'                          Flushing
  2620.  `Flush Libraries'                      Flushing
  2621.  `Fonts'                                Font-Liste der GfxBase
  2622.  `Fonts in FONTS:'                      Diskfont
  2623.  `Forbid()/Permit()'                    RSys und Hintergrundinfos
  2624.  `Format'                               Actions
  2625.  `Format'                               Actions
  2626.  `Format Disk'                          Actions
  2627.  `Found files/dirs'                     Actions
  2628.  `Gadgets'                              Intuition
  2629.  `HandlerInp'                           Inputhandler-Liste
  2630.  `Hardware'                             Hardware-Liste der ExpansionBase
  2631.  `Help'                                 Project
  2632.  `Iconify'                              Project
  2633.  `Icons/No Icons'                       Actions
  2634.  `IFF File'                             Actions
  2635.  `International/No international'       Actions
  2636.  `Interrupts'                           Interrupt-Liste der ExecBase
  2637.  `Jump'                                 Springen zwischen Public Screens
  2638.  `Kill saved list'                      Internal List
  2639.  `Libraries'                            Library-Liste der ExecBase
  2640.  `List Hunks'                           Actions
  2641.  `LockIBase()/UnlockIBase()'            RSys und Hintergrundinfos
  2642.  `Memory'                               Memory-Liste in der ExecBase
  2643.  `MENUPEN'                              Aufruf von der WorkBench
  2644.  `Mouse window'                         Flags
  2645.  `MOUSEWINDOW'                          Aufruf von der WorkBench
  2646.  `No header in file'                    Der Text-Formatter
  2647.  `NOAPPICON'                            Aufruf von der WorkBench
  2648.  `NOFASTMODE'                           Aufruf von der WorkBench
  2649.  `NOSORT'                               Aufruf von der WorkBench
  2650.  `OFS/FFS'                              Actions
  2651.  `OUTWINDOW'                            Die Hotkey-Aktivierung
  2652.  `OUTWINDOW'                            Aufruf von der WorkBench
  2653.  `Pattern'                              Actions
  2654.  `Physical Devices'                     DOS
  2655.  `Ports'                                Port-Liste in der ExecBase
  2656.  `Postfix'                              Der Text-Formatter
  2657.  `Preferences'                          Preferences
  2658.  `Prefix'                               Der Text-Formatter
  2659.  `Printer Data'                         Preferences
  2660.  `Public Screens'                       Intuition
  2661.  `Quick'                                Actions
  2662.  `Quit RSYS...'                         Project
  2663.  `Quote-in text'                        Der Text-Formatter
  2664.  `RawDoFmt()'                           RSys und Hintergrundinfos
  2665.  `Reload actionfile'                    Project
  2666.  `Rescan windows'                       Actions
  2667.  `Resident programs'                    Exec
  2668.  `Resourcen'                            Resourcen-Liste der ExecBase
  2669.  `Restore saved list'                   Internal List
  2670.  `ROT 13-Verfahren'                     Verschlüsseln von Daten und Dateien
  2671.  `Save asking'                          Flags
  2672.  `Save current list'                    Internal List
  2673.  `Save found list'                      Actions
  2674.  `Save List'                            Abspeichern einer Liste
  2675.  `Save windows'                         Actions
  2676.  `Screens'                              Screen-Liste der IntuitionBase
  2677.  `Sel all'                              Actions
  2678.  `Sel none'                             Actions
  2679.  `Selected Devices'                     Actions
  2680.  `Semaphores'                           Exec
  2681.  `Software Devices'                     Exec
  2682.  `Sorting'                              Flags
  2683.  `Speaking'                             Flags
  2684.  `sprintf()'                            RSys und Hintergrundinfos
  2685.  `Start/Stop Search'                    Actions
  2686.  `strcpy()'                             RSys und Hintergrundinfos
  2687.  `strlen()'                             RSys und Hintergrundinfos
  2688.  `strncpy()'                            RSys und Hintergrundinfos
  2689.  `Systeminfo'                           Allgemeine Systeminfo
  2690.  `Tasks'                                Task-Liste der ExecBase
  2691.  `Text to save'                         Der Text-Formatter
  2692.  `TOF Wait Queue'                       Graphics
  2693.  `Topaz font'                           Flags
  2694.  `TOPAZFONT'                            Aufruf von der WorkBench
  2695.  `Vectors'                              Exec
  2696.  `Volume Locks'                         DOS
  2697.  `Volumes'                              Volume-Liste der DOSBase
  2698.  `Windows'                              Actions
  2699.  `Windows'                              Window-Liste der IntuitionBase
  2700.  `Working bar'                          Flags
  2701.  `WORKINGBAR'                           Aufruf von der WorkBench
  2702.  `zellularen Automaten'                 Verschlüsseln von Daten und Dateien
  2703.  
  2704. Programm Index
  2705. ==============
  2706.  
  2707.  
  2708.  
  2709.  Check Libraries                        Actions
  2710.  Gadget: Assigns                        Assign-Liste der DOSBase
  2711.  Gadget: Fonts                          Font-Liste der GfxBase
  2712.  Gadget: HandlerInp                     Inputhandler-Liste
  2713.  Gadget: Hardware                       Hardware-Liste der ExpansionBase
  2714.  Gadget: Interrupts                     Interrupt-Liste der ExecBase
  2715.  Gadget: Jump                           Springen zwischen Public Screens
  2716.  Gadget: Libraries                      Library-Liste der ExecBase
  2717.  Gadget: Memory                         Memory-Liste in der ExecBase
  2718.  Gadget: Ports                          Port-Liste in der ExecBase
  2719.  Gadget: Resourcen                      Resourcen-Liste der ExecBase
  2720.  Gadget: Save List                      Abspeichern einer Liste
  2721.  Gadget: Screens                        Screen-Liste der IntuitionBase
  2722.  Gadget: Systeminfo                     Allgemeine Systeminfo
  2723.  Gadget: Tasks                          Task-Liste der ExecBase
  2724.  Gadget: Volumes                        Volume-Liste der DOSBase
  2725.  Gadget: Windows                        Window-Liste der IntuitionBase
  2726.  Menüpunkt: About...                   Project
  2727.  Menüpunkt: Amigaguide XRef            Other Libraries
  2728.  Menüpunkt: Auto front window          Flags
  2729.  Menüpunkt: Blitter Wait Queue         Graphics
  2730.  Menüpunkt: CLI processes              Exec
  2731.  Menüpunkt: Clip entry...              Clip
  2732.  Menüpunkt: Clip list                  Clip
  2733.  Menüpunkt: Commodities                Other Libraries
  2734.  Menüpunkt: CRC Check                  Actions
  2735.  Menüpunkt: Crypt                      Actions
  2736.  Menüpunkt: Display Modes              Graphics
  2737.  Menüpunkt: ENV-Variables              Preferences
  2738.  Menüpunkt: Fast Mode                  Flags
  2739.  Menüpunkt: Find File                  Actions
  2740.  Menüpunkt: Flush all libraries and FontsFlushing
  2741.  Menüpunkt: Flush Fonts                Flushing
  2742.  Menüpunkt: Flush Libraries            Flushing
  2743.  Menüpunkt: Fonts in FONTS:            Diskfont
  2744.  Menüpunkt: Format Disk                Actions
  2745.  Menüpunkt: Gadgets                    Intuition
  2746.  Menüpunkt: Help                       Project
  2747.  Menüpunkt: Iconify                    Project
  2748.  Menüpunkt: Kill saved list            Internal List
  2749.  Menüpunkt: List Hunks                 Actions
  2750.  Menüpunkt: Mouse window               Flags
  2751.  Menüpunkt: Physical Devices           DOS
  2752.  Menüpunkt: Preferences                Preferences
  2753.  Menüpunkt: Printer Data               Preferences
  2754.  Menüpunkt: Public Screens             Intuition
  2755.  Menüpunkt: Quit RSys...               Project
  2756.  Menüpunkt: Reload actionfile          Project
  2757.  Menüpunkt: Resident programs          Exec
  2758.  Menüpunkt: Restore saved list         Internal List
  2759.  Menüpunkt: Save asking                Flags
  2760.  Menüpunkt: Save current list          Internal List
  2761.  Menüpunkt: Save windows               Actions
  2762.  Menüpunkt: Semaphores                 Exec
  2763.  Menüpunkt: Software Devices           Exec
  2764.  Menüpunkt: Sorting                    Flags
  2765.  Menüpunkt: Speaking                   Flags
  2766.  Menüpunkt: TOF Wait Queue             Graphics
  2767.  Menüpunkt: Topaz font                 Flags
  2768.  Menüpunkt: Vectors                    Exec
  2769.  Menüpunkt: Volume Locks               DOS
  2770.  Menüpunkt: Working bar                Flags
  2771.  tbreak                                 Tips und Tricks
  2772.  tracer                                 Tips und Tricks
  2773.  Xoper, ARTM, TaskX und andere          Was ist RSys?
  2774.  
  2775. Konzept
  2776. =======
  2777.  
  2778.  
  2779.  
  2780.  Abspeichern einer Liste                Abspeichern einer Liste
  2781.  Adresse                                Copyrights und Verwendung
  2782.  Allgemeine Systeminfo                  Allgemeine Systeminfo
  2783.  Anhang                                 Anhang
  2784.  Assign-Liste der DOSBase               Assign-Liste der DOSBase
  2785.  Aufruf vom CLI                         Aufruf vom CLI
  2786.  Aufruf von der WorkBench               Aufruf von der WorkBench
  2787.  Copyrights und Verwendung              Copyrights und Verwendung
  2788.  CRC-Checksummen berechnen              CRC-Checksummen berechnen
  2789.  Danksagungen                           Danksagungen
  2790.  Das Actioning                          Das Actioning
  2791.  Das Hauptfenster                       Das Hauptfenster
  2792.  Das Icon                               Das Icon
  2793.  Das Menü                              Das Menü
  2794.  Das Modifizieren                       Das Modifizieren
  2795.  Dateien suchen                         Dateien suchen
  2796.  Der Text-Formatter                     Der Text-Formatter
  2797.  Die Actions-Datei                      Die Actions-Datei
  2798.  Die ENV-Variablen                      Die ENV-Variablen
  2799.  Die Gadgets und das ListView           Die Gadgets und das ListView
  2800.  Die Help-Datei                         Die Help-Datei
  2801.  Die Hotkey-Aktivierung                 Die Hotkey-Aktivierung
  2802.  Die Utilities von RSys                 Die Utilities von RSys
  2803.  Diskfont                               Diskfont
  2804.  DOS                                    DOS
  2805.  Exec                                   Exec
  2806.  Fehlermeldungen                        Weitere Pläne
  2807.  Fenster in IFF-Dateien speichern       Fenster in IFF-Dateien speichern
  2808.  Font-Liste der GfxBase                 Font-Liste der GfxBase
  2809.  Gadgets - Menüs - das Icon            Gadgets - Menüs - das Icon
  2810.  Graphics                               Graphics
  2811.  Hardware-Liste der ExpansionBase       Hardware-Liste der ExpansionBase
  2812.  History                                History
  2813.  Inputhandler-Liste                     Inputhandler-Liste
  2814.  Installation von RSys                  Installation von RSys
  2815.  Interrupt-Liste der ExecBase           Interrupt-Liste der ExecBase
  2816.  Intuition                              Intuition
  2817.  Library-Liste der ExecBase             Library-Liste der ExecBase
  2818.  Memory-Liste in der ExecBase           Memory-Liste in der ExecBase
  2819.  Menü Other Lists                      Other Lists
  2820.  Menü: Actions                         Actions
  2821.  Menü: Clip                            Clip
  2822.  Menü: Flags                           Flags
  2823.  Menü: Flushing                        Flushing
  2824.  Menü: Internal List                   Internal List
  2825.  Menü: Project                         Project
  2826.  normaler CLI-Befehl                    Aufruf vom CLI
  2827.  Other Libraries                        Other Libraries
  2828.  Paßwort                               Verschlüsseln von Daten und Dateien
  2829.  Port-Liste in der ExecBase             Port-Liste in der ExecBase
  2830.  Preferences                            Preferences
  2831.  Resourcen-Liste der ExecBase           Resourcen-Liste der ExecBase
  2832.  RSys und Hintergrundinfos              RSys und Hintergrundinfos
  2833.  Schutzprotokolle                       RSys und Hintergrundinfos
  2834.  Screen-Liste der IntuitionBase         Screen-Liste der IntuitionBase
  2835.  Springen zwischen Public Screens       Springen zwischen Public Screens
  2836.  systemkonform                          RSys und Hintergrundinfos
  2837.  Task-Liste der ExecBase                Task-Liste der ExecBase
  2838.  Tips und Tricks                        Tips und Tricks
  2839.  Verschlüsseln von Daten und Dateien   Verschlüsseln von Daten und Dateien
  2840.  Verwendete Software                    Verwendete Software
  2841.  Volume-Liste der DOSBase               Volume-Liste der DOSBase
  2842.  Was ist RSys?                          Was ist RSys?
  2843.  wbstartup-Verzeichnis                  Installation von RSys
  2844.  Weitere Pläne                         Weitere Pläne
  2845.  Window-Liste der IntuitionBase         Window-Liste der IntuitionBase
  2846.  
  2847.