diff --git a/src/sbbs3/sbbsdefs.h b/src/sbbs3/sbbsdefs.h
index 22873e28a9635a7e6cdf6ee51f71da28168ed377..10f16b301bc213981f57d20c484cf1ff9c9292fe 100644
--- a/src/sbbs3/sbbsdefs.h
+++ b/src/sbbs3/sbbsdefs.h
@@ -335,151 +335,154 @@ enum {
 	,clr_external
 	,TOTAL_COLORS };
 
-enum {								/* Values for xtrn_t.type			*/
-	 XTRN_NONE						/* No data file needed				*/
-	,XTRN_SBBS						/* Synchronet external				*/
-	,XTRN_WWIV						/* WWIV external					*/
-	,XTRN_GAP						/* Gap door 						*/
-	,XTRN_RBBS						/* RBBS, QBBS, or Remote Access 	*/
-	,XTRN_WILDCAT					/* Wildcat							*/
-	,XTRN_PCBOARD					/* PCBoard							*/
-	,XTRN_SPITFIRE					/* SpitFire 						*/
-	,XTRN_UTI						/* UTI Doors - MegaMail 			*/
-	,XTRN_SR						/* Solar Realms 					*/
-	,XTRN_RBBS1 					/* DORINFO1.DEF always				*/
-	,XTRN_TRIBBS					/* TRIBBS.SYS						*/
-	,XTRN_DOOR32					/* DOOR32.SYS						*/
-	};
-
-typedef enum {						/* Values for xtrn_t.event			*/
-	 EVENT_NONE 					/* Only accessible by menu			*/
-	,EVENT_LOGON					/* Execute during logon sequence	*/
-	,EVENT_LOGOFF					/* Execute during logoff sequence	*/
-	,EVENT_NEWUSER					/* Execute during newuser app.		*/
-	,EVENT_BIRTHDAY 				/* Execute on birthday				*/
-} user_event_t;
-
-									/* Misc bits for event_t.misc		*/
-#define EVENT_EXCL	(1L<<0) 		/* Exclusive						*/
-#define EVENT_FORCE (1L<<1) 		/* Force users off-line for event	*/
-
-									/* Mode bits for QWK stuff */
-#define A_EXPAND	(1<<0)			/* Expand to ANSI sequences */
-#define A_LEAVE 	(1<<1)			/* Leave in */
-#define A_STRIP 	(1<<2)			/* Strip out */
-
-									/* Bits in xtrn_t.misc				*/
-#define MULTIUSER	(1L<<0) 		/* allow multi simultaneous users	*/
-#define ANSI		(1L<<1) 		/* user must have ANSI, same as ^^^ */
-#define IO_INTS 	(1L<<2) 		/* Intercept I/O interrupts 		*/
-#define MODUSERDAT	(1L<<3) 		/* Program can modify user data 	*/
-#define WWIVCOLOR	(1L<<4) 		/* Program uses WWIV color codes	*/
-#define EVENTONLY	(1L<<5) 		/* Program executes as event only	*/
-#define STARTUPDIR	(1L<<6) 		/* Create drop file in start-up dir */
-#define REALNAME	(1L<<7) 		/* Use real name in drop file		*/
-#define SWAP		(1L<<8) 		/* Swap for this door				*/
-#define FREETIME	(1L<<9) 		/* Free time while in this door 	*/
-#define QUICKBBS	(1L<<10)		/* QuickBBS style editor			*/
-#define EXPANDLF	(1L<<11)		/* Expand LF to CRLF editor 		*/
-#define QUOTEALL	(1L<<12)		/* Automatically quote all of msg	*/
-#define QUOTENONE	(1L<<13)		/* Automatically quote none of msg	*/
-#define XTRN_NATIVE	(1L<<14)		/* Native application (EX_NATIVE)	*/
-#define STRIPKLUDGE (1L<<15)		/* Strip FTN Kludge lines from msg  */
-#define XTRN_CHKTIME (1<<16)		/* Check time online (EX_CHKTIME)	*/
-
-									/* Bits in user.qwk 				*/
-#define QWK_FILES	(1L<<0) 		/* Include new files list			*/
-#define QWK_EMAIL	(1L<<1) 		/* Include unread e-mail			*/
-#define QWK_ALLMAIL (1L<<2) 		/* Include ALL e-mail				*/
-#define QWK_DELMAIL (1L<<3) 		/* Delete e-mail after download 	*/
-#define QWK_BYSELF	(1L<<4) 		/* Include messages from self		*/
-#define QWK_UNUSED	(1L<<5) 		/* Currently unused 				*/
-#define QWK_EXPCTLA (1L<<6) 		/* Expand ctrl-a codes to ascii 	*/
-#define QWK_RETCTLA (1L<<7) 		/* Retain ctrl-a codes				*/
-#define QWK_ATTACH	(1L<<8) 		/* Include file attachments 		*/
-#define QWK_NOINDEX (1L<<9) 		/* Do not create index files in QWK */
-#define QWK_TZ		(1L<<10)		/* Include "@TZ" time zone in msgs  */
-#define QWK_VIA 	(1L<<11)		/* Include "@VIA" seen-bys in msgs  */
-#define QWK_NOCTRL	(1L<<12)		/* No extraneous control files		*/
-#define QWK_EXT		(1L<<13)		/* QWK Extended (QWKE) format		*/
-
-							/* Bits in user.chat						*/
-#define CHAT_ECHO	(1<<0)	/* Multinode chat echo						*/
-#define CHAT_ACTION (1<<1)	/* Chat actions 							*/
-#define CHAT_NOPAGE (1<<2)	/* Can't be paged                           */
-#define CHAT_NOACT	(1<<3)	/* No activity alerts						*/
-#define CHAT_SPLITP (1<<4)	/* Split screen private chat				*/
-
-
-#define INVALID_DIR 0xffff	/* Invalid directory value					*/
-#define INVALID_SUB 0xffff	/* Invalid sub-board value					*/
-
-#define KEY_BUFSIZE 1024	/* Size of keyboard input buffer			*/
-#define SAVE_LINES	 4		/* Maximum number of lines to save			*/
-#define LINE_BUFSIZE 512	/* Size of line output buffer               */
-
-
-#define TABSIZE		4		/* Tab Size									*/
-
-#define SWAP_NONE	0x80	/* Allow no swapping for executables		*/
-
-#define DSTSDABLEN	50		/* Length of dsts.dab file					*/
-
-							/* Console I/O Bits	(console)				*/
-#define CON_R_ECHO	 (1<<0)	/* Echo remotely							*/
-#define CON_R_ECHOX	 (1<<1)	/* Echo X's to remote user					*/
-#define CON_R_INPUT  (1<<2)	/* Accept input remotely					*/
-#define CON_L_ECHO	 (1<<3)	/* Echo locally              				*/
-#define CON_L_ECHOX	 (1<<4) /* Echo X's locally							*/
-#define CON_L_INPUT  (1<<5)	/* Accept input locally						*/
-#define CON_RAW_IN   (1<<8) /* Raw input mode - no editing capabilities */
-#define CON_ECHO_OFF (1<<10)/* Remote & Local echo disabled for ML/MF	*/
-#define CON_UPARROW  (1<<11)/* Up arrow hit - move up one line			*/
-#define CON_NO_INACT (1<<13)/* Console inactivity detection disabled	*/
-
-							/* Number of milliseconds                   */
-#define DELAY_HANGUP 250    /* Delay before modem drops carrier         */
-#define DELAY_MDMTLD 500    /* Delay to give each ~ in modem strings    */
-#define DELAY_SPIN   10     /* Delay for the spinning cursor            */
-#define DELAY_AUTOHG 1500	/* Delay for auto-hangup (xfer) 			*/
-
-#define SEC_LOGON	1800	/* 30 minutes allowed to logon				*/
-#define SEC_BILLING   90	/* under 2 minutes per billing call 		*/
-#define SEC_OK		   5	/* Attempt to get an OK response from modem */
-#define SEC_ANSI	   5	/* Attempt to get a valid ANSI response 	*/
-#define SEC_ANSWER	  30	/* Retries to get an answer code from modem */
-#define SEC_CID 	  10	/* Ten second pause for caller ID			*/
-#define SEC_RING	   6	/* Maximum seconds between rings			*/
-
-#define LOOP_NOPEN	  50	/* Retries before file access denied		*/
-#define LOOP_NODEDAB  50	/* Retries on node.dab locking/unlocking	*/
-
-							/* String lengths							*/
-#define LEN_ALIAS		25	/* User alias								*/
-#define LEN_NAME		25	/* User name								*/
-#define LEN_HANDLE		8	/* User chat handle 						*/
-#define LEN_NOTE		30	/* User note								*/
-#define LEN_COMP		30	/* User computer description				*/
-#define LEN_COMMENT 	60	/* User comment 							*/
-#define LEN_NETMAIL 	60	/* NetMail forwarding address				*/
-#define LEN_PASS		 8	/* User password							*/
-#define LEN_PHONE		12	/* User phone number						*/
-#define LEN_BIRTH		 8	/* Birthday in MM/DD/YY format				*/
-#define LEN_ADDRESS 	30	/* User address 							*/
-#define LEN_LOCATION	30	/* Location (City, State)					*/
-#define LEN_ZIPCODE 	10	/* Zip/Postal code							*/
-#define LEN_MODEM		 8	/* User modem type description				*/
-#define LEN_FDESC		58	/* File description 						*/
-#define LEN_FCDT		 9	/* 9 digits for file credit values			*/
-#define LEN_TITLE		70	/* Message title							*/
-#define LEN_MAIN_CMD	34	/* Storage in user.dat for custom commands	*/
-#define LEN_XFER_CMD	40
-#define LEN_SCAN_CMD	40
-#define LEN_MAIL_CMD	40
-#define LEN_CID 		25	/* Caller ID (phone number) 				*/
-#define LEN_ARSTR		40	/* Max length of Access Requirement string	*/
-#define LEN_CHATACTCMD	 9	/* Chat action command						*/
-#define LEN_CHATACTOUT	65	/* Chat action output string				*/
+enum {								/* Values for xtrn_t.type				*/
+	 XTRN_NONE						/* No data file needed					*/
+	,XTRN_SBBS						/* Synchronet external					*/
+	,XTRN_WWIV						/* WWIV external						*/
+	,XTRN_GAP						/* Gap door 							*/
+	,XTRN_RBBS						/* RBBS, QBBS, or Remote Access 		*/
+	,XTRN_WILDCAT					/* Wildcat								*/
+	,XTRN_PCBOARD					/* PCBoard								*/
+	,XTRN_SPITFIRE					/* SpitFire 							*/
+	,XTRN_UTI						/* UTI Doors - MegaMail 				*/
+	,XTRN_SR						/* Solar Realms 						*/
+	,XTRN_RBBS1 					/* DORINFO1.DEF always					*/
+	,XTRN_TRIBBS					/* TRIBBS.SYS							*/
+	,XTRN_DOOR32					/* DOOR32.SYS							*/
+	};																		
+																			
+typedef enum {						/* Values for xtrn_t.event				*/
+	 EVENT_NONE 					/* Only accessible by menu				*/
+	,EVENT_LOGON					/* Execute during logon sequence		*/
+	,EVENT_LOGOFF					/* Execute during logoff sequence		*/
+	,EVENT_NEWUSER					/* Execute during newuser app.			*/
+	,EVENT_BIRTHDAY 				/* Execute on birthday					*/
+} user_event_t;																
+																			
+									/* Misc bits for event_t.misc			*/
+#define EVENT_EXCL	(1L<<0) 		/* Exclusive							*/
+#define EVENT_FORCE (1L<<1) 		/* Force users off-line for event		*/
+																			
+									/* Mode bits for QWK stuff */			
+#define A_EXPAND	(1<<0)			/* Expand to ANSI sequences */			
+#define A_LEAVE 	(1<<1)			/* Leave in */							
+#define A_STRIP 	(1<<2)			/* Strip out */							
+																			
+									/* Bits in xtrn_t.misc					*/
+#define MULTIUSER	(1L<<0) 		/* allow multi simultaneous users		*/
+#define ANSI		(1L<<1) 		/* user must have ANSI, same as ^^^		*/
+#define IO_INTS 	(1L<<2) 		/* Intercept I/O interrupts 			*/
+#define MODUSERDAT	(1L<<3) 		/* Program can modify user data 		*/
+#define WWIVCOLOR	(1L<<4) 		/* Program uses WWIV color codes		*/
+#define EVENTONLY	(1L<<5) 		/* Program executes as event only		*/
+#define STARTUPDIR	(1L<<6) 		/* Create drop file in start-up dir		*/
+#define REALNAME	(1L<<7) 		/* Use real name in drop file			*/
+#define SWAP		(1L<<8) 		/* Swap for this door					*/
+#define FREETIME	(1L<<9) 		/* Free time while in this door 		*/
+#define QUICKBBS	(1L<<10)		/* QuickBBS style editor				*/
+#define EXPANDLF	(1L<<11)		/* Expand LF to CRLF editor 			*/
+#define QUOTEALL	(1L<<12)		/* Automatically quote all of msg		*/
+#define QUOTENONE	(1L<<13)		/* Automatically quote none of msg		*/
+#define XTRN_NATIVE	(1L<<14)		/* Native application (EX_NATIVE)		*/
+#define STRIPKLUDGE (1L<<15)		/* Strip FTN Kludge lines from msg		*/
+#define XTRN_CHKTIME (1<<16)		/* Check time online (EX_CHKTIME)		*/
+
+									/* Bits in cfg.xtrn_misc				*/
+#define XTRN_NO_MUTEX	(1<<0)		/* Do not use exec_mutex for FOSSIL VXD	*/
+
+									/* Bits in user.qwk 					*/
+#define QWK_FILES	(1L<<0) 		/* Include new files list				*/
+#define QWK_EMAIL	(1L<<1) 		/* Include unread e-mail				*/
+#define QWK_ALLMAIL (1L<<2) 		/* Include ALL e-mail					*/
+#define QWK_DELMAIL (1L<<3) 		/* Delete e-mail after download 		*/
+#define QWK_BYSELF	(1L<<4) 		/* Include messages from self			*/
+#define QWK_UNUSED	(1L<<5) 		/* Currently unused 					*/
+#define QWK_EXPCTLA (1L<<6) 		/* Expand ctrl-a codes to ascii 		*/
+#define QWK_RETCTLA (1L<<7) 		/* Retain ctrl-a codes					*/
+#define QWK_ATTACH	(1L<<8) 		/* Include file attachments 			*/
+#define QWK_NOINDEX (1L<<9) 		/* Do not create index files in QWK		*/
+#define QWK_TZ		(1L<<10)		/* Include "@TZ" time zone in msgs		*/
+#define QWK_VIA 	(1L<<11)		/* Include "@VIA" seen-bys in msgs		*/
+#define QWK_NOCTRL	(1L<<12)		/* No extraneous control files			*/
+#define QWK_EXT		(1L<<13)		/* QWK Extended (QWKE) format			*/
+																			
+							/* Bits in user.chat							*/
+#define CHAT_ECHO	(1<<0)	/* Multinode chat echo							*/
+#define CHAT_ACTION (1<<1)	/* Chat actions 								*/
+#define CHAT_NOPAGE (1<<2)	/* Can't be paged								*/
+#define CHAT_NOACT	(1<<3)	/* No activity alerts							*/
+#define CHAT_SPLITP (1<<4)	/* Split screen private chat					*/
+																			
+																			
+#define INVALID_DIR 0xffff	/* Invalid directory value						*/
+#define INVALID_SUB 0xffff	/* Invalid sub-board value						*/
+																			
+#define KEY_BUFSIZE 1024	/* Size of keyboard input buffer				*/
+#define SAVE_LINES	 4		/* Maximum number of lines to save				*/
+#define LINE_BUFSIZE 512	/* Size of line output buffer					*/
+																			
+																			
+#define TABSIZE		4		/* Tab Size										*/
+																			
+#define SWAP_NONE	0x80	/* Allow no swapping for executables			*/
+																			
+#define DSTSDABLEN	50		/* Length of dsts.dab file						*/
+																			
+							/* Console I/O Bits	(console)					*/
+#define CON_R_ECHO	 (1<<0)	/* Echo remotely								*/
+#define CON_R_ECHOX	 (1<<1)	/* Echo X's to remote user						*/
+#define CON_R_INPUT  (1<<2)	/* Accept input remotely						*/
+#define CON_L_ECHO	 (1<<3)	/* Echo locally              					*/
+#define CON_L_ECHOX	 (1<<4) /* Echo X's locally								*/
+#define CON_L_INPUT  (1<<5)	/* Accept input locally							*/
+#define CON_RAW_IN   (1<<8) /* Raw input mode - no editing capabilities		*/
+#define CON_ECHO_OFF (1<<10)/* Remote & Local echo disabled for ML/MF		*/
+#define CON_UPARROW  (1<<11)/* Up arrow hit - move up one line				*/
+#define CON_NO_INACT (1<<13)/* Console inactivity detection disabled		*/
+																			
+							/* Number of milliseconds						*/
+#define DELAY_HANGUP 250    /* Delay before modem drops carrier				*/
+#define DELAY_MDMTLD 500    /* Delay to give each ~ in modem strings		*/
+#define DELAY_SPIN   10     /* Delay for the spinning cursor				*/
+#define DELAY_AUTOHG 1500	/* Delay for auto-hangup (xfer) 				*/
+																			
+#define SEC_LOGON	1800	/* 30 minutes allowed to logon					*/
+#define SEC_BILLING   90	/* under 2 minutes per billing call 			*/
+#define SEC_OK		   5	/* Attempt to get an OK response from modem		*/
+#define SEC_ANSI	   5	/* Attempt to get a valid ANSI response 		*/
+#define SEC_ANSWER	  30	/* Retries to get an answer code from modem		*/
+#define SEC_CID 	  10	/* Ten second pause for caller ID				*/
+#define SEC_RING	   6	/* Maximum seconds between rings				*/
+																			
+#define LOOP_NOPEN	  50	/* Retries before file access denied			*/
+#define LOOP_NODEDAB  50	/* Retries on node.dab locking/unlocking		*/
+																			
+							/* String lengths								*/
+#define LEN_ALIAS		25	/* User alias									*/
+#define LEN_NAME		25	/* User name									*/
+#define LEN_HANDLE		8	/* User chat handle 							*/
+#define LEN_NOTE		30	/* User note									*/
+#define LEN_COMP		30	/* User computer description					*/
+#define LEN_COMMENT 	60	/* User comment 								*/
+#define LEN_NETMAIL 	60	/* NetMail forwarding address					*/
+#define LEN_PASS		 8	/* User password								*/
+#define LEN_PHONE		12	/* User phone number							*/
+#define LEN_BIRTH		 8	/* Birthday in MM/DD/YY format					*/
+#define LEN_ADDRESS 	30	/* User address 								*/
+#define LEN_LOCATION	30	/* Location (City, State)						*/
+#define LEN_ZIPCODE 	10	/* Zip/Postal code								*/
+#define LEN_MODEM		 8	/* User modem type description					*/
+#define LEN_FDESC		58	/* File description 							*/
+#define LEN_FCDT		 9	/* 9 digits for file credit values				*/
+#define LEN_TITLE		70	/* Message title								*/
+#define LEN_MAIN_CMD	34	/* Storage in user.dat for custom commands		*/
+#define LEN_XFER_CMD	40													
+#define LEN_SCAN_CMD	40													
+#define LEN_MAIL_CMD	40													
+#define LEN_CID 		25	/* Caller ID (phone number) 					*/
+#define LEN_ARSTR		40	/* Max length of Access Requirement string		*/
+#define LEN_CHATACTCMD	 9	/* Chat action command							*/
+#define LEN_CHATACTOUT	65	/* Chat action output string					*/
 
 /****************************************************************************/
 /* This is a list of offsets into the USER.DAT file for different variables */
@@ -561,83 +564,83 @@ typedef enum {						/* Values for xtrn_t.event			*/
 /****************************************************************************/
 /* Offsets into DIR .DAT file for different fields for each file 			*/
 /****************************************************************************/
-#define F_CDT		0				/* Offset in DIR#.DAT file for cdts */
-#define F_DESC		(F_CDT+LEN_FCDT)/* Description						*/
-#define F_ULER		(F_DESC+LEN_FDESC+2)   /* Uploader					*/
-#define F_TIMESDLED (F_ULER+30+2) 	/* Number of times downloaded 		*/
-#define F_OPENCOUNT	(F_TIMESDLED+5+2)
-#define F_MISC		(F_OPENCOUNT+3+2)
-#define F_ALTPATH	(F_MISC+1)		/* Two hex digit alternate path */
-#define F_LEN		(F_ALTPATH+2+2) /* Total length of all fdat in file */
-
-#define F_IXBSIZE	22				/* Length of each index entry		*/
-
-#define F_EXBSIZE	512				/* Length of each ext-desc entry	*/
-
-
-#define SIF_MAXBUF  0x7000			/* Maximum buffer size of SIF data */
-
-/* NOTE: Do not change the values of the following block of defines!	*/
-
-#define DELETED 	(1L<<0) 		/* Bit values for user.misc 		*/
-#define ANSI		(1L<<1) 		/* Supports ANSI terminal emulation */
-#define COLOR		(1L<<2) 		/* Send color codes 				*/
-#define RIP 		(1L<<3) 		/* Supports RIP terminal emulation	*/
-#define UPAUSE		(1L<<4) 		/* Pause on every screen full		*/
-#define SPIN		(1L<<5) 		/* Spinning cursor - Same as K_SPIN */
-#define INACTIVE	(1L<<6) 		/* Inactive user slot				*/
-#define EXPERT		(1L<<7) 		/* Expert menu mode 				*/
-#define ANFSCAN 	(1L<<8) 		/* Auto New file scan				*/
-#define CLRSCRN 	(1L<<9) 		/* Clear screen before each message */
-#define QUIET		(1L<<10)		/* Quiet mode upon logon			*/
-#define BATCHFLAG	(1L<<11)		/* File list allow batch dl flags	*/
-#define NETMAIL 	(1L<<12)		/* Forward e-mail to fidonet addr	*/
-#define CURSUB		(1L<<13)		/* Remember current sub-board/dir	*/
-#define ASK_NSCAN	(1L<<14)		/* Ask for newscanning upon logon	*/
-#define NO_EXASCII	(1L<<15)		/* Don't send extended ASCII        */
-#define ASK_SSCAN	(1L<<16)		/* Ask for messages to you at logon */
-#define AUTOTERM	(1L<<17)		/* Autodetect terminal type 		*/
-#define COLDKEYS	(1L<<18)		/* No hot-keys						*/
-#define EXTDESC 	(1L<<19)		/* Extended file descriptions		*/
-#define AUTOHANG	(1L<<20)		/* Auto-hang-up after transfer		*/
-#define WIP 		(1L<<21)		/* Supports WIP terminal emulation	*/
-#define AUTOLOGON	(1L<<22)		/* AutoLogon via IP					*/
-
-#define CLREOL      256     /* Character to erase to end of line 		*/
-
-							/* Online status (online)					*/
-#define ON_LOCAL	1	 	/* Online locally							*/
-#define ON_REMOTE   2  		/* Online remotely							*/
-
-							/* Various SYSTEM parameters for sys_status	*/
-#define SS_UNUSED	(1L<<0)	/* Unused          							*/
-#define SS_INITIAL  (1L<<1)	/* The bbs data has been initialized.       */
-#define SS_TMPSYSOP (1L<<2)	/* Temporary Sysop Status					*/
-#define SS_USERON   (1L<<3)	/* A User is logged on to the BBS			*/
-#define SS_LCHAT    (1L<<4) /* Local chat in progress					*/
-#define SS_CAP		(1L<<5)	/* Capture is on							*/
-#define SS_ANSCAP	(1L<<6) /* Capture ANSI codes too					*/
-#define SS_FINPUT	(1L<<7) /* Using file for input 					*/
-#define SS_COMISR	(1L<<8) /* Com port ISR is installed				*/
-#define SS_DAILY	(1L<<9) /* Execute System Daily Event on logoff 	*/
-#define SS_INUEDIT	(1L<<10) /* Inside Alt-Useredit section 			*/
-#define SS_ABORT	(1L<<11) /* Global abort input or output flag		*/
-#define SS_SYSPAGE	(1L<<12) /* Paging sysop							*/
-#define SS_SYSALERT (1L<<13) /* Notify sysop when users hangs up		*/
-#define SS_GURUCHAT (1L<<14) /* Guru chat in progress					*/
-#define SS_UNUSED2	(1L<<15) /* not used in v3 (used to be SS_NODEDAB)	*/
-#define SS_EVENT	(1L<<16) /* Time shortened due to upcoming event	*/
-#define SS_PAUSEON	(1L<<17) /* Pause on, overriding user default		*/
-#define SS_PAUSEOFF (1L<<18) /* Pause off, overriding user default		*/
-#define SS_IN_CTRLP (1L<<19) /* Inside ctrl-p send node message func	*/
-#define SS_NEWUSER	(1L<<20) /* New User online 						*/
-#define SS_MDMDEBUG (1L<<21) /* Modem debug output						*/
-#define SS_NEST_PF	(1L<<22) /* Nested in printfile function			*/
-#define SS_DCDHIGH	(1L<<23) /* Assume DCD is high always				*/
-#define SS_SPLITP	(1L<<24) /* Split-screen private chat				*/
-#define SS_NEWDAY	(1L<<25) /* Date changed while online				*/
-#define SS_RLOGIN	(1L<<26) /* Current login via BSD RLogin			*/
-#define SS_FILEXFER	(1L<<27) /* File transfer in progress, halt spy		*/
+#define F_CDT		0				/* Offset in DIR#.DAT file for cdts		*/
+#define F_DESC		(F_CDT+LEN_FCDT)/* Description							*/
+#define F_ULER		(F_DESC+LEN_FDESC+2)   /* Uploader						*/
+#define F_TIMESDLED (F_ULER+30+2) 	/* Number of times downloaded 			*/
+#define F_OPENCOUNT	(F_TIMESDLED+5+2)										
+#define F_MISC		(F_OPENCOUNT+3+2)										
+#define F_ALTPATH	(F_MISC+1)		/* Two hex digit alternate path */		
+#define F_LEN		(F_ALTPATH+2+2) /* Total length of all fdat in file		*/
+																			
+#define F_IXBSIZE	22				/* Length of each index entry			*/
+																			
+#define F_EXBSIZE	512				/* Length of each ext-desc entry		*/
+																			
+																			
+#define SIF_MAXBUF  0x7000			/* Maximum buffer size of SIF data		*/
+																			
+/* NOTE: Do not change the values of the following block of defines!		*/
+																			
+#define DELETED 	(1L<<0) 		/* Bit values for user.misc 			*/
+#define ANSI		(1L<<1) 		/* Supports ANSI terminal emulation		*/
+#define COLOR		(1L<<2) 		/* Send color codes 					*/
+#define RIP 		(1L<<3) 		/* Supports RIP terminal emulation		*/
+#define UPAUSE		(1L<<4) 		/* Pause on every screen full			*/
+#define SPIN		(1L<<5) 		/* Spinning cursor - Same as K_SPIN		*/
+#define INACTIVE	(1L<<6) 		/* Inactive user slot					*/
+#define EXPERT		(1L<<7) 		/* Expert menu mode 					*/
+#define ANFSCAN 	(1L<<8) 		/* Auto New file scan					*/
+#define CLRSCRN 	(1L<<9) 		/* Clear screen before each message		*/
+#define QUIET		(1L<<10)		/* Quiet mode upon logon				*/
+#define BATCHFLAG	(1L<<11)		/* File list allow batch dl flags		*/
+#define NETMAIL 	(1L<<12)		/* Forward e-mail to fidonet addr		*/
+#define CURSUB		(1L<<13)		/* Remember current sub-board/dir		*/
+#define ASK_NSCAN	(1L<<14)		/* Ask for newscanning upon logon		*/
+#define NO_EXASCII	(1L<<15)		/* Don't send extended ASCII			*/
+#define ASK_SSCAN	(1L<<16)		/* Ask for messages to you at logon		*/
+#define AUTOTERM	(1L<<17)		/* Autodetect terminal type 			*/
+#define COLDKEYS	(1L<<18)		/* No hot-keys							*/
+#define EXTDESC 	(1L<<19)		/* Extended file descriptions			*/
+#define AUTOHANG	(1L<<20)		/* Auto-hang-up after transfer			*/
+#define WIP 		(1L<<21)		/* Supports WIP terminal emulation		*/
+#define AUTOLOGON	(1L<<22)		/* AutoLogon via IP						*/
+																			
+#define CLREOL      256     /* Character to erase to end of line 			*/
+																			
+							/* Online status (online)						*/
+#define ON_LOCAL	1	 	/* Online locally								*/
+#define ON_REMOTE   2  		/* Online remotely								*/
+																			
+							/* Various SYSTEM parameters for sys_status		*/
+#define SS_UNUSED	(1L<<0)	/* Unused          								*/
+#define SS_INITIAL  (1L<<1)	/* The bbs data has been initialized.			*/
+#define SS_TMPSYSOP (1L<<2)	/* Temporary Sysop Status						*/
+#define SS_USERON   (1L<<3)	/* A User is logged on to the BBS				*/
+#define SS_LCHAT    (1L<<4) /* Local chat in progress						*/
+#define SS_CAP		(1L<<5)	/* Capture is on								*/
+#define SS_ANSCAP	(1L<<6) /* Capture ANSI codes too						*/
+#define SS_FINPUT	(1L<<7) /* Using file for input 						*/
+#define SS_COMISR	(1L<<8) /* Com port ISR is installed					*/
+#define SS_DAILY	(1L<<9) /* Execute System Daily Event on logoff 		*/
+#define SS_INUEDIT	(1L<<10) /* Inside Alt-Useredit section 				*/
+#define SS_ABORT	(1L<<11) /* Global abort input or output flag			*/
+#define SS_SYSPAGE	(1L<<12) /* Paging sysop								*/
+#define SS_SYSALERT (1L<<13) /* Notify sysop when users hangs up			*/
+#define SS_GURUCHAT (1L<<14) /* Guru chat in progress						*/
+#define SS_UNUSED2	(1L<<15) /* not used in v3 (used to be SS_NODEDAB)		*/
+#define SS_EVENT	(1L<<16) /* Time shortened due to upcoming event		*/
+#define SS_PAUSEON	(1L<<17) /* Pause on, overriding user default			*/
+#define SS_PAUSEOFF (1L<<18) /* Pause off, overriding user default			*/
+#define SS_IN_CTRLP (1L<<19) /* Inside ctrl-p send node message func		*/
+#define SS_NEWUSER	(1L<<20) /* New User online 							*/
+#define SS_MDMDEBUG (1L<<21) /* Modem debug output							*/
+#define SS_NEST_PF	(1L<<22) /* Nested in printfile function				*/
+#define SS_DCDHIGH	(1L<<23) /* Assume DCD is high always					*/
+#define SS_SPLITP	(1L<<24) /* Split-screen private chat					*/
+#define SS_NEWDAY	(1L<<25) /* Date changed while online					*/
+#define SS_RLOGIN	(1L<<26) /* Current login via BSD RLogin				*/
+#define SS_FILEXFER	(1L<<27) /* File transfer in progress, halt spy			*/
 
 								/* Bits in 'mode' for getkey and getstr     */
 #define K_UPPER 	(1L<<0) 	/* Converts all letters to upper case		*/
@@ -660,110 +663,110 @@ typedef enum {						/* Values for xtrn_t.event			*/
 #define K_NOECHO	(1L<<17)	/* Don't echo input                         */
 #define K_TAB		(1L<<18)	/* Treat TAB key as CR						*/
 
-							/* Bits in 'mode' for putmsg and printfile  */
-#define P_NOABORT  	(1<<0)  /* Disallows abortion of a message          */
-#define P_SAVEATR   (1<<1)  /* Save the new current attributres after	*/
-							/* msg has printed. */
-#define P_NOATCODES (1<<2)	/* Don't allow @ codes                      */
-#define P_OPENCLOSE (1<<3)	/* Open and close the file					*/
-
-							/* Bits in 'mode' for listfiles             */
-#define FL_ULTIME   (1<<0)  /* List files by upload time                */
-#define FL_DLTIME   (1<<1)  /* List files by download time              */
-#define FL_NO_HDR   (1<<2)  /* Don't list directory header              */
-#define FL_FINDDESC (1<<3)  /* Find text in description                 */
-#define FL_EXFIND   (1<<4)	/* Find text in description - extended info */
-#define FL_VIEW     (1<<5)	/* View ZIP/ARC/GIF etc. info               */
-
-							/* Bits in the mode of writemsg and email() */
-#define WM_EXTDESC	(1<<0)	/* Writing extended file description		*/
-#define WM_EMAIL	(1<<1)	/* Writing e-mail							*/
-#define WM_NETMAIL	(1<<2)	/* Writing NetMail							*/
-#define WM_ANON 	(1<<3)	/* Writing anonymous message				*/
-#define WM_FILE 	(1<<4)	/* Attaching a file to the message			*/
-#define WM_NOTOP	(1<<5)	/* Don't add top because we need top line   */
-#define WM_QUOTE	(1<<6)	/* Quote file available 					*/
-#define WM_QWKNET	(1<<7)	/* Writing QWK NetMail (25 char title)		*/
-#define WM_PRIVATE	(1<<8)	/* Private (for creating MSGINF file)		*/
-
-							/* Bits in the mode of loadposts()			*/
-#define LP_BYSELF	(1<<0)	/* Include messages sent by self			*/
-#define LP_OTHERS	(1<<1)	/* Include messages sent to others			*/
-#define LP_UNREAD	(1<<2)	/* Un-read messages only					*/
-#define LP_PRIVATE	(1<<3)	/* Include all private messages 			*/
-#define LP_REP		(1<<4)	/* Packing REP packet						*/
-
-							/* Bits in the mode of loadmail()			*/
-#define LM_UNREAD	(1<<0)	/* Include un-read mail only				*/
-#define LM_INCDEL	(1<<1)	/* Include deleted mail		 				*/
-
-enum {						/* readmail and delmailidx which types		*/
-	 MAIL_YOUR				/* mail sent to you */
-	,MAIL_SENT				/* mail you have sent */
-	,MAIL_ANY				/* mail sent to or from you */
-	,MAIL_ALL				/* all mail (ignores usernumber arg) */
-	};
-
-							/* Bits in the mode of external()           */
-#define EX_SH       (1<<0)	/* Use command shell to load other process  */
-#define EX_OUTR     (1<<1)  /* Copy DOS output to remote                */
-#define EX_OUTL 	(1<<2)	/* Use _lputc() for local DOS output		*/
-#define EX_INR		(1<<3)	/* Trap int 16h keyboard input requests     */
-#define EX_WWIV 	(1<<4)	/* Expand WWIV color codes to ANSI sequence */
-#define EX_SWAP 	(1<<5)	/* Swap out for this external				*/
-#define EX_POPEN	(1<<7)	/* Leave COM port open						*/
-#define EX_OFFLINE	(1<<8)	/* Run this program offline					*/
-#define EX_BG		(1<<10)	/* Back-ground/detached process				*/
-#define EX_BIN		(1<<11)	/* Binary mode (no Unix LF to CRLF)			*/
-#define EX_NATIVE	(1<<14)	/* Native 32-bit application (XTRN_NATIVE)	*/
-#define EX_CHKTIME	(1<<16)	/* Check time left (XTRN_CHKTIME)			*/
-
-#define OS2_POPEN	(1<<0)	/* Leave COM port open						*/
-
-#define TG_ECHO		(1<<0)	/* Turn on telnet echo						*/
-#define TG_CRLF		(1<<1)	/* Expand sole CR to CRLF					*/
-#define TG_LINEMODE	(1<<2)	/* Send entire lines only					*/
-#define TG_NODESYNC	(1<<3)	/* Call Nodesync, get msgs, etc.			*/
-#define TG_CTRLKEYS	(1<<4)	/* Interpret ^P ^U ^T, etc locally			*/
-#define TG_PASSTHRU	(1<<5)	/* Pass-through telnet commands/responses	*/
-#define TG_RLOGIN	(1<<6)	/* Use BSD RLogin protocol					*/
-
-enum {						/* Values for 'mode' in listfileinfo        */
-	 FI_INFO            	/* Just list file information               */
-	,FI_REMOVE           	/* Remove/Move/Edit file information        */
-	,FI_DOWNLOAD         	/* Download files                           */
-	,FI_OLD              	/* Search/Remove files not downloaded since */
-	,FI_OLDUL	 			/* Search/Remove files uploaded before      */
-	,FI_OFFLINE   			/* Search/Remove files not online			*/
-	,FI_USERXFER  			/* User Xfer Download                       */
-	,FI_CLOSE 	  			/* Close any open records					*/
-	};
-
-#define L_LOGON     1       /* Logon List maintenance                   */
-#define LOL_SIZE    81      /* Length of each logon list entry          */
-
-							/* Bits in mode of scanposts() function 	*/
-#define SCAN_CONST	(1<<0)	/* Continuous message scanning				*/
-#define SCAN_NEW	(1<<1)	/* New scanning								*/
-#define SCAN_BACK	(1<<2)	/* Scan the last message if no new			*/
-#define SCAN_TOYOU	(1<<3)	/* Scan for messages to you 				*/
-#define SCAN_FIND	(1<<4)	/* Scan for text in messages				*/
-#define SCAN_UNREAD (1<<5)	/* Find un-read messages to you 			*/
-
-							/* Bits in misc of chan_t					*/
-#define CHAN_PW 	(1<<0)	/* Can be password protected				*/
-#define CHAN_GURU	(1<<1)	/* Guru joins empty channel 				*/
-
-enum {						/* Values of mode for userlist function     */
-	 UL_ALL					/* List all users in userlist				*/
-	,UL_SUB      			/* List all users with access to cursub     */
-	,UL_DIR					/* List all users with access to curdir 	*/
-	};
-
-
-#define BO_LEN		16		/* backout.dab record length				*/
-
-#define BO_OPENFILE 0		/* Backout types */
+								/* Bits in 'mode' for putmsg and printfile  */
+#define P_NOABORT  	(1<<0)		/* Disallows abortion of a message          */
+#define P_SAVEATR   (1<<1)		/* Save the new current attributres after	*/
+								/* msg has printed. */
+#define P_NOATCODES (1<<2)		/* Don't allow @ codes                      */
+#define P_OPENCLOSE (1<<3)		/* Open and close the file					*/
+								
+								/* Bits in 'mode' for listfiles             */
+#define FL_ULTIME   (1<<0)		/* List files by upload time                */
+#define FL_DLTIME   (1<<1)		/* List files by download time              */
+#define FL_NO_HDR   (1<<2)		/* Don't list directory header              */
+#define FL_FINDDESC (1<<3)		/* Find text in description                 */
+#define FL_EXFIND   (1<<4)		/* Find text in description - extended info */
+#define FL_VIEW     (1<<5)		/* View ZIP/ARC/GIF etc. info               */
+								
+								/* Bits in the mode of writemsg and email() */
+#define WM_EXTDESC	(1<<0)		/* Writing extended file description		*/
+#define WM_EMAIL	(1<<1)		/* Writing e-mail							*/
+#define WM_NETMAIL	(1<<2)		/* Writing NetMail							*/
+#define WM_ANON 	(1<<3)		/* Writing anonymous message				*/
+#define WM_FILE 	(1<<4)		/* Attaching a file to the message			*/
+#define WM_NOTOP	(1<<5)		/* Don't add top because we need top line   */
+#define WM_QUOTE	(1<<6)		/* Quote file available 					*/
+#define WM_QWKNET	(1<<7)		/* Writing QWK NetMail (25 char title)		*/
+#define WM_PRIVATE	(1<<8)		/* Private (for creating MSGINF file)		*/
+								
+								/* Bits in the mode of loadposts()			*/
+#define LP_BYSELF	(1<<0)		/* Include messages sent by self			*/
+#define LP_OTHERS	(1<<1)		/* Include messages sent to others			*/
+#define LP_UNREAD	(1<<2)		/* Un-read messages only					*/
+#define LP_PRIVATE	(1<<3)		/* Include all private messages 			*/
+#define LP_REP		(1<<4)		/* Packing REP packet						*/
+								
+								/* Bits in the mode of loadmail()			*/
+#define LM_UNREAD	(1<<0)		/* Include un-read mail only				*/
+#define LM_INCDEL	(1<<1)		/* Include deleted mail		 				*/
+								
+enum {							/* readmail and delmailidx which types		*/
+	 MAIL_YOUR					/* mail sent to you							*/
+	,MAIL_SENT					/* mail you have sent						*/
+	,MAIL_ANY					/* mail sent to or from you					*/
+	,MAIL_ALL					/* all mail (ignores usernumber arg)		*/
+	};							
+								
+								/* Bits in the mode of external()           */
+#define EX_SH       (1<<0)		/* Use command shell to load other process  */
+#define EX_OUTR     (1<<1)		/* Copy DOS output to remote                */
+#define EX_OUTL 	(1<<2)		/* Use _lputc() for local DOS output		*/
+#define EX_INR		(1<<3)		/* Trap int 16h keyboard input requests     */
+#define EX_WWIV 	(1<<4)		/* Expand WWIV color codes to ANSI sequence */
+#define EX_SWAP 	(1<<5)		/* Swap out for this external				*/
+#define EX_POPEN	(1<<7)		/* Leave COM port open						*/
+#define EX_OFFLINE	(1<<8)		/* Run this program offline					*/
+#define EX_BG		(1<<10)		/* Back-ground/detached process				*/
+#define EX_BIN		(1<<11)		/* Binary mode (no Unix LF to CRLF)			*/
+#define EX_NATIVE	(1<<14)		/* Native 32-bit application (XTRN_NATIVE)	*/
+#define EX_CHKTIME	(1<<16)		/* Check time left (XTRN_CHKTIME)			*/
+								
+#define OS2_POPEN	(1<<0)		/* Leave COM port open						*/
+								
+#define TG_ECHO		(1<<0)		/* Turn on telnet echo						*/
+#define TG_CRLF		(1<<1)		/* Expand sole CR to CRLF					*/
+#define TG_LINEMODE	(1<<2)		/* Send entire lines only					*/
+#define TG_NODESYNC	(1<<3)		/* Call Nodesync, get msgs, etc.			*/
+#define TG_CTRLKEYS	(1<<4)		/* Interpret ^P ^U ^T, etc locally			*/
+#define TG_PASSTHRU	(1<<5)		/* Pass-through telnet commands/responses	*/
+#define TG_RLOGIN	(1<<6)		/* Use BSD RLogin protocol					*/
+								
+enum {							/* Values for 'mode' in listfileinfo        */
+	 FI_INFO            		/* Just list file information               */
+	,FI_REMOVE           		/* Remove/Move/Edit file information        */
+	,FI_DOWNLOAD         		/* Download files                           */
+	,FI_OLD              		/* Search/Remove files not downloaded since */
+	,FI_OLDUL	 				/* Search/Remove files uploaded before      */
+	,FI_OFFLINE   				/* Search/Remove files not online			*/
+	,FI_USERXFER  				/* User Xfer Download                       */
+	,FI_CLOSE 	  				/* Close any open records					*/
+	};							
+								
+#define L_LOGON     1			/* Logon List maintenance                   */
+#define LOL_SIZE    81			/* Length of each logon list entry          */
+								
+								/* Bits in mode of scanposts() function 	*/
+#define SCAN_CONST	(1<<0)		/* Continuous message scanning				*/
+#define SCAN_NEW	(1<<1)		/* New scanning								*/
+#define SCAN_BACK	(1<<2)		/* Scan the last message if no new			*/
+#define SCAN_TOYOU	(1<<3)		/* Scan for messages to you 				*/
+#define SCAN_FIND	(1<<4)		/* Scan for text in messages				*/
+#define SCAN_UNREAD (1<<5)		/* Find un-read messages to you 			*/
+								
+								/* Bits in misc of chan_t					*/
+#define CHAN_PW 	(1<<0)		/* Can be password protected				*/
+#define CHAN_GURU	(1<<1)		/* Guru joins empty channel 				*/
+								
+enum {							/* Values of mode for userlist function     */
+	 UL_ALL						/* List all users in userlist				*/
+	,UL_SUB      				/* List all users with access to cursub     */
+	,UL_DIR						/* List all users with access to curdir 	*/
+	};							
+								
+								
+#define BO_LEN		16			/* backout.dab record length				*/
+								
+#define BO_OPENFILE 0			/* Backout types */
 
 
 /**********/