File:  [Research Unix] / researchv9 / jtools / src / pi / frame.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:59 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv9-SUN3_old, researchv9-SUN3, HEAD
researchv9-SUN3(old)

#ifndef FRAME_H
#define FRAME_H
#ifndef UNIV_H
#include "univ.h"
#endif

struct FpFrame {
	long	fp;
	Func	*func;
	Frame	*frame;
};

class CallStk {
public:
	Core	*core;
	long	size;
	FpFrame	*fpf;
		CallStk(long, Core*);
		~CallStk();
	Frame	frame(long);
};

class Frame : public PadRcv { friend Globals; friend SrcText; friend Process;
	long	saved(int,int);
	void	pickvar(Var*);
	Index	varcarte();
	Index	regcarte();
	long	regloc(int,int);
	void	ambiguous(char*, class BlkVars&);
	void	pop();
PUBLIC(Frame,U_FRAME)
	long	level;		/* deepest() = 1; main() = core->stacksize() */
	Core	*core;
	long	fp;
	long	ap;
	long	pc;
	long	nargs;
	long	regbase;
	long	regsave;	/* VAX: mask; mac32: no of regs */
	Func	*func;
		Frame(Core*);	/* cfront bug */
		Frame();
	Cslfd	*peek(long, Cslfd* = 0);
	Index	carte();
	Pad	*pad;
	Phrase	*phraset;
	SymTab	*symtab();
	Var	*idtosym(char*);
	char	*blockmove(long, long, long);
	char	*special(char*, long);
	char	*help();
	char	*makephrase(Expr*,long=0);
	char	*peekstring(long, char* = 0 );
	char	*poke(long,long,int);
	char	*pokedbl(long,double,int);
	char	*text(Bls&);
	int	addsymbols();
	int	changes(long verbose = 0);
	long	locate(Var*);
	void	opencallersframe();
	Frame	*caller();
	void	freekey(long);
	void	hostclose();
	char	*kbd(char*);
	void	select(long=0);
virtual	void	banner();
virtual	void	open(long=0);
};

class Globals : public Frame {
	Index	ix;
PUBLIC(Frame,U_FRAME)
		Globals(Core *);
	void	open(long=0);
	void	addvars(Menu*);
	void	banner();
};

#endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.