|
|
1.1 root 1: #ifndef FRAME_H
2: #define FRAME_H
3: #ifndef UNIV_H
4: #include "univ.h"
5: #endif
6:
7: struct FpFrame {
8: long fp;
9: Func *func;
10: Frame *frame;
11: };
12:
13: class CallStk {
14: public:
15: Core *core;
16: long size;
17: FpFrame *fpf;
18: CallStk(long, Core*);
19: ~CallStk();
20: Frame frame(long);
21: };
22:
23: class Frame : public PadRcv { friend Globals; friend SrcText; friend Process;
24: long saved(int,int);
25: void pickvar(Var*);
26: Index varcarte();
27: Index regcarte();
28: long regloc(int,int);
29: void ambiguous(char*, class BlkVars&);
30: void pop();
31: PUBLIC(Frame,U_FRAME)
32: long level; /* deepest() = 1; main() = core->stacksize() */
33: Core *core;
34: long fp;
35: long ap;
36: long pc;
37: long nargs;
38: long regbase;
39: long regsave; /* VAX: mask; mac32: no of regs */
40: Func *func;
41: Frame(Core*); /* cfront bug */
42: Frame();
43: Cslfd *peek(long, Cslfd* = 0);
44: Index carte();
45: Pad *pad;
46: Phrase *phraset;
47: SymTab *symtab();
48: Var *idtosym(char*);
49: char *blockmove(long, long, long);
50: char *special(char*, long);
51: char *help();
52: char *makephrase(Expr*,long=0);
53: char *peekstring(long, char* = 0 );
54: char *poke(long,long,int);
55: char *pokedbl(long,double,int);
56: char *text(Bls&);
57: int addsymbols();
58: int changes(long verbose = 0);
59: long locate(Var*);
60: void opencallersframe();
61: Frame *caller();
62: void freekey(long);
63: void hostclose();
64: char *kbd(char*);
65: void select(long=0);
66: virtual void banner();
67: virtual void open(long=0);
68: };
69:
70: class Globals : public Frame {
71: Index ix;
72: PUBLIC(Frame,U_FRAME)
73: Globals(Core *);
74: void open(long=0);
75: void addvars(Menu*);
76: void banner();
77: };
78:
79: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.