
/****************************************************************************/

/*  PNL5.H Include file

    PANEL:  Type 5          : Screen-Level Subroutines
            Source Language : C

    Modification History (Push-Down List):  

            02.11.85        : void on PAMSGE
	    21.09.85        : Changed pcb array size to 256 (6.01a)
            10.06.85        : Distribution Source PANEL V6.01
            13.04.85        : Added argument checking

******************************************************************************/

#ifndef PNL5            /* prevent multiple inclusion */

extern int    PAMLN;            /* message line */
extern int    PAMEN;            /* message end column */
extern uchar  PAMHD[81];        /* message heading */
extern panfcb PAMFCB;           /* message file control block */

typedef struct                  /* panel control block */
      { int ml;                 /* message line for this panel */
        int nf;                 /* number of fields making up panel */
        int mf;                 /* max generated field number */
        int dt;                 /* total bytes used by panel fields */
        int dn;                 /* bytes used by panel input fields */
        uchar *da;              /* address of data for loaded panel */
        uchar pc[32];           /* panel comment or 'note' area */
        uchar pf[80];           /* file name for panel dynamic load */
        panfcb *fa[256]; }      /* addresses of fcbs (full or abbrev.) */
      panpcb;

extern panfcb *PAFPT[256];      /* master array of pointers to fcbs */
extern int    PANFL;            /* number of active fcbs in PAFPT */
extern uchar  PASET[256];       /* non-zero = exclude this field */
extern int    PAFLX;            /* initial or current field number */
extern int    PAFLXS;           /* saved field number */
extern int    PAMULT;           /* set to -1 to inhibit multiple file ops */
extern int    PAPSLO;           /* lowest level for PANELS to process */
extern int    PAPSHI;           /* highest level for PANELS to process */

#define pdisp 101               /* display panel output fields */
#define pshow 102               /* display panel input fields */
#define pzero 103               /* clear input fields to fill character */
#define ppadf 104               /* pad input fields with right fill */
#define prjnf 105               /* perform 'line operation' on input flds */
#define pdelf 106               /* delete fill chars from input fields */
#define pread 107               /* read all input fields for panel */

#ifdef LINT_ARGS                /* argument checking enabled */

int PALOAD(panpcb *, int, int); 
int PAFREE(panpcb *);
int PAUSEP();                   /* may be (panpcb *) or generated pcb */
int PANELS(int);
char *PASCNL(int);
int PAMLOP(char *, char *);
int PAMLCL(void);
int PALOOK(panpcb *);
void PAMSGE(char *);
int PAANSW(char *, uint); 

#else

EXTFUNC int PALOAD(); 
EXTFUNC int PAFREE();
EXTFUNC int PAUSEP(); 
EXTFUNC int PANELS();
EXTFUNC char *PASCNL();
EXTFUNC int PAMLOP();
EXTFUNC int PAMLCL();
EXTFUNC int PALOOK();
EXTFUNC VOID PAMSGE();
EXTFUNC int PAANSW(); 

#endif

#define PNL5 pnl5       /* prevent multiple inclusion */
#endif                  /* end of ifndef PNL5 */
