Metropoli BBS
VIEWER: ibmafi.h MODE: TEXT (ASCII)
/* (C) Copyright IBM Corporation 1986,1987,1988,1989,1990 ***************/
/*                                                                      */
/* Definitions & declarations relevant to the Adapter Interface         */
/* For use in conjunction with the Adapter linked List                  */
/*                                                                      */
/* This file also includes the compiler independent file afidata.h      */
/*                                                                      */
/************************************************************************/

#ifndef NULL
#define NULL 0x0L
#endif

#ifndef byte
#define byte unsigned char
#endif

#ifndef word
#define word unsigned int
#endif

#ifndef longword
#define longword unsigned long
#endif

typedef struct
{
   int x_coord;
   int y_coord;
} coord_pr;

typedef struct
{
   char rx_coord;
   char ry_coord;
} rcoord_pr;

typedef struct
{
   int x_coord;
   int y_coord;
   int pel_count;
} pel_pr;

typedef struct
{
   int   x_start;
   int   y_start;
   int   x_end;
   int   y_end;
} dcoord;

typedef struct
{
   int   x_coord;
   int   y_coord;
   word  width;
   word  height;
} rect_def;

struct afi_entries
{
  void  ( far pascal * hline    )( char far * );
  void  ( far pascal * hcline   )( char far * );
  void  ( far pascal * hrline   )( char far * );
  void  ( far pascal * hcrline  )( char far * );
  void  ( far pascal * hscp     )( char far * );
  void  ( far pascal * hbar     )( char far * );
  void  ( far pascal * hear     )( char far * );
  void  ( far pascal * hscol    )( char far * );
  void  ( far pascal * hopen    )( char far * );
  void  ( far pascal * hsmx     )( char far * );
  void  ( far pascal * hsbcol   )( char far * );
  void  ( far pascal * hslt     )( char far * );
  void  ( far pascal * hslw     )( char far * );
  void  ( far pascal * hegs     )( char far * );
  void  ( far pascal * hsgq     )( char far * );
  void  ( far pascal * hscmp    )( char far * );
  void  ( far pascal * hint     )( char far * );
  void  ( far pascal * hspatto  )( char far * );
  void  ( far pascal * hspatt   )( char far * );
  void  ( far pascal * hldpal   )( char far * );
  void  ( far pascal * hshs     )( char far * );
  void  ( far pascal * hbbw     )( char far * );
  void  ( far pascal * hcbbw    )( char far * );
  void  ( far pascal * hbbr     )( char far * );
  void  ( far pascal * hbbchn   )( char far * );
  void  ( far pascal * hbbc     )( char far * );
  void  ( far pascal * hscoord  )( char far * );
  void  ( far pascal * hqcoord  )( char far * );
  void  ( far pascal * hsmode   )( char far * );
  void  ( far pascal * hqmode   )( char far * );
  void  ( far pascal * hqmodes  )( char far * );
  void  ( far pascal * hqdps    )( char far * );
  void  ( far pascal * hrect    )( char far * );
  void  ( far pascal * hsbp     )( char far * );
  void  ( far pascal * hclose   )( char far * );
  void  ( far pascal * hesc     )( char far * );
  void  ( far pascal * hxlate   )( char far * );
  void  ( far pascal * hscs     )( char far * );
  void  ( far pascal * hchst    )( char far * );
  void  ( far pascal * hcchst   )( char far * );
  void  ( far pascal * ablockmfi)( char far * );
  void  ( far pascal * ablockcga)( char far * );
  void  ( far pascal * aerase   )( char far * );
  void  ( far pascal * ascroll  )( char far * );
  void  ( far pascal * acursor  )( char far * );
  void  ( far pascal * ascur    )( char far * );
  void  ( far pascal * asfont   )( char far * );
  void  ( far pascal * axlate   )( char far * );
  void  ( far pascal * hinit    )( char far * );
  void  ( far pascal * hsync    )( char far * );
  void  ( far pascal * hmrk     )( char far * );
  void  ( far pascal * hcmrk    )( char far * );
  void  ( far pascal * hsmark   )( char far * );
  void  ( far pascal * hslpc    )( char far * );
  void  ( far pascal * hrlpc    )( char far * );
  void  ( far pascal * hqcp     )( char far * );
  void  ( far pascal * hqdfpal  )( char far * );
  void  ( far pascal * hspal    )( char far * );
  void  ( far pascal * hrpal    )( char far * );
  void  ( far pascal * hsafp    )( char far * );
  void  ( far pascal * ascell   )( char far * );
  void  ( far pascal * asgo     )( char far * );
  void  ( far pascal * hdline   )( char far * );
  void  ( far pascal * hreserve1)( char far * );     /* reserved call */
  void  ( far pascal * hpel     )( char far * );
  void  ( far pascal * hrpel    )( char far * );
  void  ( far pascal * hpstep   )( char far * );
  void  ( far pascal * hcpstep  )( char far * );
  void  ( far pascal * hrstep   )( char far * );
  void  ( far pascal * hsbmap   )( char far * );
  void  ( far pascal * hqbmap   )( char far * );
  void  ( far pascal * hbmc     )( char far * );
  void  ( far pascal * hsdw     )( char far * );
  void  ( far pascal * hsprite  )( char far * );
  void  ( far pascal * hssprite )( char far * );
  void  ( far pascal * hrwvec   )( char far * );
  void  ( far pascal * hreserve2)( char far * );     /* reserved call */
  void  ( far pascal * hreserve3)( char far * );     /* reserved call */
  void  ( far pascal * hsfpal   )( char far * );
  void  ( far pascal * hrfpal   )( char far * );
  void  ( far pascal * hqdevice )( char far * );
  void  ( far pascal * hreserve6)( char far * );     /* reserved call */
  void  ( far pascal * hreserve7)( char far * );     /* reserved call */
  void  ( far pascal * hreserve8)( char far * );     /* reserved call */
};





/* Structure definition for an AI linked list entry */

struct afi_list_entry
{
    struct  afi_entries    far * afi_tbl_ptr ;
    byte                         adapter_type ;
    byte                         instance ;
    struct  afi_list_entry far * link_ptr ;
};


/* External declaration of adapter linked list address returning function */

extern struct afi_list_entry far * ( far getafil( void ) );

#define MHLINE(W,X)     (*W->hline)((char far *) X)
#define MHCLINE(W,X)    (*W->hcline)((char far *) X)
#define MHRLINE(W,X)    (*W->hrline)((char far *) X)
#define MHCRLINE(W,X)   (*W->hcrline)((char far *) X)
#define MHSCP(W,X)      (*W->hscp)((char far *) X)
#define MHBAR(W)        (*W->hbar)((char far *) 0L)
#define MHEAR(W,X)      (*W->hear)((char far *) X)
#define MHSCOL(W,X)     (*W->hscol)((char far *) X)
#define MHOPEN(W,X)     (*W->hopen)((char far *) X)
#define MHSMX(W,X)      (*W->hsmx)((char far *) X)
#define MHSBCOL(W,X)    (*W->hsbcol)((char far *) X)
#define MHSLT(W,X)      (*W->hslt)((char far *) X)
#define MHSLW(W,X)      (*W->hslw)((char far *) X)
#define MHEGS(W)        (*W->hegs)((char far *) 0L)
#define MHSGQ(W,X)      (*W->hsgq)((char far *) X)
#define MHSCMP(W,X)     (*W->hscmp)((char far *) X)
#define MHINT(W,X)      (*W->hint)((char far *) X)
#define MHSPATTO(W,X)   (*W->hspatto)((char far *) X)
#define MHSPATT(W,X)    (*W->hspatt)((char far *) X)
#define MHLDPAL(W,X)    (*W->hldpal)((char far *) X)
#define MHSHS(W,X)      (*W->hshs)((char far *) X)
#define MHBBW(W,X)      (*W->hbbw)((char far *) X)
#define MHCBBW(W,X)     (*W->hcbbw)((char far *) X)
#define MHBBR(W,X)      (*W->hbbr)((char far *) X)
#define MHBBCHN(W,X)    (*W->hbbchn)((char far *) X)
#define MHBBC(W,X)      (*W->hbbc)((char far *) X)
#define MHSCOORD(W,X)   (*W->hscoord)((char far *) X)
#define MHQCOORD(W,X)   (*W->hqcoord)((char far *) X)
#define MHSMODE(W,X)    (*W->hsmode )((char far *) X)
#define MHQMODE(W,X)    (*W->hqmode )((char far *) X)
#define MHQMODES(W,X)   (*W->hqmodes)((char far *) X)
#define MHQDPS(W,X)     (*W->hqdps  )((char far *) X)
#define MHRECT(W,X)     (*W->hrect  )((char far *) X)
#define MHSBP(W,X)      (*W->hsbp   )((char far *) X)
#define MHCLOSE(W,X)    (*W->hclose )((char far *) X)
#define MHESC(W)        (*W->hesc   )((char far *) 0L)
#define MHXLATE(W,X)    (*W->hxlate )((char far *) X)
#define MHSCS(W,X)      (*W->hscs)((char far *) X)
#define MHCHST(W,X)     (*W->hchst)((char far *) X)
#define MHCCHST(W,X)    (*W->hcchst)((char far *) X)
#define MABLKMFI(W,X)   (*W->ablockmfi)((char far *) X)
#define MABLKCGA(W,X)   (*W->ablockcga)((char far *) X)
#define MAERASE(W,X)    (*W->aerase )((char far *) X)
#define MASCROLL(W,X)   (*W->ascroll)((char far *) X)
#define MACURSOR(W,X)   (*W->acursor)((char far *) X)
#define MASCUR(W,X)     (*W->ascur  )((char far *) X)
#define MASFONT(W,X)    (*W->asfont )((char far *) X)
#define MAXLATE(W,X)    (*W->axlate )((char far *) X)
#define MHINIT(W,X)     (*W->hinit)((char far *) X)
#define MHSYNC(W,X)     (*W->hsync)((char far *) X)
#define MHMRK(W,X)      (*W->hmrk   )((char far *) X)
#define MHCMRK(W,X)     (*W->hcmrk  )((char far *) X)
#define MHSMARK(W,X)    (*W->hsmark )((char far *) X)
#define MHSLPC(W,X)     (*W->hslpc  )((char far *) X)
#define MHRLPC(W,X)     (*W->hrlpc  )((char far *) X)
#define MHQCP(W,X)      (*W->hqcp )((char far *) X)
#define MHQDFPAL(W,X)   (*W->hqdfpal )((char far *) X)
#define MHSPAL(W,X)     (*W->hspal )((char far *) X)
#define MHRPAL(W,X)     (*W->hrpal )((char far *) X)
#define MHSAFP(W,X)     (*W->hsafp )((char far *) X)
#define MASCELL(W,X)    (*W->ascell )((char far *) X)
#define MASGO(W,X)      (*W->asgo   )((char far *) X)
#define MHDLINE(W,X)    (*W->hdline )((char far *) X)
        /* blank entry */
#define MHPEL(W,X)      (*W->hpel )((char far *) X)
#define MHRPEL(W,X)     (*W->hrpel )((char far *) X)
#define MHPSTEP(W,X)    (*W->hpstep )((char far *) X)
#define MHCPSTEP(W,X)   (*W->hcpstep )((char far *) X)
#define MHRSTEP(W,X)    (*W->hrstep )((char far *) X)
#define MHSBMAP(W,X)    (*W->hsbmap )((char far *) X)
#define MHQBMAP(W,X)    (*W->hqbmap )((char far *) X)
#define MHBMC(W,X)      (*W->hbmc )((char far *) X)
#define MHSDW(W,X)      (*W->hsdw )((char far *) X)
#define MHSPRITE(W,X)   (*W->hsprite )((char far *) X)
#define MHSSPRITE(W,X)  (*W->hssprite )((char far *) X)
#define MHRWVEC(W,X)    (*W->hrwvec )((char far *) X)
        /* blank entry */
        /* blank entry */
#define MHSFPAL(W,X)    (*W->hsfpal )((char far *) X)
#define MHRFPAL(W,X)    (*W->hrfpal )((char far *) X)
#define MHQDEVICE(W,X)  (*W->hqdevice )((char far *) X)
        /* blank entry */
        /* blank entry */
        /* blank entry */



extern struct afi_entries far *afi_ptr,far *(far getafi(void));



#define HLINE(X)        (*afi_ptr->hline)((char far *) X)
#define HCLINE(X)       (*afi_ptr->hcline)((char far *) X)
#define HRLINE(X)       (*afi_ptr->hrline)((char far *) X)
#define HCRLINE(X)      (*afi_ptr->hcrline)((char far *) X)
#define HSCP(X)         (*afi_ptr->hscp)((char far *) X)
#define HBAR()          (*afi_ptr->hbar)((char far *) 0L)
#define HEAR(X)         (*afi_ptr->hear)((char far *) X)
#define HSCOL(X)        (*afi_ptr->hscol)((char far *) X)
#define HOPEN(X)        (*afi_ptr->hopen)((char far *) X)
#define HSMX(X)         (*afi_ptr->hsmx)((char far *) X)
#define HSBCOL(X)       (*afi_ptr->hsbcol)((char far *) X)
#define HSLT(X)         (*afi_ptr->hslt)((char far *) X)
#define HSLW(X)         (*afi_ptr->hslw)((char far *) X)
#define HEGS()          (*afi_ptr->hegs)((char far *) 0L)
#define HSGQ(X)         (*afi_ptr->hsgq)((char far *) X)
#define HSCMP(X)        (*afi_ptr->hscmp)((char far *) X)
#define HINT(X)         (*afi_ptr->hint)((char far *) X)
#define HSPATTO(X)      (*afi_ptr->hspatto)((char far *) X)
#define HSPATT(X)       (*afi_ptr->hspatt)((char far *) X)
#define HLDPAL(X)       (*afi_ptr->hldpal)((char far *) X)
#define HSHS(X)         (*afi_ptr->hshs)((char far *) X)
#define HBBW(X)         (*afi_ptr->hbbw)((char far *) X)
#define HCBBW(X)        (*afi_ptr->hcbbw)((char far *) X)
#define HBBR(X)         (*afi_ptr->hbbr)((char far *) X)
#define HBBCHN(X)       (*afi_ptr->hbbchn)((char far *) X)
#define HBBC(X)         (*afi_ptr->hbbc)((char far *) X)
#define HSCOORD(X)      (*afi_ptr->hscoord)((char far *) X)
#define HQCOORD(X)      (*afi_ptr->hqcoord)((char far *) X)
#define HSMODE(X)       (*afi_ptr->hsmode )((char far *) X)
#define HQMODE(X)       (*afi_ptr->hqmode )((char far *) X)
#define HQMODES(X)      (*afi_ptr->hqmodes)((char far *) X)
#define HQDPS(X)        (*afi_ptr->hqdps  )((char far *) X)
#define HRECT(X)        (*afi_ptr->hrect  )((char far *) X)
#define HSBP(X)         (*afi_ptr->hsbp   )((char far *) X)
#define HCLOSE(X)       (*afi_ptr->hclose )((char far *) X)
#define HESC()          (*afi_ptr->hesc   )((char far *) 0L)
#define HXLATE(X)       (*afi_ptr->hxlate )((char far *) X)
#define HSCS(X)         (*afi_ptr->hscs)((char far *) X)
#define HCHST(X)        (*afi_ptr->hchst)((char far *) X)
#define HCCHST(X)       (*afi_ptr->hcchst)((char far *) X)
#define ABLKMFI(X)      (*afi_ptr->ablockmfi)((char far *) X)
#define ABLKCGA(X)      (*afi_ptr->ablockcga)((char far *) X)
#define AERASE(X)       (*afi_ptr->aerase )((char far *) X)
#define ASCROLL(X)      (*afi_ptr->ascroll)((char far *) X)
#define ACURSOR(X)      (*afi_ptr->acursor)((char far *) X)
#define ASCUR(X)        (*afi_ptr->ascur  )((char far *) X)
#define ASFONT(X)       (*afi_ptr->asfont )((char far *) X)
#define AXLATE(X)       (*afi_ptr->axlate )((char far *) X)
#define HINIT(X)        (*afi_ptr->hinit)((char far *) X)
#define HSYNC(X)        (*afi_ptr->hsync)((char far *) X)
#define HMRK(X)         (*afi_ptr->hmrk   )((char far *) X)
#define HCMRK(X)        (*afi_ptr->hcmrk  )((char far *) X)
#define HSMARK(X)       (*afi_ptr->hsmark )((char far *) X)
#define HSLPC(X)        (*afi_ptr->hslpc  )((char far *) X)
#define HRLPC(X)        (*afi_ptr->hrlpc  )((char far *) X)
#define HQCP(X)         (*afi_ptr->hqcp )((char far *) X)
#define HQDFPAL(X)      (*afi_ptr->hqdfpal )((char far *) X)
#define HSPAL(X)        (*afi_ptr->hspal )((char far *) X)
#define HRPAL(X)        (*afi_ptr->hrpal )((char far *) X)
#define HSAFP(X)        (*afi_ptr->hsafp )((char far *) X)
#define ASCELL(X)       (*afi_ptr->ascell )((char far *) X)
#define ASGO(X)         (*afi_ptr->asgo )((char far *) X)
#define HDLINE(X)       (*afi_ptr->hdline )((char far *) X)
        /* blank entry no. 63 */
#define HPEL(X)         (*afi_ptr->hpel )((char far *) X)
#define HRPEL(X)        (*afi_ptr->hrpel )((char far *) X)
#define HPSTEP(X)       (*afi_ptr->hpstep )((char far *) X)
#define HCPSTEP(X)      (*afi_ptr->hcpstep )((char far *) X)
#define HRSTEP(X)       (*afi_ptr->hrstep )((char far *) X)
#define HSBMAP(X)       (*afi_ptr->hsbmap )((char far *) X)
#define HQBMAP(X)       (*afi_ptr->hqbmap )((char far *) X)
#define HBMC(X)         (*afi_ptr->hbmc )((char far *) X)
#define HSDW(X)         (*afi_ptr->hsdw )((char far *) X)
#define HSPRITE(X)      (*afi_ptr->hsprite )((char far *) X)
#define HSSPRITE(X)     (*afi_ptr->hssprite )((char far *) X)
#define HRWVEC(X)       (*afi_ptr->hrwvec )((char far *) X)
        /* blank entry */
        /* blank entry */
#define HSFPAL(X)       (*afi_ptr->hsfpal )((char far *) X)
#define HRFPAL(X)       (*afi_ptr->hrfpal )((char far *) X)
#define HQDEVICE(X)     (*afi_ptr->hqdevice )((char far *) X)
        /* blank entry */
        /* blank entry */
        /* blank entry */

#include <afidata.h>

[ RETURN TO DIRECTORY ]