home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
zip
/
gnu
/
gemlib27.lzh
/
GEMLIB27
/
VDICTRL1.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-07-30
|
3KB
|
134 lines
/*
* Vdi contrl functions library interface (part 1)
*
* v_opnwk open workstation
* v_clswk close workstation
* v_opnvwk open virtual
* v_clsvwk close virtual
*
* ++jrb bammi@cadence.com
* modified: mj -- ntomczak@vm.ucs.ualberta.ca
*/
#include "common.h"
#ifdef __DEF_ALL__
#define L_v_opnwk
#define L_v_clswk
#define L_v_opnvwk
#define L_v_clsvwk
#endif /* __DEF_ALL__ */
#ifdef L_v_opnwk
/* open workstation -- kinda redundant
* returns void
*/
void v_opnwk(int work_in[], int *handle, int work_out[])
{
#ifndef __MSHORT__
short *iptr;
int *wptr, *end;
iptr = _intin;
end = &work_in[11];
do {
*iptr++ = *work_in++;
} while (work_in < end);
__vdi__(VDI_CONTRL_ENCODE(1, 0, 11, 0), 0);
wptr = work_out;
end = wptr + 45;
iptr = _intout;
do {
*wptr++ = *iptr++;
} while (wptr < end);
end += 12;
iptr = _ptsout;
do {
*wptr++ = *iptr++;
} while (wptr < end);
#else
_vdiparams[1] = &work_in[0];
_vdiparams[3] = &work_out[0];
_vdiparams[4] = &work_out[45];
__vdi__(VDI_CONTRL_ENCODE(1, 0, 11, 0), 0);
_vdiparams[1] = (void *)&_intin[0];
_vdiparams[3] = (void *)&_intout[0];
_vdiparams[4] = (void *)&_ptsout[0];
#endif
*handle = _contrl[6];
}
#endif /* L_v_opnwk */
#ifdef L_v_clswk
/* close workstation
* returns void
*/
void v_clswk(int handle)
{
__vdi__(VDI_CONTRL_ENCODE(2, 0, 0, 0), handle);
}
#endif /* L_v_clswk */
#ifdef L_v_opnvwk
/* open virtual workstation
* returns void
*/
void v_opnvwk(int work_in[], int *handle, int work_out[])
{
#ifndef __MSHORT__
short *iptr;
int *wptr, *end;
iptr = _intin;
end = &work_in[11];
do {
*iptr++ = *work_in++;
} while (work_in < end);
__vdi__(VDI_CONTRL_ENCODE(100, 0, 11, 0), *handle);
wptr = work_out;
end = wptr + 45;
iptr = _intout;
do {
*wptr++ = *iptr++;
} while (wptr < end);
end += 12;
iptr = _ptsout;
do {
*wptr++ = *iptr++;
} while (wptr < end);
#else
_vdiparams[1] = &work_in[0];
_vdiparams[3] = &work_out[0];
_vdiparams[4] = &work_out[45];
__vdi__(VDI_CONTRL_ENCODE(100, 0, 11, 0), *handle);
_vdiparams[1] = (void *)&_intin[0];
_vdiparams[3] = (void *)&_intout[0];
_vdiparams[4] = (void *)&_ptsout[0];
#endif
*handle = _contrl[6];
}
#endif /* L_v_opnvwk */
#ifdef L_v_clsvwk
/* close virtual workstation
* returns void
*/
void v_clsvwk(int handle)
{
__vdi__(VDI_CONTRL_ENCODE(101, 0, 0, 0), handle);
}
#endif /* L_v_clsvwk */
/* -eof- */