mirror of
https://github.com/Interlisp/maiko.git
synced 2026-02-26 08:43:40 +00:00
Remove editor save files. (#19)
Reviewed differences between save files and current versions to ensure no relevant history was lost.
This commit is contained in:
@@ -1,95 +0,0 @@
|
||||
# Options for SunOS4 and SPARC
|
||||
# @(#) makefile-sunos4.sparc Version 1.19 (5/9/90).
|
||||
|
||||
#************************************************************************/
|
||||
#* */
|
||||
#* (C) Copyright 1989-92 Venue. All Rights Reserved. */
|
||||
#* Manufactured in the United States of America. */
|
||||
#* */
|
||||
#************************************************************************/
|
||||
#
|
||||
# This is to make the %$#@! Apollo cc happy
|
||||
OEXT = .o
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2
|
||||
FPFLAGS =
|
||||
# Now share the same ldesingle with COLOR(CG4)/MONO Suns
|
||||
# If you load MAIKOCOLOR.LCOM etc., you can use color functions
|
||||
DFLAGS = -DKBINT -DFSERROR -DNEW_STORAGE -DOS4 -DSPARCDISP -DSUN4_OS4_IL \
|
||||
-DOS4_TYPE4BUG -DCOLOR -DNEWBITBLT -DLOGINT -DSUNDISPLAY \
|
||||
-DFORKCOMM -DBIGATOMS
|
||||
|
||||
LDFLAGS = -lsuntool -lsunwindow -lpixrect -ldld -lc -lm
|
||||
#-Dsparc?
|
||||
INLINE = $(SRCDIR)dspSPARC.il
|
||||
BITBLTFILE = $(OBJECTDIR)bbtSPARC.o
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
COLORFILES = $(OBJECTDIR)rawcolor.o
|
||||
|
||||
default : $(OBJECTDIR)lde $(OBJECTDIR)ldeether
|
||||
|
||||
# Special rules to create xc.c on Sun4
|
||||
|
||||
#run cpp to expand macros
|
||||
$(OBJECTDIR)xc.i: $(SRCDIR)xc.c $(INCDIR)lispemul.h $(INCDIR)emlglob.h $(INCDIR)address.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)stack.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)cell.h \
|
||||
$(INCDIR)initatms.h $(INCDIR)gcdata.h \
|
||||
$(INCDIR)arith.h $(INCDIR)stream.h \
|
||||
$(INCDIR)tos1defs.h $(INCDIR)tosret.h \
|
||||
$(INCDIR)tosfns.h $(INCDIR)inlineC.h \
|
||||
$(INCDIR)inln68k.h
|
||||
cc -Qproduce .i $(DFLAGS) -I$(INCDIR) $(SRCDIR)xc.c -o $(OBJECTDIR)xc.i
|
||||
|
||||
#run c compiler to produce first pass assembly
|
||||
$(OBJECTDIR)xc.s1: $(OBJECTDIR)xc.i
|
||||
rm -f $(OBJECTDIR)xc.s1
|
||||
/lib/ccom - $(FPFLAGS) <$(OBJECTDIR)xc.i >$(OBJECTDIR)xc.s1
|
||||
|
||||
#generate C program to remove dispatch loop, optimize
|
||||
$(OBJECTDIR)dsphack.c: $(SRCDIR)dsphack.lex
|
||||
rm -f $(OBJECTDIR)dsphack.c
|
||||
lex -t $(SRCDIR)dsphack.lex > $(OBJECTDIR)dsphack.c
|
||||
|
||||
#uses this program to find dispatch
|
||||
$(OBJECTDIR)find-dsp.c: $(SRCDIR)find-dsp.lex
|
||||
rm -f $(OBJECTDIR)find-dsp.c
|
||||
lex -t $(SRCDIR)find-dsp.lex > $(OBJECTDIR)find-dsp.c
|
||||
|
||||
$(OBJECTDIR)find-dsp: $(OBJECTDIR)find-dsp.c
|
||||
cc -o $(OBJECTDIR)find-dsp $(OBJECTDIR)find-dsp.c -ll
|
||||
|
||||
$(OBJECTDIR)dispatch-label.c: $(OBJECTDIR)find-dsp $(OBJECTDIR)xc.s1
|
||||
rm -f $(OBJECTDIR)dispatch-label.c
|
||||
$(OBJECTDIR)find-dsp < $(OBJECTDIR)xc.s1 >$(OBJECTDIR)dispatch-label.c
|
||||
|
||||
$(OBJECTDIR)dsphack: $(OBJECTDIR)dsphack.c $(OBJECTDIR)dispatch-label.c
|
||||
cc -o $(OBJECTDIR)dsphack $(OBJECTDIR)dispatch-label.c $(OBJECTDIR)dsphack.c -ll
|
||||
rm -f $(OBJECTDIR)dispatch-label.o $(OBJECTDIR)dsphack.o
|
||||
|
||||
$(OBJECTDIR)xc.s2: $(OBJECTDIR)xc.s1 $(OBJECTDIR)dsphack
|
||||
rm -f $(OBJECTDIR)xc.s2
|
||||
$(OBJECTDIR)dsphack < $(OBJECTDIR)xc.s1 >$(OBJECTDIR)xc.s2
|
||||
|
||||
$(OBJECTDIR)xc.s3: $(OBJECTDIR)xc.s2 $(INLINE)
|
||||
rm -f $(OBJECTDIR)xc.s3
|
||||
/usr/lib/inline -i $(INLINE) < $(OBJECTDIR)xc.s2 > $(OBJECTDIR)xc.s3
|
||||
|
||||
$(OBJECTDIR)xc.o: $(OBJECTDIR)xc.s3
|
||||
/bin/as -o $(OBJECTDIR)xc.o -O1 $(OBJECTDIR)xc.s3
|
||||
|
||||
############
|
||||
#
|
||||
# SPECIAL xc.o for debugging
|
||||
#
|
||||
############
|
||||
#$(OBJECTDIR)xc.o: $(SRCDIR)xc.c $(INCDIR)lispemul.h $(INCDIR)emlglob.h \
|
||||
$(INCDIR)address.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)stack.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)cell.h \
|
||||
$(INCDIR)initatms.h $(INCDIR)gcdata.h \
|
||||
$(INCDIR)arith.h $(INCDIR)stream.h \
|
||||
$(INCDIR)tos1defs.h $(INCDIR)tosret.h \
|
||||
$(INCDIR)tosfns.h $(INCDIR)inlineC.h
|
||||
# cc $(DISPRFLAGS) -UOPDISP -USPARCDISP $(SRCDIR)xc.c -I$(INCDIR) -o $(OBJECTDIR)xc.o
|
||||
@@ -1,98 +0,0 @@
|
||||
# makefile-sunos4.sparc-multi
|
||||
# @(#) makefile-sunos4.sparc-multi Version 1.6 (5/9/90).
|
||||
#
|
||||
# Options for SunOS4 and SPARC for CG3 or CG6
|
||||
# Add -DDISPLAYBUFFER in DFLAGS
|
||||
# ${RELEASENAME} is "sunos4.sparc-multi"
|
||||
|
||||
# This is to make the %$#@! Apollo cc happy
|
||||
OEXT = .o
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -g
|
||||
DISPOPTFLAGS = -g
|
||||
FPFLAGS =
|
||||
# Now share the same ldemulti for Mono-Medley & Color-Medley
|
||||
# If you load MAIKOCOLOR.LCOM etc., you can use color functions
|
||||
#
|
||||
# Removed for debug: -DSPARCDISP -DSUN4_OS4_IL
|
||||
# Added for debug: -DFNSTKCHECK -DMYOPTRACE -DOPTRACE -DNOASM
|
||||
#
|
||||
DFLAGS = -DKBINT -DFSERROR -DNEW_STORAGE -DOS4 -DOS4_TYPE4BUG -DCOLOR \
|
||||
-DDISPLAYBUFFER -DNEWBITBLT -DLOGINT -DSUNDISPLAY -DSPARCDISP \
|
||||
-DSUN4_OS4_IL -DBIGATOMS -DFORKCOMM -DBIGVM -DNEWCDRCODING
|
||||
|
||||
LDFLAGS = -lsuntool -lsunwindow -lpixrect -ldld -lc -lm
|
||||
#-Dsparc?
|
||||
INLINE = $(SRCDIR)dspSPARC.il
|
||||
BITBLTFILE = $(OBJECTDIR)bbtSPARC.o
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
COLORFILES = $(OBJECTDIR)rawcolor.o
|
||||
|
||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldeether
|
||||
|
||||
# Special rules to create xc.c on Sun4
|
||||
|
||||
#run cpp to expand macros
|
||||
$(OBJECTDIR)xc.i: $(SRCDIR)xc.c $(INCDIR)lispemul.h $(INCDIR)emlglob.h $(INCDIR)address.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)stack.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)cell.h \
|
||||
$(INCDIR)initatms.h $(INCDIR)gcdata.h \
|
||||
$(INCDIR)arith.h $(INCDIR)stream.h \
|
||||
$(INCDIR)tos1defs.h $(INCDIR)tosret.h \
|
||||
$(INCDIR)tosfns.h $(INCDIR)inlineC.h \
|
||||
$(INCDIR)inln68k.h
|
||||
cc -Qproduce .i $(DFLAGS) -I$(INCDIR) $(SRCDIR)xc.c -o $(OBJECTDIR)xc.i
|
||||
|
||||
#run c compiler to produce first pass assembly
|
||||
$(OBJECTDIR)xc.s1: $(OBJECTDIR)xc.i
|
||||
rm -f $(OBJECTDIR)xc.s1
|
||||
/lib/ccom - $(FPFLAGS) <$(OBJECTDIR)xc.i >$(OBJECTDIR)xc.s1
|
||||
|
||||
#generate C program to remove dispatch loop, optimize
|
||||
$(OBJECTDIR)dsphack.c: $(SRCDIR)dsphack.lex
|
||||
rm -f $(OBJECTDIR)dsphack.c
|
||||
lex -t $(SRCDIR)dsphack.lex > $(OBJECTDIR)dsphack.c
|
||||
|
||||
#uses this program to find dispatch
|
||||
$(OBJECTDIR)find-dsp.c: $(SRCDIR)find-dsp.lex
|
||||
rm -f $(OBJECTDIR)find-dsp.c
|
||||
lex -t $(SRCDIR)find-dsp.lex > $(OBJECTDIR)find-dsp.c
|
||||
|
||||
$(OBJECTDIR)find-dsp: $(OBJECTDIR)find-dsp.c
|
||||
cc -o $(OBJECTDIR)find-dsp $(OBJECTDIR)find-dsp.c -ll
|
||||
|
||||
$(OBJECTDIR)dispatch-label.c: $(OBJECTDIR)find-dsp $(OBJECTDIR)xc.s1
|
||||
rm -f $(OBJECTDIR)dispatch-label.c
|
||||
$(OBJECTDIR)find-dsp < $(OBJECTDIR)xc.s1 >$(OBJECTDIR)dispatch-label.c
|
||||
|
||||
$(OBJECTDIR)dsphack: $(OBJECTDIR)dsphack.c $(OBJECTDIR)dispatch-label.c
|
||||
cc -o $(OBJECTDIR)dsphack $(OBJECTDIR)dispatch-label.c $(OBJECTDIR)dsphack.c -ll
|
||||
rm -f $(OBJECTDIR)dispatch-label.o $(OBJECTDIR)dsphack.o
|
||||
|
||||
$(OBJECTDIR)xc.s2: $(OBJECTDIR)xc.s1 $(OBJECTDIR)dsphack
|
||||
rm -f $(OBJECTDIR)xc.s2
|
||||
$(OBJECTDIR)dsphack < $(OBJECTDIR)xc.s1 >$(OBJECTDIR)xc.s2
|
||||
|
||||
$(OBJECTDIR)xc.s3: $(OBJECTDIR)xc.s2 $(INLINE)
|
||||
rm -f $(OBJECTDIR)xc.s3
|
||||
/usr/lib/inline -i $(INLINE) < $(OBJECTDIR)xc.s2 > $(OBJECTDIR)xc.s3
|
||||
|
||||
#$(OBJECTDIR)xc.o: $(OBJECTDIR)xc.s3
|
||||
# /bin/as -o $(OBJECTDIR)xc.o -O1 $(OBJECTDIR)xc.s3
|
||||
|
||||
|
||||
############
|
||||
#
|
||||
# SPECIAL xc.o for debugging
|
||||
#
|
||||
############
|
||||
$(OBJECTDIR)xc.o: $(SRCDIR)xc.c $(INCDIR)lispemul.h $(INCDIR)emlglob.h \
|
||||
$(INCDIR)address.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)stack.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)cell.h \
|
||||
$(INCDIR)initatms.h $(INCDIR)gcdata.h \
|
||||
$(INCDIR)arith.h $(INCDIR)stream.h \
|
||||
$(INCDIR)tos1defs.h $(INCDIR)tosret.h \
|
||||
$(INCDIR)tosfns.h $(INCDIR)inlineC.h
|
||||
cc $(DISPRFLAGS) -UOPDISP -USPARCDISP $(SRCDIR)xc.c -I$(INCDIR) -o $(OBJECTDIR)xc.o
|
||||
@@ -1,104 +0,0 @@
|
||||
# Options for SunOS4, SPARC and X-Window
|
||||
|
||||
CLXFLAGS = -DCLX -DTCP_NODELAY
|
||||
|
||||
CLXFILES = $(OBJECTDIR)socket.o \
|
||||
$(OBJECTDIR)socdvr.o
|
||||
|
||||
|
||||
XFILES = $(OBJECTDIR)XClose.o \
|
||||
$(OBJECTDIR)Cursor.o \
|
||||
$(OBJECTDIR)XWindow.o \
|
||||
$(OBJECTDIR)DoRing.o \
|
||||
$(OBJECTDIR)DoScroll.o \
|
||||
$(OBJECTDIR)XEvent.o \
|
||||
$(OBJECTDIR)XGravity.o \
|
||||
$(OBJECTDIR)XInit.o \
|
||||
$(OBJECTDIR)Xevinit.o \
|
||||
$(OBJECTDIR)Xkbdmus.o \
|
||||
$(OBJECTDIR)Xlspwin.o \
|
||||
$(OBJECTDIR)Xbbt.o \
|
||||
$(OBJECTDIR)Xkbd.o \
|
||||
$(OBJECTDIR)Xmkicon.o \
|
||||
$(OBJECTDIR)Xopendsp.o \
|
||||
$(OBJECTDIR)Xrdopt.o \
|
||||
$(OBJECTDIR)Xreconf.o \
|
||||
$(OBJECTDIR)XScroll.o \
|
||||
$(OBJECTDIR)Xscrolb.o \
|
||||
$(OBJECTDIR)XCursor.o \
|
||||
$(OBJECTDIR)XMouse.o \
|
||||
$(OBJECTDIR)Xsubwin.o \
|
||||
$(OBJECTDIR)Xcolor.o \
|
||||
$(OBJECTDIR)Xwinman.o \
|
||||
$(CLXFILES)
|
||||
|
||||
XVERSION = XV11R4
|
||||
XFLAGS = -DXWINDOW -DNOPIXRECT -D$(XVERSION) $(CLXFLAGS)
|
||||
|
||||
# This is to make the %$#@! Apollo cc happy
|
||||
OEXT = .o
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2
|
||||
FPFLAGS =
|
||||
DFLAGS = -DFSERROR -DNEW_STORAGE -DOS4 -DSPARCDISP -DSUN4_OS4_IL -DOS4_TYPE4BUG -DOLD_CURSOR \
|
||||
-DFORKCOMM -DNEWBITBLT -DLOGINT -DBIGATOMS $(XFLAGS) -DBIGVM -DNEWCDRCODING
|
||||
LDFLAGS = -lX11 -lpixrect -ldld -lc -lm
|
||||
LDELDFLAGS = -Bstatic -lX11 -lpixrect -Bdynamic -lc -lm
|
||||
|
||||
INLINE = $(SRCDIR)dspSPARC.il
|
||||
BITBLTFILE = $(OBJECTDIR)bbtSPARC.o
|
||||
BYTESWAPFILES = $(OBJECTDIR)byteswap.o
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldeether
|
||||
|
||||
# Special rules to create xc.c on Sun4
|
||||
|
||||
#run cpp to expand macros
|
||||
$(OBJECTDIR)xc.i: $(SRCDIR)xc.c $(INCDIR)lispemul.h $(INCDIR)emlglob.h $(INCDIR)address.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)stack.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)cell.h \
|
||||
$(INCDIR)initatms.h $(INCDIR)gcdata.h \
|
||||
$(INCDIR)arith.h $(INCDIR)stream.h \
|
||||
$(INCDIR)tos1defs.h $(INCDIR)tosret.h \
|
||||
$(INCDIR)tosfns.h $(INCDIR)inlineC.h \
|
||||
$(INCDIR)inln68k.h
|
||||
cc -Qproduce .i $(DFLAGS) -I$(INCDIR) $(SRCDIR)xc.c -o $(OBJECTDIR)xc.i
|
||||
|
||||
#run c compiler to produce first pass assembly
|
||||
$(OBJECTDIR)xc.s1: $(OBJECTDIR)xc.i
|
||||
rm -f $(OBJECTDIR)xc.s1
|
||||
/lib/ccom - $(FPFLAGS) <$(OBJECTDIR)xc.i >$(OBJECTDIR)xc.s1
|
||||
|
||||
#generate C program to remove dispatch loop, optimize
|
||||
$(OBJECTDIR)dsphack.c: $(SRCDIR)dsphack.lex
|
||||
rm -f $(OBJECTDIR)dsphack.c
|
||||
lex -t $(SRCDIR)dsphack.lex > $(OBJECTDIR)dsphack.c
|
||||
|
||||
#uses this program to find dispatch
|
||||
$(OBJECTDIR)find-dsp.c: $(SRCDIR)find-dsp.lex
|
||||
rm -f $(OBJECTDIR)find-dsp.c
|
||||
lex -t $(SRCDIR)find-dsp.lex > $(OBJECTDIR)find-dsp.c
|
||||
|
||||
$(OBJECTDIR)find-dsp: $(OBJECTDIR)find-dsp.c
|
||||
cc -o $(OBJECTDIR)find-dsp $(OBJECTDIR)find-dsp.c -ll
|
||||
|
||||
$(OBJECTDIR)dispatch-label.c: $(OBJECTDIR)find-dsp $(OBJECTDIR)xc.s1
|
||||
rm -f $(OBJECTDIR)dispatch-label.c
|
||||
$(OBJECTDIR)find-dsp < $(OBJECTDIR)xc.s1 >$(OBJECTDIR)dispatch-label.c
|
||||
|
||||
$(OBJECTDIR)dsphack: $(OBJECTDIR)dsphack.c $(OBJECTDIR)dispatch-label.c
|
||||
cc -o $(OBJECTDIR)dsphack $(OBJECTDIR)dispatch-label.c $(OBJECTDIR)dsphack.c -ll
|
||||
rm -f $(OBJECTDIR)dispatch-label.o $(OBJECTDIR)dsphack.o
|
||||
|
||||
$(OBJECTDIR)xc.s2: $(OBJECTDIR)xc.s1 $(OBJECTDIR)dsphack
|
||||
rm -f $(OBJECTDIR)xc.s2
|
||||
$(OBJECTDIR)dsphack < $(OBJECTDIR)xc.s1 >$(OBJECTDIR)xc.s2
|
||||
|
||||
$(OBJECTDIR)xc.s3: $(OBJECTDIR)xc.s2 $(INLINE)
|
||||
rm -f $(OBJECTDIR)xc.s3
|
||||
/usr/lib/inline -i $(INLINE) < $(OBJECTDIR)xc.s2 > $(OBJECTDIR)xc.s3
|
||||
|
||||
$(OBJECTDIR)xc.o: $(OBJECTDIR)xc.s3
|
||||
/bin/as -o $(OBJECTDIR)xc.o -O1 $(OBJECTDIR)xc.s3
|
||||
462
inc/cell.h%
462
inc/cell.h%
@@ -1,462 +0,0 @@
|
||||
/* %Z% %M% Version %I% (%G%). copyright Venue */
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* (C) Copyright 1989-92 Venue. All Rights Reserved. */
|
||||
/* Manufactured in the United States of America. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/*
|
||||
File Name : cell.h
|
||||
|
||||
Cell Manipulate Macros
|
||||
|
||||
Date : December 16, 1986
|
||||
Edited by : Takeshi Shimizu
|
||||
|
||||
*/
|
||||
/**********************************************************************/
|
||||
|
||||
/* CONS CELL (LISTP) definitions moved to lispemulater.h */
|
||||
|
||||
/* This Macro may produce the CDR code */
|
||||
#define CDRCODE(x) LRSH (((int)x & 0x0ff000000) , 24)
|
||||
|
||||
/* This Macro may produce a pointer that points CAR cell */
|
||||
/* On 68010,68000 This Macro does not effect *
|
||||
#define CARFIELD(x) ((int)x & 0x00ffffff)
|
||||
|
||||
/* CDR-Codes defs */
|
||||
#define CDR_ONPAGE 128
|
||||
#define CDR_NIL 128
|
||||
#define CDR_INDIRECT 0
|
||||
#define CDR_MAXINDIRECT 127
|
||||
|
||||
/* short CarCdrError ; */
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* CONSPAGE describes the free-space management fields at the */
|
||||
/* beginning of a cons page -- # of free cells on the page, etc. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
#ifndef BYTESWAP
|
||||
#ifdef NEWCDRCODE
|
||||
struct
|
||||
conspage
|
||||
{
|
||||
unsigned count: 8; /* free cells on this page */
|
||||
unsigned next_cell: 8; /* next free cell in chain */
|
||||
unsigned nil:16;
|
||||
LispPTR next_page; /* next cons page, or 0 if none */
|
||||
};
|
||||
#else
|
||||
struct
|
||||
conspage
|
||||
{
|
||||
unsigned count : 8 ;
|
||||
unsigned next_cell :8 ;
|
||||
DLword next_page ;
|
||||
};
|
||||
#endif /* NEWCDRCODE */
|
||||
#else
|
||||
/* byte-swapped version */
|
||||
#ifdef NEWCDRCODE
|
||||
struct
|
||||
conspage
|
||||
{
|
||||
unsigned nil: 16;
|
||||
unsigned next_cell: 8;
|
||||
unsigned count: 8;
|
||||
LispPTR next_page;
|
||||
};
|
||||
#else
|
||||
struct
|
||||
conspage
|
||||
{
|
||||
DLword next_page ;
|
||||
unsigned next_cell :8 ;
|
||||
unsigned count : 8 ;
|
||||
};
|
||||
#endif /* NEWCDRCODE */
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
|
||||
/* Following MACROs for Conspage */
|
||||
|
||||
/* lisp_ptr is LISP pointer, returns 68k ptr points struct conspage obj */
|
||||
#define Get_ConsPageBase(lisp_ptr) \
|
||||
(struct conspage *)Addr68k_from_LPAGE(POINTER_PAGEBASE(lisp_ptr))
|
||||
|
||||
#define GetNewCell_68k(conspage68k) \
|
||||
(ConsCell *)(((DLword *)(conspage68k)) \
|
||||
+ (unsigned)((conspage68k)->next_cell) )
|
||||
|
||||
/* page : LISP page */
|
||||
#define GetCONSCount(page) \
|
||||
(((struct conspage *)Addr68k_from_LPAGE(page))->count)
|
||||
|
||||
|
||||
#ifndef BYTESWAP
|
||||
/* For chaining together free cons cells on a page */
|
||||
struct freecons
|
||||
{
|
||||
unsigned next_free: 8; /* next free cell on this page */
|
||||
unsigned nil: 24;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
struct freecons
|
||||
{
|
||||
unsigned next_free: 8;
|
||||
unsigned nil: 24;
|
||||
}
|
||||
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
|
||||
#ifndef BYTESWAP
|
||||
/************************************************/
|
||||
/* Definitions for normal byte-order machines */
|
||||
/************************************************/
|
||||
|
||||
#ifdef BIGVM2
|
||||
/* Definition of a new-atom, where all the cells are in one object */
|
||||
typedef
|
||||
struct new_atom
|
||||
{
|
||||
unsigned dfccodep: 1 ; /* DEFCELL FLAGS */
|
||||
unsigned dffastp: 1 ;
|
||||
unsigned dfargtype: 2 ;
|
||||
unsigned pncell: 28; /* pointer to the pname itself */
|
||||
unsigned nil2: 4; /* top 4 bits of value cell */
|
||||
unsigned valcell: 28; /* pointer to the top-level value */
|
||||
unsigned nil3: 4; /* top 4 bits of definition cell */
|
||||
unsigned defcell: 28; /* pointer to function definition */
|
||||
unsigned nil4: 4; /* */
|
||||
unsigned plcell: 28; /* pointer to property list */
|
||||
unsigned pnpkg: 8; /* package */
|
||||
unsigned dfnil1: 4 ; /* DEFCELL FLAGS */
|
||||
unsigned dfpseudo: 1 ;
|
||||
unsigned dfswapped: 1 ; /* T for native-order fn opcodes */
|
||||
unsigned dfnil: 2 ;
|
||||
unsigned plunused: 1; /* PROPLIST FLAGS */
|
||||
unsigned plgensymp: 1;
|
||||
unsigned plfatpnamep: 1;
|
||||
unsigned plnil: 5;
|
||||
unsigned nil5: 8; /* Fill out last byte of final cell */
|
||||
} NewAtom;
|
||||
|
||||
/* DEFs for DEFINITIONCELL */
|
||||
typedef
|
||||
struct definition_cell
|
||||
{
|
||||
unsigned ccodep : 1 ;
|
||||
unsigned fastp : 1 ;
|
||||
unsigned argtype : 2 ;
|
||||
unsigned defpointer : 28;
|
||||
LispPTR nil_PL; /* skip the proplist cell */
|
||||
unsigned nilpkg:8; /* skip pkg byte */
|
||||
unsigned nil2 : 4 ;
|
||||
unsigned pseudocodep : 1 ;
|
||||
unsigned byteswapped : 1 ; /* T for native-order fn opcodes */
|
||||
unsigned nil_last: 18;
|
||||
|
||||
} DefCell ;
|
||||
|
||||
typedef
|
||||
struct pname_cell
|
||||
{
|
||||
unsigned nil : 4 ;
|
||||
unsigned pnamebase : 28 ;
|
||||
LispPTR nil_val;
|
||||
LispPTR nil_def;
|
||||
LispPTR nil_plist;
|
||||
unsigned pkg_index : 8 ;
|
||||
unsigned nil2: 24;
|
||||
} PNCell ;
|
||||
|
||||
typedef
|
||||
struct proplist_cell
|
||||
{
|
||||
unsigned nil: 4;
|
||||
unsigned propbase: 28;
|
||||
unsigned nilpkg: 8;
|
||||
unsigned nildef: 8;
|
||||
unsigned unused: 1;
|
||||
unsigned gensymp: 1;
|
||||
unsigned fatpnamep: 1;
|
||||
unsigned nil2: 5;
|
||||
unsigned nil3: 8;
|
||||
|
||||
} PLCell;
|
||||
|
||||
|
||||
struct xpointer{
|
||||
unsigned flags:4;
|
||||
unsigned addr:28;
|
||||
};
|
||||
|
||||
#elif BIGVM
|
||||
/* Definition of a new-atom, where all the cells are in one object */
|
||||
typedef
|
||||
struct new_atom
|
||||
{
|
||||
unsigned dfccodep: 1 ; /* DEFCELL FLAGS */
|
||||
unsigned dffastp: 1 ;
|
||||
unsigned dfargtype: 2 ;
|
||||
unsigned nil1:4;
|
||||
unsigned pncell: 24; /* pointer to the pname itself */
|
||||
unsigned nil2: 8; /* top 4 bits of value cell */
|
||||
unsigned valcell: 24; /* pointer to the top-level value */
|
||||
unsigned nil3: 8; /* top 4 bits of definition cell */
|
||||
unsigned defcell: 24; /* pointer to function definition */
|
||||
unsigned nil4: 8; /* */
|
||||
unsigned plcell: 24; /* pointer to property list */
|
||||
unsigned pnpkg: 8; /* package */
|
||||
unsigned dfnil1: 4 ; /* DEFCELL FLAGS */
|
||||
unsigned dfpseudo: 1 ;
|
||||
unsigned dfswapped: 1 ; /* T for native-order fn opcodes */
|
||||
unsigned dfnil: 2 ;
|
||||
unsigned plunused: 1; /* PROPLIST FLAGS */
|
||||
unsigned plgensymp: 1;
|
||||
unsigned plfatpnamep: 1;
|
||||
unsigned plnil: 5;
|
||||
unsigned nil5: 8; /* Fill out last byte of final cell */
|
||||
} NewAtom;
|
||||
|
||||
/* DEFs for DEFINITIONCELL */
|
||||
typedef
|
||||
struct definition_cell
|
||||
{
|
||||
unsigned ccodep : 1 ;
|
||||
unsigned fastp : 1 ;
|
||||
unsigned argtype : 2 ;
|
||||
unsigned nil1:4;
|
||||
unsigned defpointer : 24;
|
||||
LispPTR nil_PL; /* skip the proplist cell */
|
||||
unsigned nilpkg:8; /* skip pkg byte */
|
||||
unsigned nil2 : 4 ;
|
||||
unsigned pseudocodep : 1 ;
|
||||
unsigned byteswapped : 1 ; /* T for native-order fn opcodes */
|
||||
unsigned nil_last: 18;
|
||||
|
||||
} DefCell ;
|
||||
|
||||
typedef
|
||||
struct pname_cell
|
||||
{
|
||||
unsigned nil : 8 ;
|
||||
unsigned pnamebase : 24 ;
|
||||
LispPTR nil_val;
|
||||
LispPTR nil_def;
|
||||
LispPTR nil_plist;
|
||||
unsigned pkg_index : 8 ;
|
||||
unsigned nil2: 24;
|
||||
} PNCell ;
|
||||
|
||||
typedef
|
||||
struct proplist_cell
|
||||
{
|
||||
unsigned nil: 8;
|
||||
unsigned propbase: 24;
|
||||
unsigned nilpkg: 8;
|
||||
unsigned nildef: 8;
|
||||
unsigned unused: 1;
|
||||
unsigned gensymp: 1;
|
||||
unsigned fatpnamep: 1;
|
||||
unsigned nil2: 5;
|
||||
unsigned nil3: 8;
|
||||
|
||||
} PLCell;
|
||||
|
||||
|
||||
struct xpointer{
|
||||
unsigned flags:8;
|
||||
unsigned addr:24;
|
||||
};
|
||||
|
||||
#else /* not BIGVM */
|
||||
|
||||
/* DEFs for DEFINITIONCELL */
|
||||
typedef
|
||||
struct definition_cell
|
||||
{
|
||||
unsigned ccodep : 1 ;
|
||||
unsigned fastp : 1 ;
|
||||
unsigned argtype : 2 ;
|
||||
unsigned pseudocodep : 1 ;
|
||||
unsigned byteswapped : 1 ; /* T for native-order fn opcodes */
|
||||
unsigned nil : 2 ;
|
||||
unsigned defpointer : 24;
|
||||
|
||||
} DefCell ;
|
||||
|
||||
typedef
|
||||
struct pname_cell
|
||||
{
|
||||
unsigned pkg_index : 8 ;
|
||||
unsigned pnamebase : 24 ;
|
||||
} PNCell ;
|
||||
|
||||
typedef
|
||||
struct proplist_cell
|
||||
{
|
||||
unsigned unused: 1;
|
||||
unsigned gensymp: 1;
|
||||
unsigned fatpnamep: 1;
|
||||
unsigned nil: 5;
|
||||
unsigned propbase: 24;
|
||||
} PLCell;
|
||||
|
||||
|
||||
struct xpointer{
|
||||
unsigned flags:8;
|
||||
unsigned addr:24;
|
||||
};
|
||||
|
||||
#endif /* BIGVM */
|
||||
|
||||
#else
|
||||
/************************************************/
|
||||
/* Definitions for byte-swapped machines */
|
||||
/************************************************/
|
||||
/* DEFs for DEFINITIONCELL */
|
||||
typedef
|
||||
struct definition_cell
|
||||
{
|
||||
unsigned defpointer : 24;
|
||||
unsigned nil : 2 ;
|
||||
unsigned byteswapped : 1 ; /* T if opcodes are native-order */
|
||||
unsigned pseudocodep : 1 ;
|
||||
unsigned argtype : 2 ;
|
||||
unsigned fastp : 1 ;
|
||||
unsigned ccodep : 1 ;
|
||||
|
||||
} DefCell ;
|
||||
|
||||
typedef
|
||||
struct pname_cell
|
||||
{
|
||||
unsigned pnamebase : 24 ;
|
||||
unsigned pkg_index : 8 ;
|
||||
} PNCell ;
|
||||
|
||||
typedef
|
||||
struct proplist_cell
|
||||
{
|
||||
unsigned propbase: 24;
|
||||
unsigned nil: 5;
|
||||
unsigned fatpnamep: 1;
|
||||
unsigned gensymp: 1;
|
||||
unsigned unused: 1;
|
||||
} PLCell;
|
||||
|
||||
struct xpointer
|
||||
{
|
||||
unsigned addr:24;
|
||||
unsigned flags:8;
|
||||
};
|
||||
|
||||
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
|
||||
|
||||
|
||||
struct
|
||||
cadr_cell
|
||||
{
|
||||
LispPTR car_cell; /* Lisp address (word addressing) */
|
||||
LispPTR cdr_cell; /* Lisp address (word addressing) */
|
||||
};
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* Access to the parts of a SYMBOL: Pname, Definition, Value, */
|
||||
/* and property list. */
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
#ifndef BIGATOMS
|
||||
#define GetDEFCELL68k(index) ((LispPTR *)Defspace + (index) )
|
||||
#define GetVALCELL68k(index) ((LispPTR *)Valspace + (index))
|
||||
#define GetPnameCell(index) ((LispPTR *)Pnamespace + (index))
|
||||
#define GetPropCell(index) ((LispPTR *)Plistspace + (index))
|
||||
|
||||
/* Good only for old-style LITATOMS */
|
||||
#define GetDEFCELLlitatom(index) ((LispPTR *)Defspace + (index) )
|
||||
#define GetVALCELLlitatom(index) ((LispPTR *)Valspace + (index))
|
||||
#define GetPnameCelllitatom(index) ((LispPTR *)Pnamespace + (index))
|
||||
#define GetPropCelllitatom(index) ((LispPTR *)Plistspace + (index))
|
||||
|
||||
#else
|
||||
/* Good for old LITATOMS and new NEW-ATOMs */
|
||||
#define GetDEFCELL68k(index) (((index & 0xFF0000) != 0) ? \
|
||||
(LispPTR *)(Addr68k_from_LADDR(index)+NEWATOM_DEFN_OFFSET) \
|
||||
: GetDEFCELLlitatom(index) )
|
||||
|
||||
#define GetVALCELL68k(index) (((index & 0xFF0000) != 0) ? \
|
||||
(LispPTR *)(Addr68k_from_LADDR(index)+NEWATOM_VALUE_OFFSET) \
|
||||
: GetVALCELLlitatom(index))
|
||||
|
||||
#define GetPnameCell(index) (((index & 0xFF0000) != 0) ? \
|
||||
(LispPTR *)(Addr68k_from_LADDR(index)+NEWATOM_PNAME_OFFSET) \
|
||||
: GetPnameCelllitatom(index))
|
||||
|
||||
#define GetPropCell(index) (((index & 0xFF0000) != 0) ? \
|
||||
(LispPTR *)(Addr68k_from_LADDR(index)+NEWATOM_PLIST_OFFSET) \
|
||||
: GetPropCelllitatom(index))
|
||||
|
||||
/* Good only for old-style LITATOMS */
|
||||
#ifdef BIGVM
|
||||
#define GetDEFCELLlitatom(index)\
|
||||
((LispPTR *)Pnamespace + (5*(index))+NEWATOM_DEFN_PTROFF)
|
||||
#define GetVALCELLlitatom(index) \
|
||||
((LispPTR *)Pnamespace + (5*(index))+NEWATOM_VALUE_PTROFF)
|
||||
#define GetPnameCelllitatom(index) \
|
||||
((LispPTR *)Pnamespace + (5*(index))+NEWATOM_PNAME_PTROFF)
|
||||
#define GetPropCelllitatom(index) \
|
||||
((LispPTR *)Pnamespace + (5*(index))+NEWATOM_PLIST_PTROFF)
|
||||
#else /* BIGVM not set, so use old name-space format */
|
||||
#define GetDEFCELLlitatom(index) ((LispPTR *)Defspace + (index) )
|
||||
#define GetVALCELLlitatom(index) ((LispPTR *)Valspace + (index))
|
||||
#define GetPnameCelllitatom(index) ((LispPTR *)Pnamespace + (index))
|
||||
#define GetPropCelllitatom(index) ((LispPTR *)Plistspace + (index))
|
||||
#endif
|
||||
|
||||
/* Good only for new-style NEW-ATOMs */
|
||||
#define GetDEFCELLnew(index) (LispPTR *)(Addr68k_from_LADDR(index)+NEWATOM_DEFN_OFFSET)
|
||||
#define GetVALCELLnew(index) (LispPTR *)(Addr68k_from_LADDR(index)+NEWATOM_VALUE_OFFSET)
|
||||
#define GetPnameCellnew(index) (LispPTR *)(Addr68k_from_LADDR(index)+NEWATOM_PNAME_OFFSET)
|
||||
#define GetPropCellnew(index) (LispPTR *)(Addr68k_from_LADDR(index)+NEWATOM_PLIST_OFFSET)
|
||||
|
||||
#endif /* BIGATOMS */
|
||||
|
||||
|
||||
|
||||
|
||||
/* When cadr() function is called, type check should be done. */
|
||||
|
||||
#define S_N_CHECKANDCADR(sour, dest, tos) \
|
||||
{register LispPTR parm = sour; \
|
||||
if(GetTypeNumber(parm) != TYPE_LISTP){ \
|
||||
ERROR_EXIT(tos); \
|
||||
}else \
|
||||
dest = cadr(parm); \
|
||||
}
|
||||
|
||||
|
||||
190
inc/keyboard.h%
190
inc/keyboard.h%
@@ -1,190 +0,0 @@
|
||||
/* %Z% %M% Version %I% (%G%). copyright venue */
|
||||
|
||||
|
||||
/** Header File for K/B MOUSE */
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* (C) Copyright 1989-92 Venue. All Rights Reserved. */
|
||||
/* Manufactured in the United States of America. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
#define MOUSE_LEFT 13
|
||||
#define MOUSE_MIDDLE 15
|
||||
#define MOUSE_RIGHT 14
|
||||
#define CAPSKEY 16
|
||||
#define DLMOUSEUP 0
|
||||
#define DLMOUSEWAITING 1
|
||||
#define DLMOUSENORMAL 2
|
||||
#define MOUSE_ALLBITS 7
|
||||
#define KB_ALLUP 0xffff
|
||||
#define HARDCURSORHEIGHT 16
|
||||
|
||||
#ifndef BYTESWAP
|
||||
typedef struct
|
||||
{
|
||||
DLword read;
|
||||
DLword write;
|
||||
} RING;
|
||||
#else
|
||||
typedef struct
|
||||
{
|
||||
DLword write;
|
||||
DLword read;
|
||||
} RING;
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
|
||||
/* macros for getting to the next-read and next-write ring buf ptrs */
|
||||
#define RING_READ(head68k) (((RING*)(head68k))->read)
|
||||
#define RING_WRITE(head68k) (((RING*)(head68k))->write)
|
||||
|
||||
|
||||
/* for feature use */
|
||||
#ifndef BYTESWAP
|
||||
typedef struct
|
||||
{
|
||||
DLword mousex;
|
||||
DLword mousey;
|
||||
DLword utilin;
|
||||
DLword kbdad0;
|
||||
DLword kbdad1;
|
||||
DLword kbdad2;
|
||||
DLword kbdad3;
|
||||
DLword kbdad4;
|
||||
DLword kbdad5;
|
||||
DLword nil;
|
||||
} IOState;
|
||||
|
||||
/* Corresponds to the Lisp KEYBOARDEVENT structure */
|
||||
typedef struct
|
||||
{
|
||||
DLword W0;
|
||||
DLword W1;
|
||||
DLword W2;
|
||||
DLword W3;
|
||||
DLword WU;
|
||||
DLword W4;
|
||||
DLword W5;
|
||||
/* int time; */
|
||||
short timehi;
|
||||
short timelo;
|
||||
unsigned mousestate : 3;
|
||||
unsigned shift1 : 1;
|
||||
unsigned shift2 : 1;
|
||||
unsigned lock : 1;
|
||||
unsigned ctrl : 1;
|
||||
unsigned meta : 1;
|
||||
unsigned font : 1;
|
||||
unsigned usermode1 : 1;
|
||||
unsigned usermode2 : 1;
|
||||
unsigned usermode3 : 1;
|
||||
unsigned altgr : 1;
|
||||
unsigned deadkey : 1;
|
||||
unsigned nil : 2;
|
||||
DLword mousex;
|
||||
DLword mousey;
|
||||
/* DLword nil2; */
|
||||
LispPTR deadkeyalist;
|
||||
} KBEVENT;
|
||||
|
||||
#define RCLK(place) { struct timeval time;\
|
||||
gettimeofday(&time,NULL);\
|
||||
(place)=(time.tv_sec * 1000000)+time.tv_usec;}
|
||||
|
||||
#else
|
||||
typedef struct
|
||||
{
|
||||
DLword mousey;
|
||||
DLword mousex;
|
||||
DLword kbdad0;
|
||||
DLword utilin;
|
||||
DLword kbdad2;
|
||||
DLword kbdad1;
|
||||
DLword kbdad4;
|
||||
DLword kbdad3;
|
||||
DLword nil;
|
||||
DLword kbdad5;
|
||||
} IOState;
|
||||
|
||||
/* Corresponds to the Lisp KEYBOARDEVENT structure */
|
||||
typedef struct
|
||||
{
|
||||
DLword W1;
|
||||
DLword W0;
|
||||
DLword W3;
|
||||
DLword W2;
|
||||
DLword W4;
|
||||
DLword WU;
|
||||
DLword timehi;
|
||||
DLword W5;
|
||||
short timelo;
|
||||
|
||||
DLword mousex;
|
||||
unsigned nil : 4;
|
||||
unsigned usermode3 : 1;
|
||||
unsigned usermode2 : 1;
|
||||
unsigned usermode1 : 1;
|
||||
unsigned font : 1;
|
||||
unsigned meta : 1;
|
||||
unsigned ctrl : 1;
|
||||
unsigned lock : 1;
|
||||
unsigned shift2 : 1;
|
||||
unsigned shift1 : 1;
|
||||
unsigned mousestate : 3;
|
||||
/* DLword nil2; */
|
||||
DLword mousey;
|
||||
LispPTR deadkeyalist;
|
||||
} KBEVENT; /* CHANGED-BY-TAKE ***/
|
||||
|
||||
/*** OBSLOETE
|
||||
**#define RCLK(hi,lo) \
|
||||
{ \
|
||||
struct timeval time;\
|
||||
int timetemp; \
|
||||
gettimeofday(&time,NULL);\
|
||||
timetemp = (time.tv_sec * 1000000)+time.tv_usec; \
|
||||
(hi)=(DLword)(timetemp>>16); \
|
||||
(lo) = (DLword)(timetemp & 0xFFFF); \
|
||||
}
|
||||
******/
|
||||
#define RCLK(place) { struct timeval time;\
|
||||
gettimeofday(&time,NULL);\
|
||||
(place)=(time.tv_sec * 1000000)+time.tv_usec;}
|
||||
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
|
||||
|
||||
|
||||
/* Size of a KEYBOARDEVENT structure, and */
|
||||
/* the size of the kbd-event ring buffer */
|
||||
#define MINKEYEVENT 2 /* leave 2 words for read,write offsets */
|
||||
#ifdef NOEUROKBD /* set to disable new european kbd support */
|
||||
#define KEYEVENTSIZE 12
|
||||
#else
|
||||
#define KEYEVENTSIZE ((sizeof(KBEVENT)+1)>>1)
|
||||
#endif
|
||||
/* Offset of the end of the ring buffer */
|
||||
#define MAXKEYEVENT (MINKEYEVENT + (383*KEYEVENTSIZE))
|
||||
#define NOEUROKEYEVENTSIZE 12
|
||||
#define EUROKEYEVENTSIZE ((sizeof(KBEVENT) + 1) >> 1)
|
||||
|
||||
|
||||
typedef union
|
||||
{
|
||||
struct
|
||||
{
|
||||
RING vectorindex; /* Index for the vector of DLwords in this structure */
|
||||
KBEVENT event[NUMBEROFKEYEVENTS + 1];
|
||||
} ring;
|
||||
/* The array of KBEVENTS (indexed by DLword) for euro */
|
||||
DLword euro[MINKEYEVENT + (NUMBEROFKEYEVENTS * EUROKEYEVENTSIZE)];
|
||||
/* The array of KBEVENTS (indexed by DLword) for noeuro */
|
||||
DLword noeuro[MINKEYEVENT + (NUMBEROFKEYEVENTS * NOEUROKEYEVENTSIZE)];
|
||||
} keybuffer;
|
||||
|
||||
@@ -1,635 +0,0 @@
|
||||
/* $Id: lispemul.h,v 1.3 1999/01/03 02:06:08 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* (C) Copyright 1989-1995 Venue. All Rights Reserved. */
|
||||
/* Manufactured in the United States of America. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef BYTESWAP
|
||||
/*** Normal byte-order type decls */
|
||||
typedef struct {unsigned char code;} BYTECODE;
|
||||
typedef char ByteCode;
|
||||
typedef unsigned short DLword;
|
||||
typedef char DLbyte;
|
||||
typedef unsigned int LispPTR;
|
||||
/* 32 bit Cell Chang. 14 Jan 87 take */
|
||||
typedef DLword mds_page; /* Top word of the MDS */
|
||||
typedef (*CFuncPTR)();
|
||||
|
||||
#ifdef BIGVM
|
||||
typedef struct consstr
|
||||
{
|
||||
unsigned cdr_code : 4;
|
||||
unsigned car_field : 28;
|
||||
} ConsCell;
|
||||
|
||||
typedef struct ufn_entry
|
||||
{
|
||||
DLword atom_name; /* UFN's atomindex */
|
||||
unsigned byte_num : 8; /* num of byte code */
|
||||
unsigned arg_num : 8; /* num of argments */
|
||||
} UFN;
|
||||
|
||||
typedef struct closure_type
|
||||
{
|
||||
unsigned nil1 : 4;
|
||||
unsigned def_ptr : 28; /* LispPTR to definition cell */
|
||||
unsigned nil2 : 4;
|
||||
unsigned env_ptr : 28; /* LispPTR to environment */
|
||||
} Closure;
|
||||
|
||||
#else /* not BIGVM */
|
||||
typedef struct consstr
|
||||
{
|
||||
unsigned cdr_code : 8;
|
||||
unsigned car_field : 24;
|
||||
} ConsCell;
|
||||
|
||||
typedef struct ufn_entry
|
||||
{
|
||||
DLword atom_name; /* UFN's atomindex */
|
||||
unsigned byte_num : 8; /* num of byte code */
|
||||
unsigned arg_num : 8; /* num of argments */
|
||||
} UFN;
|
||||
|
||||
typedef struct closure_type
|
||||
{
|
||||
unsigned nil1 : 8;
|
||||
unsigned def_ptr : 24; /* LispPTR to definition cell */
|
||||
unsigned nil2 : 8;
|
||||
unsigned env_ptr : 24; /* LispPTR to environment */
|
||||
} Closure;
|
||||
#endif /* BIGVM */
|
||||
|
||||
typedef struct interrupt_state
|
||||
{ /* Interrupt-request mask to communicate with INTERRUPTED */
|
||||
unsigned LogFileIO :1; /* console msg arrived to print */
|
||||
unsigned ETHERInterrupt :1; /* 10MB activity happened */
|
||||
unsigned IOInterrupt :1; /* I/O happened (not used yet) */
|
||||
unsigned gcdisabled :1;
|
||||
unsigned vmemfull :1;
|
||||
unsigned stackoverflow :1;
|
||||
unsigned storagefull :1;
|
||||
unsigned waitinginterrupt :1;
|
||||
unsigned nil :8; /* mask of ints being processes */
|
||||
DLword intcharcode;
|
||||
} INTSTAT;
|
||||
|
||||
typedef struct interrupt_state_2
|
||||
{ /* alternate view of the interrupt state */
|
||||
unsigned pendingmask :8;
|
||||
unsigned handledmask :8;
|
||||
DLword nil;
|
||||
} INTSTAT2;
|
||||
|
||||
struct state
|
||||
{
|
||||
DLword *ivar; /* + 0 */
|
||||
DLword *pvar; /* + 4 */
|
||||
DLword *csp; /* + 8 */
|
||||
LispPTR tosvalue; /* + 12 */
|
||||
ByteCode *currentpc; /* + 16 */
|
||||
struct fnhead *currentfunc; /* + 20*/
|
||||
DLword *endofstack; /* + 24*/
|
||||
UNSIGNED irqcheck; /* + 28 */
|
||||
UNSIGNED irqend; /* + 32 */
|
||||
LispPTR scratch_cstk; /* + 34 */
|
||||
int errorexit; /* + 38 */
|
||||
};
|
||||
|
||||
/***** Get_DLword(ptr) ptr is char* ***/
|
||||
#ifndef UNALIGNED_FETCH_OK
|
||||
#define Get_DLword(ptr) ((Get_BYTE(ptr) <<8) | Get_BYTE(ptr+1))
|
||||
#else
|
||||
#define Get_DLword(ptr) *(((DLword *)WORDPTR(ptr)))
|
||||
#endif
|
||||
|
||||
#ifdef BIGVM
|
||||
#define Get_Pointer(ptr) ((Get_BYTE(ptr) << 24) | \
|
||||
(Get_BYTE(ptr+1) << 16) | \
|
||||
(Get_BYTE(ptr+2) << 8) | Get_BYTE(ptr+3))
|
||||
#else
|
||||
#define Get_Pointer(ptr) ((Get_BYTE(ptr) << 16) | \
|
||||
(Get_BYTE(ptr+1) << 8) | \
|
||||
Get_BYTE(ptr+2))
|
||||
#endif /* BIGVM */
|
||||
|
||||
#define Get_code_BYTE Get_BYTE
|
||||
#define Get_code_DLword Get_DLword
|
||||
#define Get_code_AtomNo Get_AtomNo
|
||||
#define Get_code_Pointer Get_Pointer
|
||||
|
||||
#ifdef BIGATOMS
|
||||
#define Get_AtomNo(ptr) Get_Pointer(ptr)
|
||||
#else
|
||||
#define Get_AtomNo(ptr) Get_DLword(ptr)
|
||||
#endif /* BIGATOMS */
|
||||
|
||||
|
||||
/* For bit test */
|
||||
typedef struct wbits
|
||||
{
|
||||
unsigned xMSB :1;
|
||||
unsigned B1 :1;
|
||||
unsigned B2 :1;
|
||||
unsigned B3 :1;
|
||||
unsigned B4 :1;
|
||||
unsigned B5 :1;
|
||||
unsigned B6 :1;
|
||||
unsigned B7 :1;
|
||||
unsigned B8 :1;
|
||||
unsigned B9 :1;
|
||||
unsigned B10 :1;
|
||||
unsigned B11 :1;
|
||||
unsigned B12 :1;
|
||||
unsigned B13 :1;
|
||||
unsigned B14 :1;
|
||||
unsigned LSB :1;
|
||||
}WBITS;
|
||||
|
||||
typedef struct lbits
|
||||
{
|
||||
unsigned xMSB :1;
|
||||
unsigned MIDDLE :30;
|
||||
unsigned LSB :1;
|
||||
}LBITS;
|
||||
|
||||
#define PUTBASEBIT68K(base68k, offset, bitvalue ) { \
|
||||
if( bitvalue) \
|
||||
*((DLword*)(base68k) + (((u_short)(offset))>>4 )) \
|
||||
|= 1 << (15 - ((u_short)(offset))%BITSPER_DLWORD); \
|
||||
else \
|
||||
*((DLword*)(base68k) + (((u_short)(offset))>>4 )) \
|
||||
&= ~( 1 << (15 - ((u_short)(offset)) %BITSPER_DLWORD)); \
|
||||
}
|
||||
|
||||
#else
|
||||
/*** Byte-swapped structure declarations, for 80386 ***/
|
||||
typedef struct {unsigned char code;} BYTECODE;
|
||||
typedef char ByteCode;
|
||||
typedef unsigned short DLword;
|
||||
typedef char DLbyte;
|
||||
typedef unsigned int LispPTR;
|
||||
/* 32 bit Cell Chang. 14 Jan 87 take */
|
||||
typedef DLword mds_page; /* Top word of the MDS */
|
||||
typedef (*CFuncPTR)();
|
||||
|
||||
#ifdef BIGVM
|
||||
typedef struct consstr
|
||||
{
|
||||
unsigned car_field : 28;
|
||||
unsigned cdr_code : 4;
|
||||
} ConsCell;
|
||||
|
||||
typedef struct ufn_entry
|
||||
{
|
||||
unsigned arg_num : 8; /* num of argments */
|
||||
unsigned byte_num : 8; /* num of byte code */
|
||||
DLword atom_name; /* UFN's atomindex */
|
||||
} UFN;
|
||||
|
||||
typedef struct closure_type
|
||||
{
|
||||
unsigned def_ptr : 28; /* LispPTR to definition cell */
|
||||
unsigned nil1 : 4;
|
||||
unsigned env_ptr : 28; /* LispPTR to environment */
|
||||
unsigned nil2 : 4;
|
||||
} Closure;
|
||||
#else /* BIGVM */
|
||||
typedef struct consstr
|
||||
{
|
||||
unsigned car_field : 24;
|
||||
unsigned cdr_code : 8;
|
||||
} ConsCell;
|
||||
|
||||
typedef struct ufn_entry
|
||||
{
|
||||
unsigned arg_num : 8; /* num of argments */
|
||||
unsigned byte_num : 8; /* num of byte code */
|
||||
DLword atom_name; /* UFN's atomindex */
|
||||
} UFN;
|
||||
|
||||
typedef struct closure_type
|
||||
{
|
||||
unsigned def_ptr : 24; /* LispPTR to definition cell */
|
||||
unsigned nil1 : 8;
|
||||
unsigned env_ptr : 24; /* LispPTR to environment */
|
||||
unsigned nil2 : 8;
|
||||
} Closure;
|
||||
#endif /* BIGVM */
|
||||
|
||||
typedef struct interrupt_state
|
||||
{ /* Interrupt-request mask to communicate with INTERRUPTED */
|
||||
DLword intcharcode;
|
||||
unsigned nil :8;
|
||||
unsigned waitinginterrupt :1;
|
||||
unsigned storagefull :1;
|
||||
unsigned stackoverflow :1;
|
||||
unsigned vmemfull :1;
|
||||
unsigned gcdisabled :1;
|
||||
unsigned IOInterrupt :1; /* I/O happened (not used yet) */
|
||||
unsigned ETHERInterrupt :1; /* 10MB activity happened */
|
||||
unsigned LogFileIO :1; /* console msg arrived to print */
|
||||
} INTSTAT;
|
||||
|
||||
typedef struct interrupt_state_2
|
||||
{ /* alternate view of the interrupt state */
|
||||
DLword nil;
|
||||
unsigned handledmask :8;
|
||||
unsigned pendingmask :8;
|
||||
} INTSTAT2;
|
||||
|
||||
|
||||
struct state
|
||||
{
|
||||
DLword *ivar; /* + 0 */
|
||||
DLword *pvar; /* + 4 */
|
||||
DLword *csp; /* + 8 */
|
||||
LispPTR tosvalue; /* + 12 */
|
||||
ByteCode *currentpc; /* + 16 */
|
||||
struct fnhead *currentfunc; /* + 20*/
|
||||
DLword *endofstack; /* + 24*/
|
||||
UNSIGNED irqcheck; /* + 28 */
|
||||
UNSIGNED irqend; /* + 32 */
|
||||
LispPTR scratch_cstk; /* + 34 */
|
||||
int errorexit; /* + 38 */
|
||||
};
|
||||
|
||||
/* Fetching 2 bytes to make a word -- always do it the hard way */
|
||||
/* if we're byte-swapped: You can't rely on byte ordering!! */
|
||||
#define Get_DLword(ptr) ((Get_BYTE(ptr) <<8) | Get_BYTE(ptr+1))
|
||||
|
||||
#ifdef BIGVM
|
||||
#define Get_Pointer(ptr) ((Get_BYTE(ptr) << 24) | \
|
||||
(Get_BYTE(ptr+1) << 16) | \
|
||||
(Get_BYTE(ptr+2) << 8) | Get_BYTE(ptr+3))
|
||||
#else
|
||||
#define Get_Pointer(ptr) ((Get_BYTE(ptr) << 16) | \
|
||||
(Get_BYTE(ptr+1) << 8) | \
|
||||
Get_BYTE(ptr+2))
|
||||
#endif /* BIGVM */
|
||||
|
||||
#ifndef RESWAPPEDCODESTREAM
|
||||
#define Get_code_BYTE(ptr) Get_BYTE(ptr)
|
||||
#define Get_code_AtomNo Get_AtomNo
|
||||
#define Get_code_DLword Get_DLword
|
||||
#else
|
||||
#define Get_code_BYTE(ptr) (((BYTECODE *)(ptr))->code)
|
||||
|
||||
#define Get_code_Pointer(ptr) ((Get_code_BYTE(ptr) << 16) | \
|
||||
(Get_code_BYTE(ptr+1) << 8) | \
|
||||
Get_code_BYTE(ptr+2))
|
||||
#define Get_code_DLword(ptr) ((Get_code_BYTE(ptr) << 8) | Get_code_BYTE(ptr+1))
|
||||
#define Get_code_AtomNo Get_code_Pointer
|
||||
#endif /* RESWAPPEDCODESTREAM */
|
||||
|
||||
|
||||
#ifdef BIGATOMS
|
||||
#define Get_AtomNo(ptr) Get_Pointer(ptr)
|
||||
#else
|
||||
#define Get_AtomNo(ptr) Get_DLword(ptr)
|
||||
#endif /* BIGATOMS */
|
||||
|
||||
|
||||
/* For bit test */
|
||||
typedef struct wbits
|
||||
{
|
||||
USHORT LSB :1;
|
||||
USHORT B14 :1;
|
||||
USHORT B13 :1;
|
||||
USHORT B12 :1;
|
||||
USHORT B11 :1;
|
||||
USHORT B10 :1;
|
||||
USHORT B9 :1;
|
||||
USHORT B8 :1;
|
||||
USHORT B7 :1;
|
||||
USHORT B6 :1;
|
||||
USHORT B5 :1;
|
||||
USHORT B4 :1;
|
||||
USHORT B3 :1;
|
||||
USHORT B2 :1;
|
||||
USHORT B1 :1;
|
||||
USHORT xMSB :1;
|
||||
} WBITS;
|
||||
|
||||
typedef struct lbits
|
||||
{
|
||||
unsigned LSB :1;
|
||||
unsigned MIDDLE :30;
|
||||
unsigned xMSB :1; /* xMSB b/c HPUX defined MSB in a header */
|
||||
} LBITS;
|
||||
|
||||
#define PUTBASEBIT68K(base68k, offset, bitvalue ) { \
|
||||
UNSIGNED real68kbase; \
|
||||
real68kbase = 2 ^ ((UNSIGNED)(base68k)); \
|
||||
if( bitvalue) \
|
||||
(* (DLword *) (2^(UNSIGNED)((DLword*)(real68kbase) + (((u_short)(offset))>>4 )))) \
|
||||
|= 1 << (15 - ((u_short)(offset))%BITSPER_DLWORD); \
|
||||
else \
|
||||
(* (DLword *) (2^(UNSIGNED)((DLword*)(real68kbase) + (((u_short)(offset))>>4 )))) \
|
||||
&= ~( 1 << (15 - ((u_short)(offset)) %BITSPER_DLWORD)); \
|
||||
}
|
||||
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
|
||||
|
||||
/* Because a WBITS is only 1 word long, need byte-swapped */
|
||||
/* access to it. Use WBITSPTR(x) instead of ((WBITS *) x) */
|
||||
|
||||
#define WBITSPTR(ptr) ((WBITS *) WORDPTR(ptr))
|
||||
|
||||
|
||||
extern struct state MachineState;
|
||||
|
||||
#define MState (&MachineState)
|
||||
#define CURRENTFX ((struct frameex1 *)(((DLword *) PVar) - FRAMESIZE))
|
||||
#define IVar (MState->ivar)
|
||||
#define PVar (MState->pvar)
|
||||
#define CurrentStackPTR (MState->csp)
|
||||
#define TopOfStack (MState->tosvalue)
|
||||
#define PC (MState->currentpc)
|
||||
#define FuncObj (MState->currentfunc)
|
||||
#define EndSTKP (MState->endofstack)
|
||||
#define Irq_Stk_Check (MState->irqcheck)
|
||||
#define Irq_Stk_End (MState->irqend)
|
||||
#define Scratch_CSTK (MState->scratch_cstk)
|
||||
#define Error_Exit (MState->errorexit)
|
||||
|
||||
/* Typedef for IFPAGE */
|
||||
#include "ifpage.h"
|
||||
|
||||
/* Typedef for IOPAGE */
|
||||
#include "iopage.h"
|
||||
|
||||
|
||||
/* Typedef for MISCSTAT */
|
||||
#include "miscstat.h"
|
||||
|
||||
/****************************************************
|
||||
MakeAddr:
|
||||
base: DLword*
|
||||
offset: word offset from base
|
||||
return: DLword*
|
||||
****************************************************/
|
||||
#define MakeAddr(base, offset) ((DLword *)(base + (int)offset))
|
||||
|
||||
|
||||
/****************************************************
|
||||
GetHiWord:
|
||||
*****************************************************/
|
||||
#define GetHiWord(x) ((DLword)((x)>>16))
|
||||
|
||||
/****************************************************
|
||||
GetLoWord:
|
||||
*****************************************************/
|
||||
#define GetLoWord(x) ((DLword)(x))
|
||||
|
||||
/****************************************************
|
||||
GetLongWord:
|
||||
address: DLword*
|
||||
retrun: int
|
||||
*****************************************************/
|
||||
#define GetLongWord(address) (*((LispPTR *) (address)))
|
||||
|
||||
|
||||
/****************************************************
|
||||
PopCStack:
|
||||
#define PopCStack {TopOfStack = *((LispPTR *)(--CurrentStackPTR)); --CurrentStackPTR;}
|
||||
*****************************************************/
|
||||
#define PopCStack {TopOfStack = *((LispPTR *)(CurrentStackPTR)); CurrentStackPTR -= 2;}
|
||||
|
||||
/****************************************************
|
||||
PopStackTo: CSTK -> Place
|
||||
#define PopStackTo(Place) {Place= *((LispPTR *)(--CurrentStackPTR)); CurrentStackPTR--; }
|
||||
*****************************************************/
|
||||
#define PopStackTo(Place) {Place= *((LispPTR *)(CurrentStackPTR)); CurrentStackPTR -= 2; }
|
||||
|
||||
/****************************************************
|
||||
PushCStack:
|
||||
#define PushCStack {*((int *)(++CurrentStackPTR)) = TopOfStack; ++CurrentStackPTR;}
|
||||
*****************************************************/
|
||||
#define PushCStack {CurrentStackPTR += 2;*((LispPTR *)(CurrentStackPTR)) = TopOfStack; }
|
||||
|
||||
/****************************************************
|
||||
PushStack:
|
||||
#define PushStack(x) {*((LispPTR *)(++CurrentStackPTR))=x;CurrentStackPTR++;}
|
||||
*****************************************************/
|
||||
#define PushStack(x) {CurrentStackPTR += 2;*((LispPTR *)(CurrentStackPTR))=x;}
|
||||
|
||||
/****************************************************
|
||||
SmashStack:
|
||||
#define SmashStack(x) (*((LispPTR *)(CurrentStackPTR-1))=x)
|
||||
*****************************************************/
|
||||
#define SmashStack(x) (*((LispPTR *)(CurrentStackPTR))=x)
|
||||
|
||||
/*********************************************************
|
||||
Get_BYTE(byteptr) byteptr: pointer to 8 bit data
|
||||
**********************************************************/
|
||||
/***** OLD definition ************* 13 Nov 1987 takeshi ***
|
||||
#define Get_BYTE(byteptr) (((unsigned)(*(byteptr))) & 0xff)
|
||||
**********************************************/
|
||||
#define Get_BYTE(byteptr) (((BYTECODE *)BYTEPTR(byteptr))->code)
|
||||
|
||||
/**********************************************************
|
||||
DOSTACKOVERFLOW(argnum,bytenum) if it needs hardreturn-cleanup
|
||||
then upnt to contextsw and immediately return
|
||||
**********************************************************/
|
||||
#define DOSTACKOVERFLOW(argnum,bytenum) { \
|
||||
if(do_stackoverflow(T)) \
|
||||
{ PushStack(S_POSITIVE | argnum); \
|
||||
contextsw(SubovFXP,bytenum,1); \
|
||||
return;\
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* E X T E R N A L F U N C T I O N S */
|
||||
/* */
|
||||
/* Declare all functions that will default incorrectly under */
|
||||
/* normal C inference rules. These functions are the ones */
|
||||
/* that return pointers, because on DEC Alpha, a pointer is 8 */
|
||||
/* bytes--but the default fn decl is int, a 4-byte return. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
extern DLword *createcell68k();
|
||||
extern LispPTR *alloc_mdspage();
|
||||
extern UNSIGNED N_OP_unwind();
|
||||
extern char *getenv();
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* E R R O R & T I M E R P U N T C A S E S */
|
||||
/* */
|
||||
/* Set up the top-of-stack so we can continue gracefully after */
|
||||
/* handling the timer interrupt (e.g., FMEMB, which walks down */
|
||||
/* the list being searched, pushes its current state on TOS */
|
||||
/* so that it picks up where it left off after the interrupt. */
|
||||
/* */
|
||||
/* Call Interface where neg number indicates an error return */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
#define ERROR_EXIT(tos) {TopOfStack=tos; Error_Exit = 1; return(-1);}
|
||||
#ifdef ISC
|
||||
#define INLINE_ERROR_EXIT(tos,retlbl) {TopOfStack=tos; Error_Exit=1 asm("movl $-1,%0\n" retlbl ":" : "=g" (result) : "0" (result)); return(result); }
|
||||
#endif
|
||||
|
||||
#define TIMER_EXIT(tos) {TopOfStack=tos; Error_Exit = 1; return(-2);}
|
||||
|
||||
|
||||
#define WARN(message,operation) {warn(message);operation;return;}
|
||||
#define NO_WOP {}
|
||||
|
||||
#define NIL 0 /* added 29-jan */
|
||||
#define T 1
|
||||
#define ATOM_T 0114 /* T's AtomIndex Number 114Q */
|
||||
|
||||
#define NIL_PTR 0 /* from cell.h 24-mar-87 take */
|
||||
#define NOBIND_PTR 1
|
||||
|
||||
#define STKLIM 0x1FFFF
|
||||
#define FRAMESIZE 10 /* size of frameex1: 10 words */
|
||||
#define FNHEADSIZE 8 /* size of fnhead: 8 words */
|
||||
#define BFSIZE 2 /* size of basci frame pointer: 2 words */
|
||||
|
||||
#define BITSPER_DLWORD 16
|
||||
#define BITSPER_CELL 32
|
||||
#define BYTESPER_DLWORD 2
|
||||
#define BYTESPER_CELL 4
|
||||
#define BYTESPER_QUAD 8
|
||||
#define BYTESPER_PAGE 512
|
||||
#define CELLSPER_QUAD 2
|
||||
#define CELLSPER_PAGE 128
|
||||
#define CELLSPER_SEGMENT 32768
|
||||
#define DLWORDSPER_CELL 2
|
||||
#define DLWORDSPER_QUAD 4
|
||||
#define DLWORDSPER_PAGE 256
|
||||
#define DLWORDSPER_SEGMENT 65536
|
||||
#define PAGESPER_SEGMENT 256
|
||||
#define PAGESPER_MDSUNIT 2
|
||||
#define MDSINCREMENT 512
|
||||
|
||||
#define GUARDSTORAGEFULL 128
|
||||
#define GUARD1STORAGEFULL 64
|
||||
|
||||
#define SFS_NOTSWITCHABLE 1
|
||||
#define SFS_SWITCHABLE 2
|
||||
#define SFS_ARRAYSWITCHED 3
|
||||
#define SFS_FULLYSWITCHED 4
|
||||
|
||||
|
||||
#define AtomHTSIZE 256 * DLWORDSPER_PAGE
|
||||
|
||||
#define MAXPNCHARS 255 /* Maximam length of PnChars */
|
||||
|
||||
#define GET_NATIVE_ADDR(fnobject) \
|
||||
*((int *) ((UNSIGNED)fnobject + fnobject->startpc - 4))
|
||||
|
||||
|
||||
#define FALSE 0
|
||||
#define TRUE !FALSE
|
||||
|
||||
typedef unsigned int boolean;
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* Define sizes of FN and FNX opcodes; depends on atom size */
|
||||
/************************************************************************/
|
||||
|
||||
#ifdef BIGVM
|
||||
#define FN_OPCODE_SIZE 5
|
||||
#define FNX_OPCODE_SIZE 6
|
||||
#elif defined(BIGATOMS)
|
||||
#define FN_OPCODE_SIZE 4
|
||||
#define FNX_OPCODE_SIZE 5
|
||||
#else
|
||||
#define FN_OPCODE_SIZE 3
|
||||
#define FNX_OPCODE_SIZE 4
|
||||
#endif /* BIGATOMS */
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* Definitions for "NEW" Symbols */
|
||||
/* */
|
||||
/* Offsets within the "New symbols that go with 3-byte atoms. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
#ifdef BIGATOMS
|
||||
|
||||
typedef struct newatom
|
||||
{
|
||||
LispPTR na_pname; /* Pointer to the print name */
|
||||
LispPTR na_value; /* The value cell */
|
||||
LispPTR na_defn; /* The definition cell */
|
||||
LispPTR na_plist; /* The property list */
|
||||
LispPTR na_flags; /* flags from other cells, to make BIGVM work ok */
|
||||
} NEWATOM;
|
||||
|
||||
/* Offsets, in WORDS, from the start of the NEWATOM structure */
|
||||
#define NEWATOM_PNAME_OFFSET 0
|
||||
#define NEWATOM_VALUE_OFFSET 2
|
||||
#define NEWATOM_DEFN_OFFSET 4
|
||||
#define NEWATOM_PLIST_OFFSET 6
|
||||
|
||||
|
||||
/* Offsets, in cells from start of the NEWATOM structure */
|
||||
#define NEWATOM_PNAME_PTROFF 0
|
||||
#define NEWATOM_VALUE_PTROFF 1
|
||||
#define NEWATOM_DEFN_PTROFF 2
|
||||
#define NEWATOM_PLIST_PTROFF 3
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* Mask to mask off relevant bits in a pointer. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
#ifdef BIGVM
|
||||
#define POINTERMASK 0xfffffff
|
||||
#define SEGMASK 0xfff0000
|
||||
#define PAGEMASK 0xfffff00
|
||||
#else
|
||||
#define POINTERMASK 0xffffff
|
||||
#define SEGMASK 0xff0000
|
||||
#define PAGEMASK 0xffff00
|
||||
#endif /* BIGVM */
|
||||
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* F P t o V P M a n i p u l a t i o n */
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
#ifdef BIGVM
|
||||
#define GETFPTOVP(b,o) b[o]
|
||||
#define GETPAGEOK(b,o) (b[o]>>16)
|
||||
#else
|
||||
#define GETFPTOVP GETWORDBASEWORD
|
||||
#define GETPAGEOK GETWORDBASEWORD
|
||||
#endif
|
||||
@@ -1,2 +0,0 @@
|
||||
/* %Z% %M% Version %I% (%G%). copyright envos & Fuji Xerox */
|
||||
static char *id = "%Z% %M% %I% %G% (envos & Fuji Xerox)";
|
||||
@@ -1 +0,0 @@
|
||||
/* %Z% %M% Version %I% (%G%). copyright Venue & Fuji Xerox */
|
||||
153
inc/stream.h%
153
inc/stream.h%
@@ -1,153 +0,0 @@
|
||||
/* @(#) stream.h Version 2.7 (2/8/93). copyright Venue */
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* (C) Copyright 1989-92 Venue. All Rights Reserved. */
|
||||
/* Manufactured in the United States of America. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
#ifndef BYTESWAP
|
||||
/********************************/
|
||||
/* Normal byte-order definition */
|
||||
/********************************/
|
||||
typedef struct stream{
|
||||
DLword COFFSET;
|
||||
DLword CBUFSIZE;
|
||||
#ifndef BIGVM
|
||||
unsigned BINABLE :1;
|
||||
unsigned BOUTABLE :1;
|
||||
unsigned EXTENDABLE :1;
|
||||
unsigned CBUFDIRTY :1;
|
||||
unsigned PEEKEDCHARP :1;
|
||||
unsigned ACCESS :3;
|
||||
unsigned CBUFPTR :24;
|
||||
#else
|
||||
unsigned PEEKEDCHARP :1;
|
||||
unsigned ACCESS :3;
|
||||
unsigned CBUFPTR :28;
|
||||
#endif /* BIGVM */
|
||||
DLbyte BYTESIZE;
|
||||
DLbyte CHARSET;
|
||||
DLword PEEKEDCHAR;
|
||||
DLword CHARPOSITION;
|
||||
DLword CBUFMAXSIZE;
|
||||
unsigned NONDEFAULTDATEFLG :1;
|
||||
unsigned REVALIDATEFLG :1;
|
||||
unsigned MULTIBUFFERHINT :1;
|
||||
unsigned USERCLOSEABLE :1;
|
||||
#ifndef BIGVM
|
||||
unsigned USERVISIBLE :1;
|
||||
unsigned EOLCONVENTION :2;
|
||||
unsigned NIL1 :1;
|
||||
unsigned FULLFILENAME :24;
|
||||
#else
|
||||
unsigned FULLFILENAME :28;
|
||||
#endif /* BIGVM */
|
||||
#ifdef BIGVM
|
||||
unsigned BINABLE :1;
|
||||
unsigned BOUTABLE :1;
|
||||
unsigned EXTENDABLE :1;
|
||||
unsigned CBUFDIRTY :1;
|
||||
unsigned DEVICE: 28;
|
||||
#else
|
||||
LispPTR DEVICE;
|
||||
#endif /* BIGVM */
|
||||
#ifdef BIGVM
|
||||
unsigned USERVISIBLE :1;
|
||||
unsigned EOLCONVENTION :2;
|
||||
unsigned NIL1 :1;
|
||||
unsigned VALIDATION: 28;
|
||||
#else
|
||||
LispPTR VALIDATION;
|
||||
#endif /* BIGVM */
|
||||
LispPTR CPAGE;
|
||||
LispPTR EPAGE;
|
||||
DLword EOFFSET;
|
||||
DLword LINELENGTH;
|
||||
LispPTR F1;
|
||||
LispPTR F2;
|
||||
LispPTR F3;
|
||||
LispPTR F4;
|
||||
LispPTR F5;
|
||||
DLword FW6;
|
||||
DLword FW7;
|
||||
DLword FW8;
|
||||
DLword FW9;
|
||||
LispPTR F10;
|
||||
LispPTR STRMBINFN;
|
||||
LispPTR STRMBOUTFN;
|
||||
LispPTR OUTCHARFN;
|
||||
LispPTR ENDOFSTREAMOP;
|
||||
LispPTR OTHERPROPS;
|
||||
LispPTR IMAGEOPS;
|
||||
LispPTR IMAGEDATA;
|
||||
LispPTR BUFFS;
|
||||
DLword MAXBUFFERS;
|
||||
DLword NIL2;
|
||||
LispPTR EXTRASTREAMOP;
|
||||
}Stream;
|
||||
|
||||
#else
|
||||
|
||||
/***************************/
|
||||
/* Byte-swapped definition */
|
||||
/***************************/
|
||||
typedef struct stream
|
||||
{
|
||||
DLword CBUFSIZE;
|
||||
DLword COFFSET;
|
||||
unsigned CBUFPTR :24;
|
||||
unsigned ACCESS :3;
|
||||
unsigned PEEKEDCHARP :1;
|
||||
unsigned CBUFDIRTY :1;
|
||||
unsigned EXTENDABLE :1;
|
||||
unsigned BOUTABLE :1;
|
||||
unsigned BINABLE :1;
|
||||
DLword PEEKEDCHAR;
|
||||
DLbyte CHARSET;
|
||||
DLbyte BYTESIZE;
|
||||
DLword CBUFMAXSIZE;
|
||||
DLword CHARPOSITION;
|
||||
unsigned FULLFILENAME :24;
|
||||
unsigned NIL1 :1;
|
||||
unsigned EOLCONVENTION :2;
|
||||
unsigned USERVISIBLE :1;
|
||||
unsigned USERCLOSEABLE :1;
|
||||
unsigned MULTIBUFFERHINT :1;
|
||||
unsigned REVALIDATEFLG :1;
|
||||
unsigned NONDEFAULTDATEFLG :1;
|
||||
LispPTR DEVICE;
|
||||
LispPTR VALIDATION;
|
||||
LispPTR CPAGE;
|
||||
LispPTR EPAGE;
|
||||
DLword LINELENGTH;
|
||||
DLword EOFFSET;
|
||||
LispPTR F1;
|
||||
LispPTR F2;
|
||||
LispPTR F3;
|
||||
LispPTR F4;
|
||||
LispPTR F5;
|
||||
DLword FW7;
|
||||
DLword FW6;
|
||||
DLword FW9;
|
||||
DLword FW8;
|
||||
LispPTR F10;
|
||||
LispPTR STRMBINFN;
|
||||
LispPTR STRMBOUTFN;
|
||||
LispPTR OUTCHARFN;
|
||||
LispPTR ENDOFSTREAMOP;
|
||||
LispPTR OTHERPROPS;
|
||||
LispPTR IMAGEOPS;
|
||||
LispPTR IMAGEDATA;
|
||||
LispPTR BUFFS;
|
||||
DLword NIL2;
|
||||
DLword MAXBUFFERS;
|
||||
LispPTR EXTRASTREAMOP;
|
||||
}Stream;
|
||||
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
Reference in New Issue
Block a user