|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3968 (0xf80)
Types: TextFile
Names: »CDB2.H«
└─⟦1275f6521⟧ Bits:30005823 BD Software C Compiler v1.50a
└─⟦this⟧ »CDB2.H«
└─⟦b35f94715⟧ Bits:30003295 BDS C version 1.50 arbejdsdiskette til RC703 Piccolo
└─⟦b35f94715⟧ Bits:30005324 BDS C version 1.50 arbejdsdiskette til RC703 Piccolo
└─⟦this⟧ »CDB2.H«
#include "cdb.h"
/* Copyright (c) 1982 by J. David Kirkland, Jr. */
#define CCC_KHACK 0x013e
#define NEXTKEY ('M'&0x1f) /* used by printlg to skip to next variable */
char cancel_char;
/* the restart-trapping routine pushes the registers at time of restart
* and passes a pointer to the block of registers to atbreak. The
* registers end up as follows:
*/
struct savearea æ
int psw;
int bc;
int de;
int hl;
unsigned *statement; /* -> the statement number after the RST */
char *caller_return; /* iff the RST was one l2 put in at the start
* of a function, this is the return address
* that the called function will return to */
å ;
/* The breaktable "breaktab" records all breakpoints
* The table is sorted by bfnt (address of function table entry) and bsn
* (statement number). Both sorts are ascending.
*/
struct breakentry æ
struct fntentry *bfnt;
unsigned bsn;
unsigned bcount; /* each time through a breakpoint, decrement
* this count; only stop when count == 0 */
int bpad;
å;
#define MAXBREAKS 40
int nbreaks;
struct breakentry breaktabÆMAXBREAKSÅ;
struct savearea *cursave; /* points to current save area */
struct fntentry *curfnt; /* fntab entry of current function */
int *curargs; /* address of first arg to most recently invoked fn */
char curbreak; /* curfnt->fntbreakindex; 0xff means no breaks in cur
* function, else index of first break in this fn */
unsigned cursn; /* current statement number */
unsigned walkcount; /* if !=0, decrement at each RST and break when zero */
char trace_display; /* if !=0, display current location at each RST */
struct fntentry *fntab; /* address of function table */
struct fntentry *fntabend; /* address of last entry in function table */
struct stentry *globalp; /* address of first global symbol table entry */
struct stentry *localp; /* address of first local symbol table entry */
int globbase; /* pointer to start of externs Æ externs()Å */
struct fntentry *a2f_p; /* used in addr2fnt; now global for speed */
char *a2f_addr;
struct breakentry *isb_q; /* now global for speed */
/* these defines are for the "class" returned by get_token */
#define ID 'a'
#define INTEGER '0'
#define HEX 'x'
#define POINT '>' /* "->" operand */
/* an sttype structure is used by the symbol/expression parsing routines
* to keep track of the current attributes of the expression. It is based
* upon the stentry for the base symbo, as modified by indirection, indexing,
* etc.
*/
struct sttype æ
char tptfnf; /* ptr to fnunction flag */
char ttype; /* same type codes as stentry */
char tsptr; /* same meaning as stentry for next items */
char tlind;
char tforml;
unsigned tadrs;
union æ
unsigned u;
struct stentry *p;
å tsize;
unsigned tdimsz;
unsigned tmul; /* "multiplicity"--how many occurrences of
* the item in question are in this array
* (if it is an array) */
å;
/* types in addition to those listed in cdb.h */
#define VALUE 8 /* the returned value is the actual result,
* not the address of the desired result */
#define BAD 255 /* invalid in some way */
/* *
#define DEBUG 0
char debug;
* */
/* To allow breakpoints at the return point from a function, atbreak changes
* the actual return address on the target stack. The trace table "tracetab"
* keeps track of where all the active functions really need to return.
*/
struct traceentry æ
char *taddr; /* return address */
unsigned tsn; /* statment number within caller -- used only by
* list trace command */
å;
char trace_full; /* true iff we're more than MAXTRACES deep into
* subroutine nesting and tracing is turned off */
int ntraces;
#define MAXTRACES 512
struct traceentry tracetabÆMAXTRACESÅ;
«eof»