diff -c orig/atr_tab.h pse/atr_tab.h
*** orig/atr_tab.h	Thu Dec  3 14:24:36 1998
--- pse/atr_tab.h	Thu Dec  3 14:24:22 1998
***************
*** 189,194 ****
--- 189,198 ----
    {(char *) "XZ", 0, NULL, 0},
    {(char *) "XYXXY", AF_INTERNAL | AF_NOPROG | AF_LOCKED | AF_WIZARD,
     NULL, 0},
+ #ifdef SPACE
+   {(char *) "A_USER_DBREF", 0, NULL, 0},
+   {(char *) "A_DATA_DBREF", 0, NULL, 0},
+ #endif
    {NULL, 0, NULL, 0}
  };
  
diff -c orig/bsd.c pse/bsd.c
*** orig/bsd.c	Thu Dec  3 14:24:38 1998
--- pse/bsd.c	Thu Dec  3 14:24:14 1998
***************
*** 1,6 ****
  /* bsd.c */
  
! // #define NT_TCP
  
  #include "copyrite.h"
  #include "config.h"
--- 1,6 ----
  /* bsd.c */
  
! /* #define NT_TCP */
  
  #include "copyrite.h"
  #include "config.h"
***************
*** 558,563 ****
--- 558,568 ----
    mal_leaktrace(1);
  #endif
  #endif
+ 
+ #ifdef SPACE
+   spaceInit();
+ #endif
+ 
    load_reboot_db();
  
  #ifdef NT_TCP
***************
*** 4826,4832 ****
  #ifdef WIN32
    open_max = 60;
    return open_max;
! #else /* not Win32 */
  #ifdef HAS_SYSCONF
      errno = 0;
    if ((open_max = sysconf(_SC_OPEN_MAX)) < 0) {
--- 4831,4837 ----
  #ifdef WIN32
    open_max = 60;
    return open_max;
! #else
  #ifdef HAS_SYSCONF
      errno = 0;
    if ((open_max = sysconf(_SC_OPEN_MAX)) < 0) {
***************
*** 4845,4851 ****
     */
      open_max = 0;
    return getdtablesize();
! #endif  /* Win32 */
  }
  
  /*
--- 4850,4856 ----
     */
      open_max = 0;
    return getdtablesize();
! #endif
  }
  
  /*
diff -c orig/config.h pse/config.h
*** orig/config.h	Thu Dec  3 14:24:36 1998
--- pse/config.h	Thu Dec  3 14:24:23 1998
***************
*** 333,336 ****
--- 333,338 ----
   */
  /* #define I_SYS_VLIMIT		/**/
  
+ #define SPACE 1
+ 
  #endif
diff -c orig/cque.c pse/cque.c
*** orig/cque.c	Thu Dec  3 14:24:39 1998
--- pse/cque.c	Thu Dec  3 14:24:15 1998
***************
*** 485,491 ****
     * queue when they have one second to go.
     */
  
!   min = 5;
  
    for (point = qwait; point; point = point->next) {
      curr = point->left - mudtime;
--- 485,491 ----
     * queue when they have one second to go.
     */
  
!   min = 2;
  
    for (point = qwait; point; point = point->next) {
      curr = point->left - mudtime;
diff -c orig/dbdefs.h pse/dbdefs.h
*** orig/dbdefs.h	Thu Dec  3 14:24:37 1998
--- pse/dbdefs.h	Thu Dec  3 14:24:23 1998
***************
*** 91,96 ****
--- 91,100 ----
  
  #define Wizard(x) ((Flags(x) & WIZARD) || God(x))
  
+ #ifdef SPACE
+ #define Space(x)  ((Flags(x) & SPACECOMPONENT) || God(x))
+ #endif
+ 
  #ifdef FIXED_FLAG
  #define Fixed(x)  (IS(x,TYPE_PLAYER,PLAYER_FIXED))
  #endif
diff -c orig/externs.h pse/externs.h
*** orig/externs.h	Thu Dec  3 14:24:37 1998
--- pse/externs.h	Thu Dec  3 14:24:23 1998
***************
*** 428,431 ****
--- 428,440 ----
      extern Sigfunc signal _((int signo, Sigfunc func));
  #endif
  #endif
+ 
+ #ifdef SPACE
+ extern void spaceInit(void);
+ extern void spaceUpdate(void);
+ extern void spaceVersion(dbref);
+ extern dbref getLocation(dbref);
+ extern dbref getDebugCharacter(void);
+ #endif
+ 
  #endif				/* __EXTERNS_H */
diff -c orig/flags.c pse/flags.c
*** orig/flags.c	Thu Dec  3 14:24:40 1998
--- pse/flags.c	Thu Dec  3 14:24:16 1998
***************
*** 90,95 ****
--- 90,98 ----
  /*   Name       Lettter Type            Flag            Perms   Negate_Perm */
  FLAG flag_table[] =
  {
+ #ifdef SPACE
+   {"SPACE", 'y', NOTYPE, SPACECOMPONENT, F_WIZARD, F_WIZARD},
+ #endif
  
    {"CHOWN_OK", 'C', NOTYPE, CHOWN_OK, F_ANY, F_ANY},
    {"DARK", 'D', NOTYPE, DARK, F_ANY, F_ANY},
***************
*** 193,198 ****
--- 196,207 ----
  
  static FLAG_ALIAS flag_alias_tab[] =
  {
+ #ifdef SPACE
+   {"SPAC", "SPACE"},
+   {"SPA", "SPACE"},
+   {"SP", "SPACE"},
+ #endif
+ 
    {"CHOWN_O", "CHOWN_OK"},
    {"CHOWN_", "CHOWN_OK"},
    {"CHOWN", "CHOWN_OK"},
diff -c orig/flags.h pse/flags.h
*** orig/flags.h	Thu Dec  3 14:24:37 1998
--- pse/flags.h	Thu Dec  3 14:24:24 1998
***************
*** 89,95 ****
  
  #define GOING_TWICE     0x40000000	/* Marked for destruction, but
  					   * spared once. */
! /* -- empty slot 0x80000000 -- */
  
  /*--------------------------------------------------------------------------
   * Player flags
--- 89,98 ----
  
  #define GOING_TWICE     0x40000000	/* Marked for destruction, but
  					   * spared once. */
! 
! #ifdef SPACE
! #define SPACECOMPONENT	0x80000000	/* A PSE Space object */
! #endif
  
  /*--------------------------------------------------------------------------
   * Player flags
diff -c orig/function.c pse/function.c
*** orig/function.c	Thu Dec  3 14:24:41 1998
--- pse/function.c	Thu Dec  3 14:24:16 1998
***************
*** 302,307 ****
--- 302,310 ----
    {"RNUM", fun_rnum, 2, 2, FN_REG},
    {"ROOM", fun_room, 1, 1, FN_REG},
    {"S", fun_s, 1, -1, FN_REG},
+ #ifdef SPACE
+   {"SC", fun_spacecall, 1, INT_MAX,FN_REG},
+ #endif
    {"SCRAMBLE", fun_scramble, 1, -1, FN_REG},
    {"SEARCH", fun_lsearch, 3, 5, FN_REG},
    {"SECS", fun_secs, 0, 0, FN_REG},
diff -c orig/fundb.c pse/fundb.c
*** orig/fundb.c	Thu Dec  3 14:24:41 1998
--- pse/fundb.c	Thu Dec  3 14:24:16 1998
***************
*** 19,24 ****
--- 19,25 ----
  #include "memcheck.h"
  #endif
  #include "confmagic.h"
+ #include "command.h"
  
  #ifdef WIN32
  #pragma warning( disable : 4761)	/* NJG: disable warning re conversion */
diff -c orig/funs.h pse/funs.h
*** orig/funs.h	Thu Dec  3 14:24:37 1998
--- pse/funs.h	Thu Dec  3 14:24:24 1998
***************
*** 256,258 ****
--- 256,261 ----
  FUNCTION_PROTO(fun_zfun);
  FUNCTION_PROTO(fun_zone);
  FUNCTION_PROTO(local_fun_silly);
+ #ifdef SPACE
+ FUNCTION_PROTO(fun_spacecall);
+ #endif
diff -c orig/local.c pse/local.c
*** orig/local.c	Thu Dec  3 14:24:42 1998
--- pse/local.c	Thu Dec  3 14:24:17 1998
***************
*** 58,83 ****
  {
  }
  
- void fork() 
-   {
-   panic ("Unable to fork under Win32");
-   };
- 
- void local_commands ()
-   {
- // no local commands
-   };
- 
- void local_functions ()
-   {
- // no local functions
-   };
- 
- void reserve_aliases ()
-   {
- // no aliases reserved
-   };
- 
  #ifdef LOCAL_DATA
  /* For serious hackers only */
  
--- 58,63 ----
diff -c orig/regexp.c pse/regexp.c
*** orig/regexp.c	Thu Dec  3 14:24:44 1998
--- pse/regexp.c	Thu Dec  3 14:24:18 1998
***************
*** 38,43 ****
--- 38,47 ----
  #include "intrface.h"
  #include "externs.h"
  #include "confmagic.h"
+ #ifdef WIN32
+ #pragma warning( disable :  4761 4305)	/* NJG: disable warning re conversion */
+ #define snprintf _snprintf
+ #endif
  
  #undef NOTHING
  
diff -c orig/set.c pse/set.c
*** orig/set.c	Thu Dec  3 14:24:44 1998
--- pse/set.c	Thu Dec  3 14:24:19 1998
***************
*** 34,39 ****
--- 34,40 ----
  #include "ansi.h"
  #include "mymalloc.h"
  #include "confmagic.h"
+ #include "command.h"
  
  extern void set_flag _((dbref player, dbref thing, char *flag, int negate, int hear, int listener));	/* from flags.c */
  
diff -c orig/timer.c pse/timer.c
*** orig/timer.c	Thu Dec  3 14:24:45 1998
--- pse/timer.c	Thu Dec  3 14:24:20 1998
***************
*** 212,217 ****
--- 212,221 ----
    }
  #endif
  
+ #ifdef SPACE
+   spaceUpdate();
+ #endif
+ 
  #ifndef WIN32
    /* reset alarm */
    alarm(1);
diff -c orig/version.c pse/version.c
*** orig/version.c	Thu Dec  3 14:24:45 1998
--- pse/version.c	Thu Dec  3 14:24:20 1998
***************
*** 44,47 ****
--- 44,50 ----
    notify(player, tprintf("Compilation flags: %s", CCFLAGS));
    notify(player, tprintf("Malloc package: %d", MALLOC_PACKAGE));
  #endif
+ #ifdef SPACE
+   spaceVersion(player);
+ #endif
  }
diff -c orig/version.h pse/version.h
*** orig/version.h	Thu Dec  3 14:24:38 1998
--- pse/version.h	Thu Dec  3 14:24:25 1998
***************
*** 1,2 ****
--- 1,3 ----
  #define VERSION "PennMUSH version 1.7.2 patchlevel 17 [1998-11-11]"
  #define SHORTVN "PennMUSH 1.7.2p17"
+ #define ENGINE_VERSION "Portable Space Engine: Alpha v0.9.14 [31-August-1998]"
