In dieser Bibliothek sind Funktionen enthalten, um eine GEM-Applikation zu initialisieren und zu terminieren; darüber hinaus erlauben diese Routinen die Kommunikation mit anderen Prozessen. Insgesamt stehen die folgenden Funktionen zur Verfügung:
• appl_bvset | Angeschlossene Laufwerke setzen. |
• appl_control | Gezieltes Steuern von Anwendungen. |
• appl_exit | AES-Anwenderprogramm abmelden und Kennung freigeben. |
• appl_find | AES-Kennung einer anderen AES-Applikation ermitteln. |
• appl_getinfo | System-Informationen ermitteln. |
• appl_getinfo_str | erweiterte System-Informationen ermitteln. |
• appl_getcicon | Ermitteln eines CICON (Icon Server) |
• appl_init | AES-Anwendung anmelden. |
• appl_options | Sets or gets application options |
• appl_read | AES-Mitteilungen lesen. |
• appl_search | Applikationen im System suchen. |
• appl_tplay | Ereignisse abspielen. |
• appl_trecord | Ereignisse aufzeichnen. |
• appl_write | AES-Mitteilungen schreiben. |
• appl_xbvget | Angeschlossene Laufwerke ermitteln. |
• appl_xbvset | Extended available drive bitmaps. |
• appl_yield | AES-Prozeß-Switch erzwingen. |
• _appl_yield | AES-Prozeß-Switch erzwingen. |
• x_appl_flags | Controls execution flags |
• x_appl_font | Changes font and window borders |
• x_appl_sleep | Puts application to sleep, or wakes it up |
• x_appl_term | Terminate an application and remove it from memory. |
Hinweis: Besondere Beachtung verdient dabei appl_getinfo, mit dessen Hilfe sich leicht Eigenschaften des Betriebssystems zur Laufzeit erfragen lassen.
Querverweis: Style-Guidelines
Name: | »Application Bitvektor-Set« - setzt die angeschlossenen
logischen Laufwerke für die Dateiauswahlbox
| ||||||
AES-Nummer: | 16
| ||||||
Deklaration: | int16_t appl_bvset ( uint16_t bvdisk, uint16_t bvhard );
| ||||||
Beschreibung: | Die Funktion informiert das GEM über die vorhandenen logischen
Laufwerke, die u.a. für die Dateiauswahl-box (Fileselector) benötigt
werden. Es gilt:
Die Werte stehen der Applikation in global[13] und global[14] zur Verfügung. In GEM/4 and GEM/5, use appl_xbvset to access drives beyond P. | ||||||
Ergebnis: | Der Rückgabewert der Funktion ist z.Zt. nicht bekannt.
| ||||||
Verfügbar: | Die Funktion steht erst ab PC-GEM Version 2.0, KAOS 1.4.2 und
MagiC zur Verfügung.
| ||||||
Gruppe: | Applikationen
| ||||||
Querverweis: | Binding appl_xbvset Dsetdrv
|
C: | int16_t appl_bvset ( uint16_t bvdisk, uint16_t bvhard );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_bvset (uint16_t bvdisk, uint16_t bvhard) { int_in[0] = bvdisk; int_in[1] = bvhard; return ( crys_if(16) ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application control« - Gezieltes Steuern von Anwendungen.
| ||||||||||||||||||||||||||||||||||
AES-Nummer: | 129
| ||||||||||||||||||||||||||||||||||
Deklaration: | int16_t appl_control ( int16_t ap_cid, int16_t ap_cwhat, void
*ap_cout);
| ||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion erlaubt ein gezieltes Steuern von Anwendungen.
Hinweis: Ausgeblendeten Anwendungen wird in der Menüleiste ein '*' vorangestellt, es sei denn, sie hatten im Moment der Ausblendung kein Fenster offen. In diesem Fall wird nur die Anwendung gewechselt. Der '*' vor dem Namen bedeutet genau: Einige oder alle geöffneten Fenster dieser Anwendung sind ausgeblendet. | ||||||||||||||||||||||||||||||||||
Ergebnis: | 0 = ein Fehler ist aufgetreten
>0 = kein Fehler aufgetreten | ||||||||||||||||||||||||||||||||||
Verfügbar: | Das Vorhandensein der Funktion ist über appl_getinfo (Opcode 65)
nachprüfbar.
| ||||||||||||||||||||||||||||||||||
Gruppe: | Applikationen
| ||||||||||||||||||||||||||||||||||
Querverweis: | Binding SM_M_SPECIAL
|
C: | int16_t appl_control ( int16_t ap_cid, int16_t ap_cwhat, void
*ap_cout);
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_control ( int16_t ap_cid, int16_t ap_cwhat, void *ap_cout); { int_in[0] = ap_cid; int_in[1] = ap_cwhat; addr_in[0] = ap_cout; return ( crys_if(129) ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application exit« - meldet eine Applikation vom AES ab.
|
AES-Nummer: | 19
|
Deklaration: | int16_t appl_exit ( void );
|
Beschreibung: | Meldet eine Applikation beim AES wieder ab und gibt deren
Applikations-ID frei.
|
Ergebnis: | Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird.
|
Verfügbar: | Alle AES Versionen
|
Gruppe: | Applikationen
|
Querverweis: | Binding appl_init
|
C: | int16_t appl_exit ( void );
| |||||||||||||||||||||
Umsetzung: |
int16_t appl_exit (void) { return ( crys_if(19) ); } | |||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application find« - ermittelt die Applikationsnummer einer
AES-Anwendung.
| ||||||||||||
AES-Nummer: | 13
| ||||||||||||
Deklaration: | int16_t appl_find ( CONST int8_t *ap_fpname );
| ||||||||||||
Beschreibung: | Diese Funktion ermittelt die Applikationsidentifikation einer
anderen, parallel laufenden Applikation. Dabei zeigt ap_fpname
auf den Namen der Applikation deren Identifikator gefunden werden
soll.
Wichtig: Der Name muß unbedingt acht Zeichen lang sein, ist er kürzer, so muß er mit Leerzeichen aufgefüllt werden. In MagiC und AES 4.0 kann man zusätzlich durch Übergabe eines Nullpointers die ID der aktuellen Applikation ermitteln. Darüber hinaus ist es möglich, die AES-ID einer Applikation in die MiNT-ID umzurechnen und umgekehrt, und zwar wie folgt:
Hinweis: Die Funktion arbeitet nur dann korrekt, wenn das betreffende Programm per shel_write gestartet worden ist. Es sei ferner darauf hingewiesen, daß Threads über diese Funktion nicht gefunden werden können. Bei KAOS 1.4.2 und MagiC kann man den Applikationsname auch ermitteln in dem man den String "?\0\n" übergibt, wobei n die ap_id darstellt. Ist der Funktionswert 0 ist die ap_id ungültig. Ansonsten erhält man eine 1, und der String wurde mit dem Applikationsnamen überschrieben. Besitzen zwei Applikationen den selben Namen wird nur der erste gefunden. Einige AES-Namen sind vordefiniert: "SCRENMGR": Bildschirmmanager. " ": Integriertes Desktop. "?AGI ": appl_getinfo() bei AES-Versionen < 4.00 vorhanden | ||||||||||||
Ergebnis: | Ein Rückgabewert kleiner Null kennzeichnet einen aufgetretenen
Fehler.
| ||||||||||||
Verfügbar: | Das Vorhandensein der zusätzlichen Features ist über appl_getinfo
(Opcode 4) nachprüfbar.
| ||||||||||||
Gruppe: | Applikationen
| ||||||||||||
Querverweis: | Binding appl_search Screen-Manager
|
C: | int16_t appl_find ( CONST int8_t *ap_fpname );
| ||||||||||||||||||||||||
Umsetzung: |
int16_t appl_find (CONST int8_t *ap_fpname) { addr_in[0] = ap_fpname; return ( crys_if(13) ); } | ||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application get information« - Informationen über
vorhandene Funktionsaufrufe und Eigenschaften erfragen.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AES-Nummer: | 130
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | int16_t appl_getinfo ( int16_t ap_gtype, int16_t *ap_gout1,
int16_t *ap_gout2, int16_t *ap_gout3, int16_t *ap_gout4 );
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Mit dieser Funktion lassen sich gezielt Eigenschaften des
Betriebssystems zur Laufzeit erfragen.
ap_gtype bestimmt die Art der Informationen, die erfragt werden sollen. Es bedeutet: AES_LARGEFONT (0): Informationen über den normalen AES-Zeichensatz
AES_SMALLFONT (1): Informationen über den kleinen Zeichensatz
AES_SYSTEM (2): Farben
AES_LANGUAGE (3): Sprache
AES_PROCESS (4): allgemeine Informationen-1
AES_PCGEM (5): allgemeine Informationen-2
AES_INQUIRE (6): allgemeine Informationen-3
7: reserviert für MagiC und andere Erweiterungen, MultiTOS setzt alle Rückgabewerte immer auf 0. In MagiC gilt:
AES_MOUSE (8): Maus
AES_MENU (9): Menüs
AES_SHELL (10): shel_write
AES_WINDOW (11): Fenster
AES_MESSAGE (12): Nachrichten
AES_OBJECT (13): OBJECTs
AES_FORM (14): Formulare (MagiC form_xdo und form_xdial)
AES_EXTENDED (64): Erweiterte Funktionen
AES_NAES (65): Zusätzliche N.AES Funktionen
AES_VERSION (96): AES Version There is an extended mode since XaAES from 2004-12-18.
Together (ap_gout1 & ap_gout2), these two contain the decimal representation of the AES's version number. For XaAES v0.992, ap_gout1 contains 0 (0x0000) and ap_gout1 contains 992 (0x3e0). AES_WOPTS (97): Available WF_OPTS settings since XaAES 2005-07-09
AES_FUNCTIONS (98): Available extended AES function since XaAES 2005-12-08
AES_AOPTS (99): Available application options The bitmasks returned here are identical to the bitmasks used to modify the application options via appl_options(APL_OPTS). Needless to say, this option is not available if bit 0 in ap_gout1 is cleared after appl_getinfo(AES_FUNCTIONS). since XaAES 2005-12-08
AES_WINX (22360): Infos zu Erweiterungen in WINX dieser Informationstyp existiert seit WINX 2.3
22358: XaAES Wird ab dem 2004-12-18 nicht mehr unterstützt. Siehe ap_gtype = 96
Hinweis: Ein Problem dieser Funktion besteht darin, festzustellen, wann sie überhaupt aufgerufen werden darf. Zwar sollte sie ab AES-Version 4.0 vorhanden sein, MagiC 2.0 (und auch MagiC 3.0) besitzt aber beispielsweise die Version 3.99. Aus diesem Grund definieren viele Programmierer die Funktion appl_xgetinfo, in der überprüft wird, ob appl_getinfo in der aktuellen Systemumgebung vorhanden ist. Hinweis: This function was backported to FreeGEM as xapp_getinfo (opcode 1020) and exists if the ABLE_GETINFO bit is set in the "abilities" bitmap. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Ein Rückgabewert von 0 zeigt einen Fehler an; bei einem Wert
von 1 ist kein Fehler aufgetreten.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Available as of AES version 4.00.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Applikationen
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding
|
C: | int16_t appl_getinfo ( int16_t ap_gtype, int16_t *ap_gout1,
int16_t *ap_gout2, int16_t *ap_gout3, int16_t *ap_gout4 );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_getinfo (int16_t ap_gtype, int16_t *ap_gout1, int16_t *ap_gout2, int16_t *ap_gout3, int16_t *ap_gout4) { int_in[0] = ap_gtype; crys_if (130); *ap_gout1 = int_out[1]; *ap_gout2 = int_out[2]; *ap_gout3 = int_out[3]; *ap_gout4 = int_out[4]; return ( int_out[0] ); } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
/* Der folgende Code testet, ob appl_getinfo in der aktuellen Systemumgebung zur Verfuegung steht, und ruft im positiven Fall die besagte Funktion auf. Es bietet sich an, statt appl_getinfo nur appl_xgetinfo in eigenen Programmen zu verwenden. */ GLOBAL int16_t appl_xgetinfo ( int16_t type, int16_t *out1, int16_t *out2, int16_t *out3, int16_t *out4 ) { BOOLEAN has_agi = FALSE; has_agi = ((_GemParBlk.global[0] == 0x399 && (is_MagiC() >= 0x0200)) || (_GemParBlk.global[0] >= 0x400) || (appl_find ("?AGI") >= 0)); if (has_agi) return (appl_getinfo (type, out1, out2, out3, out4)); else return (0); } /* appl_xgetinfo */
Die Abfrage is_MagiC ist eine Funktion, welche den MagiC-Cookie auswertet und die Versionsnummer zurückliefert. Dies ist notwendig da bereits MagiC 2 die Funktion appl_getinfo kennt, allerdings noch nicht die Abfrage per "?AGI" erlaubt.
Querverweis: Applikationen GEM Style-Guidelines
Name: | »Application get information« - Informationen über
vorhandene Funktionsaufrufe und Eigenschaften erfragen.
| ||||||||
AES-Nummer: | 130
| ||||||||
Deklaration: | int16_t appl_getinfo_str ( int16_t ap_gtype, int16_t *ap_gout1,
int16_t *ap_gout2, int16_t *ap_gout3, int16_t *ap_gout4 );
| ||||||||
Beschreibung: | Dies ist eine erweiterte Version von appl_getinfo. Statt der
integer Werte liefert sie Zeichenketten zurück.
ap_gtype bestimmt die Art der Informationen, die erfragt werden sollen. Es bedeutet: 96: AES Version
Hinweis: Ein Problem dieser Funktion besteht darin, festzustellen, wann sie überhaupt aufgerufen werden darf. Zwar sollte sie ab AES-Version 4.0 vorhanden sein, MagiC 2.0 (und auch MagiC 3.0) besitzt aber beispielsweise die Version 3.99. Aus diesem Grund definieren viele Programmierer die Funktion appl_xgetinfo, in der überprüft wird, ob appl_getinfo in der aktuellen Systemumgebung vorhanden ist. | ||||||||
Ergebnis: | Ein Rückgabewert von 0 zeigt einen Fehler an; bei einem Wert
von 1 ist kein Fehler aufgetreten.
| ||||||||
Verfügbar: | since XaAES from 2004-12-18
| ||||||||
Gruppe: | Applikationen
| ||||||||
Querverweis: | Binding appl_getinfo
|
C: | int16_t appl_getinfo_str ( int16_t ap_gtype, int16_t *ap_gout1,
int16_t *ap_gout2, int16_t *ap_gout3, int16_t *ap_gout4 );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_getinfo_str(int16_t ap_gtype, int16_t *ap_gout1, int16_t *ap_gout2, int16_t *ap_gout3, int16_t *ap_gout4) { int_in[0] = ap_gtype; addr_in[0] = (int32_t)ap_out1; addr_in[1] = (int32_t)ap_out2; addr_in[2] = (int32_t)ap_out3; addr_in[3] = (int32_t)ap_out4; crys_if (130); return ( int_out[0] ); } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application get Cicon«
| ||||||||||||||||||||||||||||||||||||||||
AES-Nummer: | 131
| ||||||||||||||||||||||||||||||||||||||||
Deklaration: | int16_t appl_getcicon(int16_t type,char *name,int16_t size,
int_16_t *cicon_width,int16_t *cicon_height, CICON **cicon_data);
| ||||||||||||||||||||||||||||||||||||||||
Beschreibung: | The goal of this function is to provide cicon server (24 bit
true color for MyAES or 32 picture) This function provide only CICON
data with bitmap and mask and not a full object icon. Data provide by
this function should be relocated and copy, AES not keep in memory
CICON block provided that should be copy.
| ||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Ein Fehler ist aufgetreten, wenn als Ergebnis 0 zurückgegeben
wird. Bei einem Ergebnis von 1 ist alles OK.
| ||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Seit MyAES 0.96 beta1
| ||||||||||||||||||||||||||||||||||||||||
Gruppe: | Applikationen
| ||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding
|
C: | int16_t appl_getcicon(int16_t type,char *name,int16_t size,
int_16_t *cicon_width,int16_t *cicon_height, CICON **cicon_data);
| |||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_getcicon (int16_t type,const char *name,int16_t size, int16_t *cicon_width,int16_t *cicon_height CICON **cicon_data) { int_in[0] = type; int_in[1] = size; addr_in[0] = name; addr_out[0] = (void *)cicon_data; crys_if (131); *cicon_width = int_out[1]; *cicon_height = int_out[2]; return ( int_out[0] ); } | |||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application Initialization« - meldet die Applikation unter
AES an.
|
AES-Nummer: | 10
|
Deklaration: | int16_t appl_init ( void );
int16_t appl_init ( X_BUF_V2 *xbuf ); |
Beschreibung: | Die Funktion meldet das Programm beim AES an, und initialisiert
die internen Parameterübergabefelder.
The extra parameter to an X_BUF_V2 is an extension in the FreeGEM AES. If addr_in[0] is set to 1 and an initialised X_BUF_V2 structure is passed in, then on return its arch member will be 0 for DRI GEM or ViewMAX, and 16 or 32 for FreeGEM. Hinweis: Die Versionsnummer des AES läßt sich nach diesem Aufruf über das Globalfeld (global[0]) erfragen. Um zu testen, ob ein Programm aus dem Auto-Ordner heraus gestartet worden ist, bietet sich folgendes Verfahren an:
Dieses Verfahren ist zwar nicht offiziell dokumentiert, wird aber auch im Mausbeschleuniger MACCEL von Atari so angewendet. KAOS-GEM 1.4.2 liefert in int_in[0] 'KA' und int_in[1] 'OS' zurück. |
Ergebnis: | Die Funktion liefert die ID der Applikation zurück. Im
Fehlerfall wird der Wert -1 zurückgegeben.
|
Verfügbar: | All AES versions.
|
Gruppe: | Applikationen
|
Querverweis: | Binding appl_find appl_search appl_exit
|
C: | int16_t appl_init ( void );
| |||||||||||||||||||||
Umsetzung: |
EXTERN AESPB c; int16_t appl_init (void) { c.cb_pcontrol = control; c.cb_pglobal = global; c.cb_pintin = int_in; c.cb_pintout = int_out; c.cb_padrin = addr_in; c.cb_padrout = addr_out; control[4] = 0; crys_if (10); return (int_out[0]); } | |||||||||||||||||||||
GEM-Arrays: |
|
Name: | »-« -
| ||||||||||||||||||||||||||
AES-Nummer: | 137
| ||||||||||||||||||||||||||
Deklaration: | int16_t appl_options(int16_t mode, int16_t aopts0, int16_t
aopts1, int16_t aopts2, int16_t aopt3, int16_t *out0, int16_t *out1,
int16_t *out2, int16_t *out3);
| ||||||||||||||||||||||||||
Beschreibung: | Its purpose is to let application set/get options available to
it, such as the extended objc_edit mode.
| ||||||||||||||||||||||||||
Ergebnis: | Return 1 = OK or 0 = error.
| ||||||||||||||||||||||||||
Verfügbar: | Das Vorhandensein der Funktion ist über appl_getinfo (Opcode 98)
nachprüfbar.
| ||||||||||||||||||||||||||
Gruppe: | Applikationen
| ||||||||||||||||||||||||||
Querverweis: | Binding
|
C: | int16_t appl_options(int16_t mode, int16_t aopts0, int16_t
aopts1, int16_t aopts2, int16_t aopt3, int16_t *out0, int16_t *out1,
int16_t *out2, int16_t *out3);
| ||||||||||||||||||||||||||||||||||||||||||||||||
Binding: |
int16_t appl_options(int16_t mode, int16_t aopts0, int16_t aopts1, int16_t aopts2, int16_t aopt3, int16_t *out0, int16_t *out1, int16_t *out2, int16_t *out3) { int_in[0] = mode; int_in[1] = aopts0; int_in[2] = aopts1; int_in[3] = aopts2; int_in[4] = aopts3; crys_if(137); *out0 = int_out[1]; *out1 = int_out[2]; *out2 = int_out[3]; *out3 = int_out[4]; return ( int_out[0] ); } | ||||||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application read« - empfängt eine Mitteilung einer anderen
Applikation.
| ||||||||||
AES-Nummer: | 11
| ||||||||||
Deklaration: | int16_t appl_read ( int16_t ap_rid, int16_t ap_rlength, void
*ap_rpbuff );
| ||||||||||
Beschreibung: | Die Funktion liest eine Anzahl von Bytes aus der Message-Pipe.
Es gilt:
Die Funktion wartet ggfs. bis die angeforderte Anzahl an Bytes tatsächlich zur Verfügung steht. In MagiC und MultiTOS ist die Funktion so erweitert worden, daß sie mit einer entsprechenden Meldung zurückkehrt, wenn keine Daten vorhanden sind (ap_rid: -1). Hinweis: appl_read arbeitet destruktiv, d.h. daß Nachrichten nach dem Auslesen aus der Message-Pipe entfernt werden. Dies macht es notwendig, die gelesene Nachricht so auszuwerten, wie es beispielsweise nach einem evnt_multi-Aufruf geschieht. Das Vorhandensein des erweiterten Feature kann über appl_getinfo (Opcode 6) abgefragt werden. | ||||||||||
Ergebnis: | Wird eine Null zurückgegeben, so ist ein Fehler aufgetreten,
sonst wird eine positive Zahl als Ergebnis zurückgegeben.
| ||||||||||
Verfügbar: | In allen AES Versionen.
| ||||||||||
Gruppe: | Applikationen
| ||||||||||
Querverweis: | Binding appl_init appl_write evnt_mesag evnt_multi
|
C: | int16_t appl_read ( int16_t ap_rid, int16_t ap_rlength, void
*ap_rpbuff );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_read (int16_t ap_rid, int16_t ap_rlength, void *ap_rpbuff) { int_in[0] = ap_rid; int_in[1] = ap_rlength; addr_in[0] = ap_rpbuff; return ( crys_if(11) ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application search« - im System vorhandene Applikationen
suchen.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AES-Nummer: | 18
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | int16_t appl_search ( int16_t ap_smode, int8_t *ap_sname,
int16_t *ap_stype, int16_t *ap_sid );
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Je nach Parameter sucht die Funktion verschiedene im System
vorhandene Applikationen. Es bedeuten:
Es ist möglich der Langname einer Applikation zu ermittelt, wenn man ihre Applikations-ID kennt. Der Langname ist derjenige, der von der Applikation bei einem menu_register()- Aufruf übergeben wurde und auch in der Menüleiste dargestellt wird. Kennt man die Applikations-ID apid einer Anwendung, so wird ihr Langname durch folgenden Aufruf von appl_search in den Buffer langname übertragen: appl_search(-apid, &langname[0], &typ, &pid) type ist hierbei die auch normalerweise gelieferte Bitmaske des Applikationstyps, pid die MiNT-pid (nicht: apid) der Applikation. Als erster Parameter ist also der negative Wert der Applikations-ID zu übergeben, um den Langnamen eben dieser Applikation zu ermitteln. Dieser Name kann maximal 32 Zeichen lang sein (31 Zeichen plus ein Nullbyte), man sollte also einen entsprechend großen Buffer für langname reservieren. APP_TASKINFO liefert automatisch den Langnamen einer Applikation und steht nur unter XaAES zur Verfügung. Mit dieser Routine können keine Threads gefunden werden. Geneva have three extra modes:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert den Wert 1, wenn kein Fehler aufgetreten
ist, bzw. den Wert 0, wenn keine weiteren Applikationen vorhanden
sind.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 4)
festgestellt werden. Die Ermittlung des Langname und Taskinformationen
erkennt man an appl_getinfo (Opcode 64).
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Applikationen
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding appl_find Broadcasting
|
C: | int16_t appl_search ( int16_t ap_smode, int8_t *ap_sname,
int16_t *ap_stype, int16_t *ap_sid );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_search (int16_t ap_smode, int8_t *ap_sname, int16_t *ap_stype, int16_t *ap_sid) { int_in[0] = ap_smode; addr_in[0] = ap_sname; crys_if(18); *ap_stype = int_out[1]; *ap_sid = int_out[2]; return ( int_out[0] ); } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application play« - spielt aufgezeichnete AES-Ereignisse
ab.
| ||||||||||
AES-Nummer: | 14
| ||||||||||
Deklaration: | int16_t appl_tplay ( APPLRECORD *ap_tpmem, int16_t ap_tpnum,
int16_t ap_tpscale );
| ||||||||||
Beschreibung: | Die Funktion bietet die Möglichkeit, aufgezeichnete
Benutzeraktionen wieder abzuspielen. Es gilt:
| ||||||||||
Ergebnis: | Als Ergebnis wird immer der Wert 1 zurückgegeben.
| ||||||||||
Verfügbar: | All AES versions.
| ||||||||||
Gruppe: | Applikationen
| ||||||||||
Querverweis: | Binding appl_trecord
|
C: | int16_t appl_tplay ( APPLRECORD *ap_tpmem, int16_t ap_tpnum,
int16_t ap_tpscale );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_tplay (APPLRECORD *ap_tpmem, int16_t ap_tpnum, int16_t ap_tpscale) { int_in[0] = ap_tpnum; int_in[1] = ap_tpscale; addr_in[0] = ap_tpmem; return ( crys_if(14) ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application record« - nimmt AES-Ereignisse auf.
| ||||||||
AES-Nummer: | 15
| ||||||||
Deklaration: | int16_t appl_trecord ( APPLRECORD *ap_tbuffer, int16_t
ap_trcount );
| ||||||||
Beschreibung: | Die Funktion dient zum Speichern von Benutzeraktionen, um diese
später wieder abzuspielen. Es gilt:
| ||||||||
Ergebnis: | Als Ergebnis wird die Anzahl der tatsächlich aufgezeichneten
Ereignisse zurückgeliefert.
| ||||||||
Verfügbar: | All AES versions. Die Funktion ist erst ab GEM-Version 1.2
richtig implementiert.
| ||||||||
Gruppe: | Applikationen
| ||||||||
Querverweis: | Binding appl_tplay
|
C: | int16_t appl_trecord ( APPLRECORD *ap_tbuffer, int16_t
ap_trcount );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_trecord (APPLRECORD *ap_tbuffer, int16_t ap_trcount) { int_in[0] = ap_trcount; addr_in[0] = ap_tbuffer; return ( crys_if(15) ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application write« - sendet eine Mitteilung an eine andere
Applikation.
| ||||||||||
AES-Nummer: | 12
| ||||||||||
Deklaration: | int16_t appl_write ( int16_t ap_wid, int16_t ap_wlength, void
*ap_wpbuff );
| ||||||||||
Beschreibung: | Die Funktion schreibt eine Anzahl von Bytes in eine
Message-Pipe. Es gilt:
Hinweis: Durch diese Funktion besitzt eine Applikation auch die Möglichkeit, sich selbst eine Redraw-Nachricht zukommen zu lassen. Ab MagiC Version 4.0 gilt: besitzt der Parameter ap_wid den Wert -2, so zeigt ap_wpbuff auf eine XAESMSG-Struktur. | ||||||||||
Ergebnis: | Wird eine Null zurückgegeben, so ist ein Fehler aufgetreten,
sonst wird eine positive Zahl als Ergebnis zurückgegeben.
| ||||||||||
Verfügbar: | All AES versions.
| ||||||||||
Gruppe: | Applikationen
| ||||||||||
Querverweis: | Binding appl_init appl_read appl_find Nachrichten
|
C: | int16_t appl_write ( int16_t ap_wid, int16_t ap_wlength, void
*ap_wpbuff );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_write (int16_t ap_wid, int16_t ap_wlength, void *ap_wpbuff) { int_in[0] = ap_wid; int_in[1] = ap_wlength; addr_in[0] = ap_wpbuff; return ( crys_if(12) ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Extended application bit-vector get« - ermittelt die
angeschlossenen logischen Laufwerke für die Dateiauswahlbox
| ||||||||
AES-Nummer: | 18
| ||||||||
Deklaration: | int16_t appl_xbvget ( uint32_t *bvdisk, uint32_t *bvhard );
| ||||||||
Beschreibung: | Die Funktion ermittelt die Liste der vorhandenen logischen
Laufwerke, die u.a. für die Dateiauswahl-box (Fileselector) verwendet
werden. Es gilt:
| ||||||||
Ergebnis: | Als Ergebnis wird immer eine 1 zurückgegeben.
| ||||||||
Verfügbar: | GEM/4, GEM/5 und FreeGEM.
The function to do this is present on FreeGEM if the ABLE_XBVSET bit is set in the "abilities" bitmap. | ||||||||
Gruppe: | Applikationen
| ||||||||
Querverweis: | Binding appl_bvset appl_xbvset
|
C: | int16_t appl_xbvget ( uint32_t *bvdisk, uint32_t *bvhard );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_xbvget (uint32_t *bvdisk, uint32_t *bvhard) { int_in[0] = 0; crys_if(18); *bvdisk = int_out[1..2]; *bvhard = int_out[3..4]; return ( int_out[0] ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Extended application bit-vector set«
| ||||||||
AES-Nummer: | 18
| ||||||||
Deklaration: | int16_t appl_xbvset ( uint32_t bvdisk, uint32_t bvhard );
| ||||||||
Beschreibung: | Die Funktion informiert das GEM über die vorhandenen logischen
Laufwerke, die u.a. für die Dateiauswahl-box (Fileselector) benötigt
werden. Es gilt:
| ||||||||
Ergebnis: | Der Rückgabewert der Funktion ist z.Zt. nicht bekannt.
| ||||||||
Verfügbar: | GEM/4, GEM/5 und FreeGEM.
The function to do this is present on FreeGEM if the ABLE_XBVSET bit is set in the "abilities" bitmap. | ||||||||
Gruppe: | Applikationen
| ||||||||
Querverweis: | Binding appl_bvset appl_xbvget
|
C: | int16_t appl_xbvset ( uint32_t bvdisk, uint32_t bvhard );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t appl_xbvset (uint32_t bvdisk, uint32_t bvhard) { int_in[0] = 1; addr_in[0] = bvdisk; addr_in[1] = bvhard; return ( crys_if(18) ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application yield« - Prozeßwechsel erzwingen
|
AES-Nummer: | 17
|
Deklaration: | int16_t appl_yield ( void );
|
Beschreibung: | Mit Hilfe dieser Funktion kann ein AES-Prozeßwechsel erzwungen
werden.
Hinweis: Dies kann analog durch einen kurzen Aufruf der Funktion evnt_timer erreicht werden. |
Ergebnis: | Der Rückgabewert der Funktion ist z.Zt. nicht bekannt.
|
Verfügbar: | Die Funktion steht nur unter PC-GEM, Geneva, sowie MagiC
(jeweils) ab Version 2.0, N.AES und XaAES zur Verfügung.
|
Gruppe: | Applikationen
|
Querverweis: | Binding evnt_timer _appl_yield
|
C: | int16_t appl_yield ( void );
| |||||||||||||||||||||
Umsetzung: |
int16_t appl_yield (void) { return ( crys_if(17) ); } | |||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application yield« - Prozeßwechsel erzwingen
|
Deklaration: | void _appl_yield ( void );
|
Beschreibung: | Mit Hilfe dieser Funktion kann ein AES-Prozeßwechsel erzwungen
werden.
Hinweis: Dies kann analog durch einen kurzen Aufruf der Funktion evnt_timer oder appl_yield erreicht werden. |
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: | Die Funktion ist verfügbar seit TOS 1.0, KAOS und MagiC seit
Version 1.0.
|
Gruppe: | Applikationen
|
Querverweis: | Binding evnt_timer appl_yield
|
C: | void _appl_yield ( void );
|
Umsetzung: |
_appl_yield: move.l a2,-(sp) move.w #201,d0 ; _appl_yield() trap #2 movea.l (sp)+,a2 rts |
Name: | »Control execution flags« - Get or set program flags
| ||||||||||||
AES-Nummer: | 28928
| ||||||||||||
Deklaration: | int16_t x_appl_flags( int16_t getset, int16_t index, APPFLAGS
*flags );
| ||||||||||||
Beschreibung: | The call x_appl_flags controls the execution flags that are
used when determining how an application gets run. It works in two
modes, globally and for a particular application.
Note: Changing the multitask attribute of an application in this manner will have no effect, since this can only be changed before the application is launched. Descriptions of each of the available flags can be found in the section of the manual describing the Task Manager's "Flags" dialog. | ||||||||||||
Ergebnis: | 0 = Out of memory (mode 1)
Flags not found (all modes) | ||||||||||||
Verfügbar: | Die Funktion steht nur unter Geneva zur Verfügung.
| ||||||||||||
Gruppe: | Applikationen
| ||||||||||||
Querverweis: | Binding
|
C: | int16_t x_appl_flags( int16_t getset, int16_t index, APPFLAGS
*flags );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t x_appl_flags( int16_t getset, int16_t index, APPFLAGS *flags ) { int_in[0] = getset; int_in[1] = index; addr_in[0] = flags; return ( crys_if(28928) ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Change font and window borders« - (Geneva)
|
AES-Nummer: | 28929
|
Deklaration: | int16_t x_appl_font( int16_t getset, int16_t zero, XFONTINFO
*info );
|
Beschreibung: | Change the characteristics of the large font used by Geneva,
and also the window gadget borders.
This function gives one control over what font is used to display characters in the menu bar, dialogs, etc. When Geneva first runs, it checks to see if the font ID saved in GENEVA.CNF is anything other than 1 (for a system font). If so, and GDOS is present, it loads all available fonts, and uses the correct font. If the particular font is not available, it reverts to the system font. Regardless of the font's availability, the closest point size to the one specified is used. The window gadgets will have a width which is equal to the width of one character in the font, plus the value specified by the user. A similar calculation is used for the gadget height. When any element in the structure pointed to by info is -2, the default value for that element (as though there had been no GENEVA.CNF file when Geneva loaded) is used; in the case of a getset value of zero (get), this default value is returned in the info structure. When getset is 1 and any element is -1, that element will cause Geneva to ignore the setting, leaving the old value in tact. Setting these values will have no immediate effect. The GENEVA.CNF file must be re-saved, and Geneva must be restarted before a change can be noticed. This example: XFONTINFO info = { -2, -2, -2, -2 }; x_appl_font( 0, 0, &info ); /* get default values */ x_appl_font( 1, 0, &info ); /* set to these values */ Is the same as: XFONTINFO info = { -2, -2, -2, -2 }; x_appl_font( 1, 0, &info ); /* set to default values */ Set it to something else: XFONTINFO info = { 1, /* Select the system font */ 10, /* 10 point (8 x 16) */ 5, /* Gadget width = 8 + 5 pixels */ 4 }; /* Gadget height = 16 + 4 pixels */ x_appl_font( 1, 0, &info ); Cautions:
The parameter zero is reserved for future expansion. Must always be 0. |
Ergebnis: | Return value of the function is unknown at present.
|
Verfügbar: | Die Funktion steht nur unter Geneva zur Verfügung.
|
Gruppe: | Applikationen
|
Querverweis: | Binding
|
C: | int16_t x_appl_font( int16_t getset, int16_t zero, XFONTINFO
*info );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t x_appl_font( int16_t getset, int16_t zero, XFONTINFO *info ); { int_in[0] = getset; int_in[1] = zero; addr_in[0] = info; return ( crys_if(28929) ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Put application to sleep« - or wake it up
| ||||||||
AES-Nummer: | 28930
| ||||||||
Deklaration: | int16_t x_appl_sleep( int16_t id, int16_t sleep );
| ||||||||
Beschreibung: | The call x_appl_sleep searches for the application whose ID
(found by appl_find or appl_search) is id and either puts it
to sleep or wakes it up. While an application is asleep, its windows
are automatically closed, and it does not receive any events.
The old state of wakefulness is always returned, unless an error occurs. There are several situations where an error code will be returned:
If an application puts itself to sleep, it will not be able to wake itself; this must be done by another application or by the user from the Desk menu. If an application which is asleep is about to be terminated for any reason, it is first awakened, so that it can receive the AP_TERM message. | ||||||||
Ergebnis: | -1: Application not found, or the state could not be changed
| ||||||||
Verfügbar: | Die Funktion steht nur unter Geneva zur Verfügung.
| ||||||||
Gruppe: | Applikationen
| ||||||||
Querverweis: | Binding
|
C: | int16_t x_appl_sleep( int16_t id, int16_t sleep );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t x_appl_sleep( int16_t id, int16_t sleep ); { int_in[0] = id; int_in[1] = sleep; return ( crys_if(28930) ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Terminate application« - Terminate an application and remove
it from memory (Geneva).
|
AES-Nummer: | 28931
|
Deklaration: | int16_t x_appl_term( int16_t apid, int16_t retrn, int16_t
set_me );
|
Beschreibung: | The call x_appl_term will cause an application to terminate. It
is similar to shel_write mode 4, except that it allows for just one
application to be terminated.
If the application to be terminated does not recognize the AP_TERM message, the user will first be presented with an alert box confirming that he wants to terminate. |
Ergebnis: | 0 = Die Applikation wurde nicht gefunden
|
Verfügbar: | Die Funktion steht nur unter Geneva zur Verfügung.
|
Gruppe: | Applikationen
|
Querverweis: | Binding
|
C: | int16_t x_appl_term( int16_t apid, int16_t retrn, int16_t
set_me );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t x_appl_term( int16_t apid, int16_t retrn, int16_t set_me ) { int_in[0] = apid; int_in[1] = retrn; int_in[2] = set_me; return ( crys_if(28931) ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Application get information« - Inquire information about
available function calls and properties of the AES.
|
Opcode: | 1020
|
Syntax: | int16_t xappl_getinfo ( int16_t ap_gtype, int16_t *ap_gout1,
int16_t *ap_gout2, int16_t *ap_gout3, int16_t *ap_gout4 );
|
Description: | This is the GEM/3 equivalent of appl_getinfo() for the Atari.
It has a different name because internally it uses a different opcode
(130, which is used in the Atari AES, is already assigned to
xgrf_stepcalc() in GEM/3)
|