home *** CD-ROM | disk | FTP | other *** search
- #define MAXPROG 203 /* Max number of instructions */
- #define MAXSTACK 4 /* The stack is 4 levels deep */
-
- /* 2 pseudo-keys, which don't exist on the keyboard. They are used to force
- certain actions, and are generated by certain menu functions */
- #define BRESET 40 /* Return to main program loop. Generated by New, Quit, Open */
- #define BDISPLAY 41 /* Redisplay. Generated by Paste, Radix */
-
- #define NUMKEYS 42
-
- enum KeyTypes {Action, Instruction, Prefix, Invalid};
- /* Keyboard sequence are of 2 types: Actions & Instructions. The other types
- are for internal use in the keyboard routines. Instructions can be incorporated
- into programs, while actions are immediately acted upon (eg enter program mode). */
-
- struct Regs { /* The status of the HP11. This can be saved */
- double r[20]; /* The 20 storage registers */
- double x,y,z,t,l,i; /* The stack & the indirection register */
- enum {fix, sci, eng} mode; /* display mode */
- double _minfix; /* 10^-Digits in fixed mode to determine smallest displayable value */
- enum {deg, rad, grad} angles; /* Trigonometric mode */
- int digits; /* Number of digits for display mode */
- int user; /* User mode flags */
- WORD prog[MAXPROG + 1]; /* The program */
- int lastins; /* Last instruction used */
- };
-
- extern struct Regs hp11r; /* the current internal state */
- extern int on, quit, running, fast, error, skip; /* various flags indicating the run mode ... */
- extern int PC, retStack[MAXSTACK], retCnt; /* PC & return stack (4 levels) */
- extern int Flags; /* the current flags */
-
- /* Defines to easily access components of internal state */
- #define X (hp11r.x)
- #define Y (hp11r.y)
- #define Z (hp11r.z)
- #define T (hp11r.t)
- #define L (hp11r.l)
- #define I (hp11r.i)
- #define R (hp11r.r)
- #define Mode (hp11r.mode)
- #define Angles (hp11r.angles)
- #define Digits (hp11r.digits)
- #define User (hp11r.user)
- #define Prog (hp11r.prog)
- #define lastIns (hp11r.lastins)
- #define minfix (hp11r._minfix)
-
- extern void ExecIns(int);
-
-