This is an old version from the tos.hyp. The new is on GitHub!

HomeAESGrafikfunktionenListboxen

8.13 Klemmbrett-Funktionen

Diese Bibliothek stellt Funktionen zur Verfügung, die einen standardisierten Datenaustausch zwischen verschiedenen Programmen ermöglichen. Für diesen Zweck sind die folgenden Routinen vorhanden:

scrp_clear Dateien im Klemmbrett löschen.
scrp_read Pfad des Klemmbrettes ermitteln.
scrp_write Pfad des Klemmbrettes setzen.

Hinweis: Neben diesen Funktionen sind beim Datenaustausch über das Klemmbrett noch weitere Einzelheiten zu beachten.

Querverweis: Nachrichten   SC_CHANGED   SH_WDRAW   Style-Guidelines

8.13.1 scrp_clear

Name: »Scrap clear« - Inhalt des Clipboards löschen
AES-Nummer: 82
Deklaration: int16_t scrp_clear ( void );
Beschreibung_ Die Funktion löscht alle Dateien im aktuellen Klemmbrett.

Achtung: Entgegen den üblichen Konventionen werden wirklich alle Dateien, und nicht nur solche auf die die Maske "scrap.*" paßt, gelöscht.
Ergebnis: Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0 zurückgegeben wird.
Verfügbar: Die Funktion steht nur unter PC-GEM, KAOS 1.4.2 und MagiC (jeweils) zur Verfügung, Nicht vorhanden in ViewMAX.
Gruppe: Zwischenspeicher
Querverweis: Binding   Datenaustausch per Klemmbrett

8.13.1.1 Bindings für scrp_clear

C: int16_t scrp_clear ( void );
Umsetzung:
int16_t scrp_clear (void)
{
   return ( crys_if(82) );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 82 # Opcode der Funktion
control+2 control[1] 0 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 0 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_out int_out[0] Return-Wert

8.13.2 scrp_read

Name: »Scrap read« - ermittelt den Pfadnamen des Klemmbrettes.
AES-Nummer: 80
Deklaration: int16_t scrp_read ( int8_t *sc_rpscrap );
Beschreibung: Die Funktion ermittelt das aktuelle Verzeichnis, welches für die Zwischenablage (Klemmbrett) benutzt wird.

Hinweis: Das Klemmbrett-Verzeichnis befindet sich nach dem Aufruf der Funktion im Parameter sc_rpscrap. Man sollte auf eine ausreichende Größe dieses aufnehmenden Puffers achten.
Ergebnis: Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0 zurückgegeben wird.

Zitat Mike Fulton, Atari Computer:
»The scrp_read() function is defined as possibly returning an error code of zero. However, this function currently always returns a value of 1. Since this may change in future versions of GEM AES, applications should handle the case of the error code even if the programmer does not expect to see it.«

Ab PC-GEM Version 2.0 werden jedoch die folgenden Werte zurückgeliefert: -1, falls noch kein Pfad gesetzt ist, Rückgabewerte >= 0 sind als Bitvektor aufzufassen, der über gefundene Dateitypen informieren soll. Es gilt die folgende Belegung:

SCRAP_CSV 0x0001 = scrap.csv
SCRAP_TXT 0x0002 = scrap.txt
SCRAP_GEM 0x0004 = scrap.gem
SCRAP_IMG 0x0008 = scrap.img
SCRAP_DCA 0x0010 = scrap.dca
  0x0020 = scrap.dif (siehe Hinweis)
SCRAP_USR 0x8000 = scrap.usr


Alle anderen Bits sind für zukünftige Zwecke reserviert.

Hinweis: Laut der Doku zu PC-GEM ist scrap.usr in Bit 5 kodiert. Der AES-Quelltext sagt aber Bit 15. Die Library aus dem Buch "Vom Anfänger zum GEM-Profi" belegt Bit 5 mit DIF-Dateien. Die Erweiterung ist inoffiziell und funktioniert nur wenn diese Library für die Erstellung benutzt wird.
Verfügbar: All AES versions, not present in ViewMAX.
Gruppe: Zwischenspeicher
Querverweis: Binding   scrp_write   Datenaustausch per Klemmbrett

8.13.2.1 Bindings für scrp_read

C: int16_t scrp_read ( int8_t *sc_rpscrap );
Umsetzung:
int16_t scrp_read (int8_t *sc_rpscrap)
{
   addr_in[0] = sc_rpscrap;
   return ( crys_if(80) );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 80 # Opcode der Funktion
control+2 control[1] 0 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 1 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
addr_in addr_in[0] sc_rpscrap
int_out int_out[0] Return-Wert

8.13.3 scrp_write

Name: »Scrap write« - setzt den Pfad für das Klemmbrett.
AES-Nummer: 81
Deklaration: int16_t scrp_write ( int8_t *sc_wpscrap );
Beschreibung: Die Funktion setzt das Verzeichnis, welches für die Zwischenablage (Klemmbrett) benutzt werden soll.

Hinweis: Der Name des neuen Pfades wird im Parameter sc_wpscrap übergeben. Das Klemmbrett sollte den Namen CLIPBRD tragen, und sich auf dem jeweiligen Bootlaufwerk befinden.
Ergebnis: Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0 zurückgegeben wird.
Verfügbar: All AES versions, not present in ViewMAX.
Gruppe: Zwischenspeicher
Querverweis: Binding   scrp_read   Datenaustausch per Klemmbrett

8.13.3.1 Bindings für scrp_write

C: int16_t scrp_write ( int8_t *sc_wpscrap );
Umsetzung:
int16_t scrp_write (int8_t *sc_wpscrap)
{
   addr_in[0] = sc_wpscrap;
   return ( crys_if(81) );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 81 # Opcode der Funktion
control+2 control[1] 0 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 1 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
addr_in addr_in[0] sc_wpscrap
int_out int_out[0] Return-Wert

HomeAESGrafikfunktionenListboxen