Topic : TOS - das Betriebssystem
Author :
Version : tos.hyp (5. März 2013)
Subject : Programmieren/Atari
Nodes : 3001
Index Size : 93602
HCP-Version : 5
Compiled on : Atari
@charset : atarist
@lang :
@default : Titel
@help :
@options : +g -i -s +x +zz -t4
@width : 70
View Ref-File8.6.5.1 Bindings für edit_evnt TOS
C: int16_t edit_evnt ( OBJECT *tree, int16_t obj, int16_t
whdl, EVNT *events, int32_t *errcode );
Umsetzung:
int16_t edit_evnt ( OBJECT *tree, int16_t obj, int16_t whdl,
EVNT *events, int32_t *errcode )
{
int_in[0] = obj;
int_in[1] = whdl;
addr_in[0] = tree;
addr_in[1] = events;
int_out[1] = 0; /* für alte SLB */
int_out[2] = 0; /* für alte SLB */
crys_if( 215 )
*errcode = int_out[1..2];
return ( int_out[0] );
}
GEM-Arrays:
Adresse Feldelement Belegung
control control[0] 215 # Opcode der Funktion
control+2 control[1] 2 # Einträge in int_in
control+4 control[2] 3 # Einträge in int_out
control+6 control[3] 2 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] obj
int_in+2 int_in[1] whdl
addr_in addr_in[0] tree
addr_in+4 addr_in[1] events
int_out int_out[0] Retrurn-Wert
int_out+2 int_out[1..2] errcode
Der Fehlercode errcode ist erst ab Version 7 vorhanden, das Binding
sollte dafür sorgen, daß alte SLB-Versionen immer Nullen liefern.
Umgekehrt erkennen neue SLB-Versionen per contrl[2], ob ein Fehlercode
angefordert wurde.