Home AESAES GrafikfunktionenGrafikfunktionen ListboxenListboxen

8.14 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.
x_scrp_get Pfad des Klemmbrettes ermitteln.

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

Querverweis: Nachrichten   SC_CHANGED   SH_WDRAW   Style-Guidelines

8.14.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.14.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.14.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.14.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.14.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.14.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

8.14.4 x_scrp_get

Name: »Scrap read« - ermittelt den Pfadnamen des Klemmbrettes.
 
AES-Nummer: 29024
 
Deklaration: int16_t x_scrp_get( int8_t *path, int16_t delete );
 
Beschreibung:
 
Parameter Bedeutung
   
path Pointer to a string which will receive the complete path of the clipboard folder, with a \ at the end.
delete If set, remove all files in the clipboard that match "SCRAP.*".

This function does the chore of determining where the clipboard directory is and, optionally, removing any SCRAP files that are already there.
 
If the clipboard directory is either unset or points to a bad location, then path will be set to either C:\CLIPBRD\ or, if there is no C: drive, A:\CLIPBRD\. If no CLIPBRD folder exists, then it is created by the function.
 
Beispiel:
 
int16_t fhand;
int8_t path[120], text[]="Hi there!";

if( x_scrp_get( path, 1 ) )
{
  strcat( path, "SCRAP.TXT" );
  if( (fhand = Fcreate( path, 0 )) > 0 )
  {
    Fwrite( fhand, sizeof(text), text );
    Fclose(fhand);
  }
}
Ergebnis: 0 = Fehler
1 = Erfolgreich
 
Verfügbar: Die Funktion steht nur unter Geneva seit Release 004 zur Verfügung.
 
Gruppe: Zwischenspeicher
 
Querverweis: Binding   scrp_write   scrp_read   Datenaustausch per Klemmbrett
 

8.14.4.1 Bindings für x_scrp_get

C: int16_t x_scrp_get( int8_t *path, int16_t delete );
 
Umsetzung:
 
int16_t x_scrp_get( int8_t *path, int16_t delete )
{
   int_in[0] = delete;

   addr_in[0] = path;

   crys_if(29024);

   return ( int_out[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 29024 # Opcode der Funktion
control+2 control[1] 1 # 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
int_in int_in[0] delete
addr_in addr_in[0] path
int_out int_out[0] Return-Wert

Home AESAES GrafikfunktionenGrafikfunktionen ListboxenListboxen