Metropoli BBS
VIEWER: mylib.h MODE: TEXT (ASCII)
/***
*mylib.h - definitions/declarations for library functions.
*
*for Public Domain, 1995, Gregg Jennings.  All wrongs reserved.
*   P O Box 200, Falmouth, MA 02541-0200
*
*Purpose:
*   Fast printing routines, user inputs, and miscelaneous
*
*Notice:
*   This source file may be freely used and distributed without restriction.
*******************************************************************************/

#ifndef GENERAL_H
#include "general.h"    /* machine dependent and compiler */
#endif                  /*  specific stuff */

/* user input type definitions (ctype stuff) */

#ifndef __WATCOMC__

#ifndef _PUNCT          /* use MSC equates */
#define _UPPER    0x1   /* upper case letter */
#define _LOWER    0x2   /* lower case letter */
#define _DIGIT    0x4   /* digit[0-9] */
#define _SPACE    0x8   /* tab, carriage return, newline, */
                        /* vertical tab or form feed */
#define _PUNCT    0x10  /* punctuation character */
#define _CONTROL  0x20  /* control character */
#define _BLANK    0x40  /* space char */
#define _HEX      0x80  /* hexadecimal digit */
#endif

#else

#define _HEX      _XDIGT
#define _CONTROL  _CNTRL
#define _BLANK    _SPACE
#endif

#define _ALPHA (_UPPER|_LOWER)
#define _ALNUM (_UPPER|_LOWER|_DIGIT)
#define _TEXT  (_ALNUM|_PUNCT|_BLANK)


/* number output */

extern unsigned char hexbyte(int a,int b);
extern int pn(unsigned int n,int base);
extern int pln(unsigned long n, int base);
extern void pnls(unsigned int n,unsigned int length,int base);
extern void pnlz(unsigned int n,unsigned int length,int base);
extern void plnls(unsigned long n,unsigned int length,int base);
extern void plnlz(unsigned long n,unsigned int length,int base);

extern int getlen(unsigned int n,int base);
extern int getlength(unsigned long i,int base);
extern int getnum(unsigned int max,unsigned int *num,int base);
extern int getnumber(unsigned long max,void *num,int base);

/* string input */

extern int getstr(char *s,unsigned int len,int mask);
extern int getver(char *s,int mode);
enum GETVER_MODE { NONE, MOV_YN, MOV_ARG, CLR_ARG=5, CLR_YN };
extern int convert(char *a);

/* misc. */

extern void directory(void );
extern void pname(char *s);
extern int search(unsigned char *s,unsigned char *t,unsigned int size,unsigned int len);
extern int isearch(unsigned char *s,unsigned char *t,unsigned int size,unsigned int len);
extern int change(unsigned char *buffer,unsigned int bufend,int base);
extern void dispval(int x,int len,int base,int c);
extern int dump(unsigned char *buffer,unsigned int bfptr,unsigned int bufend,unsigned int len,int base);
extern void dumpf(register unsigned char *buffer,int size, int base);
extern void pause(void);
extern void viewfile(char *filename, int display);


/* macros to make displaying of numbers easier to implement */

#ifndef DISKED                /* Radix is a global variable */
#define Radix   10            /* DISKED uses a structure entry */
#endif                        /* This is here for non-DISKED usage */
                              /* define Radix for you own use */

#define getbyte(n)   getnum(255,n,Radix)
#define getint(n)    getnum(32767,n,Radix)
#define getuint(n)   getnum(65535,n,Radix)
#define getlong(n)   getnumber(2147483647L,n,Radix)
#define getnumb(m,n) getnum(m,n,Radix)
#define getlnumb(m,n) getnumber((unsigned long)(m),n,Radix)
#define len(n)       getlen(n,Radix)
#define length(n)    getlength((unsigned long)(n),Radix)

#define putbyte(n)   pn((int)(n),Radix)
#define puthex(n)    pnlz(n,4,16)
#define putint(n)    pn(n,Radix)
#define putuint(n)   pln((unsigned long)(n),Radix)
#define putlong(n)   pln((unsigned long)(n),Radix)
#define zputbyte(n)  pnlz((unsigned int)(n),3,Radix)
[ RETURN TO DIRECTORY ]