home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0400
/
CCE_0442.ZIP
/
CCE_0442.PD
/
XSCHEM28
/
XSBCODE.H
< prev
next >
Wrap
Text File
|
1990-01-08
|
2KB
|
49 lines
/* xsbcode.h - xscheme compiler byte code definitions */
/* Copyright (c) 1988, by David Michael Betz
All Rights Reserved
Permission is granted for unrestricted non-commercial use */
#define OP_BRT 0x01 /* branch on true */
#define OP_BRF 0x02 /* branch on false */
#define OP_BR 0x03 /* branch unconditionally */
#define OP_LIT 0x04 /* load literal */
#define OP_GREF 0x05 /* global symbol value */
#define OP_GSET 0x06 /* set global symbol value */
#define OP_EREF 0x09 /* environment variable value */
#define OP_ESET 0x0A /* set environment variable value */
#define OP_SAVE 0x0B /* save a continuation */
#define OP_CALL 0x0C /* call a function */
#define OP_RETURN 0x0D /* return from a function */
#define OP_T 0x0E /* load 'val' with t */
#define OP_NIL 0x0F /* load 'val' with nil */
#define OP_PUSH 0x10 /* push the 'val' register */
#define OP_CLOSE 0x11 /* create a closure */
#define OP_FRAME 0x12 /* create a new enviroment frame */
#define OP_MVARG 0x13 /* move required argument to frame slot */
#define OP_MVOARG 0x14 /* move optional argument to frame slot */
#define OP_MVRARG 0x15 /* build rest argument and move to frame slot */
#define OP_ADROP 0x19 /* drop the rest of the arguments */
#define OP_ALAST 0x1A /* make sure there are no more arguments */
#define OP_DELAY 0x1B /* create a promise */
#define OP_AREF 0x1C /* access a variable in an environment */
#define OP_ASET 0x1D /* set a variable in an environment */
#define OP_ATOM 0x1E /* atom predicate */
#define OP_EQ 0x1F /* eq? predicate */
#define OP_NULL 0x20 /* null? (or not) predicate */
#define OP_CONS 0x21 /* cons */
#define OP_CAR 0x22 /* car */
#define OP_CDR 0x23 /* cdr */
#define OP_SETCAR 0x24 /* set-car! */
#define OP_SETCDR 0x25 /* set-cdr! */
#define OP_ADD 0x40 /* add two numeric expressions */
#define OP_SUB 0x41 /* subtract two numeric expressions */
#define OP_MUL 0x42 /* multiply two numeric expressions */
#define OP_QUO 0x43 /* divide two integer expressions */
#define OP_LSS 0x44 /* less than */
#define OP_EQL 0x45 /* equal to */
#define OP_GTR 0x46 /* greater than */