Topic : TOS - The Operating System
Author :
Version : tos.hyp (December 19, 2008)
Subject : Programmieren/Atari
Nodes : 3010
Index Size : 93790
HCP-Version : 5
Compiled on : Atari
@charset : atarist
@lang :
@default : Title
@help :
@options : +g -i -s +x +zz -t4
@width : 70
View Ref-File7.5.8 Bindings for v_bez TOS
C: void v_bez ( int16_t handle, int16_t count, int16_t
*xyarr, int8_t *bezarr, int16_t *extent, int16_t *totpts,
int16_t *totmoves );
Binding:
void v_bez (int16_t handle, int16_t count, int16_t *xyarr,
int8_t *bezarr, int16_t *extent, int16_t *totpts,
int16_t *totmoves)
{
ptsin[0..2n-1] = xyarr[0..2n-1];
intin[0..(n+1)/2-1] = bezarr[0..n-1]
contrl[0] = 6;
contrl[1] = n;
contrl[3] = (n+1)/2;
contrl[5] = 13;
contrl[6] = handle;
vdi ();
*totpts = intout[0];
*totmoves = intout[1];
extent[0..3] = ptsout[0..3];
}
GEM-Arrays:
Address Element Contents
contrl contrl[0] 6 # Function Opcode
contrl+2 contrl[1] n # entry in ptsin
contrl+4 contrl[2] 2 # entry in ptsout
contrl+6 contrl[3] (n+1)/2 # entry in intin
contrl+8 contrl[4] 6 # entry in intout
contrl+10 contrl[5] 13 Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..(n+1)/2-1)] bezarr[0..n-1]
ptsin ptsin[0..2n-1] xyarr[0..2n-1]
intout intout[0] totpts
intout+2 intout[1] totmoves
intout+4 intout[2..5] Reserved
ptsout ptsout[0..3] extent[0..3]
Note: The binding for this function has to swap the bytes
in intin because unfortunately this function is
compatible with PC-GEM. => bezarr[0] is the low byte of
intin[0], bezarr[1] is the high byte of intin[0]...