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.7.6.1 Bindings für evnt_multi TOS
C: int16_t evnt_multi ( int16_t ev_mflags, int16_t
ev_mbclicks, int16_t ev_mbmask, int16_t ev_mbstate,
int16_t ev_mm1flags, int16_t ev_mm1x, int16_t ev_mm1y,
int16_t ev_mm1width, int16_t ev_mm1height, int16_t
ev_mm2flags, int16_t ev_mm2x, int16_t ev_mm2y, int16_t
ev_mm2width, int16_t ev_mm2height, int16_t *ev_mmgpbuff,
int16_t ev_mtlocount, int16_t ev_mthicount, int16_t
*ev_mmox, int16_t *ev_mmoy, int16_t *ev_mmbutton, int16_t
*ev_mmokstate, int16_t *ev_mkreturn, int16_t *ev_mbreturn
);
Umsetzung:
int16_t evnt_multi (int16_t ev_mflags, int16_t ev_mbclicks,
int16_t ev_mbmask, int16_t ev_mbstate,
int16_t ev_mm1flags, int16_t ev_mm1x,
int16_t ev_mm1y, int16_t ev_mm1width,
int16_t ev_mm1height, int16_t ev_mm2flags,
int16_t ev_mm2x, int16_t ev_mm2y,
int16_t ev_mm2width, int16_t ev_mm2height,
int16_t *ev_mmgpbuff, int16_t ev_mtlocount,
int16_t ev_mthicount, int16_t *ev_mmox,
int16_t *ev_mmoy, int16_t *ev_mmbutton,
int16_t *ev_mmokstate, int16_t *ev_mkreturn,
int16_t *ev_mbreturn)
{
int_in[0] = ev_mflags;
int_in[1] = ev_mbclicks;
int_in[2] = ev_mbmask;
int_in[3] = ev_mbstate;
int_in[4] = ev_mm1flags;
int_in[5] = ev_mm1x;
int_in[6] = ev_mm1y;
int_in[7] = ev_mm1width;
int_in[8] = ev_mm1height;
int_in[9] = ev_mm2flags;
int_in[10] = ev_mm2x;
int_in[11] = ev_mm2y;
int_in[12] = ev_mm2width;
int_in[13] = ev_mm2height;
int_in[14] = ev_mtlocount;
int_in[15] = ev_mthicount;
addr_in[0] = ev_mmgpbuff;
crys_if (25);
*ev_mmox = int_out[1];
*ev_mmoy = int_out[2];
*ev_mmbutton = int_out[3];
*ev_mmokstate = int_out[4];
*ev_mkreturn = int_out[5];
*ev_mbreturn = int_out[6];
return (intout[0]);
}
GEM-Arrays:
Adresse Feldelement Belegung
control control[0] 25 # Opcode der Funktion
control+2 control[1] 16 # Einträge in int_in
control+4 control[2] 7 # 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] ev_mflags
int_in+2 int_in[1] ev_mbclicks
int_in+4 int_in[2] ev_mbmask
int_in+6 int_in[3] ev_mbstate
int_in+8 int_in[4] ev_mm1flags
int_in+10 int_in[5] ev_mm1x
int_in+12 int_in[6] ev_mm1y
int_in+14 int_in[7] ev_mm1width
int_in+16 int_in[8] ev_mm1height
int_in+18 int_in[9] ev_mm2flags
int_in+20 int_in[10] ev_mm2x
int_in+22 int_in[11] ev_mm2y
int_in+24 int_in[12] ev_mm2width
int_in+26 int_in[13] ev_mm2height
int_in+28 int_in[14] ev_mtlocount
int_in+30 int_in[15] ev_mthicount
int_out int_out[0] Return-Wert
int_out+2 int_out[1] ev_mmox
int_out+4 int_out[2] ev_mmoy
int_out+6 int_out[3] ev_mmbutton
int_out+8 int_out[4] ev_mmokstate
int_out+10 int_out[5] ev_mkreturn
int_out+12 int_out[6] ev_mbreturn
addr_in addr_in[0] ev_mmgpbuff