home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
vol_200
/
207_01
/
checks.h
< prev
next >
Wrap
Text File
|
1979-12-31
|
8KB
|
153 lines
/* checks.h -- header file for check register program */
/* copyright (c) 1986 by Jim Woolley and WoolleyWare, San Jose, CA */
/* vers. 1.0, 12/85 thru 5/86
*/
#include "a:bdscio.h"
#define BBF "BALANCE BROUGHT FORWARD"
#define PAYEEFILL '_' /* used to fill Payee */
#define DEPCLRFIL " " /* used to fill DEP and CLR */
#define DEFCAT ' ' /* default category code */
#define CLRCOM " " /* clear command display */
#define ENTRYSIZE 128 /* max entries (see Entry) */
#define PAYEESIZE 43 /* max chars in Entry->payee */
#define HASHSIZE 64 /* size of abrev. hash table */
#define FNAMSIZE 15 /* max chars in Filename */
#define CLRSIZE 384 /* max records in CLR file */
#define COLS 80 /* number of screen columns */
#define ROWS 24 /* number of screen rows */
#define HEAD 6 /* number of heading rows */
#define LAST ( ROWS - HEAD - 1)
#define PAGE ( ROWS - HEAD - 6)
#define BALCOL ( COLS - 9) /* where Balance display starts */
#define AMTCOL 54 /* where amount display starts */
#define DLOOP 250 /* loops for 100 msec on 4 MHz Z80 */
#define MAXDOLLAR 999 /* max dollar entry (see edamount) */
#define MAXFIELD 8 /* number of displayed fields */
#define CLRFIELD ( MAXFIELD - 1) /* Entry->clear field */
#define DEPFIELD ( MAXFIELD - 2) /* Entry->deposit field */
#define AMTFIELD ( MAXFIELD - 3) /* Entry->amount field */
#define CATFIELD ( MAXFIELD - 4) /* Entry->category field */
#define PAYFIELD ( MAXFIELD - 5) /* Entry->payee field */
#define YYFIELD ( MAXFIELD - 6) /* Entry->year field */
#define DDFIELD ( MAXFIELD - 7) /* Entry->date field */
#define MMFIELD ( MAXFIELD - 8) /* Entry->month field */
#define CTRLA 0x01 /* ASCII definitions */
#define CTRLB 0x02
#define CTRLC 0x03
#define CTRLD 0x04
#define CTRLE 0x05
#define CTRLF 0x06
#define CTRLG 0x07
#define BEL 0x07
#define CTRLH 0x08
#define BS 0x08
#define CTRLI 0x09
#define HT 0x09
#define CTRLJ 0x0a
#define LF 0x0a
#define CTRLK 0x0b
#define CTRLL 0x0c
#define FF 0x0c
#define CTRLM 0x0d
#define CR 0x0d
#define CTRLN 0x0e
#define CTRLO 0x0f
#define CTRLP 0x10
#define CTRLQ 0x11
#define CTRLR 0x12
#define CTRLS 0x13
#define CTRLT 0x14
#define CTRLU 0x15
#define CTRLV 0x16
#define CTRLW 0x17
#define CTRLX 0x18
#define CTRLY 0x19
#define CTRLZ 0x1a
#define CTRL_ 0x1f
#define ESC 0x1b
#define DEL 0x7f
#define CTRLTOA 0x40 /* offset CTRL to upper case alpha */
#define DEFNAM "CHECKS." /* default filename */
#define SCRTYP "SCR" /* screen controls/messages */
#define DATTYP "DAT" /* Entry data */
#define BAKTYP "BAK" /* Entry data backup */
#define CLRTYP "CLR" /* cleared entries */
#define TMPTYP "$$$" /* temporary CLR file */
#define INFTYP "INF" /* TITLE, ABREV, and AUTOM info */
#define NO FALSE
#define YES TRUE
#define isprint( c) !iscntrl( c)
#define FOREVER for ( ; ; ) /* loop forever */
/* define additional global variables and data structures */
struct calendar /* month, day, year */
{
char mm, dd, yy;
} Today;
struct money /* example: $1234.56 */
{ /* dollar = 12, cent = 3456 */
int dollar; /* $/100 (range of signed int) */
int cent; /* $%100 + cents (-9999 to +9999) */
} Memory, Balance[ ENTRYSIZE];
struct record /* one entry */
{
struct calendar date;
char payee[ PAYEESIZE], category;
struct money amount;
char deposit, clear;
} Entry[ ENTRYSIZE], Entryundo;
#define RECSIZ ( sizeof( Entry[ 0]))
struct nlist /* ref. K & R, p. 135 */
{
char *abrev, *fullname;
struct nlist *next;
} *Hashtab[ HASHSIZE], *install(), *lookup();
char *alloc(), *index(), *skipspace(), *strsave(), witch(), help();
char putcommand(), putcntrl(), putnext();
char eddate(), edamount(), eddeposit(), edclear(), edcategory(), edpayee();
char Modified, Ctrlyundo, Printing, Inserton;
char Filename[ FNAMSIZE], Savpayee[ PAYEESIZE], Ftoc[ MAXFIELD];
char Title[ COLS - FNAMSIZE - 2]; /* (COLS-1) - (5+2+FNAMSIZE-5) + 1 */
int First, Last, Maxentry, Recno, Field, Oldfield, Character, Speed, Savrecno;
int Dloop;
/* the following global variables mimic WordStar cursor/screen controls */
char Clead1[ 9], Clead2[ 5], Ctrail[ 5], Cb4flg, Linoff, Coloff, Ascur;
char Eraeol[ 7], Lindel[ 7], Linins[ 7], Ivon[ 7], Ivoff[ 7], Trmini[ 9];
/* The functions getchar(), ungetch( c), putchar( c), and kbhit() are defined
* in xio.c to provide char I/O without BDOS interaction; therefore, ^C, ^S,
* ^Q, and ^P will have no effect during console I/O. For putchar( c), the
* global variable _Outdev MUST be initialized to CONOUT for screen output;
* _Outdev may be temporarily set to LSTOUT for printer output, then reset to
* CONOUT. For getchar() and ungetch( c), the global variable _Lastch MUST be
* initialized to 0. Note that getc( 0) may NOT be equivalent to getchar()
* and putc( c, 1) may NOT be equivalent to putchar( c); however, each may be
* expected to function normally (using BDOS). The object file xio.crl MUST
* be linked with the Check Register Program.
*/
#define CONOUT 4 /* BIOS console output */
#define LSTOUT 5 /* BIOS list output */
char _Outdev; /* global variable for putchar( c) */
char _Lastch; /* global for getchar()/ungetch() */