_______________________________________________________________ ! ! ! Help-Text für die Remote-Makros unter AHP4.01 !# ! !# ! AHP V4.01 : (c) 1993-96 by DL6OCL !# !_______________________________________________________________!# ################################################################ Text von DL6OCL vom 26.09.1996: ------------------------------- Einleitung: ----------- AHP bietet einen gewissen Basiswortschatz an Remote-Befehlen. Nun ist es aber selbstverständlich, daß die Grenzen dieses Wortschatzes recht schnell erreicht sind, besonders wenn es darum geht, externe Programme aufzurufen (mit //RUN oder //REXX). Aus diesem Grunde wurden die Remote-Makros entwickelt. Die Remote- Makros in AHP4 sind eine Weiterentwicklung des Makro-Systems von AHP3.16. Im Gegensatz zu AHP3.16 sind die neuen Makros rufzeichen- abhängig. Dies wird nachher alles noch im Detail erklärt. Allgemeine Eigenschaften von Makros und Funktionsweise ------------------------------------------------------ Wenn AHP auf einem Port einen Remote-Befehl empfängt (gekennzeichnet durch die Zeichen ), so wird der gesamte Befehl erstmal auf das Vorkommen eines Makros durchsucht. Wird ein Makro entdeckt, wird der Inhalt des Makros anstelle des empfangenen Remote-Befehls ausgeführt. Beispiel: Makrodefinition: //VLAB_SNAPSHOT -> //REXX VLabSnapshot.rexx Wird nun der Remote-Befehl //VLAB_SNAPSHOT empfangen, so wird der Befehl in //REXX VLabSnapShot.rexx "übersetzt". //VLAB_SNAPSHOT selbst würde, ohne Makrodefinition, zu einer Fehlermeldung führen. Einer Parameterübergabe an ARexx-Programme zum Beispiel steht nichts im Wege. Dies wurde bei der Entwicklung der Remote-Makros beachtet. Beispiel: Makrodefinition: //DT_VOL -> //REXX Volume.dt Das ARexx-Programm Volume.dt benötigt einen Parameter. Aus //DT_VOL 40 wird dann //REXX Volume.dt 40 Ein Makro ist, wie oben erwähnt, rufzeichenabhängig. Ein Makro kann entweder nur für ein spezielles Rufzeichen gültig sein (bei anderen Rufzeichen wird das Makro nicht gefunden, es wird dann wahrscheinlich eine Fehlermeldung ausgegeben). Die zwei Arten von Makros ------------------------- AHP unterscheidet zwischen 2 Arten von Makros: - Permanente Makros """"""""""""""""" Diese Makros können nur im Sysop-Modus geändert werden, oder vom Sysop selbst mit dem :mdef-Befehl (dazu später mehr). Für das Löschen gilt das gleiche. - Benutzerdefinierte Makros """"""""""""""""""""""""" können von der eingeloggten Station in nahezu unbegrenzter Anzahl hinzugefügt, können geändert und wieder gelöscht werden. Definition von Makros --------------------- o Definition von benutzerdefinierten Makros mit //MDEFine: Syntax: //MDEFine //Makro - Der neue Remote-Befehl. Inhalt - Der Remote-Befehl, der beim Eintreffen des Makros intern ausgeführt werden soll. o Defintion von benutzerdefinierten Makrod mit :mdef als AHP-Sysop: Syntax: :mdef //Makro und Inhalt sind identisch mit den Parametern von //MDEFine. call - Hiermit wird das Rufzeichen angegeben, für die das Makro gültig sein soll. Soll das Makro öffentlich sein, so muß man für das call ein "-" angeben. Existiert das Makro bereits, wird das Makro, sofern dies möglich ist, neu definiert (Eine sysoptierte Station kann mit //MDEFine auch permanente Makros umdefinieren). Löschen von Makros ------------------ o Löschen von benutzerdefinierten Makros mit //MDEFine: Syntax: //MDEFine //Makro - Das Makro ebent Das Makro wird aus der Makroliste entfernt. o Löschen von permanenten Makros mit //MDEFine: Dies geht nur, wenn sich die Station im Sysop-Modus befindet, oder wenn der Remote-Befehl auf einem discon. Port eingegeben wird. o Löschen von Makros mit :mdef: Man läßt ganz den Parameter (s.o.) weg, und das Makro ist Vergangenheit. Umtragen von Makros ------------------- Diese Operation ist dem Sysop mit dem Befehl :mstat vorenthalten. Syntax: :mstat call - Das Rufzeichen, zu dem //makro gehört, "-" für öffentliches Makro //makro - Das Makro, das umgetragen werden soll neustatus - der Makro-Status: 1 = Permanent * 0 = benutzerdefiniert neucall - Das Rufzeichen, zu dem das //makro danach gehören soll Die Makroliste -------------- Mit dem Befehl //ML wird die Liste der permanenten und der benutzer- definierten Makros ausgeben. Auf einem discon. Kanal oder bei einer sysoptierten Station werden zusätzlich noch die Makro-Rufzeichen aufge- listet. Überladen von Remote-Befehlen ----------------------------- Mit den Remote-Befehlen ist es sogar möglich, den Basis-Befehlssatz an Remote-Befehlen zu überladen. Anstelle des normalen Remote-Befehls wird dann ein Makro ausgeführt. Beispiel: Makrodefinition: //DISC -> //Q Folge: Normalerweise führt //DISC zum sofortigen Abbruch der Verbindung. Ist aber dieses Makro installiert, so wird statt //DISC der //Q Befehl durchgeführt, es kommt vorher noch ein Byetext. Remote-Makro-Ebenen ------------------- Erstmals ist es jetzt auch möglich, Remote-Makros mit Remote-Makros als Inhalt zu definieren. Unter AHP3.16 hat dies noch zu Fehlermeldungen geführt. Beispiel: Makrodefinition: //VOLUME -> //REXX Volume.rexx Dieser neue Remote-Befehle verlangt nach einem Parameter. Mit diesem Befehl kann man eine Lautstärke von einem ModPlayer festlegen. Nun könnte man für bestimmt Lautstärken neue Makros definieren: Makrodefinition: //LAUT -> //REXX Volume.rexx 65 Aber man kann sich auch des bereits existierenden Makros //VOLUME bedienen und folgendes definieren: Makrodefinition: //LAUT -> //VOLUME 65 Dies sorgt für eine beinahe völlige Distanzierung vom eigentlichen Programmaufruf, des Volume.rexx-Programms in der Schublade ahp4:Rexx. Wenn man auf einen anderen ModPlayer kurzzeitig wechselt, muß nur //VOLUME umdefiniert, alle anderen Makros //LAUT, //LEISE und wie sie alle heißen, müssen nicht modifiziert werden. Schlußwort ---------- Wir sind nun am Ende unserer Reise durch die Wunderwelt der AHP-Makros angelangt. Ich wünsche Ihnen weiterhin viel Spaß und Freude mit AHP4!! 73 es 55 de Jens, DL6OCL ========================