/* instr.h */
/* contains the definitions for the object-code instructions */
#define NUM_OPERS 38
#define NUM_SCALLS 73
#define COMMA_OPER 0 /* , */
#define EQ_OPER 1 /* = */
#define PLEQ_OPER 2 /* += */
#define MIEQ_OPER 3 /* -= */
#define MUEQ_OPER 4 /* *= */
#define DIEQ_OPER 5 /* /= */
#define MOEQ_OPER 6 /* %= */
#define ANEQ_OPER 7 /* &= */
#define EXEQ_OPER 8 /* ^= */
#define OREQ_OPER 9 /* |= */
#define LSEQ_OPER 10 /* <<= */
#define RSEQ_OPER 11 /* >>= */
#define COND_OPER 12 /* ? */
#define OR_OPER 13 /* || */
#define AND_OPER 14 /* && */
#define BITOR_OPER 15 /* | */
#define EXOR_OPER 16 /* ^ */
#define BITAND_OPER 17 /* & */
#define CONDEQ_OPER 18 /* == */
#define NOTEQ_OPER 19 /* != */
#define LESS_OPER 20 /* < */
#define LESSEQ_OPER 21 /* <= */
#define GREAT_OPER 22 /* > */
#define GREATEQ_OPER 23 /* >= */
#define LS_OPER 24 /* << */
#define RS_OPER 25 /* >> */
#define ADD_OPER 26 /* + */
#define MIN_OPER 27 /* - */
#define MUL_OPER 28 /* * */
#define DIV_OPER 29 /* / */
#define MOD_OPER 30 /* % */
#define NOT_OPER 31 /* ! */
#define BITNOT_OPER 32 /* ~ */
#define POSTADD_OPER 33 /* ++ */
#define PREADD_OPER 34 /* ++ */
#define POSTMIN_OPER 35 /* -- */
#define PREMIN_OPER 36 /* -- */
#define UMIN_OPER 37 /* - */
/* System Calls */
/* Object Commands */
#define S_ADD_VERB 38 /* PROTO: add_verb(string action, string func) */
#define S_ADD_XVERB 39 /* PROTO: add_xverb(string action, string func) */
#define S_CALL_OTHER 40 /* call_other(object obj, string func, ...) */
#define S_ALARM 41 /* alarm(int delay, string func) */
#define S_REMOVE_ALARM 42 /* remove_alarm([string func]) */
#define S_CALLER_OBJECT 43 /* caller_object() */
#define S_CLONE_OBJECT 44 /* clone_object(object obj|string path) */
#define S_DESTRUCT 45 /* destruct(object obj) */
#define S_CONTENTS 46 /* contents(object obj) */
#define S_NEXT_OBJECT 47 /* next_object(object obj) */
#define S_LOCATION 48 /* location(object obj) */
#define S_NEXT_CHILD 49 /* next_child(object obj) */
#define S_PARENT 50 /* parent(object obj) */
#define S_NEXT_PROTO 51 /* next_proto(object obj) */
#define S_MOVE_OBJECT 52 /* move_object(object item, object dest) */
#define S_THIS_OBJECT 53 /* this_object() */
#define S_THIS_PLAYER 54 /* this_player() */
/* Flag Setting & Reading */
#define S_SET_INTERACTIVE 55 /* set_interactive() */
#define S_INTERACTIVE 56 /* interactive(object obj) */
#define S_SET_PRIV 57 /* PRIV: set_priv(object obj) */
#define S_PRIV 58 /* priv(object obj) */
#define S_IN_EDITOR 59 /* in_editor(object obj) */
#define S_CONNECTED 60 /* connected(object obj) */
/* Device Functions */
#define S_GET_DEVCONN 61 /* get_devconn(object obj) */
#define S_SEND_DEVICE 62 /* send_device(string msg) */
#define S_RECONNECT_DEVICE 63 /* PRIV: reconnect_device(object obj) */
#define S_DISCONNECT_DEVICE 64 /* disconnect device() */
/* Miscellaneous Functions */
#define S_RANDOM 65 /* random(int limit) */
#define S_TIME 66 /* time() */
#define S_MKTIME 67 /* mktime(int tm) */
#define S_TYPEOF 68 /* typeof(var x) */
#define S_COMMAND 69 /* command(string action) */
/* File Handling Functions */
#define S_COMPILE_OBJECT 70 /* compile_object(string path) */
#define S_EDIT 71 /* edit(string path) */
#define S_CAT 72 /* cat(string path) */
#define S_LS 73 /* ls(string path) */
#define S_RM 74 /* rm(string path) */
#define S_CP 75 /* cp(string path, string destpath) */
#define S_MV 76 /* mv(string path, string newpath) */
#define S_MKDIR 77 /* mkdir(string path) */
#define S_RMDIR 78 /* rmdir(string path) */
#define S_HIDE 79 /* PRIV: hide(string path) */
#define S_UNHIDE 80 /* PRIV: unhide(string path, object owner,
int flags) */
#define S_CHOWN 81 /* chown(string path, object owner) */
#define S_SYSLOG 82 /* PRIV: syslog(string msg) */
/* String Manipulation */
#define S_SSCANF 83 /* sscanf(string s, string format, ...) */
#define S_SPRINTF 84 /* sprintf(string s, string format, ...) */
#define S_MIDSTR 85 /* midstr(string s, int pos, int len) */
#define S_STRLEN 86 /* strlen(s) */
#define S_LEFTSTR 87 /* leftstr(string s, int len) */
#define S_RIGHTSTR 88 /* rightstr(string s, int len) */
#define S_SUBST 89 /* subst(string s, int pos, int len, string s2) */
#define S_INSTR 90 /* instr(string s, int startpos, string search) */
#define S_OTOA 91 /* otoa(object obj) */
#define S_ITOA 92 /* itoa(int val) */
#define S_ATOI 93 /* atoi(string s) */
#define S_ATOO 94 /* atoo(string s) */
#define S_UPCASE 95 /* upcase(string s) */
#define S_DOWNCASE 96 /* downcase(string s) */
#define S_IS_LEGAL 97 /* is_legal(string s) */
/* Stuff I Forgot and Added Later */
#define S_OTOI 98 /* otoi(object o) */
#define S_ITOO 99 /* itoo(int i) */
#define S_CHMOD 100 /* chmod(string path, int flags) */
#define S_FREAD 101 /* fread(string pathname, int pos) */
#define S_FWRITE 102 /* fwrite(string pathname, string s) */
#define S_REMOVE_VERB 103 /* remove_verb(string action) */
#define S_FERASE 104 /* ferase(string pathname) */
#define S_CHR 105 /* chr(int c) */
#define S_ASC 106 /* asc(string c) */
#define S_SYSCTL 107 /* PRIV: sysctl(int oper, ...) */
#define S_PROTOTYPE 108 /* prototype(object obj) */
#define S_ITERATE 109 /* iterate(object obj, string func, ...) */
#define S_NEXT_WHO 110 /* next_who(object obj) */