#pragma inline

struct { int  contrl[15];
         int  global[80];
         int  intin[128];
         int  intout[45];
         int  ptsout[128];
         void *addrin[128];
         void *addrout[6];
         int  ptsin[128];
       }
       _GemParBlk;

#define contrl  _GemParBlk.contrl
#define global  _GemParBlk.global
#define intin   _GemParBlk.intin
#define ptsin   _GemParBlk.ptsin
#define intout  _GemParBlk.intout
#define ptsout  _GemParBlk.ptsout
#define addrin  _GemParBlk.addrin
#define addrout _GemParBlk.addrout

int *vdipb[] = { contrl, intin, ptsin, intout, ptsout };

struct { int  *Contrl, *Global, *Intin, *Intout;
         void **Addrin, **Addrout;
       }
       aespb = { contrl, global, intin, intout, addrin, addrout };

void CALL_VDI( void )
{
  asm push ds
  asm mov  dx,seg    vdipb
  asm mov  ds,dx
  asm mov  dx,offset vdipb
  asm mov  cx,473h
  asm int  0EFh
  asm pop  ds
}

void CALL_AES( void )
{
  asm push es
  asm mov  ax,seg    aespb
  asm mov  es,ax
  asm mov  bx,offset aespb
  asm mov  cx,0C8h
  asm mov  dx,0
  asm int  0EFh
  asm pop  es
}

