
************************* Version v1.6 (??-???-97) ***************************

-------------[ FAMEToolPortCommands.h ]---------------------------------------

New define:
~~~~~~~~~~~
#define FAMETP_SVEndFAMEForce       1027
/*
 * Quit FAME in every case.
 *
 * Command will: - Drop all online users.
 *               - End all running Nodes.
 *               - End the Server.
 */

-------------[ FAMESetStructs.h ]---------------------------------------------

Renamed header file:
~~~~~~~~~~~~~~~~~~~~
Renamed FAMEInternSetStructs.h to FAMESetStructs.h to make it public.

-------------[ FAMEPublicStructs.h]-------------------------------------------

New structure:
~~~~~~~~~~~~~~
/*
 * FAMELockSemaphore - if existing Server won't start and informs that
 *                     fls_SemaOwner is locking FAME against a start.
 */

struct FAMELockSemaphore
{
  struct SignalSemaphore  fls_Semaphore; /* The Signal Semaphore                */
  STRPTR                  fls_SemaOwner; /* A pointer to the owners name        */
};

Renamed structures:
~~~~~~~~~~~~~~~~~~~
Renamed struct MsgList     to struct FAMEMsgList.
Renamed struct UserProfile to struct FAMEUserProfile.

Moved structures:
~~~~~~~~~~~~~~~~~
Moved struct FileList from FAMEInternLists.h   to struct FAMEFileList.
Moved struct ConfData from FAMEInternStructs.h to struct FAMEConfData.
Moved struct ConfList from FAMEInternStructs.h to struct FAMEConfList.

-------------[ FAMEUserStructs.h ]--------------------------------------------

Renamed structures:
~~~~~~~~~~~~~~~~~~~
Renamed struct UserExpansion     to struct FAMEUserExpansion.
Renamed struct UserConfExpansion to struct FAMEUserConfExpansion.
Renamed struct User              to struct FAMEUser.
Renamed struct UserKeys          to struct FAMEUserKeys.
Renamed struct UserConf          to struct FAMEUserConf.

-------------[ ALL include files ]--------------------------------------------

Replaced all TABs by spaces.

-------------[ FAMEInternSetStructs.h ]---------------------------------------

Renamed struct sYSTEM        to struct FAMESystem
Renamed struct sERVER        to struct FAMEServer
Renamed struct cONF          to struct FAMEConf
Renamed struct lEVELS        to struct FAMELevels
Renamed struct cONFaX        to struct FAMEConfAccess
Renamed struct pRESET        to struct FAMEPreset
Renamed struct aCTIVITIES    to struct FAMEActivities
Renamed struct eRROR         to struct FAMEError
Renamed struct dOORS         to struct FAMEDoors
Renamed struct iNTERNdOORS   to struct FAMEInternDoors
Renamed struct sCREENS       to struct FAMEScreens
Renamed struct nODE          to struct FAMENode
Renamed struct sERIAL        to struct FAMESerial
Renamed struct mODEM         to struct FAMEModem
Renamed struct sCREEN        to struct FAMEScreen
Renamed struct cHECKER       to struct FAMEChecker
Renamed struct tEXTlANG      to struct FAMETextLang
Renamed struct lANGlOCALE    to struct FAMELangLocale
Renamed struct dOORcONFIG    to struct FAMEDoorConfig
Renamed struct uSERhANDLER   to struct FAMEUserHandler
Renamed struct fAMEmODULES   to struct FAMEModules
Renamed struct cOMPUTERtYPES to struct FAMEComputerTypes
Renamed struct mODEMtYPES    to struct FAMEModemTypes
Renamed struct mISC          to struct FAMEMisc
Renamed struct pROTOCOL      to struct FAMEProtocol
Renamed struct bAUDtIMES     to struct FAMEBaudTimes
Renamed struct uSERbUTTONS   to struct FAMEUserButtons
Renamed struct fAMEhYDRA     to struct FAMEHydra
Renamed struct fAMEhYDRAnODE to struct FAMEHydraNode
Renamed struct fAMEsMODEM    to struct FAMESModem
Renamed struct fAMEdEBUG     to struct FAMEDebug
Renamed struct cOLpENdAT     to struct FAMEColPenDat
Renamed struct aWAYmSG       to struct FAMEAwayMsg

Renamed element in struct mISC:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed1 to MultiComPort.

-------------[ FAMEInternLists.h / FAMEPublicStructs.h]-----------------------

Moved structures:
~~~~~~~~~~~~~~~~~
Moved struct FileList to FAMEPublicStructs.h as struct FAMEFileList.

-------------[ FAMEInternStructs.h ]------------------------------------------

Moved structures:
~~~~~~~~~~~~~~~~~
Moved struct ConfData to FAMEPublicStructs.h as struct FAMEConfData.
Moved struct ConfList to FAMEPublicStructs.h as struct FAMEConfList.

New structures added:
~~~~~~~~~~~~~~~~~~~~~
/*
 * XIM Semphore protection Node Status structure.
 */

struct AESemaNodeStat
{
	char										aesns_Status,
													aesns_Info;
};

/*
 * XIM Semphore protection Node Info structure.
 */

struct AENodeInfo
{
	char										aeni_Handle[31];
	ULONG										aeni_StartTime;
	long										aeni_ChatColor,
													aeni_Channel,
													aeni_Private;
	struct AESemaNodeStat		aeni_Stats[10];
	APTR										aeni_Master,
													aeni_SingleNode;
	ULONG										aeni_TaskSignal;
};

/*
 * XIM Semphore protection MultiPort structure.
 */

struct AEMultiPort
{
	struct SignalSemaphore	aemp_Semaphore;
	struct MinList					aemp_sl_List;
	struct AENodeInfo				aemp_Node[10];
	UBYTE										aemp_SemaName[20];
};

/*
 * XIM Semphore protection SinglePort structure.
 */

struct AESinglePort
{
	struct SignalSemaphore	aesp_Semaphore;
	struct MinList					aesp_sl_List;
	APTR										*aesp_MultiCom;
	UBYTE										aesp_SemaName[20];
	long										aesp_Status;
	char										aesp_Handle[31],
													aesp_Location[31],
													aesp_Misc1[100],
													aesp_Misc2[100];
};

New element added to struct FAMEConfig:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
struct NumFlagList	*SysOpsBase;			/* List of SysOps and CoSysOps			*/

-------------[ FAMEDefine.h ]-------------------------------------------------

New defines:
~~~~~~~~~~~~
/*
 * Sort/Delete Conference Perform action bits
 */

#define SDConfPerformWnd_Perform         (1 << 0)
#define SDConfPerformWnd_UpdateCASets    (1 << 1)
#define SDConfPerformWnd_RenameCANSets   (1 << 2)
#define SDConfPerformWnd_UserDataFit     (1 << 3)
#define SDConfPerformWnd_UserAbort	     (1 << 31)

/*
 * Additional flags for FAMESaveSystemConfig() (FAME Config).
 */

#define FAMECFGSB_FORCE                  (1 << 0)  /* Save back also if FAMECFGLST_MODIFY is not set. */

/*
 * Header defines of FAME Datafiles
 */

#define FAMEUCEX    48  /* Is a future used expansion structure of the original
                           UserCnf.data (the additional userdata file which is
                           located for/in every conference) and includes nothing
                           yet */

/*
 * Header offset define.
 */

#define FAMECFG_HEADEROFFSET        61

/*
 * XIM MultiComPort Chat Status defines
 */

#define	CHAT_NONE												1
#define	CHAT_TEXT												2
#define	CHAT_IDLE												3
#define	CHAT_EXIT												4
#define	CHAT_ENTER											5
#define	CHAT_NTXT												6

/*
 * XIM MultiComPort Node Range Check defines
 */

#define	AEMCP_MINNODE										-1
#define	AEMCP_MAXNODE										9

/*
 * XIM ENV defines
 */

#define	ENV_INACTIVE										-1
#define	ENV_IDLE												0
#define	ENV_DOWNLOADING									1
#define	ENV_UPLOADING										2
#define	ENV_DOORS												3
#define	ENV_MAIL												4
#define	ENV_STATS												5
#define	ENV_ACCOUNT											6
#define	ENV_ZOOM												7
#define	ENV_FILES												8
#define	ENV_BULLETINS										9
#define	ENV_VIEWING											10
#define	ENV_ACCOUNTSEQ									11
#define	ENV_LOGOFF											12
#define	ENV_SYSOP												13
#define	ENV_SHELL												14
#define	ENV_EMACS												15
#define	ENV_JOIN												16
#define	ENV_CHAT												17
#define	ENV_NOTACTIVE										18
#define	ENV_REQ_CHAT										19
#define	ENV_CONNECT											20
#define	ENV_LOGGINGON										21
#define	ENV_AWAITCONNECT								22
#define	ENV_SCANNING										23
#define	ENV_SHUTDOWN										24
#define	ENV_MULTICHAT										25
#define	ENV_SUSPEND											26
#define	ENV_RESERVE											27

/*
 * Door Upload and Download defines
 */

#define	DOORUD_DONOTCOUNTBYTES		0
#define	DOORUD_COUNTBYTES					100

/*
 * FAMECfgFlag3 defines (FAME Config)
 */

#define	FAMECfg_OverrideXprDlFO		(1 << 1)
#define	FAMECfg_ResumeFile				(1 << 2)

/*
 * DiskLoadBase defines
 */

#define	DLB_ADDDOWNLOADLIST				0
#define	DLB_RESTRICTFILESLIST			1
#define	DLB_NAMESNOTALLOWEDLIST		2
#define	DLB_ADDUPLOADLIST					3
#define	DLB_AVAILSYSOPSLIST				4

-------------[ FAMEDoorCommands.h ]-------------------------------------------

Changed (enhanced) NR commands:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define CF_ZModemSend      405
/* 
 * Send file to the user via Zmodem protocol
 *
 * Data1    <- 100 = Count user bytes and files else not.
 * Data2    -> Returns the status.
 *             1  = file has been transfered.
 *             0  = file has been copied local to sysops download directory.
 *             -1 = xprzmodem.library not open.
 * Data3
 * IOString <- The File to be sended to the user.
 *
 * Note: There are also defines for Data1:
 *
 * #define DOORUD_DONOTCOUNTBYTES 0
 * #define DOORUD_COUNTBYTES      100
 */

#define CF_ZModemReceive   406
/*
 * Receive files via Zmodem protocol
 *
 * Data1    <- 100 = Count user bytes and files else not.
 * Data2    -> Returns the status. 1 means all seems to be going right.
 *             0 means xprzmodem.library not open.
 * Data3
 * IOString <- The path for the file to be sended to.
 *
 * Note: You have to give a path! Else the transfer won't begin!
 *
 * Note: There are also defines for Data1:
 *
 * #define DOORUD_DONOTCOUNTBYTES 0
 * #define DOORUD_COUNTBYTES      100
 */

#define CF_ZModemSendLst   407
/*
 * Send files to the user via Zmodem protocol from Flaglist
 *
 * Data1    <- 100 = Count user bytes and files else not.
 * Data2    -> Returns the status.
 *             1  = file has been transfered.
 *             0  = file has been copied local to sysops download directory.
 *             -1 = xprzmodem.library not open.
 * Data3
 * IOString
 * StringPtr <- A Stringpointer of nearly unlimited filenames incl. path.
 *              Between every single path/filename has to be a space.
 *              Maximum filelength of path+filename is 100 chars.
 *              Example: "RAM:File1.123 RAM:File2.123 RAM:ENV/TIME"
 *
 * Note: There are also defines for Data1:
 *
 * #define DOORUD_DONOTCOUNTBYTES 0
 * #define DOORUD_COUNTBYTES      100
 */

************************* Version v1.5 (16-Nov-97) ***************************

-------------[ FAMEDoorCommands.h ]-------------------------------------------

Changed (enhanced) NR commands:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define NR_BytesUpload      53
/*
 * Retrieve bytes uploads per user
 *
 * Data1
 * Data2
 * Data3    -> Contains the User's bytes uploaded.
 * Data4    -> Contains the User's bytes uploaded higher ULONG (64 bit value).
 * IOString
 *
 * Note: Data4 is new from MainPart 1.30+ on.
 *       Now two ULONGs will be used to have 64 bit values for the upload
 *       and download bytes. One ULONG alone has only a byte range from
 *       0 -              4.294.967.295 bytes, but 64 bit from
 *       0 - 18.446.744.073.709.551.615 bytes (more than 18 trillion bytes !!!).
 *       This is needed, because 4.2 GB is too small for uploaders today,
 *       but 18 trillion will be enough for the next millenium (i hope) ;)
 *
 *       The higher ULONG (Data4) is be left (before) the lower ULONG (Data3).
 *       The old variable (Data3) is the lower one and can be used as before
 *       by older tools, but they didn't know of the new ULONG and because of
 *       this the value they read and write will no longer be correct, because
 *       on values higher than 4.294.967.295 bytes they doesn't change the
 *       higher ULONG too! This will result in wrong values, not completely
 *       wrong, but wrong in the lower ULONG bytes. This means if a user
 *       has nearly 4.294.967.295 bytes (4.3 GB) and there are bytes added
 *       to this user bytes an overflow will happen and the lower ULONG will
 *       start with 0 bytes without increasing the higher and new ULONG.
 *
 *       There is not much we and you can to do against this except of using
 *       new and updated tools and doors which are able to handle 64 bit
 *       values too.
 *
 *       Nevertheless it's in every case something you can't do anything
 *       against, because if FAME would in future just use 32bit (one ULONG
 *       instead of two) as it was in previous versions and also as every
 *       other well know BBS program does you will ever have the problem
 *       of the overflow if a user has more bytes up and/or downloaded
 *       than 4.2 (4.3) GB and there are bytes getting added to it will ever
 *       restart at 0. So you just have to live with this problem except
 *       now with FAME... with FAME you have now 64 bit values for the bytes
 *       and new tools and doors will be able handle this feature too.
 *
 *       If FAME adds bytes from an upload or download to a user's value
 *       which is at the maximum possible for 32 bits FAME now will
 *       increase the higher ULONG and if this happens no old tool will ever
 *       be able to change this higher ULONG so the bytes won't get lost at all!
 *       This means the case where an old tool is able to destroy the value
 *       is relative small, because if FAME does the overflow it does it correct
 *       and the lower ULONG restarts at 0 too where such an old tool then
 *       can add bytes correctly to.
 *
 *       So two cases are possible where an old tool can bring trouble to you:
 *
 *       - If it adds bytes and this results in an overflow.
 *       - If it reads bytes to display or doing whatever with it it will
 *         always display/do something false if the bytes or higher
 *         than 4.3 GB.
 *
 * Note: Handling 64 bit values (add/substract/multiply/(divide)/validate/...)
 *       can't be done with normal functions or operations.
 *       The computer and compiler only knows of 32 bit as the most possible
 *       values to work with so you have to use special 64 bit functions for 
 *       every thing you want to do with 64 bit variables.
 *
 *       We have coded the following functions for 64 bit variable handling:
 *
 *       - Add (+)
 *       - Substract (-)
 *       - Multiply (*)
 *       - Convert to string (also with formating it)
 *       - Converting from a string into 64 bit variable.
 *       - Checking for equal (=) / (==)
 *       - Checking for higher (>)
 *       - Checking for lower (<)
 *
 *       Add is a FAME.library (4.0) function called FAMEAdd64()
 *
 *       Substract is a FAME.library (4.0) function called FAMESub64()
 *
 *       Convert to string is a FAME.library (4.0) function called
 *       FAMENum64ToStr().
 *       (Note about using FAMENum64ToStr(). There is a bug in
 *       FAME.library 4.0 if you use FAMENum64ToStr() with 0 as the 
 *       buffer size. In this case FAMENum64ToStr() will *NOT* convert 
 *       to the string. The string will be left intact.
 *       Please use the size of the buffer (-1) you handle to it instead
 *       of using 0 !!! 0 is thought for passing big enough buffers,
 *       but this does not work yet!).
 *
 *       The other functions will be available with FAME.library 5.0
 *       also with a new and fast multiply function and i hope with
 *       a divide function too. Until then i will release the
 *       functions as source/object code to be able to use them *NOW* too.
 *
 *       Watch out for the release of the 64bit example archive.
 */

#define NR_BytesDownload    54
/*
 * Retrieve bytes downloaded per user
 *
 * Data1
 * Data2
 * Data3    -> Contains the User's bytes downloaded.
 * Data4    -> Contains the User's bytes downloaded higher ULONG (64 bit value).
 * IOString
 *
 * Note: Data4 is new from MainPart 1.30+ on.
 *       Now two ULONGs will be used to have 64 bit values for the upload
 *       and download bytes. One ULONG alone has only a byte range from
 *       0 -              4.294.967.295 bytes, but 64 bit from
 *       0 - 18.446.744.073.709.551.615 bytes (more than 18 trillion bytes !!!).
 *       This is needed, because 4.2 GB is too small for uploaders today,
 *       but 18 trillion will be enough for the next millenium (i hope) ;)
 *
 *       The higher ULONG (Data4) is be left (before) the lower ULONG (Data3).
 *       The old variable (Data3) is the lower one and can be used as before
 *       by older tools, but they didn't know of the new ULONG and because of
 *       this the value they read and write will no longer be correct, because
 *       on values higher than 4.294.967.295 bytes they doesn't change the
 *       higher ULONG too! This will result in wrong values, not completely
 *       wrong, but wrong in the lower ULONG bytes. This means if a user
 *       has nearly 4.294.967.295 bytes (4.3 GB) and there are bytes added
 *       to this user bytes an overflow will happen and the lower ULONG will
 *       start with 0 bytes without increasing the higher and new ULONG.
 *
 *       There is not much we and you can to do against this except of using
 *       new and updated tools and doors which are able to handle 64 bit
 *       values too.
 *
 *       Nevertheless it's in every case something you can't do anything
 *       against, because if FAME would in future just use 32bit (one ULONG
 *       instead of two) as it was in previous versions and also as every
 *       other well know BBS program does you will ever have the problem
 *       of the overflow if a user has more bytes up and/or downloaded
 *       than 4.2 (4.3) GB and there are bytes getting added to it will ever
 *       restart at 0. So you just have to live with this problem except
 *       now with FAME... with FAME you have now 64 bit values for the bytes
 *       and new tools and doors will be able handle this feature too.
 *
 *       If FAME adds bytes from an upload or download to a user's value
 *       which is at the maximum possible for 32 bits FAME now will
 *       increase the higher ULONG and if this happens no old tool will ever
 *       be able to change this higher ULONG so the bytes won't get lost at all!
 *       This means the case where an old tool is able to destroy the value
 *       is relative small, because if FAME does the overflow it does it correct
 *       and the lower ULONG restarts at 0 too where such an old tool then
 *       can add bytes correctly to.
 *
 *       So two cases are possible where an old tool can bring trouble to you:
 *
 *       - If it adds bytes and this results in an overflow.
 *       - If it reads bytes to display or doing whatever with it it will
 *         always display/do something false if the bytes or higher
 *         than 4.3 GB.
 *
 * Note: Handling 64 bit values (add/substract/multiply/(divide)/validate/...)
 *       can't be done with normal functions or operations.
 *       The computer and compiler only knows of 32 bit as the most possible
 *       values to work with so you have to use special 64 bit functions for 
 *       every thing you want to do with 64 bit variables.
 *
 *       We have coded the following functions for 64 bit variable handling:
 *
 *       - Add (+)
 *       - Substract (-)
 *       - Multiply (*)
 *       - Convert to string (also with formating it)
 *       - Converting from a string into 64 bit variable.
 *       - Checking for equal (=) / (==)
 *       - Checking for higher (>)
 *       - Checking for lower (<)
 *
 *       Add is a FAME.library (4.0) function called FAMEAdd64()
 *
 *       Substract is a FAME.library (4.0) function called FAMESub64()
 *
 *       Convert to string is a FAME.library (4.0) function called
 *       FAMENum64ToStr().
 *       (Note about using FAMENum64ToStr(). There is a bug in
 *       FAME.library 4.0 if you use FAMENum64ToStr() with 0 as the 
 *       buffer size. In this case FAMENum64ToStr() will *NOT* convert 
 *       to the string. The string will be left intact.
 *       Please use the size of the buffer (-1) you handle to it instead
 *       of using 0 !!! 0 is thought for passing big enough buffers,
 *       but this does not work yet!).
 *
 *       The other functions will be available with FAME.library 5.0
 *       also with a new and fast multiply function and i hope with
 *       a divide function too. Until then i will release the
 *       functions as source/object code to be able to use them *NOW* too.
 *
 *       Watch out for the release of the 64bit example archive.
 */

Changed (enhanced) NC commands:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define NC_BytesUpload     220
/* 
 * Change bytes uploads per user
 *
 * Data1
 * Data2
 * Data3    <- The new bytes uploaded of the online user.
 * Data4    <- The new bytes uploaded of the online user higher ULONG (64 bit value).
 * IOString
 *
 * Note: Data4 is new from MainPart 1.30+ on.
 *       Now two ULONGs will be used to have 64 bit values for the upload
 *       and download bytes. One ULONG alone has only a byte range from
 *       0 -              4.294.967.295 bytes, but 64 bit from
 *       0 - 18.446.744.073.709.551.615 bytes (more than 18 trillion bytes !!!).
 *       This is needed, because 4.2 GB is too small for uploaders today,
 *       but 18 trillion will be enough for the next millenium (i hope) ;)
 *
 *       The higher ULONG (Data4) is be left (before) the lower ULONG (Data3).
 *       The old variable (Data3) is the lower one and can be used as before
 *       by older tools, but they didn't know of the new ULONG and because of
 *       this the value they read and write will no longer be correct, because
 *       on values higher than 4.294.967.295 bytes they doesn't change the
 *       higher ULONG too! This will result in wrong values, not completely
 *       wrong, but wrong in the lower ULONG bytes. This means if a user
 *       has nearly 4.294.967.295 bytes (4.3 GB) and there are bytes added
 *       to this user bytes an overflow will happen and the lower ULONG will
 *       start with 0 bytes without increasing the higher and new ULONG.
 *
 *       There is not much we and you can to do against this except of using
 *       new and updated tools and doors which are able to handle 64 bit
 *       values too.
 *
 *       Nevertheless it's in every case something you can't do anything
 *       against, because if FAME would in future just use 32bit (one ULONG
 *       instead of two) as it was in previous versions and also as every
 *       other well know BBS program does you will ever have the problem
 *       of the overflow if a user has more bytes up and/or downloaded
 *       than 4.2 (4.3) GB and there are bytes getting added to it will ever
 *       restart at 0. So you just have to live with this problem except
 *       now with FAME... with FAME you have now 64 bit values for the bytes
 *       and new tools and doors will be able handle this feature too.
 *
 *       If FAME adds bytes from an upload or download to a user's value
 *       which is at the maximum possible for 32 bits FAME now will
 *       increase the higher ULONG and if this happens no old tool will ever
 *       be able to change this higher ULONG so the bytes won't get lost at all!
 *       This means the case where an old tool is able to destroy the value
 *       is relative small, because if FAME does the overflow it does it correct
 *       and the lower ULONG restarts at 0 too where such an old tool then
 *       can add bytes correctly to.
 *
 *       So two cases are possible where an old tool can bring trouble to you:
 *
 *       - If it adds bytes and this results in an overflow.
 *       - If it reads bytes to display or doing whatever with it it will
 *         always display/do something false if the bytes or higher
 *         than 4.3 GB.
 *
 * Note: Handling 64 bit values (add/substract/multiply/(divide)/validate/...)
 *       can't be done with normal functions or operations.
 *       The computer and compiler only knows of 32 bit as the most possible
 *       values to work with so you have to use special 64 bit functions for 
 *       every thing you want to do with 64 bit variables.
 *
 *       We have coded the following functions for 64 bit variable handling:
 *
 *       - Add (+)
 *       - Substract (-)
 *       - Multiply (*)
 *       - Convert to string (also with formating it)
 *       - Converting from a string into 64 bit variable.
 *       - Checking for equal (=) / (==)
 *       - Checking for higher (>)
 *       - Checking for lower (<)
 *
 *       Add is a FAME.library (4.0) function called FAMEAdd64()
 *
 *       Substract is a FAME.library (4.0) function called FAMESub64()
 *
 *       Convert to string is a FAME.library (4.0) function called
 *       FAMENum64ToStr().
 *       (Note about using FAMENum64ToStr(). There is a bug in
 *       FAME.library 4.0 if you use FAMENum64ToStr() with 0 as the 
 *       buffer size. In this case FAMENum64ToStr() will *NOT* convert 
 *       to the string. The string will be left intact.
 *       Please use the size of the buffer (-1) you handle to it instead
 *       of using 0 !!! 0 is thought for passing big enough buffers,
 *       but this does not work yet!).
 *
 *       The other functions will be available with FAME.library 5.0
 *       also with a new and fast multiply function and i hope with
 *       a divide function too. Until then i will release the
 *       functions as source/object code to be able to use them *NOW* too.
 *
 *       Watch out for the release of the 64bit example archive.
 */

#define NC_BytesDownload   221
/*
 * Change bytes downloaded per user
 *
 * Data1
 * Data2
 * Data3    <- The new bytes downloaded of the online user.
 * Data4    <- The new bytes downloaded of the online user higher ULONG (64 bit value).
 * IOString
 *
 * Note: Data4 is new from MainPart 1.30+ on.
 *       Now two ULONGs will be used to have 64 bit values for the upload
 *       and download bytes. One ULONG alone has only a byte range from
 *       0 -              4.294.967.295 bytes, but 64 bit from
 *       0 - 18.446.744.073.709.551.615 bytes (more than 18 trillion bytes !!!).
 *       This is needed, because 4.2 GB is too small for uploaders today,
 *       but 18 trillion will be enough for the next millenium (i hope) ;)
 *
 *       The higher ULONG (Data4) is be left (before) the lower ULONG (Data3).
 *       The old variable (Data3) is the lower one and can be used as before
 *       by older tools, but they didn't know of the new ULONG and because of
 *       this the value they read and write will no longer be correct, because
 *       on values higher than 4.294.967.295 bytes they doesn't change the
 *       higher ULONG too! This will result in wrong values, not completely
 *       wrong, but wrong in the lower ULONG bytes. This means if a user
 *       has nearly 4.294.967.295 bytes (4.3 GB) and there are bytes added
 *       to this user bytes an overflow will happen and the lower ULONG will
 *       start with 0 bytes without increasing the higher and new ULONG.
 *
 *       There is not much we and you can to do against this except of using
 *       new and updated tools and doors which are able to handle 64 bit
 *       values too.
 *
 *       Nevertheless it's in every case something you can't do anything
 *       against, because if FAME would in future just use 32bit (one ULONG
 *       instead of two) as it was in previous versions and also as every
 *       other well know BBS program does you will ever have the problem
 *       of the overflow if a user has more bytes up and/or downloaded
 *       than 4.2 (4.3) GB and there are bytes getting added to it will ever
 *       restart at 0. So you just have to live with this problem except
 *       now with FAME... with FAME you have now 64 bit values for the bytes
 *       and new tools and doors will be able handle this feature too.
 *
 *       If FAME adds bytes from an upload or download to a user's value
 *       which is at the maximum possible for 32 bits FAME now will
 *       increase the higher ULONG and if this happens no old tool will ever
 *       be able to change this higher ULONG so the bytes won't get lost at all!
 *       This means the case where an old tool is able to destroy the value
 *       is relative small, because if FAME does the overflow it does it correct
 *       and the lower ULONG restarts at 0 too where such an old tool then
 *       can add bytes correctly to.
 *
 *       So two cases are possible where an old tool can bring trouble to you:
 *
 *       - If it adds bytes and this results in an overflow.
 *       - If it reads bytes to display or doing whatever with it it will
 *         always display/do something false if the bytes or higher
 *         than 4.3 GB.
 *
 * Note: Handling 64 bit values (add/substract/multiply/(divide)/validate/...)
 *       can't be done with normal functions or operations.
 *       The computer and compiler only knows of 32 bit as the most possible
 *       values to work with so you have to use special 64 bit functions for 
 *       every thing you want to do with 64 bit variables.
 *
 *       We have coded the following functions for 64 bit variable handling:
 *
 *       - Add (+)
 *       - Substract (-)
 *       - Multiply (*)
 *       - Convert to string (also with formating it)
 *       - Converting from a string into 64 bit variable.
 *       - Checking for equal (=) / (==)
 *       - Checking for higher (>)
 *       - Checking for lower (<)
 *
 *       Add is a FAME.library (4.0) function called FAMEAdd64()
 *
 *       Substract is a FAME.library (4.0) function called FAMESub64()
 *
 *       Convert to string is a FAME.library (4.0) function called
 *       FAMENum64ToStr().
 *       (Note about using FAMENum64ToStr(). There is a bug in
 *       FAME.library 4.0 if you use FAMENum64ToStr() with 0 as the 
 *       buffer size. In this case FAMENum64ToStr() will *NOT* convert 
 *       to the string. The string will be left intact.
 *       Please use the size of the buffer (-1) you handle to it instead
 *       of using 0 !!! 0 is thought for passing big enough buffers,
 *       but this does not work yet!).
 *
 *       The other functions will be available with FAME.library 5.0
 *       also with a new and fast multiply function and i hope with
 *       a divide function too. Until then i will release the
 *       functions as source/object code to be able to use them *NOW* too.
 *
 *       Watch out for the release of the 64bit example archive.
 */

-------------[ FAMEInternSetStructs.h ]---------------------------------------

Renamed element in struct sCREEN:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed2 to WindowOnly.

Renamed element in struct sYSTEM:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ULongNotUsed1 to FGPSBitPlanes.
Renamed ULongNotUsed2 to FGPSFontSize.
Renamed ULongNotUsed3 to FGPSScreenID.

Renamed ULongNotUsed7 (ULONG) to (short int) FGPSAutoScroll and ShortIntNotUsed1.

New elements added to struct sYSTEM:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	char			FGPSScreenName[32],
						FGPSFontName[32],
						FGPSOtherPubScreen[102],
						FGPSFallBackPubScreen[102],
						StrNotUsed1[2004];

-------------[ FAMEPublicStructs.h]-------------------------------------------

Renamed element in struct FAMEMailHeader:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed fmah_LongNotUsed2 to fmah_ToNameRecDate.

-------------[ FAMEUserStructs.h ]--------------------------------------------

Renamed elements in struct User:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed FreeFromShort9  to MADLvlOvrPub.
Renamed FreeFromShort10 to MADLvlOvrPriv.
Renamed FreeFromShort11 to MADLvlOvrALL.
Renamed FreeFromShort12 to MADLvlOvrEALL.
Renamed FreeFromShort13 to MADLvlOvrUEALL.

ULONG ULONGNotUsed1 renamed to MADRedDefPub and MADDefPub (short int).
ULONG ULONGNotUsed2 renamed to MADRedDefPriv and MADDefPriv (short int).
ULONG ULONGNotUsed3 renamed to MADRedDefALL and MADDefALL (short int).
ULONG ULONGNotUsed4 renamed to MADRedDefEALL and MADDefEALL (short int).
ULONG ULONGNotUsed5 renamed to MADRedDefUEALL and MADDefUEALL (short int).

ULONGNotUsed6 renamed to ULONGNotUsed1.
ULONGNotUsed7 renamed to ULONGNotUsed2.
ULONGNotUsed8 renamed to BytesUpHi.
ULONGNotUsed9 renamed to BytesDownHi.

Renamed elements in struct UserConf:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ULongNotUsed1 renamed to BytesUpHi.
ULongNotUsed2 renamed to BytesDownHi.

-------------[ FAMECoProcCommands.h ]---------------------------------------

New define:
~~~~~~~~~~~
#define	FAMECP_Update								0

-------------[ ALL INCLUDE FILES ]--------------------------------------------

Everywhere where the word "Stamm" was appearing it has been replaced by
"Base" now!

So be warned, also some FIM DoorCommands have been renamed:

- RD_FGetConfStamm   is now named RD_FGetConfBase   (FAMEDoorCommands.h)
- RD_GetDldFileStamm is now named RD_GetDldFileBase (FAMEDoorCommands.h)
- RD_RIDldFileStamm  is now named RD_RIDldFileBase  (FAMEDoorCommands.h)
- RD_PutDldFileStamm is now named RD_PutDldFileBase (FAMEDoorCommands.h)

-------------[ FAMEInternLists.h / FAMEPublicStructs.h]-----------------------

New structure:
~~~~~~~~~~~~~~
/*
 * Server About Node Info list structure.
 */

struct SVAboutInfoNode
{
	struct Node sain_Node;
	long				sain_NodeNr;
	char				sain_LVBuffer[70];
};

Enhanced structure:
~~~~~~~~~~~~~~~~~~~
/*
 * FAMESemaphore with info datas for everyones usage.
 */

struct	FAMESemaphore
{
	struct	SignalSemaphore	fsem_Semaphore;			/* The Signal Semaphore					*/
	struct	FAMEInfoList		*fsem_FirstNode;		/* Ptr. to first FAMEInfoList		*/
																							/* entry, in every case Node 0	*/
	STRPTR									fsem_SVBBSLocPath,	/* BBS Location Path						*/
													fsem_SVBBSName,			/* BBS Name											*/
													fsem_SVBBSOrigin,		/* BBS Origin/Group							*/
													fsem_SVSysOpName;		/* SysOp Name										*/
	long										fsem_SVNumOfNodes,	/* The number of nodes in list	*/
													fsem_SVVersion,			/* Server's version							*/
													fsem_SVRevision,		/* Server's revision						*/
													fsem_SVStartedTime;	/* Server's start time					*/
	ULONG										fsem_Reserved[20];	/* Reserved fileds for future		*/
	struct	ConfData				*fsem_ConfDataBase;	/* Origin ptr. of ConfData list	*/
};

Changed structures:
~~~~~~~~~~~~~~~~~~~
/*
 * Co Prozess list structure. This one will be read and added into a
 * Server internal list. Needed for the external CoProzess handling.
 */

struct	FAMECoProcList
{
	struct	FAMECoProcList		*fcpl_Next,						/* Pointer to the next			*/
																									/* struct FAMECoProzess			*/
														*fcpl_Prev;						/* Pointer to the previous	*/
																									/* struct FAMECoProzess			*/
	struct	FAMECoProcRequest	fcpl_Req;							/* Request structure				*/
	struct	timerequest				fcpl_TimerIO[10];			/* 10 Time Requests					*/
	BYTE											fcpl_TimerIOSet[10];	/* 10 flags for fcpl_TimerIO*/
	char											fcpl_CoProcName[42],	/* The name of the CoProc		*/
																									/* (NewBroker like)					*/
														fcpl_CoProcTitle[42],	/* The title of the CoProc	*/
																									/* (NewBroker like)					*/
														fcpl_CoProcDesc[42],	/* The description of the		*/
																									/* CoProc (NewBroker like)	*/
														fcpl_CoProcAction[42];/* Text msg showen on Server*/
	ULONG											fcpl_ReqIdentify[10],	/* To identify CoProc Req		*/
														fcpl_Reserved,				/* Reserved!								*/
														fcpl_BitFlags;				/* A bit mask for future use*/
	APTR											fcpl_APTRReserved1,		/* Reserved APTR						*/
														fcpl_APTRReserved2;		/* Reserved APTR						*/
	BYTE											fcpl_HHNext,					/* Ptr to next HH start time*/
														fcpl_MMNext;					/* Ptr to next MM start time*/
};

/*
 * External CoProcess Port Structure, version 0.
 */

struct	FAMECoProcessMsg
{
	struct	Message						fcpm_Msg;						/* Message Structure (System)	*/
	ULONG											fcpm_Registration,	/* To identify this structure	*/
														fcpm_ReqIdentify;		/* To identify the CoProcess	*/
																								/* Request										*/
	struct	FAMECoProcRequest	*fcpm_Req;					/* Request structure					*/
	STRPTR										fcpm_CoProcName,		/* The name of the CoProc			*/
																								/* (NewBroker like)						*/
														fcpm_CoProcTitle,		/* The title of the CoProc		*/
																								/* (NewBroker like)						*/
														fcpm_CoProcDesc,		/* The descript. of the CoProc*/
																								/* (NewBroker like)						*/
														fcpm_CoProcAction;	/* Text msg showen on Server	*/
	long											fcpm_Command,				/* The command to the Server	*/
														fcpm_Data1,					/* long based datafield 1			*/
														fcpm_Data2,					/* long based datafield 2			*/
														fcpm_ReturnCode;		/* Returncode from Server			*/
	ULONG											fcpm_Data3,					/* unsigned long based				*/
																								/* datafield 3								*/
														fcpm_Data4,					/* unsigned long based				*/
																								/* datafield 4								*/
														fcpm_UnUsed,
														fcpm_BitFlags;			/* A bit mask for future use	*/
	STRPTR										fcpm_StringPtr;			/* string pointer							*/
	APTR											fcpm_StructDummy1;	/* typeless ptr for structs		*/
																								/* and more										*/
};

/*
 * Returncodes:
 *
 *  7 - FAMECPRC_CoProcNameActFlgUsed	 - CoProcName already used.
 *  6 - FAMECPRC_NoCoProcNameSet			 - fcpm_CoProcName not given.
 *  5 - FAMECPRC_CommandAborted				 - Comand aborted.
 *  4 - FAMECPRC_CommandNotImplemented - Comand not implemented yet.
 *  3 - FAMECPRC_ComandDenied					 - Comand denied.
 *  2 - FAMECPRC_CommandDoesNotExist	 - Comand doesn't exists.
 *  1 - FAMECPRC_CommandNotSuccessful	 - Comand not successfully executed.
 *  0 - FAMECPRC_CommandSuccessful		 - Comand successfully executed.
 * -1 - FAMECPRC_RemoveToolImmediately - Fatal error. Remove tool immediately.
 * -2 - FAMECPRC_WrongReqID						 - Used fcpm_ReqIdentify not set/wrong.
 * -3 - FAMECPRC_UnknownError					 - Unknown error.
 * -4 - FAMECPRC_FAMEToolPortClosed		 - Server has closed the FAMEToolPort.
 *                                       Message direct reply.
 */

/*
 * CoProcess structure.
 * This one is needed to tell the Server of your CoProcess requests.
 */

struct	FAMECoProcRequest
{
	char		fcpr_CoPrStartPath[64];			/* (PartPath)/Name for the CoProcess		*/
	BYTE		fcpr_StartHH[10],						/* Start time 1 - hours (0-23) and			*/
					fcpr_StartMM[10],						/* Start time 1 - minutes (0-59)				*/
					fcpr_Active[10];						/* Activate start times 1-10						*/
	ULONG		fcpr_ActionFlag,						/* CoProc's own identify value for act.	*/
					fcpr_Flag1,									/* Flags 1															*/
					fcpr_Reserved;							/* Reserved!														*/
};

-------------[ FAMEInternLists.h ]--------------------------------------------

New structure:
~~~~~~~~~~~~~~
/*
 * FAMEToolPort FIM FAMEDoorMsg structure list.
 *
 * A list of FAMEDoorMsg structures needed for the FAMEToolPort command
 * FAMETP_FIMCommand.
 */

struct	FAMEToolPortFIMLst
{
	struct	FAMEDoorMsg					ftpfl_DoorMessage;	/* The DoorMsg for FIM cmds	*/
	struct  FAMEToolPortFIMLst	*ftpfl_Next;				/* List next pointer				*/
	struct	FIMInterpret				ftpfl_FIMInterpret;	/* The FIM interpret struct	*/
	char												ftpfl_Doorstr[256],	/* FIM interpret buffer			*/
															ftpfl_Doorstr2[256];/* FIM interpret buffer 2		*/
	STRPTR											ftpfl_ToolName;			/* The name of the TPTool		*/
																									/* (NewBroker like)					*/
	long												ftpfl_Num,					/* Number for multiple			*/
																									/* tools (identify)					*/
															ftpfl_Node,					/* A Node number						*/
															ftpfl_Counter;			/* A counter								*/
	ULONG												ftpfl_BitFlags,			/* A bitmask for future use	*/
															ftpfl_IdentifyCode;	/* To identify the Tool			*/
};

-------------[ FAMECoProcCommands.h ]---------------------------------------

New include file "FAMECoProcCommands.h" opened.

Included defines:
~~~~~~~~~~~~~~~~~
#define	FAMECP_RequestInstall				1
#define	FAMECP_RequestEdit					2
#define	FAMECP_RequestEdited				3
#define	FAMECP_RequestAction				4
#define	FAMECP_RemoveRequests				5

-------------[ FAMEToolPortCommands.h ]---------------------------------------

New include file "FAMEToolPortCommands.h" opened.

Included defines:
~~~~~~~~~~~~~~~~~
#define	FAMETP_Update								0
#define	FAMETP_UpdateAll						5
#define	FAMETP_Register							1
#define	FAMETP_EndRegister					2
#define	FAMETP_InfoStructs					3
#define	FAMETP_FDCMP								4
#define	FAMETP_DisplayTextToNode		7
#define	FAMETP_DisplayAwaitTextNode 8
#define	FAMETP_RequestAwaitBullMode	9
#define	FAMETP_FIMCommand						10
#define	FAMETP_SysOpAway						11
#define	FAMETP_SVNodesBankSwitch		1000
#define	FAMETP_SVOpenAboutWin				1001
#define	FAMETP_SVCloseAboutWin			1002
#define	FAMETP_SVSaveWin						1003
#define	FAMETP_SVIconify						1004
#define	FAMETP_SVUnIconify					1005
#define	FAMETP_SVOpenTPCPWin				1006
#define	FAMETP_SVCloseTPCPWin				1007
#define	FAMETP_SVOpenAwayWin				1008
#define	FAMETP_SVCloseAwayWin				1009
#define	FAMETP_SVSmall							1010
#define	FAMETP_SVFull								1011
#define	FAMETP_SVLCSelect						1012
#define	FAMETP_SVLUSelect						1013
#define	FAMETP_SVLDSelect						1014
#define	FAMETP_SVGadgetBank					1015
#define	FAMETP_SVDropAllUser				1016
#define	FAMETP_SVEndAllNodes				1017
#define	FAMETP_SVExit								1018
#define	FAMETP_SVBBSLocationPath		1019
#define	FAMETP_SVBBSName						1020
#define	FAMETP_SVBBSOrigin					1021
#define	FAMETP_SVSysOpName					1022
#define	FAMETP_SVNumOfNodes					1023
#define	FAMETP_SVVersion						1024
#define	FAMETP_SVRevision						1025
#define	FAMETP_SVStartedTime				1026
#define	FAMETP_Node_Start						2000
#define	FAMETP_Node_End							2001
#define	FAMETP_Node_Suspend					2002
#define	FAMETP_Node_Resume					2003
#define	FAMETP_Node_ChatOnOff				2004
#define	FAMETP_Node_OpenInfo				2005
#define	FAMETP_Node_CloseInfo				2006
#define	FAMETP_Node_InfoTool				2007
#define	FAMETP_Node_UserEditor			2008
#define	FAMETP_Node_SendString			2009
#define	FAMETP_SB1_SysOpLogin				3000
#define	FAMETP_SB1_SysOpFastLogin		3001
#define	FAMETP_SB1_LocalLogin				3002
#define	FAMETP_SB1_LocalFastLogin		3003
#define	FAMETP_SB1_ExitNode					3004
#define	FAMETP_SB1_ExitNodeOffHook	3005
#define	FAMETP_SB1_RemoteLogin			3006
#define	FAMETP_SB1_RemoteFastLogin	3007
#define	FAMETP_SB1_IconifyNode			3008
#define	FAMETP_SB1_SystemEditor			3009
#define	FAMETP_SB1_InitModem				3010
#define	FAMETP_SB1_NodeChat					3011
#define	FAMETP_SB1_DropUser					3012
#define	FAMETP_SB1_UserEditor				3013
#define	FAMETP_SB2_ReserveNode			3100
#define	FAMETP_SB2_SpyNode					3101
#define	FAMETP_SB2_QuietNode				3102
#define	FAMETP_SB2_NotUsed1					3103
#define	FAMETP_SB2_NotUsed2					3104
#define	FAMETP_SB2_NotUsed3					3105
#define	FAMETP_SB2_NotUsed4					3106
#define	FAMETP_SB2_NotUsed5					3107
#define	FAMETP_SB2_AllIconify				3108
#define	FAMETP_SB2_NotUsed6					3109
#define	FAMETP_SB2_NotUsed7					3110
#define	FAMETP_SB2_SysOpAway				3111
#define	FAMETP_SB2_NotUsed8					3112
#define	FAMETP_SB2_NotUsed9					3113
#define	FAMETP_UB1_Gadget1					3200
#define	FAMETP_UB1_Gadget2					3201
#define	FAMETP_UB1_Gadget3					3202
#define	FAMETP_UB1_Gadget4					3203
#define	FAMETP_UB1_Gadget5					3204
#define	FAMETP_UB1_Gadget6					3205
#define	FAMETP_UB1_Gadget7					3206
#define	FAMETP_UB1_Gadget8					3207
#define	FAMETP_UB1_Gadget9					3208
#define	FAMETP_UB1_Gadget10					3209
#define	FAMETP_UB1_Gadget11					3210
#define	FAMETP_UB1_Gadget12					3211
#define	FAMETP_UB1_Gadget13					3212
#define	FAMETP_UB1_Gadget14					3213
#define	FAMETP_UB2_Gadget1					3300
#define	FAMETP_UB2_Gadget2					3301
#define	FAMETP_UB2_Gadget3					3302
#define	FAMETP_UB2_Gadget4					3303
#define	FAMETP_UB2_Gadget5					3304
#define	FAMETP_UB2_Gadget6					3305
#define	FAMETP_UB2_Gadget7					3306
#define	FAMETP_UB2_Gadget8					3307
#define	FAMETP_UB2_Gadget9					3308
#define	FAMETP_UB2_Gadget10					3309
#define	FAMETP_UB2_Gadget11					3310
#define	FAMETP_UB2_Gadget12					3311
#define	FAMETP_UB2_Gadget13					3312
#define	FAMETP_UB2_Gadget14					3313

-------------[ FAMEDefine.h ]-------------------------------------------------

Enhanced defines:
~~~~~~~~~~~~~~~~~
/*
 * Rawkey Codes
 */

#define	HELP_CODE										95
#define	RAMIGA_CODE									103
#define	CURSOR_UP_CODE							76
#define	CURSOR_DOWN_CODE						77
#define	CURSOR_RIGHT_CODE						78
#define	CURSOR_LEFT_CODE						79
#define	LSHIFT_CODE									96
#define	RSHIFT_CODE									97
#define	SPACE_CODE									64
#define	F01_CODE										80
#define	F02_CODE										81
#define	F03_CODE										82
#define	F04_CODE										83
#define	F05_CODE										84
#define	F06_CODE										85
#define	F07_CODE										86
#define	F08_CODE										87
#define	F09_CODE										88
#define	F10_CODE										89
#define	KEY_0_CODE									1
#define	KEY_1_CODE									2
#define	KEY_2_CODE									3
#define	KEY_3_CODE									4
#define	KEY_4_CODE									5
#define	KEY_5_CODE									6
#define	KEY_6_CODE									7
#define	KEY_7_CODE									8
#define	KEY_8_CODE									9
#define	KEY_9_CODE									10
#define	KEY_A_CODE									32
#define	KEY_B_CODE									53
#define	KEY_C_CODE									51
#define	KEY_D_CODE									34
#define	KEY_E_CODE									18
#define	KEY_F_CODE									35
#define	KEY_G_CODE									36
#define	KEY_H_CODE									37
#define	KEY_I_CODE									23
#define	KEY_L_CODE									40
#define	KEY_M_CODE									55
#define	KEY_N_CODE									54
#define	KEY_O_CODE									24
#define	KEY_P_CODE									25
#define	KEY_R_CODE									19
#define	KEY_S_CODE									33
#define	KEY_T_CODE									20
#define	KEY_U_CODE									22
#define	KEY_Y_CODE									49
#define	KEY_QUESTMARK_CODE					11
#define	KEY_ROOF_CODE								43
#define	KEY_DBLCROSS_CODE						43
#define	KEY_ESC_CODE								69
#define	KEY_TAB_CODE								66

New defines:
~~~~~~~~~~~~
/*
 * FAMECfgFlag3 defines (FAME Config)
 */

#define	FAMECfg_OwnScreen					(1 << 0)

/*
 * ServerCommands
 */

#define	SERVER_FGPSOpen							10018

/*
 * FAMECfgFlag2 defines (FAME Config)
 */

#define	FAMECfg_UserEdLock				(1 << 31)

/*
 * Display case defines
 */

#define	FAME_CONSER											0
#define	FAME_CON												1
#define	FAME_SER												2

/*
 * FAME (enter) Mail ddefines
 */

#define	MSGTYPE_OLM											-1
#define	MSGTYPE_WRITE_EDIT_TXT					0
#define	MSGTYPE_COMMENT_MAIL						1
#define	MSGTYPE_NORMAL_MAIL							2
#define	MSGTYPE_REPLY_MAIL							3
#define	MSGTYPE_PART_MAIL								4
#define	MSGTYPE_EDIT_MAIL								5
#define	MSGTYPE_DOOR_MAIL								10

/*
 * FAME Mail Types
 */

#define	MAILTYPE_PUBLIC									0
#define	MAILTYPE_PRIVATE								1
#define	MAILTYPE_ALL										2
#define	MAILTYPE_EALL										3
#define	MAILTYPE_UEALL									4

/*
 * FAME Message Auto Delete flag defines
 */

#define	MAD_NEVER												0
#define	MAD_DEFAULT											-1
#define	MAD_MIN													-2
#define	MAD_MAX													-3
#define	MAD_PROMPT											-4

/*
 * SystemEditor window direct defines (JUMP argument)
 */

#define	SYSED_WND_AutoDeleteMails				38

/*
 * MainPart DebugLog Types
 */

#define	MPDLT_GLO_DEBUGLOG							0
#define	MPDLT_FIM_DEBUGLOG							1
#define	MPDLT_XIM_DEBUGLOG							2
#define	MPDLT_AIM_DEBUGLOG							3
#define	MPDLT_TIM_DEBUGLOG							4

/*
 * Interface Module defines
 */

#define	IMT_DOORCONFIG									-1
#define	IMT_FIM													0
#define	IMT_XIM													1
#define	IMT_TIM													2
#define	IMT_AIM													3
#define	IMT_CIM													4
#define	IMT_RIM													5
#define	IMT_SIM													6
#define	IMT_TXT													7
#define	IMT_SND													8
#define	IMT_SPK													9
#define	IMT_GFM													10

/*
 * FAME Mail/File Scanner defines
 */

#define	FAMESCAN_NOMAILFILESCAN		0
#define	FAMESCAN_MAILFILESCAN			1
#define	FAMESCAN_MAILSCAN					2
#define	FAMESCAN_FILESCAN					3
#define	FAMESCAN_PROMPT						4

/*
 * FileChecker process defines
 */

#define	FFCC_CHECKFILE						1
#define	FFCC_REQUESTINFOLIST			2
#define	FFCC_POSTFILE							3

#define	FFCD_OUTPUT								(1 << 0)

#define	FFCM_SKIPDUPECHECK				(1 << 0)

#define	FCSB_FILEPOSTED						(1 << 0)
#define	FCSB_HOLDFILE							(1 << 1)

#define	FFCP_RESULT_OK						RETURN_OK
#define	FFCP_RESULT_NO_INTUILIB		RETURN_FAIL + 1
#define	FFCP_RESULT_NO_FAMELIB		RETURN_FAIL + 2
#define	FFCP_RESULT_NO_FILEIDLIB	RETURN_FAIL + 3
#define	FFCP_RESULT_NO_NODEMSG		RETURN_FAIL + 4
#define	FFCP_RESULT_NO_REPLYPORT	RETURN_FAIL + 5
#define	FFCP_RESULT_NO_FIPATHSTR	RETURN_FAIL + 6
#define	FFCP_RESULT_NO_CUTFILESTR	RETURN_FAIL + 7
#define	FFCP_RESULT_NO_TEMPSTR		RETURN_FAIL + 8
#define	FFCP_RESULT_NO_FCHECKPORT	RETURN_FAIL + 9
#define	FFCP_RESULT_NO_DATASTRUCT	RETURN_FAIL + 10

Obsolete define:
~~~~~~~~~~~~~~~~
/*
 * Header defines of FAME Datafiles
 */

// ---------- OBSOLETE ---------- //
#define	FAMECOPR		31	/* xyz.dat located in Settings/CoProzesses/
													 to tell the Server which CoProzesses are avail
													 and their requests. This Data is a defined structure
													 for detail look out for: struct CoProzess in
													 GlobalBBSStructs.c */
// ---------- OBSOLETE ---------- //

Moved defines:
~~~~~~~~~~~~~~
Moved the following FAMEToolPort command defines into the new opened file
"FAMEToolPortCommands.h".

/*
 * FAMEToolPort command defines (struct FAMEToolPortMsg -> ftpm_Command)
 */

#define	FAMETP_Update								0
#define	FAMETP_Register							1
#define	FAMETP_EndRegister					2
#define	FAMETP_InfoStructs					3
#define	FAMETP_FDCMP								4
#define	FAMETP_UpdateAll						5
#define	FAMETP_DisplayTextToNode		7
#define	FAMETP_DisplayAwaitTextNode 8
#define	FAMETP_RequestAwaitBullMode	9

New defines:
~~~~~~~~~~~~
/*
 * FAMECoProc return codes (struct FAMECoProcessMsg -> fcpm_ReturnCode)
 */

#define	FAMECPRC_CoProcNameActFlgUsed		7
#define	FAMECPRC_NoCoProcNameSet				6
#define	FAMECPRC_CommandAborted					5
#define	FAMECPRC_CommandNotImplemented	4
#define	FAMECPRC_ComandDenied						3
#define	FAMECPRC_CommandDoesNotExist		2
#define	FAMECPRC_CommandNotSuccessful		1
#define	FAMECPRC_CommandSuccessful			0
#define	FAMECPRC_RemoveToolImmediately	-1
#define	FAMECPRC_WrongReqID							-2
#define	FAMECPRC_UnknownError						-3
#define	FAMECPRC_FAMEToolPortClosed			-4

/*
 * FAME CoProc struct FAMECoProcRequest -> fcpr_Flag1 defines
 */

#define	FCPR_ACTIVATED									(1 << 0)
#define	FCPR_SVINT_FLGDEL								(1 << 31)

/*
 * Server CP / TP defines
 */

#define	CPTP_ISCP							0
#define	CPTP_ISTP							1

/*
 * FAMEInfoStruct defines
 */

#define	FIS_FAMEInfoList					1

/*
 * Server About gadget type
 */

#define	SVAbout_Default				0
#define	SVAbout_QuitAbout			1
#define	SVAbout_MainCode			2
#define	SVAbout_DevelopTeam		3
#define	SVAbout_SupportTeam		4
#define	SVAbout_SupportBBS		5
#define	SVAbout_BetaTesters		6
#define	SVAbout_DistSites			7
#define	SVAbout_NotUsed1			8
#define	SVAbout_NotUsed2			9
#define	SVAbout_NotUsed3			10

/*
 * Server Gadget Bank defines
 */

#define	SVGadBnk_SystemBank1	0
#define	SVGadBnk_SystemBank2	1
#define	SVGadBnk_UserBank1		2
#define	SVGadBnk_UserBank2		3

/*
 * Last 10 Callers/Uploaders/Downloaders defines
 */

#define	LTCUD_Callers					0
#define	LTCUD_Uploaders				1
#define	LTCUD_Downloaders			2

/*
 * Server list Node online defines
 */

#define	SVLSTNO_STARTING			-1
#define	SVLSTNO_SHUTDOWN			0
#define	SVLSTNO_ONLINE				1

/*
 * Server StartProcess defines
 */

#define	STARTPROC_MinNode					0
#define	STARTPROC_SystemEditor		-1
#define	STARTPROC_UserEditor			-2
#define	STARTPROC_ServerInfoTool	-3
#define	STARTPROC_SystemEdNewNode	-4
#define	STARTPROC_CoProcSVAction	-5
#define	STARTPROC_CoProcSVEdit		-6
#define	STARTPROC_UserBtnCmd0			-10
#define	STARTPROC_UserBtnCmd1			-11
#define	STARTPROC_UserBtnCmd2			-12
#define	STARTPROC_UserBtnCmd3			-13
#define	STARTPROC_UserBtnCmd4			-14
#define	STARTPROC_UserBtnCmd5			-15
#define	STARTPROC_UserBtnCmd6			-16
#define	STARTPROC_UserBtnCmd7			-17
#define	STARTPROC_UserBtnCmd8			-18
#define	STARTPROC_UserBtnCmd9			-19
#define	STARTPROC_UserBtnCmd10		-20
#define	STARTPROC_UserBtnCmd11		-21
#define	STARTPROC_UserBtnCmd12		-22
#define	STARTPROC_UserBtnCmd13		-23
#define	STARTPROC_UserBtnCmd14		-24
#define	STARTPROC_UserBtnCmd15		-25
#define	STARTPROC_UserBtnCmd16		-26
#define	STARTPROC_UserBtnCmd17		-27
#define	STARTPROC_UserBtnCmd18		-28
#define	STARTPROC_UserBtnCmd19		-29
#define	STARTPROC_UserBtnCmd20		-30
#define	STARTPROC_UserBtnCmd21		-31
#define	STARTPROC_UserBtnCmd22		-32
#define	STARTPROC_UserBtnCmd23		-33
#define	STARTPROC_UserBtnCmd24		-34
#define	STARTPROC_UserBtnCmd25		-35
#define	STARTPROC_UserBtnCmd26		-36
#define	STARTPROC_UserBtnCmd27		-37

-------------[ FAMEPublicStructs.h]-------------------------------------------

New structure:
~~~~~~~~~~~~~~
/*
 * FAMETPSemaphore.
 *
 * The Semaphore which will be used on accessing the FAMEToolPort.
 */

struct FAMETPSemaphore
{
	struct	SignalSemaphore	ftps_Semaphore;			/* The Signal Semaphore					*/
	STRPTR									ftps_SVVersionStr;	/* A pointer to the Server's		*/
																							/* version string								*/
	long										ftps_SVVersion,			/* Server's version							*/
													ftps_SVRevision,		/* Server's revision						*/
													ftps_LongNotUsed1,
													ftps_LongNotUsed2,
													ftps_LongNotUsed3,
													ftps_LongNotUsed4,
													ftps_LongNotUsed5;
	ULONG										ftps_ULongNotUsed1,
													ftps_ULongNotUsed2,
													ftps_ULongNotUsed3,
													ftps_ULongNotUsed4,
													ftps_ULongNotUsed5;
};

-------------[ FAMEInternStructs.h ]------------------------------------------

New structures:
~~~~~~~~~~~~~~~
/*
 * A Hook data structure used by the ListView Hook of Server's CoProc/ToolPort
 * info process.
 */

struct	CPTPHookData
{
	struct	GfxBase						*cptphd_GfxBase;				/* CoProc's GfxBase			*/
	struct	FAMELibrary				*cptphd_FAMEBase;				/* CoProc's FAMEBase		*/
	void (* cptphd_CPTPSPrintf) (char *Buffer, char *ctl, ...);	/* Sprintf		*/
};

/*
 * A message structure used by the Server to send requests to
 * the CoProc/ToolPort info process.
 */

struct	CPTPMessage
{
	struct	Message						cptpm_Message;					/* Message structure		*/
	LONG											cptpm_RetCmd;						/* Command / Return			*/
};

/*
 * The Node entry structure used be the ListViews in the CoProc/ToolPort info
 * process main window. Including a pointer to the Hook data structure used
 * by the ListView Hook to get library bases and more to prevent off using
 * _saveds to save the near data pointer.
 */

struct	CPTPNode
{
	struct	Node							cptpn_Node;							/* The Node entry				*/
	struct	FAMEToolPortLst		*cptpn_FTPLst;					/* Ptr to TP list entry	*/
	struct	FAMECoProcList		*cptpn_FCPLst;					/* Ptr to CP list entry	*/
	BYTE											*cptpn_Name;						/* Ptr to Name buffer		*/
	struct	CPTPHookData			*cptpn_HookData;				/* Hook data pointer		*/
	short		int								cptpn_CPorTP;						/* CoProc or ToolPort?	*/
};

Enhanced structure:
~~~~~~~~~~~~~~~~~~~
/*
 * Structure for Server CoProc/ToolPort info process.
 */

struct	FAMEServerCPTPProc
{
	struct	MsgPort						*cptp_CPTPPort,					/* CPTPProc's MsgPort		*/
														*cptp_ServerPort;				/* Server's in MsgPort	*/
	struct	Process						*cptp_ServerProcess;		/* Server Process ptr		*/
	struct	SignalSemaphore		*cptp_CPTPSemaphore;		/* List lock Semaphore	*/
	struct	FAMEToolPortLst		*cptp_FAMETPList,				/* FAMEToolPort list		*/
														*cptp_FAMETPListEntry;	/* FAMEToolPort list		*/
																										/* actual entry					*/
	struct	FAMECoProcList		*cptp_FAMECPList,				/* FAMECoProc list			*/
														*cptp_FAMECPListEntry;	/* FAMECoProc list			*/
																										/* actual entry					*/
	struct	FAMEServerConfig	*cptp_FAMESvConfig;			/* Server config ptr		*/
	struct	NodeListStamm			*cptp_NdLstStamm;				/* Server internal			*/
																										/* Liststamm						*/
	struct	sYSTEM						*cptp_aKTsYSTEM;				/* System data pointer	*/
	struct	IntuiText					*cptp_CoProTPIText,			/* Pointer to IntuiText */
														*cptp_CoProWinIText,		/* Pointer to IntuiText	*/
														*cptp_ToolPortWinIText;	/* Pointer to IntuiText	*/
	STRPTR										cptp_PubScrName,				/* Server's PubScr Name	*/
														cptp_StringPtr1,				/* String pointer 1			*/
														cptp_Stringptr2;				/* String pointer 2			*/
	LONG											cptp_Command,						/* Command to CPTP Proc	*/
														cptp_LData1,						/* Long Data 1					*/
														cptp_LData2;						/* Long Data 2					*/
	ULONG											cptp_UData1,						/* ULong Data 1					*/
														cptp_Udata2,						/* ULong Data 2					*/
														cptp_BitFlags1,					/* Bit Flags 1					*/
														cptp_BitFlags2;					/* Bit Flags 2					*/
	APTR											cptp_APTRDummy1,				/* APTR dummy pointer 1	*/
														cptp_APTRDummy2;				/* APTR dummy pointer 2	*/
	void (* cptp_CPTPSPrintf) (char *Buffer, char *ctl, ...); /* Sprintf func	*/
	struct	NewGadget					*cptp_ToolPortWinNGad;	/* Newgadget for TP win */
	long											*cptp_FDCMPGadHelp;			/* FDCMP GadgetHelp			*/
	struct	Hook							*cptp_ListViewHook;			/* ListView Hook ptr		*/
	struct	CPTPHookData			cptp_CPTPHookData;			/* Hook data structure	*/
};

-------------[ FAMEInternLists.h / FAMEPublicStructs.h]-----------------------

Enhanced structures:
~~~~~~~~~~~~~~~~~~~~
/*
 * List structure for ToolPort list.
 *
 * This structure will be a list of tools accessing the ToolPort for
 * informations. These tools are normally waiting for special actions
 * in a notification mechanism like IDCMP the FDCMP.
 */

struct	FAMEToolPortLst
{
	struct	FAMEToolPortLst	*ftpl_Next,					/* List next Pointer						*/
													*ftpl_Prev;					/* List previous Pointer				*/
	struct	MsgPort					*ftpl_MsgPort;			/* Ptr to tool's notify MsgPort	*/
	struct	Task						*ftpl_Task;					/* The task ptr of the caller		*/
	STRPTR									ftpl_ToolName,			/* The name of the TPTool				*/
																							/* (NewBroker like)							*/
													ftpl_ToolTitle,			/* The title of the TPTool			*/
																							/* (NewBroker like)							*/
													ftpl_ToolDesc,			/* The description of the				*/
																							/* TPTool (NewBroker like)			*/
													ftpl_ToolAction;		/* Text msg shown on Server			*/
	long										ftpl_Num,						/* Number for multiple Tools		*/
																							/* (identify)										*/
													ftpl_Node;					/* A Node number								*/
	ULONG										ftpl_BitFlags,			/* A bit mask for future use		*/
													ftpl_BitRequests1,	/* A bit mask for requests 1		*/
													ftpl_BitRequests2,	/* A bit mask for requests 2		*/
													ftpl_BitRequests3,	/* A bit mask for requests 3		*/
													ftpl_BitRequests4,	/* A bit mask for requests 4		*/
													ftpl_BitRequests5,	/* A bit mask for requests 5		*/
													ftpl_BitRequests6,	/* A bit mask for requests 6		*/
													ftpl_BitRequests7,	/* A bit mask for requests 7		*/
													ftpl_BitRequests8,	/* A bit mask for requests 8		*/
													ftpl_BitRequests9,	/* A bit mask for requests 9		*/
													ftpl_BitRequests10,	/* A bit mask for requests 10		*/
													ftpl_IdentifyCode;	/* To identify the Tool					*/
};

/*
 * ToolPort message structure to let the Server receive requests from tools,
 * version 0.
 *
 * NOTE: FAMEToolPort and CoProcess is currently not available!!!
 *       Do not use it yet !!!
 */

struct	FAMEToolPortMsg
{
	struct	Message	ftpm_Msg;						/* Message Structure (System)						*/
	ULONG						ftpm_Registration;	/* To identify this structure						*/
	struct	Task		*ftpm_Task;					/* The task pointer of the caller				*/
	STRPTR					ftpm_ToolName,			/* The name of the TPTool								*/
																			/* (NewBroker like)											*/
									ftpm_ToolTitle,			/* The title of the TPTool							*/
																			/* (NewBroker like)											*/
									ftpm_ToolDesc,			/* The description of the TPTool				*/
																			/* (NewBroker like)											*/
									ftpm_ToolAction;		/* Text msg shown on Server							*/
	long						ftpm_Command,				/* The command to the Server Tool Port	*/
									ftpm_Data1,					/* long based datafield 1								*/
									ftpm_Data2,					/* long based datafield 2								*/
									ftpm_ReturnCode,		/* Returncode from Server								*/
									ftpm_Num,						/* Number for multiple Tools (identify)	*/
									ftpm_Node;					/* The Node you may mean								*/
	ULONG						ftpm_Data3,					/* unsigned long based datafield 3			*/
									ftpm_Data4,					/* unsigned long based datafield 4			*/
									ftpm_UnUsed,
									ftpm_BitFlags,			/* A bit mask for future use						*/
									ftpm_BitRequests1,	/* A bit mask for requests 1						*/
									ftpm_BitRequests2,	/* A bit mask for requests 2						*/
									ftpm_BitRequests3,	/* A bit mask for requests 3						*/
									ftpm_BitRequests4,	/* A bit mask for requests 4						*/
									ftpm_BitRequests5,	/* A bit mask for requests 5						*/
									ftpm_BitRequests6,	/* A bit mask for requests 6						*/
									ftpm_BitRequests7,	/* A bit mask for requests 7						*/
									ftpm_BitRequests8,	/* A bit mask for requests 8						*/
									ftpm_BitRequests9,	/* A bit mask for requests 9						*/
									ftpm_BitRequests10,	/* A bit mask for requests 10						*/
									ftpm_IdentifyCode;	/* To identify the Tool. DO NOT TOUCH !	*/
	STRPTR					ftpm_StringPtr1,		/* string pointer 1											*/
									ftpm_StringPtr2;		/* string pointer 2											*/
	APTR						ftpm_StructDummy1,	/* typeless ptr for structs and more 1	*/
									ftpm_StructDummy2;	/* typeless ptr for structs and more 2	*/
};

/*
 * Tool notify message structure to inform the tools using ToolPort of actions.
 *
 * NOTE: FAMEToolPort and CoProcess is currently not available!!!
 *       Do not use it yet !!!
 */

struct	FAMEToolNotifyMsg
{
	struct	Message	ftnm_Msg;						/* Message Structure (System)						*/
	ULONG						ftnm_Registration,	/* To identify this structure						*/
									ftnm_Notify;				/* The notify define										*/
	long						ftnm_Data1,					/* long based datafield 1								*/
									ftnm_ReturnCode,		/* Returncode from Tool									*/
									ftnm_Num,						/* Number for multiple Tools (identify)	*/
									ftnm_Node;					/* Node number of the FDCMP event				*/
	ULONG						ftnm_Data2,					/* unsigned long based datafield 2			*/
									ftnm_UnUsed,
									ftnm_BitFlags,			/* A bit mask for future use						*/
									ftnm_BitRequests1,	/* A bit mask for requests 1						*/
									ftnm_BitRequests2,	/* A bit mask for requests 2						*/
									ftnm_BitRequests3,	/* A bit mask for requests 3						*/
									ftnm_BitRequests4,	/* A bit mask for requests 4						*/
									ftnm_BitRequests5,	/* A bit mask for requests 5						*/
									ftnm_BitRequests6,	/* A bit mask for requests 6						*/
									ftnm_BitRequests7,	/* A bit mask for requests 7						*/
									ftnm_BitRequests8,	/* A bit mask for requests 8						*/
									ftnm_BitRequests9,	/* A bit mask for requests 9						*/
									ftnm_BitRequests10,	/* A bit mask for requests 10						*/
									ftnm_IdentifyCode;	/* To identify the Tool									*/
	STRPTR					ftnm_StringPtr;			/* string pointer												*/
	APTR						ftnm_StructDummy1;	/* typeless ptr for structs and more		*/
};

-------------[ FAMEPublicStructs.h]-------------------------------------------

New structure:
~~~~~~~~~~~~~~
/*
 * User Profile structure.
 *
 * Elements with "upsi_" marked are User Profile Structure Informations
 * and won't be used as datas for user settings import.
 *
 * Elements with "upus_" marked are User Structure User Settings
 * and will be used as datas for user settings export and import.
 */

struct UserProfile
{
	char			upsi_UserName[32],
						upus_UserLocation[32],
						upus_UserFrom[32],
						upus_UserPhone[16],
						upus_MsgHeadLine[1026],
						upus_MsgTagLine[1026],
						upus_Birthday[10],
						upus_Menuprompt[202];
	ULONG			upus_ShellNumLines,
						upus_NToNComFlag1,
						upus_NToNComFlag2;
	short	int	upsi_CompiType,
						upsi_ModemType,
						upsi_Extension,
						upus_NumLines,
						upus_NewScan,
						upus_Ansi_On_Off,
						upus_DefaultProt,
						upus_UploadProt,
						upus_DownloadProt,
						upus_MsgUploadProt,
						upus_MsgDownloadProt,
						upus_DoorUploadProt,
						upus_DoorDownloadProt,
						upus_UserBlockSize,
						upus_UFlg1UD_HIDE,
						upus_UFlg1UD_MSGCLS,
						upus_UFlg1UD_FILECLS,
						upus_UFlg1UD_UFLAG,
						upus_UFlg1UD_DFLAG,
						upus_UFlg1UD_SWAPREDWHITE,
						upus_UFlg1UD_EXPERT,
						upus_UFlg1UD_AUTOFORCEONWHO,
						upus_UFlg1UD_FILECHECKPROCESS,
						upus_UFlg1UD_BACKGROUNDPOST,
						upus_UFlg1UD_FILENAMELENGTH,
						upus_UFlg1UD_MSGROOM,
						upus_UFlg1UD_ASCIIMSG,
						upus_UFlg1UD_AUTOQUOTE,
						upus_UFlg1UD_KEEPREPLYPRIV,
						upus_UFlg1UD_KEEPREPLYSUBJECT;
	USHORT		upus_Editor,
						upsi_UserNumber;
	short int	upus_MADRedDefPub,
						upus_MADDefPub,
						upus_MADRedDefPriv,
						upus_MADDefPriv,
						upus_MADRedDefALL,
						upus_MADDefALL,
						upus_MADRedDefEALL,
						upus_MADDefEALL,
						upus_MADRedDefUEALL,
						upus_MADDefUEALL;
	char			upus_Reserved[16364];
};

-------------[ FAMEDefine.h ]-------------------------------------------------

New defines:
~~~~~~~~~~~~
/*
 * ServerCommands
 */

#define	SERVER_DisplayTextToNode		3127
#define	SERVER_DisplayAwaitTextNode	3128
#define	SERVER_AwaitBulletinStart		3129
#define	SERVER_AwaitBulletinStop		3130
#define	SERVER_RequestAwaitBullMode	3131
#define	SERVER_FIMCommand						3132

#define	SERVER_SendString						10017

/*
 * FDCMP define types
 */

#define	FDCMPBitReq_1										1
#define	FDCMPBitReq_2										2
#define	FDCMPBitReq_3										3
#define	FDCMPBitReq_4										4
#define	FDCMPBitReq_5										5
#define	FDCMPBitReq_6										6
#define	FDCMPBitReq_7										7
#define	FDCMPBitReq_8										8
#define	FDCMPBitReq_9										9
#define	FDCMPBitReq_10									10

Changed/Enhanced defines and descriptions:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/*
 * FAMEToolPort command defines (struct FAMEToolPortMsg -> ftpm_Command)
 */

#define	FAMETP_Update										0
#define	FAMETP_Register									1
#define	FAMETP_EndRegister							2
#define	FAMETP_InfoStructs							3
#define	FAMETP_FDCMP										4
#define	FAMETP_UpdateAll								5
#define	FAMETP_DisplayTextToNode				7
#define	FAMETP_DisplayAwaitTextNode		 	8
#define	FAMETP_RequestAwaitBullMode			9

/*
 * FAME CoProc / ToolPort secondary Server process command defines
 */

#define	CPTP_UpFAMECPList								1
#define	CPTP_UpFAMETPList								2
#define	CPTP_UpFAMECPListEntry					3
#define	CPTP_UpFAMETPListEntry					4
#define	CPTP_AddFAMECPListEntry					5
#define	CPTP_AddFAMETPListEntry					6
#define	CPTP_RemFAMECPListEntry					7
#define	CPTP_RemFAMETPListEntry					8
#define	CPTP_UpFAMECPTPLists						9
#define	CPTP_UpFAMECPEdited							10

New defines:
~~~~~~~~~~~
/*
 * FAMEToolPort return codes (struct FAMEToolPortMsg -> ftpm_ReturnCode)
 */

#define	FAMETPRC_NodeNotAvailable				12
#define	FAMETPRC_FIMCommandInProgress		11
#define	FAMETPRC_NoTaskAddressPointer		10
#define	FAMETPRC_AlreadyRegistered			9
#define	FAMETPRC_MustRegisterFirst			8
#define	FAMETPRC_InvalidIdentifyCode		7
#define	FAMETPRC_NoToolNameSet					6
#define	FAMETPRC_CommandAborted					5
#define	FAMETPRC_CommandNotImplemented	4
#define	FAMETPRC_ComandDenied						3
#define	FAMETPRC_CommandDoesNotExist		2
#define	FAMETPRC_CommandNotSuccessful		1
#define	FAMETPRC_CommandSuccessful			0
#define	FAMETPRC_RemoveToolImmediately	-1
#define	FAMETPRC_WrongToolIDOwner				-2
#define	FAMETPRC_UnknownError						-3
#define	FAMETPRC_FAMEToolPortClosed			-4
#define	FAMETPRC_ServerEndQuitTools			-5

/*
 * FDCMP defines I 
 *
 * (struct FAMEToolPortLst -> ftpl_BitRequests1)
 * (struct FAMEToolPortMsg -> ftpm_BitRequests1)
 * (struct FAMEToolNotifyMsg -> ftnm_BitRequests1)
 */

#define	FDCMP_FAME_AWAITCONNECT					(1 << 0)
#define	FDCMP_FAME_LOGGINGON						(1 << 1)
#define	FDCMP_FAME_IDLE									(1 << 2)
#define	FDCMP_FAME_DOWNLOAD							(1 << 3)
#define	FDCMP_FAME_UPLOAD								(1 << 4)
#define	FDCMP_FAME_READMAIL							(1 << 5)
#define	FDCMP_FAME_WRITEMAIL						(1 << 6)
#define	FDCMP_FAME_USERSTATUS						(1 << 7)
#define	FDCMP_FAME_ACCOUNTEDIT					(1 << 8)
#define	FDCMP_FAME_ZOOM									(1 << 9)
#define	FDCMP_FAME_FILELISTING					(1 << 10)
#define	FDCMP_FAME_BULLETINS						(1 << 11)
#define	FDCMP_FAME_VIEWFILES						(1 << 12)
#define	FDCMP_FAME_LOGOFF								(1 << 13)
#define	FDCMP_FAME_SHELL								(1 << 14)
#define	FDCMP_FAME_JOINCONF							(1 << 15)
#define	FDCMP_FAME_SYSOPCHAT						(1 << 16)
#define	FDCMP_FAME_NOTACTIVE						(1 << 17)
#define	FDCMP_FAME_REQCHAT							(1 << 18)
#define	FDCMP_FAME_CONNECT							(1 << 19)
#define	FDCMP_FAME_SCANMAIL							(1 << 20)
#define	FDCMP_FAME_SCANFILES						(1 << 21)
#define	FDCMP_FAME_SHUTDOWN							(1 << 22)
#define	FDCMP_FAME_MULTICHAT						(1 << 23)
#define	FDCMP_FAME_SUSPEND							(1 << 24)
#define	FDCMP_FAME_USERRESERVE					(1 << 25)
#define	FDCMP_FAME_FLAGEDIT							(1 << 26)
#define	FDCMP_FAME_WAITFORKEY						(1 << 27)
#define	FDCMP_FAME_SYSOPCOMENT					(1 << 28)
#define	FDCMP_FAME_BBSHELP							(1 << 29)
#define	FDCMP_FAME_NEWFILES							(1 << 30)
#define	FDCMP_FAME_PAGESYSOP						(1 << 31)

/*
 * FDCMP defines II
 *
 * (struct FAMEToolPortLst -> ftpl_BitRequests2)
 * (struct FAMEToolPortMsg -> ftpm_BitRequests2)
 * (struct FAMEToolNotifyMsg -> ftnm_BitRequests2)
 */

#define	FDCMP_FAME_TIME									(1 << 0)
#define	FDCMP_FAME_CHANGESTATS					(1 << 1)
#define	FDCMP_FAME_SEARCHFOR						(1 << 2)
#define	FDCMP_FAME_VIEWEDCAL						(1 << 3)
#define	FDCMP_FAME_VIEWEDUDL						(1 << 4)
#define	FDCMP_FAME_VIEWEDDOL						(1 << 5)
#define	FDCMP_FAME_EDITFILELST					(1 << 6)
#define	FDCMP_FAME_EDITFILES						(1 << 7)
#define	FDCMP_FAME_ADOSLIST							(1 << 8)
#define	FDCMP_FAME_ADOSDIR							(1 << 9)
#define	FDCMP_FAME_ADOSINFO							(1 << 10)
#define	FDCMP_FAME_WHO									(1 << 11)
#define	FDCMP_FAME_OLM									(1 << 12)
#define	FDCMP_FAME_OLC									(1 << 13)
#define	FDCMP_FAME_OLD									(1 << 14)
#define	FDCMP_FAME_OLG									(1 << 15)
#define	FDCMP_FAME_OLS									(1 << 16)
#define	FDCMP_FAME_OLT									(1 << 17)
#define	FDCMP_FAME_VIEWSYSOP						(1 << 18)
#define	FDCMP_FAME_DOWNSYSOP						(1 << 19)
#define	FDCMP_FAME_MOVE									(1 << 20)
#define	FDCMP_FAME_NUKE									(1 << 21)
#define	FDCMP_FAME_NEWUSER							(1 << 22)
#define	FDCMP_FAME_PWFAIL								(1 << 23)
#define	FDCMP_FAME_STARTNODE						(1 << 24)
#define	FDCMP_FAME_SYSFSTLGN						(1 << 25)
#define	FDCMP_FAME_SYSLGN								(1 << 26)
#define	FDCMP_FAME_LOCFSTLGN						(1 << 27)
#define	FDCMP_FAME_LOCFSTRELGN					(1 << 28)
#define	FDCMP_FAME_LOCLGN								(1 << 29)
#define	FDCMP_FAME_REMFSTLGN						(1 << 30)
#define	FDCMP_FAME_REMLGN								(1 << 31)

/*
 * FDCMP defines III
 *
 * (struct FAMEToolPortLst -> ftpl_BitRequests3)
 * (struct FAMEToolPortMsg -> ftpm_BitRequests3)
 * (struct FAMEToolNotifyMsg -> ftnm_BitRequests3)
 */

#define	FDCMP_FAME_AUTOREJN							(1 << 0)
#define	FDCMP_FAME_FREEDOWN							(1 << 1)
#define	FDCMP_FAME_FREEUP								(1 << 2)
#define	FDCMP_FAME_ULFAIL								(1 << 3)
#define	FDCMP_FAME_DLFAIL								(1 << 4)
#define	FDCMP_FAME_BIRTHDAY							(1 << 5)
#define	FDCMP_FAME_SYSPWFAIL						(1 << 6)
#define	FDCMP_FAME_NUPPWFAIL						(1 << 7)
#define	FDCMP_FAME_ULSTATS							(1 << 8)
#define	FDCMP_FAME_DLSTATS							(1 << 9)
#define	FDCMP_FAME_ULMOVED							(1 << 10)
#define	FDCMP_FAME_ENTEREALL						(1 << 11)
#define	FDCMP_FAME_RELOGIN							(1 << 12)
#define	FDCMP_FAME_SUSPEND_LOGON				(1 << 13)
#define	FDCMP_FAME_RESUME								(1 << 14)
#define	FDCMP_FAME_PREPAREDOWNL					(1 << 15)
#define	FDCMP_FAME_PREPAREUPL						(1 << 16)
#define	FDCMP_FAME_SHUTDOWNOH						(1 << 17)
#define	FDCMP_FAME_LOSTCARRIER					(1 << 18)
#define	FDCMP_FAME_PARTUPLOAD						(1 << 19)
#define	FDCMP_FAME_VIEWTEXT							(1 << 20)
#define	FDCMP_FAME_SCRIPT								(1 << 21)
#define	FDCMP_DOORS											(1 << 22)
#define	FDCMP_SERVER_NodeIsReady				(1 << 23)
#define	FDCMP_SERVER_sCREENS						(1 << 24)
#define	FDCMP_SERVER_nODE								(1 << 25)
#define	FDCMP_SERVER_sYSTEM							(1 << 26)
#define	FDCMP_SERVER_mISC								(1 << 27)
#define	FDCMP_SERVER_pROTOCOL						(1 << 28)
#define	FDCMP_SERVER_fDEBUG							(1 << 29)
#define	FDCMP_SERVER_sERIAL							(1 << 30)
#define	FDCMP_SERVER_mODEM							(1 << 31)

/*
 * FDCMP defines IV
 *
 * (struct FAMEToolPortLst -> ftpl_BitRequests4)
 * (struct FAMEToolPortMsg -> ftpm_BitRequests4)
 * (struct FAMEToolNotifyMsg -> ftnm_BitRequests4)
 */

#define	FDCMP_SERVER_sCREEN							(1 << 0)
#define	FDCMP_SERVER_fAMEmODULES				(1 << 1)
#define	FDCMP_SERVER_aCTIVITIES					(1 << 2)
#define	FDCMP_SERVER_eRROR							(1 << 3)
#define	FDCMP_SERVER_iNTERNdOORS				(1 << 4)
#define	FDCMP_SERVER_cONF_dATA					(1 << 5)
#define	FDCMP_SERVER_GetServerCnf				(1 << 6)
#define	FDCMP_SERVER_DoorName						(1 << 7)
#define	FDCMP_SERVER_NewAction					(1 << 8)
#define	FDCMP_SERVER_NewActionCPS				(1 << 9)
#define	FDCMP_SERVER_ChatFlag						(1 << 10)
#define	FDCMP_SERVER_NamePrompt					(1 << 11)
#define	FDCMP_SERVER_NewUserNamePrompt	(1 << 12)
#define	FDCMP_SERVER_TransferCPS				(1 << 13)
#define	FDCMP_SERVER_InitModem					(1 << 14)
#define	FDCMP_SERVER_NodeEnds						(1 << 15)
#define	FDCMP_SERVER_NoShutDown					(1 << 16)
#define	FDCMP_SERVER_Complete						(1 << 17)
#define	FDCMP_SERVER_ServerCommand			(1 << 18)
#define	FDCMP_SERVER_StartNode					(1 << 19)
#define	FDCMP_SERVER_UpdateNodes				(1 << 20)
#define	FDCMP_SERVER_StringToNode				(1 << 21)
#define	FDCMP_SERVER_StartNodeCmd				(1 << 22)
#define	FDCMP_SERVER_BeADoorOnNode			(1 << 23)
#define	FDCMP_SERVER_OpenDoorPort				(1 << 24)
#define	FDCMP_SERVER_CloseDoorPort			(1 << 25)
#define	FDCMP_SERVER_DirStringToNd			(1 << 26)
#define	FDCMP_SERVER_DirStringToNds			(1 << 27)
#define	FDCMP_SERVER_SerialStart				(1 << 28)
#define	FDCMP_SERVER_SerialReady				(1 << 29)
#define	FDCMP_SERVER_BatchStart					(1 << 30)
#define	FDCMP_SERVER_BatchReady					(1 << 31)

/*
 * FDCMP defines V
 *
 * (struct FAMEToolPortLst -> ftpl_BitRequests5)
 * (struct FAMEToolPortMsg -> ftpm_BitRequests5)
 * (struct FAMEToolNotifyMsg -> ftnm_BitRequests5)
 */

#define	FDCMP_SERVER_QuietNode					(1 << 0)
#define	FDCMP_SERVER_UserReserve				(1 << 1)
#define	FDCMP_SERVER_NodeSpyData				(1 << 2)
#define	FDCMP_SERVER_SetColors					(1 << 3)
#define	FDCMP_SERVER_LastAction					(1 << 4)
#define	FDCMP_SERVER_DropDTR						(1 << 5)
#define	FDCMP_SERVER_AwaitBulletinStart	(1 << 6)
#define	FDCMP_SERVER_AwaitBulletinStop	(1 << 7)
#define	FDCMP_SERVER_CPTPStart					(1 << 8)
#define	FDCMP_SERVER_CPTPKill						(1 << 9)
#define	FDCMP_SERVER_TrapDoor						(1 << 10)
#define	FDCMP_SERVER_RemoteStartNode		(1 << 11)
#define	FDCMP_SERVER_RemoteQuitNode			(1 << 12)
#define	FDCMP_SERVER_RemoteQuitNodeOH		(1 << 13)
#define	FDCMP_SERVER_FIMCommandReturn		(1 << 14)
#define	FDCMP_SERVER_CPTPRemoveCPReq		(1 << 15)
#define	FDCMP_SERVER_CPTPEditCPReq			(1 << 16)
#define	FDCMP_SERVER_CPTPActionCPReq		(1 << 17)

/*
 * FDCMP - tool return codes
 */

#define	FTNMRC_HOLD						0
#define	FTNMRC_REMOVE					1

New define:
~~~~~~~~~~~
 /* Header defines of FAME Datafiles */

#define	FAMEUSPR		47	/* User Profile for user settings import/export */

New defines:
~~~~~~~~~~~~
/*
 * FAME Protocol cases
 */

#define	FPC_ALLCASES					1
#define	FPC_DEFAULT						2
#define	FPC_BEGINUPLOAD				3
#define	FPC_BEGINDOWNLOAD			4
#define	FPC_MESSAGEATTACHUL		5
#define	FPC_MESSAGEATTACHDL		6
#define	FPC_DOORFILEUPLOAD		7
#define	FPC_DOORFILEDOWNLOAD	8

************************* Version v1.4 (12-May-97) ***************************

-------------[ FAMEInternStructs.h ]------------------------------------------

New structure:
~~~~~~~~~~~~~~
/*
 * FAME SModem DSZ logformat structure.
 */

struct	SModemFileData
{
	char	smfd_SendRecErrFlg,
				smfd_BPSString[4],
				smfd_CPSString[4],
				smfd_ErrorsString[8],
				smfd_FilePath[256];
	long	smfd_SizeOfFile,
				smfd_BPS,
				smfd_CPS,
				smfd_NumOfErrors,
				smfd_Unknown1,
				smfd_BlockSize;
	ULONG	smfd_Unknown2;
};

-------------[ FAMEDoorProto.h ]----------------------------------------------

Removed define:
~~~~~~~~~~~~~~~
/*
 * FIM Defines:
 */

#define	FIM_USERSIGMODE				1

has been removed from "FAMEDoorProto.h" and is now directly in the DoorStartUp
code "FAMEDoorStartUp.c".

Now it's easy to compile two different "FAMEDoorStartUp.o" files - one with
and one without the UserSignal feature.

This will allow to just include the needed version of "FAMEDoorStartUp.o"
into a door.

-------------[ FAMEDoorCommands.h ]-------------------------------------------

New AR command:
~~~~~~~~~~~~~~~
#define AR_GetNodeNameTel  864
/*
 * Retrieve the name(s) and the phone number of a Node
 *
 * Data1    <- The Node you mean. A value < 0 for the current Node.
 * Data2
 * Data3
 * IOString -> Node Name (Short -  max 6 chars).
 * StringPtr -> Node Name (max 127 chars).
 * StringPtr2 -> Node phone number (max 127 chars).
 */

-------------[ FAMEInternLists.h / FAMEPublicStructs.h]-----------------------

New structure:
~~~~~~~~~~~~~~
/*
 * FAME SModem download file validate list.
 */

struct	SModemDlValLst
{
	struct SModemDlValLst	*Next;
	char									FilePath[256];
	long									RealConfNumber;
	short int							FreeDlFlag;
};

New elements in struct FAMEInfoList:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
STRPTR fili_NodeName
STRPTR fili_NodeNameSh
STRPTR fili_NodeTel

For this ULONG fili_Reserved[20] has been cutted down to fili_Reserved[17]

-------------[ FAMEDefine.h ]-------------------------------------------------

New defines:
~~~~~~~~~~~~
/*
 * FAME Protocol Types
 *
 * 1-20 reserved for max 20 variable by the SysOp configurable
 * XPR transfer protocols (xpr<name>.library).
 */

#define	FPT_HYDRA							21
#define	FPT_SMODEM						22

/*
 * FAME Protocol Offsets
 */

#define	FPO_HYDRA							1
#define	FPO_SMODEM						2
#define	FPO_PROMPT						3

Renamed define:
~~~~~~~~~~~~~~~
Renamed:

/*
 * FAMECfgFlag1 defines (FAME Config)
 */

#define	FAMECfg_FreeFile					(1 << 23)

to:

/*
 * FAMECfgFlag1 defines (FAME Config)
 */

#define	FAMECfg_FreeDlFile				(1 << 23)

New define:
~~~~~~~~~~~
/*
 * FAMECfgFlag2 defines (FAME Config)
 */

#define	FAMECfg_FreeUlFile				(1 << 30)

New defines:
~~~~~~~~~~~~
/*
 * FAME Batch Types
 */

#define	FBT_LogonBatches			0
#define	FBT_LogoffBatches			1
#define	FBT_StartBatches			2
#define	FBT_ShutDownBatches		3
#define	FBT_LogoffBatch				4
#define	FBT_ShutDownBatch			5
#define	FBT_ULDLogoffBatches	6

/*
 * Additional FameDoorStartUp return codes
 */

#define	FIM_DOORPORTNOTOPEN					-10

/*
 * FIM DoorPort flags
 */

#define	FIMF_NOEXITONTRUERETCODE	(1 << 2)

-------------[ FAMEInternSetStructs.h ]---------------------------------------

Renamed element in struct iNTERNdOORS:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed3 to NODE.

Doubled size of element in struct nODE:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Removed StrNotUsed1[256] and increased MenuPrompt[256] to
MenuPrompt[512] now.

Renamed elements in struct nODE:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed StrNotUsed2[256] to NodeName[128] and to NodeTel[128].

New element in struct nODE:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
New element NodeNameShort[8] is using the first 8 bytes of
StrNotUsed3[256] which is because of this now StrNotUsed3[248].

Renamed element in struct dOORS:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed6 to ULDDrop.

Renamed element in struct cONF:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed10 to ConfAccounting.

-------------[ *.h ]----------------------------------------------------------

Changed the layout and added more informations.

************************* Version v1.3 (16-Mar-97) ***************************
************* v1.2 skipped because of the DoorStartUp changes ****************

-------------[ FAMEInternLists.h / FAMEPublicStructs.h]-----------------------

Moved structure:
~~~~~~~~~~~~~~~~
struct MsgList moved from FAMEInternLists.h to FAMEPublicStructs.h .

New element in struct NdLst:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SHORT AwayChatStat	/* Chat status before Away has been us.	*/

-------------[ FAMEDoorCommands.h ]-------------------------------------------

New AR command:
~~~~~~~~~~~~~~~
#define AR_AwayMessage     863
/* Retrieve the actual Away Message.
 *
 * Data1
 * Data2
 * Data3
 * IOString -> The actual Away Message.
 * StructDummy1 -> The struct aWAYmSG.
 *
 * Note: If IOString is empty (IOString[0] == '\0') then there is no
 *       Away Message set yet.
 */

New AC command:
~~~~~~~~~~~~~~~
#define AC_AwayMessage     938
/* Change the actual Away Message.
 *
 * Data1
 * Data2
 * Data3
 * IOString <- The new Away Message.
 */

-------------[ FAMEDefine.h ]-------------------------------------------------

New defines:
~~~~~~~~~~~~
 /* Header defines of FAME Datafiles */

#define	FAMEAWAY		46	/* Away Message definitions for all Nodes. */

 /* FAMECfgFlag2 defines (FAME Config) */

#define	FAMECfg_VerboseAction			(1 << 29)

 /* ServerCommands */

#define	SERVER_RemoteStartNode			20020
#define	SERVER_RemoteQuitNode				20021
#define	SERVER_RemoteQuitNodeOH			20022
#define	SERVER_CPTPRemoveCPReq			20023
#define	SERVER_CPTPEditCPReq				20024
#define	SERVER_CPTPActionCPReq			20025

 /* SystemEditor window direct defines (JUMP argument) */

#define	SYSED_WND_AwayMessages			37

 /* FIM DoorPort flags. */

#define	FIMF_USERSIGMODE					(1 << 0)
#define	FIMF_NOCHECK							(1 << 1)

-------------[ FAMEInternSetStructs.h ]---------------------------------------

Changed struct bAUDtIMES:
~~~~~~~~~~~~~~~~~~~~~~~~~
struct bAUDtIMES /* FAME:Settings/BaudTimes/(Baud).dat */
{
char      StrNotUsed1[44];
long			BaudRate;
ULONG			StartHH,
					StartMM,
					EndHH,
					EndMM,
					ULongNotUsed;
long			FAMEVers,
					LongNotUsed1,
					LongNotUsed2,
					LongNotUsed3,
					LongNotUsed4;
short int	ShortIntNotUsed1,
					ShortIntNotUsed2,
					ShortIntNotUsed3,
					ShortIntNotUsed4,
					ShortIntNotUsed5;
};

Renamed elements in struct sERVER:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ShortIntNotUsed8 renamed to VerboseAction.
ShortIntNotUsed9 renamed to VisibleNodes.

New structure:
~~~~~~~~~~~~~~
struct aWAYmSG /* FAME:Settings/AwayMsgs.dat */
{
char			Msg1[66],
					Msg2[66],
					Msg3[66],
					Msg4[66],
					Msg5[66],
					Msg6[66],
					Msg7[66],
					Msg8[66],
					Msg9[66],
					Msg10[66],
					VariableMsg[66],
					StringNotUsed[1024];
STRPTR		SelectedMsg;
ULONG			ULongNotUsed1,
					ULongNotUsed2,
					ULongNotUsed3,
					ULongNotUsed4,
					ULongNotUsed5;
short int	DefaultAwayMsg,
					ShortIntNotUsed1,
					ShortIntNotUsed2,
					ShortIntNotUsed3,
					ShortIntNotUsed4,
					ShortIntNotUsed5,
					ShortIntNotUsed6,
					ShortIntNotUsed7,
					ShortIntNotUsed8,
					ShortIntNotUsed9,
					ShortIntNotUsed10;
};

-------------[ FAMEInternStructs.h ]------------------------------------------

Changed struct FAMEServerConfig:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* FAME Server config structure
 */

struct	FAMEServerConfig {
char		FAME_ServerPort[32],
				ServerStartName[52],
				ServerPopUpKey[52],
				CycLabel[2][15],
				NodeLabel[30][7];
long		ActLabel,
				ActGadSwitch,
				NumOfConfs,
				VisNodeGads,
				MinHeightEver,
				NodeGadHeight,
				AktWndHeight,
				NoNodeStru,
				FirstGadNode,
				LastActivNode,
				OldFirstGad,
				Version,
				Revision,
				StartedTime,
				NodeMulti;
SHORT		NFAC,
				CurSelNodePos;
};

Changed struct SysEdConf:
~~~~~~~~~~~~~~~~~~~~~~~~~
/* FAME SystemEditor config structure
 */

struct	SysEdConf {
struct	bAUDtIMES			aKTbAUDtIMES;
struct	pROTOCOL			aKTpROTOCOL;
struct	mISC					aKTmISC;
struct	sYSTEM				aKTsYSTEM;
struct	sERVER				aKTsERVER;
struct	uSERbUTTONS		aKTuSERbUTTONS;
struct	cONF					aKTcONF;
struct	lEVELS				aKTlEVELS;
struct	cONFaX				aKTcONFaX;
struct	pRESET				aKTpRESET;
struct	aCTIVITIES		aKTaCTIVITIES;
struct	eRROR					aKTeRROR;
struct	dOORS					aKTdOORS;
struct	iNTERNdOORS		aKTiNTERNdOORS;
struct	sCREENS				aKTsCREENS;
struct	nODE					aKTnODE;
struct	fAMEdEBUG			aKTfAMEdEBUG;
struct	sERIAL				aKTsERIAL;
struct	mODEM					aKTmODEM;
struct	sCREEN				aKTsCREEN;
struct	cHECKER				aKTcHECKER;
struct	tEXTlANG			aKTtEXTlANG;
struct	dOORcONFIG		aKTdOORcONFIG;
struct	fAMEmODULES	  aKTfAMEmODULES;
struct	cOMPUTERtYPES	aKTcOMPUTERtYPES;
struct	mODEMtYPES		aKTmODEMtYPES;
struct	uSERhANDLER		aKTuSERhANDLER;
struct	fAMEhYDRA			aKTfAMEhYDRA;
struct	fAMEsMODEM		aKTfAMEsMODEM;
struct	cOLpENdAT			aKTcOLpENdAT;
struct	sCREEN				bAKsCREEN;
struct	aWAYmSG				aKTaWAYmSG;
char									SystemEdVers[102],
											BrokerVertxt[102],
											SystemEdVerInfo[102],
											SystemEdPopUpKey[52],
											BBSLocation[102],
											LoadFileInWin[256],
											PubScrName[102];
SHORT									CreateNR,
											JumpToWin,
											WinCloseQuit,
											FrontMost,
											SingleWindows;
};

New elements in struct FAMEConfig:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
STRPTR		MsgHeadLine,
					MsgTagLine;

************************* Version v1.1 (22-Dez-96) ***************************

-------------[ FAMEInternLists.h / FAMEPublicStructs.h]-----------------------
Moved structure:
~~~~~~~~~~~~~~~~
struct NumFlagList moved from FAMEInternLists.h to FAMEPublicStructs.h .

Enhanced structure:
~~~~~~~~~~~~~~~~~~~
struct	NdLst {
struct	NdLst					*Next,				/* List next Pointer										*/
											*Prev;				/* List previous Pointer								*/
struct	FAMEConfig		*NodeCfg;			/* STRICTLY READ-ONLY!!!								*/
																		/* Config of the Node										*/
struct	FAMEInfoList	NdFInfoList;	/* The FAMEInfoList of the current Node	*/
																		/* This one is a part of the whole			*/
																		/* FAMESemaphore info list!							*/
char									UserName[22],	/* UserName															*/
											Location[22],	/* Location															*/
											Action[22],		/* Action at the Node										*/
											LastAct[22];	/* Last Action to restore								*/
long									Number,				/* Listentry number (= NodeNr)					*/
											BaudCps,			/* BaudRate or CPS (Transfer)						*/
											ChatFlag,			/* Chat flag														*/
											Online,				/* Node online ? TRUE/FALSE							*/
											ActionCmd,		/* What does the user do now?!					*/
											LastActCmd,		/* Last Action command to restore				*/
											LstCmd,				/* All Cmds (ActionCmd) incl. ServerCmd	*/
											ReStartNode,	/* Flag to restart the Node							*/
											LineColFlag,	/* Node displaycolor flag 0=black(norm)	*/
																		/* 1=blue(hidden), 2=white(chat/normal)	*/
																		/* 3=white(chat/hidden)									*/
											StartedNode;	/* Started Node flag										*/
SHORT									UsCol1,				/* UserName foreground color						*/
											LoCol1,				/* Location foreground color						*/
											AcCol1,				/* Action foreground color							*/
											BdCol1,				/* BaudCps foreground color							*/
											UserOnline;		/* 0=Await 1=Connect 2=Valid 3=Reset N.	*/
ULONG									BitFlags;			/* Bit flags														*/
struct Task						*TrapDoorTask;/* TrapDoor task address								*/
struct List						SVILstUsers,	/* Last Users Info List pointer					*/
											SVILstLocats,	/* Last Locations Info List pointer			*/
											SVILstActs,		/* Last Actions Info List pointer				*/
											SVILstBdCPS,	/* Last Baud/CPS Info List pointer			*/
											SVILstUpls,		/* Last Uploads Info List pointer				*/
											SVILstDownls,	/* Last Downloads Info List pointer			*/
											SVIFlgFiles;	/* Flagged Files Info List pointer			*/
short int							SVILstUsersC,	/* Last Users Info List counter					*/
											SVILstLocatsC,/* Last Locations Info List counter			*/
											SVILstActsC,	/* Last Actions Info List counter				*/
											SVILstBdCPSC,	/* Last Baud/CPS Info List counter			*/
											SVILstUplsC,	/* Last Uploads Info List counter				*/
											SVILstDownlsC,/* Last Downloads Info List counter			*/
											SVIFlgFilesC;	/* Flagged Files Info List counter			*/
};

-------------[ FAMEInternLists.h ]--------------------------------------------

New element in struct NdLst:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
struct Task						*TrapDoorTask;/* TrapDoor task address								*/

-------------[ FAMEInternSetStructs.h ]---------------------------------------

Changed struct sERVER:
~~~~~~~~~~~~~~~~~~~~~~
struct sERVER /* FAME:Settings/Server.dat */
{
char			StrNotUsed1[32],
					StrNotUsed2[32],
					StrNotUsed3[32],
					StrNotUsed4[86];
short int	NOLastUsers,
					NOLastLocations,
					NOLastActions,
					NOLastBaudCPS,
					NOLastUploads,
					NOLastDownloads,
					NOFlaggedFiles,
					FreeExit;
ULONG			ULongNotUsed1,
					ULongNotUsed2,
					ULongNotUsed3,
					ULongNotUsed4,
					ULongNotUsed5,
					ULongNotUsed6,
					ULongNotUsed7,
					ULongNotUsed8;
long			Priority,								/* Server priority												*/
					IconifyLeftEdge,				/* Left edge if iconified									*/
					IconifyTopEdge,					/* Top edge if iconified									*/
					FAMEVers,
					LeftEdge,								/* Left edge if uniconified								*/
					TopEdge,								/* Top edge if uniconified								*/
					LongNotUsed1;
short int	Iconified,							/* Start server iconified									*/
					ErrorWarnUser,					/* Warn on user error handling						*/
					SmallBig,								/* Gadget bank on/off											*/
					Idle,
					Synchron,
					ShortIntNotUsed4,
					MinLeftEdge,
					MinTopEdge,
					FreeStart,
					ShortIntNotUsed8,
					ShortIntNotUsed9,
					ShortIntNotUsed10;
};

Renamed elements in struct nODE:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed1 to TrapDoorMode.
Renamed ShortIntNotUsed2 to ExitTrapDoor.
Renamed ShortIntNotUsed3 to SkipLocalCPS.

Renamed element in struct mODEM:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed1 to NumberOfRings.

New structure:
~~~~~~~~~~~~~~
struct cOLpENdAT /* FAME:Settings/Node%ld/ColPen.dat | FAME:Settings/DefColPen.dat */
{
char			StringNotUsed[4096];
short int	RWSwap,
					CONRWSwap,
					ShortIntNotUsed1,
					ShortIntNotUsed2,
					ShortIntNotUsed3,
					ShortIntNotUsed4,
					ShortIntNotUsed5,
					ShortIntNotUsed6,
					ShortIntNotUsed7,
					ShortIntNotUsed8,
					ShortIntNotUsed9,
					ShortIntNotUsed10;
ULONG			ULongNotUsed1,
					ULongNotUsed2,
					ULongNotUsed3,
					ULongNotUsed4,
					ULongNotUsed5;
}; /* -> Additional pens and screen colors will be added. */

#############[ FAMEVersion.h ]################################################

New header file: FAMEVersion.h
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note that the changes of version and revision numbers won't be noticed here
in this IncludeHistory text file!

/* FAME Version numbers
 *
 * $VER:FAMEVersion.h v1.0
 *
 * Used tab size: 2
 */

#ifndef	FAME_FAMEVERSION_H
#define	FAME_FAMEVERSION_H

/* FAME.library version check *MUST* be valid! */

#define	FVRC_L_FAME_LIB_VER		4
#define	FVRC_H_FAME_LIB_VER		4
#define	FVRC_L_FAME_LIB_REV		10
#define	FVRC_H_FAME_LIB_REV		10

/* Mainpart version check *MUST* be valid! */

#define	FVRC_L_MAINPART_VER		1
#define	FVRC_H_MAINPART_VER		1
#define	FVRC_L_MAINPART_REV		17
#define	FVRC_H_MAINPART_REV		17

/* SystemEditor version check *MUST* be valid! */

#define	FVRC_L_SYSED_VER			1
#define	FVRC_H_SYSED_VER			1
#define	FVRC_L_SYSED_REV			13
#define	FVRC_H_SYSED_REV			13

/* FAMEFileChecker version check *MUST* be valid! */

#define	FVRC_L_FAME_FCHK_VER	1
#define	FVRC_H_FAME_FCHK_VER	1
#define	FVRC_L_FAME_FCHK_REV	10
#define	FVRC_H_FAME_FCHK_REV	10

/* SystemEditor version check *MUST* be valid! */

#define	FVRC_L_USERED_VER			0
#define	FVRC_H_USERED_VER			0
#define	FVRC_L_USERED_REV			35
#define	FVRC_H_USERED_REV			35

/* FAMEInfo version check is not a must, but should inform */

#define	FVRC_L_FAME_INFO_VER	0
#define	FVRC_H_FAME_INFO_VER	0
#define	FVRC_L_FAME_INFO_REV	0
#define	FVRC_H_FAME_INFO_REV	0

/* FAMEHydra version check *MUST* be valid if SYSCMD/HYDRA is installed! */

#define	FVRC_L_FAME_HYDRA_VER	1
#define	FVRC_H_FAME_HYDRA_VER	1
#define	FVRC_L_FAME_HYDRA_REV	8
#define	FVRC_H_FAME_HYDRA_REV	8

/* FAMESModem version check *MUST* be valid if SYSCMD/SMODEM is installed! */

#define	FVRC_L_FAME_SMDM_VER	0
#define	FVRC_H_FAME_SMDM_VER	0
#define	FVRC_L_FAME_SMDM_REV	1
#define	FVRC_H_FAME_SMDM_REV	1

#endif /* FAME_FAMEVERSION_H */

-------------[ FAME.h ]-------------------------------------------------------

New include:
~~~~~~~~~~~~
#include	<FAME/FAMEVersion.h>

-------------[ FAMEDoorCommands.h ]-------------------------------------------

New RD commands:
~~~~~~~~~~~~~~~~
#define RD_GetDldFileStamm 1058
/* Retreive the DldFilesStamm list root pointer.
 *
 * Data1
 * Data2
 * Data3
 * IOString
 * StructDummy1 -> The struct NumFlagList *DldFilesStamm pointer.
 *
 * Note: Use RD_GetDldFileStamm to retreive the beginning of the downloaded
 *       file list. In this list you will find all files downloaded by
 *       the currently online user of the last download if there was one
 *       this time. DldFilesStamm is empty if no download has been done yet.
 *       DldFilesStamm will be reinitialized if the user starts a new
 *       download or the user logges off.
 *
 * Note: After using RD_RIDldFileStamm you have to use RD_GetDldFileStamm
 *       again if you want to continue work with the DldFilesStamm pointer!
 */

#define RD_RIDldFileStamm  1059
/* Reinitialize the DldFilesStamm list.
 *
 * Data1
 * Data2
 * Data3
 * IOString
 *
 * Note: RD_RIDldFileStamm reinitializes the DldFilesStamm you will get
 *       with RD_GetDldFileStamm. This means all list entries will be freed
 *       and the list pointer reinitialized.
 *
 * Note: After using RD_RIDldFileStamm you have to use RD_GetDldFileStamm
 *       again if you want to work with the DldFilesStamm pointer!
 */

#define RD_PutDldFileStamm 1060
/* Add a file to the DldFilesStamm list.
 *
 * Data1    <- The Conference number depending to the file.
 * Data2
 * Data3
 * IOString <- The filename.
 *
 * Note: The filed FileNumber of the struct NumFlagList will be used for
 *       the Conference number. This number indicates the Conference
 *       (real/physical number) where the file has been downloaded from.
 *       If you don't know the Conference number set it to 0 as default.
 */

New CF command:
~~~~~~~~~~~~~~~
#define CF_GetUserConfXS   428
/* Get a string containing the conference access of a special user.
 *
 * Data1    <- The usernumber of the user you want to get the conf xs from.
 * Data2
 * Data3
 * IOString
 * StringPtr -> A buffer filled with the conference access.
 *
 * Note: Check fdom_ReturnCode for a failure!
 *
 * Note: StringPtr will be an allocated buffer which will be freed from
 *       MainPart if you door exists.
 *
 * Note: StringPtr contains the conference access of you user in the
 *       following form: "X__X__X_X_"... The first char (byte 0) will be
 *       Conference 1 the second (byte 1) Conference 2 and so on.
 *       There is *NO* relative Conference here! They are physical from
 *       1 till the last Conference available. You have to check yourself
 *       if the Conference is in the relative list if you need this.
 *       For this you can use NR_GetRelativeStatus to see if relative
 *       Conferences is activated and NR_AbsToRel to get the releative
 *       number of an absolute (real/physical) one.
 *
 * Note: X means that the user has access to this Conference.
 *       _ means that the user hasn't access to this Conference.
 *       Please check always for X and not _ because X is the relevant one
 *       and everything which is not X is _ and means no access.
 */

Changed NR command:
~~~~~~~~~~~~~~~~~~~
 - Description changed a bit.
   "Display Levels to SysOp" was a totally wrong string it has to be:
   "Display Passwords to SysOp".

 - New Data2 mode flags 7 and 8.

#define NR_PromptChars      14
/* Prompt the user for a specified number of chars
 *
 * Data1    <- Max. chars can be typed.
 * Data2    <- Flag for different modes.
 * Data3    -> Returncode from internal procedure (usable for Data2 flag 3).
 * IOString <- String will be used in prompt.
 * IOString -> Filled string with chars typed by the user.
 *
 * Data2 flag description:
 *
 * 0 Simple stringingput without edit and other features.
 * 1 Stringingput for chatmode. (uses wordwrapping. Do not use this to get a
 *   complete string, because after a wordwrap the string changes).
 * 2 Stringingput for MsgEditor. (You can't use this flag! It can cause
 *   damage, because it uses an internal list. Flag denied.
 * 3 Stringingput for bulletinviewer. (It returns cursorkeys left and right
 *   up and down for the bullview to switch -(x)-BullHelp.txt texts.
 *   Data3 contains: Up: 65 Down: 66 Rigth: 67 Left: 68.
 * 4 The same as 0, but all chars will be displayed as *. Like: ****** ,
 *   but they musn't be displayed as * on console! If the flag "Display
 *   Passwords to SysOp" is set the chars will be displayed as real chars
 *   on console.
 * 5 Unused.
 * 6 A real feature! This is the best flag u can use! U let the user totaly
 *   edit his string. The user can walk into the string, delete chars with
 *   delete and backspace and the user can insert at every position new chars.
 * 7 The same as 4, but here will definality no single char be typed on the
 *   screen. No single char means also NO stars (*). Only exception is if
 *   the flag "Display Passwords to SysOp" is set the chars will be displayed
 *   as real chars, but only on console.
 * 8 Numeric mode only. Only alphanumeric chars can be typed and no
 *   alphabetical ones.
 *
 * Higher flags are reserved and can't be used.
 * Normaly u can only use flag 0 and 6 !!!
 *
 * If IOString contains data on calling this command, the user will get this
 * data into the prompt, and can edit it (flag 6).
 */

Changed NR command:
~~~~~~~~~~~~~~~~~~~
 - Description changed a bit.
   "Display Levels to SysOp" was a totally wrong string it has to be:
   "Display Passwords to SysOp".

 - New Data2 mode flags 7 and 8.

 - Data3 will be used now too.

#define NR_GetEditString    83
/* Prompt the user for a specified number of chars and edits String
 *
 * Data1    <- Max. chars can be typed.
 * Data2    <- Flag for different modes.
 * Data3    -> Returncode from internal procedure (usable for Data2 flag 3).
 * IOString <- String will be used in prompt.
 * IOString -> Filled string with chars typed by the user.
 *
 * Data2 flag description:
 *
 * 0 Simple stringingput without edit and other features.
 * 1 Stringingput for chatmode. (uses wordwrapping. Do not use this to get a
 *   complete string, because after a wordwrap the string changes).
 * 2 Stringingput for MsgEditor. (You musn't use this flag! It can cause
 *   damage, because it uses an internal list.
 * 3 Stringingput for bulletinviewer. (It returns cursorkeys left and right
 *   up and down for the bullview to switch -(x)-BullHelp.txt texts.
 *   Data3 contains: Up: 65 Down: 66 Rigth: 67 Left: 68.
 * 4 The same as 0, but all chars will be displayed as *. Like: ****** ,
 *   but they musn't be displayed as * on console! If the flag "Display
 *   Passwords to SysOp" is set the chars will be displayed as real chars
 *   on console.
 * 5 Unused.
 * 6 A real feature! This is the best flag u can use! U let the user totaly
 *   edit his string. The user can walk into the string, delete chars with
 *   delete and backspace and the user can insert at every position new chars.
 * 7 The same as 4, but here will definality no single char be typed on the
 *   screen. No single char means also NO stars (*). Only exception is if
 *   the flag "Display Passwords to SysOp" is set the chars will be displayed
 *   as real chars, but only on console.
 * 8 Numeric mode only. Only alphanumeric chars can be typed and no
 *   alphabetical ones.
 *
 * Higher flags are reserved and can't be used.
 * Normaly u can only use flag 0 and 6 !!!
 *
 * If IOString contains data on calling this command, the user will get this
 * data into the prompt, and can edit it (flag 6).
 *
 * Note: NR_GetEditString is nearly the same as NR_PromptChars. In fact it
 *       is the same, but if you use NR_GetEditString no Data2 (mode flag)
 *       check will be done. Here you can use undocumented, obsolete and non
 *       existing modes. Beware of what you're doing it can result in crashes
 *       if you use for example flag number 2.
 */

New NR command:
~~~~~~~~~~~~~~~
#define NR_GetUserLevelFlags 114
/* Get the level flags for the actual user.
 *
 * Data1
 * Data2    -> MaxPages
 * Data3    -> MaxRelogins
 * IOString -> Array of level flags.
 *
 * Note: You will get an Array (IOString) where you can use the level defines
 *       to see if a level flag is set.
 *       True / (1) = (flag set), false / 0 = (flag not set).
 *       If in the position you check the value is 0 the level flag
 *       is not set and the user isn't able to do this. If the value is
 *       <> 0 or != 0 (not 0) it's set and the user is able to do this.
 *
 * Note: For the level defines used in the array see FAMEDefine.h
 *       FLVL_<Level flag name> ( FLVL_ ) defines.
 *
 * Example 1:
 *
 * PutCommand("",0,0,0,NR_GetUserLevelFlags);
 *
 * if(MyFAMEDoorMsg -> fdom_IOString[ FLVL_CommenttoSysOp ])
 *   PutString("\r\nComment to SysOp allowed!\r\n",1);
 * else
 *   PutString("\r\nNo comment to SysOp allowed!\r\n",1);
 *
 * Example 2:
 *
 * PutCommand("",0,0,0,NR_GetUserLevelFlags);
 *
 * if(MyFAMEDoorMsg -> fdom_IOString[ FLVL_CommenttoSysOp ] == 0)
 *   PutString("\r\nNo comment to SysOp allowed!\r\n",1);
 * else
 *   PutString("\r\nComment to SysOp allowed!\r\n",1);
 *
 */

Enhanced commands:
~~~~~~~~~~~~~~~~~~
New is the line: Data3    -> 0 = Console char, 1 = Serial char.

#define NR_HotKey           15
/* Gets a char without waiting for it
 *
 * Data1
 * Data2    -> The char typed by the user.
 * Data3    -> 0 = Console char, 1 = Serial char.
 * IOString
 *
 * Note: This command checks for a available char. If there is a char
 *       available you will get it immediatly, else you will get 0 in
 *       Data2.
 *
 * Note: NR_HotKey is the same as AR_GetKey, but on AR_GetKey you wont
 *       get the char, only a notify that a char was pressed.
 *       Here on NR_HotKey you will get this pressed key.
 */

#define NR_WaitChar         92
/* Get a char with waiting for it
 *
 * Data1
 * Data2    -> The char typed be the user.
 * Data3    -> 0 = Console char, 1 = Serial char.
 * IOString <- String will be displayed to the user.
 *
 * Note: You get all ascii codes also RAW codes, but only the CSI codes and
 *       escape-sequences will be filtered, because the BBS has to check for
 *       FKeys and more.
 *       You will get the cursorkeys as the following values:
 *       4 for UP, 5 for DOWN, 3 for RIGHT and 2 for LEFT.
 */

#define AR_GetKey          800
/* Look for a keypress without waiting for it
 *
 * Data1
 * Data2    -> 0 means nothing happens, 1 means a key was pressed!
 * Data3    -> 0 = Console char, 1 = Serial char.
 * IOString
 *
 * Note: AR_GetKey is the same as NR_HotKey, but on NR_HotKey you will
 *       get the char, while AR_GetKey notifies only that a char was
 *       present. Usable for a simple "Press a key" prompt.
 */

#define AR_WaitRAWChar     801
/* Get a char with waiting for it, also get ALL REAL RAW commands!
 *
 * Data1
 * Data2    -> The char typed be the user.
 * Data3    -> 0 = Console char, 1 = Serial char.
 * IOString <- String will be displayed to the user.
 *
 * Note: U have to check your self if the Rawkeycode is a FKey/Shift-FKey
 *       or the Helpkey. If such a key appears, you have to use the next
 *       command: AR_EmulateFKeyHelp
 */

#define AR_HotKey          861
/* Gets a char without waiting for it, get also self definable cursor keys.
 *
 * Data1    <- Cursor key begining return code. (If 0 they begin with 2)
 * Data2    -> The char typed by the user.
 * Data3    -> 0 = Console char, 1 = Serial char.
 * IOString
 *
 * Note: AR_HotKey is the same as NR_HotKey, but like NR_WaitChar it
 *       returns also cursor keys. Beware, the cursor key returns
 *       are maybe others than with NR_WaitChar!!!
 *
 * Note: You get all ascii codes also RAW codes, but only the CSI codes and
 *       escape-sequences will be filtered, because the BBS has to check for
 *       FKeys and more.
 *       You will get the cursorkeys as the following values:
 *       Data1+2 for UP, Data1+3 for DOWN, Data1+1 for RIGHT and Data1 for LEFT.
 *
 *       Defination: LEFT  = 0
 *                   RIGHT = 1
 *                   UP    = 3
 *                   DOWN  = 2
 *
 *       You now have to add the defines above to the returncode to see
 *       if the result is a cursor key.
 *
 *       If you specify that LEFT (first cursor key) begins with 160
 *       (set Data1 to 160) the cursorkeys will be the following ones:
 *
 *       CURSOR LEFT  = 160
 *       CURSOR RIGHT = 161
 *       CURSOR UP    = 163
 *       CURSOR DOWN  = 162
 */

-------------[ FAMEDefine.h ]-------------------------------------------------

New defines:
~~~~~~~~~~~~
 /* Server Info Window defines */

#define	SVI_LASTUSERS								1
#define	SVI_LASTLOCATIONS						2
#define	SVI_LASTACTIONS							3
#define	SVI_LASTBAUDCPS							4
#define	SVI_LASTUPLOADS							5
#define	SVI_LASTDOWNLOADS						6
#define	SVI_FLAGGEDFILES						7

New defines:
~~~~~~~~~~~~
 /* FIM command maximum defines */

#define MC_MAXIMUM	9
#define NR_MAXIMUM	199
#define NC_MAXIMUM	399
#define CF_MAXIMUM	599
#define SR_MAXIMUM	699
#define SC_MAXIMUM	799
#define AR_MAXIMUM	899
#define AC_MAXIMUM	999
#define RD_MAXIMUM	99999

New define:
~~~~~~~~~~~
(whatlogon phase)

#define	FAME_TRAPDOORLOGIN					111

New defines:
~~~~~~~~~~~
 /* ServerCommands */

#define	SERVER_CPTPStart						20017
#define	SERVER_CPTPKill							20018
#define	SERVER_TrapDoor							20019

New define:
~~~~~~~~~~~
 /* SystemEditor window direct defines (JUMP argument) */

#define	SYSED_WND_PalettePens				36

New defines:
~~~~~~~~~~~~
 /* FAMECfgFlag2 defines (FAME Config) */

#define	FAMECfg_RWSwaped					(1 << 28)

 /* Level defines */

#define FLVL_ReadMessages						1
#define FLVL_EnterMessage						2
#define FLVL_CommenttoSysOp					3
#define FLVL_PageSysOp							4
#define FLVL_ZoomMail								5
#define FLVL_ReadBulletins					6
#define FLVL_WHOisOnline						7
#define FLVL_UserStatus							8
#define FLVL_ZippyTextSearch				9
#define FLVL_JoinConference					10
#define FLVL_FileListing						11
#define FLVL_NewFiles								12
#define FLVL_Upload									13
#define FLVL_Download								14
#define FLVL_ViewFiles							15
#define FLVL_FreeResuming						16
#define FLVL_EditUserAccount				17
#define FLVL_EditPassword						18
#define FLVL_EditUserLocation				19
#define FLVL_EditUserCityState			20
#define FLVL_EditUserName						21
#define FLVL_EditPhonenumber				22
#define FLVL_Relogin								23
#define FLVL_UploadStatus						24
#define FLVL_PublicMessageFiles			25
#define FLVL_PrivateMessageFiles		26
#define FLVL_AttachFile							27
#define FLVL_MCIMessages						28
#define FLVL_BreakChat							29
#define FLVL_OverideChat						30
#define FLVL_OverideTime						31
#define FLVL_EAllMessages						32
#define FLVL_EditFiles							33
#define FLVL_EditDirs								34
#define FLVL_DeleteMessages					35
#define FLVL_AccountEditing					36
#define FLVL_SysOpCommands					37
#define FLVL_Shell									38
#define FLVL_SysOpRead							39
#define FLVL_SysOpView							40
#define FLVL_SysOpDownload					41
#define FLVL_OverideDefaults				42
#define FLVL_GlobalUD								43
#define FLVL_FastRelogin						44
#define FLVL_FastGoodbye						45
#define FLVL_ViewBinaryFiles				46
#define FLVL_ZoomFilelist						47
#define FLVL_NodeChat								48
#define FLVL_Hydra									49
#define FLVL_RIPGfx									50
#define FLVL_CryptMsgs							51
#define FLVL_EditUserBirthday				52
#define FLVL_DeleteMsginDays				53
#define FLVL_OverwriteFiles					54
#define FLVL_EditMessages						55
#define FLVL_KeepotherMessages			56
#define FLVL_OthUsonotherMsg				57
#define FLVL_SModem									58
#define FLVL_BBSHelp								59
#define FLVL_QuietMode							60
#define FLVL_OnLineMessageOLM				61
#define FLVL_CaptureOnlineUserOLC		62
#define FLVL_DisconOnlineUserOLD		63
#define FLVL_OnlineUserChatOLG			64
#define FLVL_SpyOnlineUserOLS				65
#define FLVL_OnlineUserTimeOLT			66
#define FLVL_SysOpBinaryView				67
#define FLVL_ViewEditCallersLog			68
#define FLVL_ViewEditDoorLog				69
#define FLVL_ViewEditUDLog					70
#define FLVL_AmigaDOSList						71
#define FLVL_AmigaDOSDir						72
#define FLVL_AmigaDOSInfo						73
#define FLVL_ConfAccessEditor				74
#define FLVL_ForceWHO								75
#define FLVL_RealHidden							76
#define FLVL_RenewedSubmission			77
#define FLVL_PriorityMsg						78
#define FLVL_Obsolete								79
#define FLVL_EditFileFlags					80

	/* Macro to count the number of elements. */

#define NumElements(s)		(sizeof(s) / sizeof((s)[0]))

	/* Spread a byte across a long word. */

#define SPREAD(v)	((ULONG)(v) << 24 | (ULONG)(v) << 16 | (ULONG)(v) << 8 | (v))

	/* Spread a byte across a word. */

#define SPREADW(v)	((ULONG)(v) << 4 | (v))

#define	FAMECOPE		45	/* Color and Dripen definitions for a Node. */

-------------[ FAMEInternStructs.h ]------------------------------------------

Removed element:
~~~~~~~~~~~~~~~~
struct FileCheckData

Removed ffcd_AddULPathStamm, because it's now a part of ffcd_NodeCfg .

Removed elements:
~~~~~~~~~~~~~~~~~
struct FAMEHydraData

Removed UFlagStamm, because it's now a part of NodeCfg .
Removed USkipStamm, because it's now a part of NodeCfg .
Removed ASLRqStamm, because it's now a part of NodeCfg .
Removed AddULPathStamm, because it's now a part of NodeCfg .

Removed elements:
~~~~~~~~~~~~~~~~~
struct FAMESModemData

Removed UFlagStamm, because it's now a part of NodeCfg .
Removed USkipStamm, because it's now a part of NodeCfg .
Removed ASLRqStamm, because it's now a part of NodeCfg .
Removed AddULPathStamm, because it's now a part of NodeCfg .

New structure:
~~~~~~~~~~~~~~
/* Structure for the FIM door interpretation.
 */

struct	FIMInterpret {
char								ReturnCmd[202];
struct	UserConf		*ZwiUsCnf;
struct	FAMEDoorMsg	*MyFAMEDoorMsg;
struct	User 				*TempUser;
struct	UserKeys 		*TempUserKeys;
struct	UserConf		*TempUsCnf;
struct	ConfList		*TempCnfLst;
struct	dOORS				mYdOORdATAS;
struct	cONFaX			*tMPcONFaX;
struct	MsgPort			*EXDoorPort;
STRPTR							ArgStr,
										Doorstr,
										Doorstr2;
long								DoorDummy,
										AccessKey,
										TheNodes,
										Doorlv,
										Doorcde,
										ReturnDoor,
										DoorHelp,
										ANSIReset;
ULONG								DoorSig,
										InternalBits,
										DoorSignalMask;
short		int					ReturnCmdFlag,
										NukeAfter;
BOOL	  						WaitOnce,
										AbortRequest,
										DelUlSaveFlg;
};

New elements in struct SysEdConf:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/* FAME SystemEditor config structure
 */

struct	SysEdConf {
struct bAUDtIMES			aKTbAUDtIMES;
struct pROTOCOL				aKTpROTOCOL;
struct mISC						aKTmISC;
struct sYSTEM					aKTsYSTEM;
struct sERVER					aKTsERVER;
struct uSERbUTTONS		aKTuSERbUTTONS;
struct cONF						aKTcONF;
struct lEVELS					aKTlEVELS;
struct cONFaX					aKTcONFaX;
struct pRESET					aKTpRESET;
struct aCTIVITIES			aKTaCTIVITIES;
struct eRROR					aKTeRROR;
struct dOORS					aKTdOORS;
struct iNTERNdOORS		aKTiNTERNdOORS;
struct sCREENS				aKTsCREENS;
struct nODE						aKTnODE;
struct fAMEdEBUG			aKTfAMEdEBUG;
struct sERIAL					aKTsERIAL;
struct mODEM					aKTmODEM;
struct sCREEN					aKTsCREEN;
struct cHECKER				aKTcHECKER;
struct tEXTlANG				aKTtEXTlANG;
struct dOORcONFIG			aKTdOORcONFIG;
struct fAMEmODULES	  aKTfAMEmODULES;
struct cOMPUTERtYPES	aKTcOMPUTERtYPES;
struct mODEMtYPES			aKTmODEMtYPES;
struct uSERhANDLER		aKTuSERhANDLER;
struct fAMEhYDRA			aKTfAMEhYDRA;
struct fAMEsMODEM			aKTfAMEsMODEM;
struct cOLpENdAT			aKTcOLpENdAT;
struct sCREEN					bAKsCREEN;
char									SystemEdVers[102],
											BrokerVertxt[102],
											SystemEdVerInfo[102],
											SystemEdPopUpKey[52],
											BBSLocation[102],
											LoadFileInWin[256],
											PubScrName[102];
SHORT									CreateNR,
											JumpToWin,
											WinCloseQuit,
											FrontMost,
											SingleWindows;
};

************************* Version v1.0 (13-Okt-96) ***************************

-------------[ FAMEUserStructs.h ]--------------------------------------------

Renamed element in struct UserConf:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed FreeFromShort1 to NumOfConfPWFail.

-------------[ FAMEInternSetStructs.h ]---------------------------------------

Changed structures:
~~~~~~~~~~~~~~~~~~~
Some unused longs are now splited into two short integers.

struct nODE /* FAME:Settings/Node(x)/Node.dat */
{
char			NodeStPath[102],				/* Node start path												*/
					ScreenPath[102],				/* Screens path														*/
					FilesNotAll[102],				/* Files not allowed path									*/
					LogoffBatch[102],				/* LogoffBatch path												*/
					ShutDBatch[102],				/* ShutDBatch path												*/
					SystemPW[22],						/* System password												*/
					SystemPWPrompt[256],		/* System password prompt									*/
					NewUserPW[22],					/* Newuser password												*/
					NewUserPWPrompt[256],		/* Newuser password prompt								*/
					SysOpChatCol[22],				/* SysOp chat color												*/
					UserChatCol[22],				/* User chat color												*/
					UserNamePrompt[256],		/* UserName prompt												*/
					UserPWPrompt[256],			/* User password prompt										*/
					PausePrompt[256],				/* Pause prompt														*/
					NewUserKey[32],					/* String like "Guest"										*/
					RipSuffix[12],					/* Suffix for RIP gfx											*/
					NETID[32],							/* NetID																	*/
					NamesNotAll[102],				/* Names not allowed path									*/
					MenuPrompt[256],
					StrNotUsed1[256],
					StrNotUsed2[256],
					StrNotUsed3[256],
					StrNotUsed4[256],
					StrNotUsed5[256];
ULONG			ULongNotUsed1,
					ULongNotUsed2;
long			Timeout1,								/* Timeout warning												*/
					Timeout2,								/* Timeout user kick											*/
					DoorTimeout,						/* Door timeout														*/
					BatchStackSize,					/* Batch stack size												*/
					NodePri,								/* Node priority													*/
					BatchPriority,					/* Batch priority													*/
					BullTxtMinNumLines,			/* Bull.txt min. line length							*/
					BullTxtMinBrkLvl,				/* Bull.txt min. break level							*/
					NewUserStatus,					/* No newuser/ask for newuser/wait for		*/
																	/* NewUserKey															*/
					RipStatus,							/* What to do on CON by RIP (Show					*/
																	/* nothing/say viewing rip gfx/view				*/
																	/* normal txt)														*/
					IfNoBaudTime,						/* What to do if BaudTime not found				*/
					FAMEVers,
					ConfPreset,
					MinUserNameChars,
					MinUserPWChars,
					LongNotUsed1,
					LongNotUsed2;
short int StealthMode,
					UnixMode,
					FreeDownloadNode,
					ShortIntNotUsed1,
					ShortIntNotUsed2,
					ShortIntNotUsed3,
					ShortIntNotUsed4,
					ShortIntNotUsed5,
					ShortIntNotUsed6,
					ShortIntNotUsed7;
ULONG			NewUserEntryFlags,
					ULongNotUsed4,
					ULongNotUsed5,
					ULongNotUsed6,
					ULongNotUsed7,
					ULongNotUsed8,
					ULongNotUsed9,
					ULongNotUsed10,
					ULongNotUsed11,
					ULongNotUsed12,
					ULongNotUsed13,
					ULongNotUsed14;
long			NodeNumber;							/* Node number (x)												*/
ULONG			UserEdType;							/* 0 = hidden ed, 1 = type to user,				*/
																	/* 2 = show user													*/
short int	IdleNode,								/* Node idle (standby)										*/
					QuietNode,							/* Node quiet (WHO)												*/
					DoCallersLog,						/* Do Callerslog													*/
					DoUDLog,								/* Do UDLog																*/
					DoDoorLog,							/* Do DoorLog															*/
					DoStartLog,							/* Do StartLog														*/
					DisQuickLogons,					/* No quick logons												*/
					NoTimeout,							/* No timeout															*/
					NoMCIMsg,								/* No MCI messages												*/
					FreeResume,							/* Free resumeing													*/
					BreakChat,							/* Chat breakable with CTRL-C							*/
					PWsInsensitive,					/* Passwords case type										*/
					ChatOn,									/* Chat switched on												*/
					CapitolFiles,						/* All file names upper case							*/
					SModem,									/* SModem protocol												*/
					ANSIPrompt,							/* Ansi Prompt on/off											*/
					Hydra,									/* Hydra protocol													*/
					Rip,										/* Rip gfx																*/
					NoExtSysOpLg,						/* SysOp can't logon via modem						*/
					SysOpCanRead,						/* SysOp can see passwords not '***'			*/
					ShowBull,								/* Show bull.txt													*/
					AsyncStartbat,					/* Async. Startbatches?										*/
					AsyncLogonbat,					/* Async. Logonbatches?										*/
					AsyncLogoffbat,					/* Async. Logoffbatches?									*/
					AsyncShutDownbat,				/* Async. ShutDownbatches?								*/
					DispZeroBytes,					/* Display zero bytes											*/
					DefaultOH,							/* Default off hook												*/
					ShanghaiWnd,						/* Shanghai windows?											*/
					RelativeConfs;					/* Relative conferences?									*/
};

StrNotUsed1[102] splited into ConfPassword[22] and StrNotUsed1[80].
Renamed ShortIntNotUsed7 to CnfPWMFScanSkip.

struct cONF /* FAME:Settings/Conferences/Conf(x).dat */
{
char			ConfName[32],						/* Conference name												*/
					ConfLocation[102],			/* Conference path												*/
					UploadPath[102],				/* Upload path 1													*/
					DownloadPath[102],			/* Download path 1												*/
					AddUlPaths[102],				/* Upload path 2													*/
					AddDlPaths[102],				/* Download path 2												*/
					ConfPassword[22],				/* Conference password										*/
					StrNotUsed1[80],
					StrNotUsed2[102],
					StrNotUsed3[102],
					StrNotUsed4[102];
long			ConfNumber;							/* Conference number (x)									*/
ULONG			ULongNotUsed1,
					ULongNotUsed2,
					ULongNotUsed3,
					ULongNotUsed4,
					ULongNotUsed5,
					ULongNotUsed6,
					ULongNotUsed7;
long			NumberDirs,							/* Number of dirs													*/
					FreeUlLvl,							/* Free upload level											*/
					FreeDlLvl,							/* Free download level										*/
					ReadMsgLvl,							/* Msg write level												*/
					WriteMsgLvl,						/* Msg read level													*/
					UlLvl,									/* Upload level														*/
					DlLvl,									/* Download level													*/
					FilelstViewLvl,					/* Fileliste view level										*/
					GiveUlBytes,						/* Give upload bytes *										*/
					GiveDlBytes,						/* Give download bytes *									*/
					LongNotUsed5,
					BullTxtMinNumLines,			/* Bull.txt min. number of lines					*/
					BullTxtMinBrkLvl,				/* Bull.txt min. abort level							*/
					LongNotUsed6,
					MenuTxtMinNumLines,			/* Menu.txt min. number of lines					*/
					MenuTxtMinBrkLvl,				/* Menu.txt min. abort level							*/
					LongNotUsed7,
					FileHelpMinNumLines,		/* FileHelp min. number of lines					*/
					FileHelpMinBrkLvl,			/* FileHelp min. abort level							*/
					LongNotUsed8,
					UpMsgMinNumLines,				/* UpMsg min. number of lines							*/
					UpMsgMinBrkLvl,					/* UpMsg min. abort level									*/
					FAMEVers,
					DownMsgMinNumLines,			/* DownMsg min. number of lines						*/
					DownMsgMinBrkLvl,				/* DownMsg min. abort level								*/
					DelInDayMaxEALL,				/* Max. user delete EALL in days					*/
					DelInDayDefEALL,				/* Default delete EALL in days						*/
					DelInDayMaxPRIV,				/* Max. user delete PRIVATE in days				*/
					DelInDayDefPRIV,				/* Default delete PRIVATE in days					*/
					DelInDayMaxPUB,					/* Max. user delete PUBLIC in days				*/
					DelInDayDefPUB,					/* Default delete PUBLIC in days					*/
					WritePrivMsgLvl,				/* Private Msg write level								*/
					WritePubMsgLvl,					/* Public Msg write level									*/
					WriteUEALLMsgLvl,				/* UEALL Msg write level									*/
					WritePriorMsgLvl,				/* Priority Msg write level								*/
					LongNotUsed1,
					LongNotUsed2,
					LongNotUsed3,
					LongNotUsed4;
USHORT		UShortNotUsed5,
					FreeUlFlag,							/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					FreeDlFlag,							/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					ReadMsgLvlFlag,					/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					WriteMsgLvlFlag,				/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					UlLvlFlag,							/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					DlLvlFlag,							/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					FilelstViewLvlFlag,			/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					WritePrivMsgLvlFlag,		/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					WritePubMsgLvlFlag,			/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					WriteUEALLMsgLvlFlag,		/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					WritePriorMsgLvlFlag,		/* Flag 0=OFF, 1=OR HIGHER, 2=OR LOWER		*/
					UShortNotUsed1,
					UShortNotUsed2,
					UShortNotUsed3,
					UShortNotUsed4;
short int	SentByFiles,						/* Do Sent By on files										*/
					UserSentByFiles,				/* Do user Sent By on files								*/
					ShowMenu,
					ShowFileHelp,
					ShowUpMsg,
					ShowDownMsg,
					FirstPathsBehindA,
					AmigaDOSFileLen,
					CnfPWMFScanSkip,
					ShortIntNotUsed8,
					ShortIntNotUsed9,
					ShortIntNotUsed10;
};

Renamed element in struct sYSTEM:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed9 to InactiveWins.

-------------[ FAMEDefine.h ]-------------------------------------------------

New define:
~~~~~~~~~~~
/* Where I am phases defines
 *
 * CalersUdLog defines & What User does defines & ENV defines & Server defines
 */

#define	FAME_CONFPWFAIL							110

New define:
~~~~~~~~~~~
 /* SystemEditor window direct defines (JUMP argument) */

#define	SYSED_WND_MoreConferences		35

New define:
~~~~~~~~~~~
 /* ServerCommands */

#define	SERVER_DropDTR							4002

New define:
~~~~~~~~~~~
 /* FAMEToolPort defines (struct FAMEToolPortMsg) */

#define	FAMETP_Update							5

New defines:
~~~~~~~~~~~~
/* FAME CoProc / ToolPort defines */

#define	CPTP_UpFAMECPListEntry		1
#define	CPTP_UpFAMETPListEntry		2

Changed defines:
~~~~~~~~~~~~~~~~
 /* FAMEFileChecker return codes. */

#define	FAMEGOODFILE_OK							0
#define	FAMEGOODFILE_UNTESTED				101
#define	FAMEGOODFILE_FAILED					102

-------------[ FAMEInternLists.h ]--------------------------------------------

Enhanced structure:
~~~~~~~~~~~~~~~~~~~
/* List structure for ToolPort list.
 *
 * This structure will be a list of tools accessing the ToolPort for
 * informations. These tools are normally waiting for special actions
 * in a notification mechanism like IDCMP the FDCMP.
 */

struct	FAMEToolPortLst {
struct	FAMEToolPortLst	*ftpl_Next,				/* List next Pointer							*/
												*ftpl_Prev;				/* List previous Pointer					*/
struct	Message					*ftpl_Msg;				/* Ptr to tool's notify MsgPort		*/
STRPTR									ftpl_ToolName,		/* The name of the Tool						*/
																					/* (NewBroker like)								*/
												ftpl_ToolTitle,		/* The title of the Tool					*/
																					/* (NewBroker like)								*/
												ftpl_ToolDesc,		/* The description of the Tool		*/
																					/* (NewBroker like)								*/
												ftpl_ToolAction;	/* Text msg shown on Server				*/
long										ftpl_Node;				/* NodeNummer for Tool usage			*/
																					/* (identify)											*/
ULONG										ftpl_EntryNum,		/* The sorted list entry number		*/
												ftpl_BitFlags,		/* A bit mask for future use			*/
												ftpl_BitRequests1,/* A bit mask for requests 1			*/
												ftpl_BitRequests2,/* A bit mask for requests 2			*/
												ftpl_BitRequests3,/* A bit mask for requests 3			*/
												ftpl_BitRequests4,/* A bit mask for requests 4			*/
												ftpl_IdentifyCode;/* To identify the Tool						*/
};

Changed structure:
~~~~~~~~~~~~~~~~~~
/* Co Prozess list structure. This one will be read and added into a
 * Server internal list. Needed for the external CoProzess handling.
 */

struct	FAMECoProcList {
struct	FAMECoProcList	*fcpl_Next,							/* Pointer to the next			*/
																								/* struct FAMECoProzess			*/
												*fcpl_Prev;							/* Pointer to the previous	*/
																								/* struct FAMECoProzess			*/
char										fcpl_CoPrStartPath[32],	/* (Path)/Name for the			*/
																								/* CoProzess								*/
												fcpl_CoPrArgs[32];			/* Args for CoProzess				*/
STRPTR									fcpl_CoProcName,				/* The name of the CoProc		*/
																								/* (NewBroker like)					*/
												fcpl_CoProcTitle,				/* The title of the CoProc	*/
																								/* (NewBroker like)					*/
												fcpl_CoProcDesc,				/* The description of the		*/
																								/* CoProc (NewBroker like)	*/
												fcpl_CoProcAction;			/* Text msg showen on Server*/
LONG										fcpl_Node,							/* NodeNummer for Tool usage*/
																								/* (identify)								*/
												fcpl_StartDate1,				/* Start at 1. Date					*/
												fcpl_StartDate2,				/* Start at 2. Date					*/
												fcpl_StartDate3,				/* Start at 3. Date					*/
												fcpl_StartDate4,				/* Start at 4. Date					*/
												fcpl_StartDate5,				/* Start at 5. Date					*/
												fcpl_StartDate6,				/* Start at 6. Date					*/
												fcpl_StartDate7,				/* Start at 7. Date					*/
												fcpl_StartDate8,				/* Start at 8. Date					*/
												fcpl_StartDate9,				/* Start at 9. Date					*/
												fcpl_StartDate10;				/* Start at 10. Date				*/
ULONG										fcpl_EntryNum,					/* The sorted list entry num*/
												fcpl_Flag1,							/* Flags 1									*/
												fcpl_Reserved,					/* Reserved!								*/
												fcpl_CoProNum,					/* CoProcessNumber					*/
												fcpl_BitFlags,					/* A bit mask for future use*/
												fcpl_IdentifyCode;			/* To identify the CoProcess*/
APTR										fcpl_APTRReserved1,			/* Reserved APTR						*/
												fcpl_APTRReserved2;			/* Reserved APTR						*/
};

-------------[ FAMEDoorCommands.h ]-------------------------------------------

Changed RD commands:
~~~~~~~~~~~~~~~~~~~~
#define RD_LoadAccount     1007
/* Load Userdatas
 *
 * Data1    <- The Usernumber of the User u want to load.
 * Data2    -> An internal error code.
 * Data3
 * IOString
 * StructDummy1 -> The Userdata structure.
 * StructDummy2 -> The Userkey structure.
 */

#define RD_LoadAccountMisc 1016
/* Load Miscdatas
 *
 * Data1    <- The Usernumber of the User u want to load.
 * Data2    <- The selected conference.
 * Data3    -> An internal error code.
 * IOString
 * StructDummy1 -> The Userdata structure.
 * StructDummy2 -> The Userdata structure.
 * StructDummy3 -> The Userconfdata structure.
 *
 * Note: If Data2 is lower than 1 or higher than the last conference
 *       available, Data2 will be set to the current conference number!
 */

New AR command:
~~~~~~~~~~~~~~~
#define AR_DropDtrOnNode   862
/* Drop the carrier on a Node.
 *
 * Data1    <- The Node where the carrier shall be droped.
 * Data2
 * Data3
 * IOString
 */

************************* Version v0.26 (07-Sep-96) **************************

-------------[ FAMEInternStructs.h ]------------------------------------------

New elements in struct FAMEConfig:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ULONG			SysOpChatChars;
ULONG			UserChatChars;
ULONG			ChatTimeStart;

-------------[ FAMEDefine.h ]-------------------------------------------------

New defines:
~~~~~~~~~~~~
 /* FAMEInfoList fili_BitFlags defines */

#define	FILI_QUIETNODE								(1 << 1)
#define	FILI_USERHIDE									(1 << 2)
#define	FILI_USERREALHIDE							(1 << 3)
#define	FILI_FORCEWHO									(1 << 4)

Renamed defines:
~~~~~~~~~~~~~~~~
 /* SystemEditor window direct defines (JUMP argument) */

Renamed:

#define SYSED_WND_uNuSED2						30
#define	SYSED_WND_uNuSED3						31

to:

#define SYSED_WND_DoorConfig				30
#define	SYSED_WND_FAMEDebug					31

New define:
~~~~~~~~~~~
 /* SystemEditor window direct defines (JUMP argument) */

#define	SYSED_WND_UserHandler				34

New defines:
~~~~~~~~~~~~
 /* Header defines of FAME Datafiles */

#define	FAMEDBUG		43	/* FAME Debug global data file to let FAME generate
													 different debug logs and more */
#define	FAMEUSHA		44	/* User data handler structure. Defines tools to
													 be startet if a username changes, a user gets
													 deleted or a new user validated. */

New define:
~~~~~~~~~~~
 /* ServerCommands */

#define	SERVER_fDEBUG								2016

New define:
~~~~~~~~~~~
 /* _SvMsgInBitFlg1 defines (MainPart internal) */

#define	SMIBF_SERVER_fDEBUG						(1 << 20)

New defines:
~~~~~~~~~~~~
 /* File flag list flag defines */

#define	FFFL_NODOWNLOAD						(1 << 2)
#define	FFFL_NODELETE							(1 << 3)

New defines:
~~~~~~~~~~~~
 /* FAMEToolPort defines (struct FAMEToolPortMsg) */

#define	FAMETP_Register						0
#define	FAMETP_EndRegister				1
#define	FAMETP_InfoStructs				2
#define	FAMETP_FDCMP							3
#define	FAMETP_ToolAction					4

-------------[ FAMEDoorCommands.h ]-------------------------------------------

New NR command:
~~~~~~~~~~~~~~~
#define NR_GetDoorCallName   113
/* Get the DoorCallName.
 *
 * Data1
 * Data2
 * Data3
 * IOString -> The DoorCallName.
 */

New CF commands:
~~~~~~~~~~~~~~~~
#define CF_SysOpChat       426
/* Jump into SysOp-Chat.
 *
 * Data1    <- if 0 last line will be restored.
 * Data2    <- if TRUE shifted chat.
 * Data3    <- if TRUE no screen to front will be done, else it will.
 * IOString
 * StringPtr
 *
 * Note: Data1 indicates (if 0) that the last displayed string on screen
 *       before the chat will be called is buffered and shall be re-
 *       displayed after chatting.
 *       Often useful for buffering input prompts.
 *
 * Note: Data2 emulates (if TRUE) a chat like with SHIFT-F1 called.
 *       If FALSE it will be a chat like with F1 alone.
 *
 * Note: If the user is already in SysOp-Chat it's not possible to go
 *       in chat again. It's only posible if no SysOp-Chat runs.
 *
 *       If it was not possible to go into SysOp-Chat because the user
 *       is already in chat the command will return with:
 *       ReturnCode = 1 (Comand not successfully executed).
 */

#define CF_SpecialCmd      427
/* Execute a special door command (BBSCMD, SYSCMD or CONF<X>CMD).
 *
 * Data1    <- Command type.
 * Data2
 * Data3
 * IOString <- The door command to be executed.
 * StringPtr <- The arguments for the door.
 *
 * Note: Data1 can have the following numbers:
 *
 *       - If Data1 > 0 it's CONF<Data1>CMD .
 *       - If Data1 = -1 it's BBSCMD .
 *       - If Data1 = -2 it's SYSCMD .
 */

Changed NR command:
~~~~~~~~~~~~~~~~~~~
#define NR_DeleteFlagFile   85
/* Delete File of the Flaglist
 *
 * Data1    <- The conferencenumber in which u want to delete a flagged file.
 * Data2    <- If true the file will not be deleted if the FFFL_NODELETE flag
 *             of the file flag is set. If false flag will be deleted in any
 *             case.
 * Data3
 * IOString <- The file or match to delete file(s).
 *
 * Note: U can use a full filename and also a match like abc* or abc+
 *       or * or + and so on to delete files.
 *
 * Note: If Data1 is lower than 1 or higher than the last conference
 *       available, Data1 will be set to the current conference number!
 */

-------------[ FAMEInternDoorCommands.h ]-------------------------------------

CF_FileCopyMove description changed:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Data2    -> Returncode. If true then there was an error.

changed to:

Data2    -> Returncode. If false then there was an error.

because of using now FAMEDosMove()

also changed:

Data1    <- if 1 then move, else copy file.

to

Data1    <- if 0 then copy, else move file.

#define CF_FileCopyMove    425
/* Copy or move a file.
 *
 * Data1    <- if 0 then copy, else move file.
 * Data2    -> Returncode. If false than there was an error.
 * Data3
 * IOString <- Source file.
 * StringPtr -> Destination file.
 */

RD_SaveMsgFile description changed:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RD_SaveMsgFile     1030
/* Save a Msg from
 *
 * Data1    <- Post to Conference.
 * Data2    -> Result.
 * Data3    <- File to message flag.
 * IOString <- File and path.
 * StructDummy1 <- Allocated and filled struct MailHeader
 * StringPtr    <- File or directory contends to message.
 *
 * Results are: 0 = Successful.
 *              1 = Your given file doesn't exists.
 *              2 = Can't get conference datas from your given conf number.
 *              3 = MsgBase lock failed.
 *              4 = MsgStatus.dat can't be opened.
 *              5 = MsgHeader.dat can't be opened.
 *              6 = Filecopy of message failed.
 *              7 = Your struct MailHeader isn't valid.
 *
 * Data3 file to message flags: 0 - Nothing to attach.
 *                              1 - One single file to attach (StringPtr).
 *                              2 - All files of a directory to attach
 *                                  (StringPtr).
 *
 * Note: Minimum filled elements in struct MailHeader:
 *       - fmah_ToName
 *       - fmah_FromName
 *       - fmah_Subject
 *       - fmah_MsgStatus <- *MUST* be set to TRUE!
 *       - fmah_Private
 *
 * Note: If StringPtr is a valid path to a file it will be copied to
 *       the mail and a flag in the struct MailHeader will be set
 *       to mark that there is a attached file.
 */

-------------[ FAMEInternSetStructs.h ]---------------------------------------

Renamed elements in struct lEVELS:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed8 to EditFileFlags.
Renamed ShortIntNotUsed9 to BBSHelp.
Renamed ShortIntNotUsed10 to QuietMode.

Renamed elements in struct sERVER:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed5 to MinLeftEdge.
Renamed ShortIntNotUsed6 to MinTopEdge.

Renamed element in struct sYSTEM:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed8 to UploadHandle.

New structure:
~~~~~~~~~~~~~~
struct fAMEdEBUG /* FAME:Settings/FAMEDebug.dat */
{
char			FIMCmdDataLog[256],
					XIMCmdDataLog[256],
					AIMCmdDataLog[256],
					TIMCmdDataLog[256],
					DebugLog[256],
					StringNotUsed[4096];
ULONG			ULongNotUsed1,
					ULongNotUsed2,
					ULongNotUsed3,
					ULongNotUsed4,
					ULongNotUsed5;
long			FNode,
					NNode,
					LNode,
					BufferSize,
					LongNotUsed1,
					LongNotUsed2,
					LongNotUsed3,
					LongNotUsed4;
short int	FIMCmdActive,
					FIMDatActive,
					FIMStrActive,
					XIMCmdActive,
					XIMDatActive,
					XIMStrActive,
					AIMCmdActive,
					AIMDatActive,
					AIMStrActive,
					TIMCmdActive,
					TIMDatActive,
					TIMStrActive,
					DebugLogActive,
					FNodeActive,
					NNodeActive,
					LNodeActive,
					AllNodes,
					StripANSI,
					UseBuffer,
					ShortIntNotUsed1,
					ShortIntNotUsed2,
					ShortIntNotUsed3,
					ShortIntNotUsed4,
					ShortIntNotUsed5,
					ShortIntNotUsed6,
					ShortIntNotUsed7,
					ShortIntNotUsed8;
};

Changed structures:
~~~~~~~~~~~~~~~~~~~
struct dOORcONFIG // FAME:Settings/DoorConfig/DoorConfig(x).dat
{
char			DoorCnfName[22],
					DoorCnfPath[102],
					Password[22],
					Arguments[22],
					StrNotUsed2[112];
ULONG			ULongNotUsed1,
					ULongNotUsed2;
long			StackSize,
					Priority,
					AccessLevel,
					Number,
					FAMEVers,
					LongNotUsed1;
USHORT		UShortNotUsed1,
					UShortNotUsed2;
short int	NR,
					NC,
					CF,
					SR,
					SC,
					AR,
					AC,
					RD,
					UNUSED,
					ShortIntNotUsed1,
					ShortIntNotUsed2;
};

struct uSERhANDLER // FAME:Settings/UserHandler/UserHandler(x).dat
{
char			UserHandlerName[22],
					UserHandlerPath[102],
					StrNotUsed1[32],
					StrNotUsed2[102];
ULONG			ULongNotUsed1,
					ULongNotUsed2;
long			StackSize,
					Priority,
					Number,
					FAMEVers,
					LongNotUsed1;
USHORT		UShortNotUsed1,
					UShortNotUsed2;
short int	ShortIntNotUsed1,
					ShortIntNotUsed2;
};

-------------[ FAMEInternLists.h ]--------------------------------------------

New element in struct FAMEToolPortLst:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
STRPTR ftpl_ToolAction;

************************* Version v0.25 (23-Jun-96) **************************

-------------[ FAMEInternSetStructs.h ]---------------------------------------

New structure:
~~~~~~~~~~~~~~
struct fAMEsMODEM /* FAME:Settings/FAMESModem.dat */
{
char			OtherPubScreen[102],
					FallBackPubScreen[102],
					StringNotUsed[1024];
ULONG			ULongNotUsed1,
					ULongNotUsed2,
					ULongNotUsed3,
					ULongNotUsed4,
					ULongNotUsed5;
long			LongNotUsed1,
					LongNotUsed2,
					LongNotUsed3,
					LongNotUsed4,
					LongNotUsed5;
short int	DefPublicScreen,
					WriteLogfile,
					CheckCarrier,
					RTSCTS,
					Encapsulation,
					AutoExit,
					RemoteYell,
					RemoteAutoDl,
					UlonnormalDl,
					UlonDoorDl,
					UlonMessageDl,
					UlonASLDl,
					ShortIntNotUsed1,
					ShortIntNotUsed2,
					ShortIntNotUsed3,
					ShortIntNotUsed4,
					ShortIntNotUsed5;
};

Renamed element in struct lEVELS:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed7 to SModem.

Renamed element in struct pROTOCOL:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed1 to UserSModemAllow.

Renamed elements in struct nODE:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed Obsolete1 to SModem.
Renamed LongNotUsed3 to MinUserPWChars.
Renamed ULongNotUsed3 to NewUserEntryFlags.
Renamed LessNewUserData to ANSIPrompt.

Renamed elements in struct cONF:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed6 to AmigaDOSFileLen.

Renamed elements in struct sERIAL:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed5 to UseOwnDevUnit.
Renamed ShortIntNotUsed6 to NotuseifShared.
Renamed ShortIntNotUsed7 to ReleaseOnline.
Renamed ShortIntNotUsed8 to DeviceReleaseKeepOpen.

Renamed element in struct sYSTEM:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed7 to MaxFidLines.

-------------[ FAMEInternStructs.h ]------------------------------------------

New element in struct FileCheckData:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* Structure for filechecker process datas.
 */

struct	FileCheckData {
struct	MsgPort					*ffcd_FileCheckMsgPort;	/* Ptr to messageport				*/
struct	Process				  *ffcd_MPProcess,				/* Ptr to MainPart process	*/
												*ffcd_FCProcess;				/* Ptr to FChecker process	*/
struct	FAMEConfig			*ffcd_NodeCfg;					/* Ptr to node's config			*/
																								/* structure								*/
struct	sYSTEM					*ffcd_aKTsYSTEM;
struct	nODE						*ffcd_aKTnODE;
struct	FileCheckStatus	*ffcd_FileCheckStatList;
struct	ConfList				*ffcd_FAMEConfList;			/* Ptr to node's current		*/
																								/* conf list								*/
struct	NumFlagList			*ffcd_AddULPathStamm;
ULONG										ffcd_BitFlags;
LONG										ffcd_Result;
struct	User						*ffcd_NodeReadUser;			/* Ptr. to read user data		*/
};

New elements in struct FAMEConfig:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ULONG			GlobBitFlags;
short int	UDFlag;
short int	TypeOfPost;
ULONG			HoldBytes;
long			HoldFiles;

New element in struct AfterUlMem:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* Internal Upload procedure structure.
 */

struct	AfterUlMem {
char		FileName[32],							/* FileName only													*/
				FilePath[256],						/* Node<x>/PlayPen/FileName								*/
				DescPath[256],						/* Node<x>/Work/FileName									*/
				DescriptionPath[256],			/* Node<x>/Work/Description								*/
				DummyPath[256];						/* For dummy usage												*/
};

New structure:
~~~~~~~~~~~~~~
/* FAME SModem data structure
 */

struct	FAMESModemData {
struct	ConfList			*ConfStamm,				/* Ptr to node's conf list stamm		*/
											*FAMEConfList;		/* Ptr to node's current conf list	*/
struct	NumFlagList		*UFlagStamm,			/* Ptr to node's upload flag list		*/
											*USkipStamm,			/* Ptr to node's skiped files list	*/
											*ASLRqStamm,			/* Ptr to node's ASL req. list			*/
											*AddULPathStamm;	/* Ptr to node's add ul paths list	*/
struct	FAMEConfig		*NodeCfg;					/* Ptr to node's config structure		*/
ULONG									SModemDataFlag;		/* 32 bit flags											*/
struct	sYSTEM				*aKTsYSTEM;				/* System Data pointer							*/
struct	sERIAL				*aKTsERIAL;				/* Serial data pointer							*/
};

Elements changed in struct DlVars:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* Internal Donwload structure.
 */

struct	DlVars {
ULONG			FlagedSec,
					FlagedBytes,
					FlagedFiles,
					AvailBytes,
					AvailFiles,
					AvailDayBytes,
					AvailDayFiles,
					AvailDownBytes,
					AvailDownFiles;
short	int	FILEDISABLE,
					BYTEDISABLE,
					DAYFILEDISABLE,
					DAYBYTEDISABLE,
					FBDUMMY,
					FreeDlOnly;
};

New structure:
~~~~~~~~~~~~~~
/* Remember String structure.
 */

struct	FAMERemString {
char		frst_LastLine[256];				/* The string to remember									*/
ULONG		frst_BitFlags;						/* 32 bit flags														*/
};

/*
Usage of frst_BitFlags:

byte 0:
  bit0:  FRST_MCISTRING				/* frst_LastLine is a MCI string							*/
  bit1:
  bit2:
  bit3:
  bit4:
  bit5:
  bit6:
  bit7:
byte 1:
  bit0:
  bit1:
  bit2:
  bit3:
  bit4:
  bit5:
  bit6:
  bit7:
byte 2:
  bit0:
  bit1:
  bit2:
  bit3:
  bit4:
  bit5:
  bit6:
  bit7:
byte 3:
  bit0:
  bit1:
  bit2:
  bit3:
  bit4:
  bit5:
  bit6:
  bit7:
*/

New structure:
~~~~~~~~~~~~~~
/* FAME Window Lock structure
 */

struct	FAMEWindowLock {
struct	Window		*fmwl_Window;
struct	Requester	fmwl_Requester;
ULONG							fmwl_OldIDCMPFlags;
LONG							fmwl_MinWidth,
									fmwl_MinHeight,
									fmwl_MaxWidth,
									fmwl_MaxHeight;
};

-------------[ FAMEInternDoorCommands.h ]-------------------------------------

New RD commands:
~~~~~~~~~~~~~~~~
#define RD_SModemData               90009
/* FAME SModem data structure.
 */

#define	RD_HydraUploadFileName			90010
/* New file receiving.
 */

#define	RD_HydraDownloadFileName		90011
/* New file sending.
 */

-------------[ FAMEDefine.h ]-------------------------------------------------

New defines:
~~~~~~~~~~~~
 /* FileChecker process defines */

#define	FFCC_POSTFILE							3

#define	FFCM_SKIPDUPECHECK				(1 << 0)

New define:
~~~~~~~~~~~
/* Where I am phases defines
 *
 * CalersUdLog defines & What User does defines & ENV defines & Server defines
 *
 * /**/ means implemented! */

#define FAME_SMODEM                 109 /**/

New defines:
~~~~~~~~~~~~
 /* UserFlag1 defines (UserData) */

#define	UD_BACKGROUNDPOST							(1 << 22)
#define	UD_FILENAMELENGTH							(1 << 23)

 /* Remember String structure frst_BitFlags defines */

#define	FRST_MCISTRING								(1 << 0)

 /* New User Entry Flags */

#define	FAMENUE_Location							(1 << 0)
#define	FAMENUE_CityState							(1 << 1)
#define	FAMENUE_PhoneNumber						(1 << 2)
#define	FAMENUE_NumberofLines					(1 << 3)
#define	FAMENUE_Computer							(1 << 4)
#define	FAMENUE_Modem									(1 << 5)
#define	FAMENUE_Language							(1 << 6)
#define	FAMENUE_MsgClearScreen				(1 << 7)
#define	FAMENUE_FilelistClearScreen		(1 << 8)
#define	FAMENUE_RedWhiteSwap					(1 << 9)
#define	FAMENUE_XferProtOptions				(1 << 10)

 /* SystemEditor window direct defines (JUMP argument) */

#define	SYSED_WND_MoreNodeEdit			6		// For compatibility reason
#define	SYSED_WND_MoreNodeEditI			6
#define	SYSED_WND_MoreNodeEditII		33

Removed defines:
~~~~~~~~~~~~~~~~
/* Auto TypeCasting defines */

#define	BeginIO(x)									BeginIO((struct IORequest *)x)
#define	DoIO(x)											DoIO((struct IORequest *)x)
#define	AbortIO(x)									AbortIO((struct IORequest *)x)
#define	CheckIO(x)									CheckIO((struct IORequest *)x)
#define	WaitIO(x)										WaitIO((struct IORequest *)x)
#define	SendIO(x)										SendIO((struct IORequest *)x)

Obsolete define:
~~~~~~~~~~~~~~~~
 /* FAMECfgFlag1 defines (FAME Config) */

//#define	FAMECfg_ANSI							(1 << 9) Obsolete/Unused

New define:
~~~~~~~~~~~
 /* FAMECfgFlag2 defines (FAME Config) */

#define	FAMECfg_NoMoreInput				(1 << 27)

New defines:
~~~~~~~~~~~~
/* Definitions to access the line signal setting functions supported by
 * some IO serial boards (namely the ASDG board).
 */

#define SIOCMD_SETCTRLLINES	(CMD_NONSTD + 7)
#define SIOB_RTSB									0
#define SIOB_DTRB									1
#define SIOB_RTSF									(1L << SIOB_RTSB)
#define SIOB_DTRF									(1L << SIOB_DTRB)

New defines:
~~~~~~~~~~~~
 /* ServerCommands */

#define	SERVER_DoCallerslog					10015
#define	SERVER_PostFileReady				10016

New define:
~~~~~~~~~~~
 /* _SvMsgInBitFlg1 defines (MainPart internal) */

#define	SMIBF_SERVER_PostFileReady		(1 << 19)

-------------[ FAMEDoorCommands.h ]-------------------------------------------

Changed descriptions:
~~~~~~~~~~~~~~~~~~~~~
#define CF_ZModemSend      405
/* Send file to the user via Zmodem protocol
 *
 * Data1
 * Data2    -> Returns the status.
 *             1  file has been transfered.
 *             0  file has been copied local to sysops download directory.
 *             -1 means xprzmodem.library not open.
 * Data3
 * IOString <- The File to be sended to the user.
 */

#define CF_ZModemSendLst   407
/* Send files to the user via Zmodem protocol from Flaglist
 *
 * Data1
 * Data2    -> Returns the status.
 *             1  file has been transfered.
 *             0  file has been copied local to sysops download directory.
 *             -1 means xprzmodem.library not open.
 * Data3
 * IOString
 * StringPtr <- A Stringpointer of nearly unlimited filenames incl. path.
 *              Between every single path/filename has to be a space.
 *              Maximum filelength of path+filename is 100 chars.
 *              Example: "RAM:File1.123 RAM:File2.123 RAM:ENV/TIME"
 */

#define CF_CompType        414
/* Computertype change with build in selector
 *
 * Data1    <- Old or default computertype to load, 0 to let user select.
 * Data2
 * Data3
 * IOString
 */

#define CF_ModemType       415
/* Modemtype change with build in selector
 *
 * Data1    <- Old or default modemtype to load, 0 to let user select.
 * Data2
 * Data3
 * IOString
 */

#define CF_Language        417
/* SystemTextLanguage/TextLanguage (Suffix) changing with build in selector
 *
 * Data1    <- Old or default language to load, 0 to let user select.
 * Data2
 * Data3
 * IOString
 */

Changed GENERAL INFO's:
~~~~~~~~~~~~~~~~~~~~~~~
/*
 *                               GENERAL INFO's
 *                               --------------
 *
 * -General use of Commands:
 *  A Door normaly has to give values (numbers like confnumbers/usernumbers/
 *  flags etc..) into Data1 of the struct FAMEDoorMsg to the DoorPort.
 *  If more values are needed the next Data will be used: Data2 and then
 *  Data3. Values requested from a Door normaly can be found in Data2.
 *  Only if a value needs a ULONG Data3 must be used.
 *
 * -The Door have to check the ReturnCode of struct FAMEDoorMsg!!!
 *  See FAMEGlobalBBSStructs.h for defination of the ReturnCode.
 *
 * -Note that all structure elements of the struct FAMEDoorMsg are beginning
 *  with fdom_ !
 *
 *  If you see the elements below like here:
 *
 *  /* Data1
 *   * Data2
 *   * Data3
 *   * IOString
 *   */
 *
 *  They have to be used like this:
 *
 *  MyFAMEDoorMsg -> fdom_Data1
 *  MyFAMEDoorMsg -> fdom_Data2
 *  MyFAMEDoorMsg -> fdom_Data3
 *  MyFAMEDoorMsg -> fdom_IOString
 *
 *  The same for all other structure elements!
 */

New NR command:
~~~~~~~~~~~~~~~
#define NR_GetDoorDatas      112
/* Get datas of your door like the path
 *
 * Data1
 * Data2
 * Data3
 * IOString -> The path from where FAME has started your door.
 * StringPtr -> The complete path + door file name.
 * StructDummy1 -> Pointer to struct dOORS (Developer only).
 */

Changed AR command:
~~~~~~~~~~~~~~~~~~~
#define AR_Userlimit       826
/* Retrieve the Userlimit
 *
 * Data1
 * Data2
 * Data3    -> Contains the BBS Userlimit.
 * IOString
 */

Changed AC command:
~~~~~~~~~~~~~~~~~~~
#define AC_Userlimit       919
/* Change the Userlimit
 *
 * Data1
 * Data2
 * Data3    <- The new BBS Userlimit.
 * IOString
 */

Removed CF command:
~~~~~~~~~~~~~~~~~~~
CF_SysLanguage removed and obsolete.
CF_Language is now both combined.

************************* Version v0.24 (23-Apr-96) **************************

-------------[ FAMEDoorCommands.h ]-------------------------------------------

CF_DoCallersLog description changed:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define CF_DoCallersLog    422
/* Write to any <x>.log
 *
 * Data1    <- phase (type).
 * Data2    <- <x>.log type.
 * Data3
 * IOString <- The string added to the <x>.log.
 *
 * Log type <x>:
 *
 * 0 = Callers.log only.
 * 1 = UDLog
 * 2 = StartLog
 * 3 = UDLog
 *
 * Note: Callers.log will be written in ervery case!
 */

RD_DoCallersLog description changed:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RD_SaveMsgFile     1030
/* Save a Msg from
 *
 * Data1    <- Post to Conference.
 * Data2    -> Result.
 * Data3
 * IOString <- File and path.
 * StructDummy1 <- Allocated and filled struct MailHeader
 * StringPtr    <- File to message.
 *
 * Results are: 0 = Successful.
 *              1 = Your given file doesn't exists.
 *              2 = Can't get conference datas from your given conf number.
 *              3 = MsgBase lock failed.
 *              4 = MsgStatus.dat can't be opened.
 *              5 = MsgHeader.dat can't be opened.
 *              6 = Filecopy of message failed.
 *              7 = Your struct MailHeader isn't valid.
 *
 * Note: Minimum filled elements in struct MailHeader:
 *       - fmah_ToName
 *       - fmah_FromName
 *       - fmah_Subject
 *       - fmah_MsgStatus <- *MUST* be set to TRUE!
 *       - fmah_Private
 *
 * Note: If StringPtr is a valid path to a file it will be copied to
 *       the mail and a flag in the struct MailHeader will be set
 *       to mark that there is a attached file.
 */

AR_EditFile description changed:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define AR_EditFile        804
/* Edit every File with the internal Texteditor
 *
 * Data1
 * Data2    -> Returncode: 0 successful, -2 aborted by user.
 * Data3
 * IOString <- The file to be edit.
 */

New AR command:
~~~~~~~~~~~~~~~
#define AR_HotKey          861
/* Gets a char without waiting for it, get also self definable cursor keys.
 *
 * Data1    <- Cursor key begining return code. (If 0 they begin with 2)
 * Data2    -> The char typed by the user.
 * Data3
 * IOString
 *
 * Note: AR_HotKey is the same as NR_HotKey, but like NR_WaitChar it
 *       returns also cursor keys. Beware, the cursor key returns
 *       are maybe others than with NR_WaitChar!!!
 *
 * Note: You get all ascii codes also RAW codes, but only the CSI codes and
 *       escape-sequences will be filtered, because the BBS has to check for
 *       FKeys and more.
 *       You will get the cursorkeys as the following values:
 *       Data1+2 for UP, Data1+3 for DOWN, Data1+1 for RIGHT and Data1 for LEFT.
 *
 *       Defination: LEFT  = 0
 *                   RIGHT = 1
 *                   UP    = 3
 *                   DOWN  = 2
 *
 *       You now have to add the defines above to the returncode to see
 *       if the result is a cursor key.
 *
 *       If you specify that LEFT (first cursor key) begins with 160
 *       (set Data1 to 160) the cursorkeys will be the following ones:
 *
 *       CURSOR LEFT  = 160
 *       CURSOR RIGHT = 161
 *       CURSOR UP    = 163
 *       CURSOR DOWN  = 162
 */

Renamed AR commands:
~~~~~~~~~~~~~~~~~~~~
Renamed AR_AdditioUlPathes to AR_AdditioUlPaths.
Renamed AR_AdditioDlPathes to AR_AdditioDlPaths.

-------------[ FAMEInternStructs.h ]------------------------------------------

New element in struct FAMEConfig:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
short int ResumeToCheck;

New element in struct DlVars:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
short int FreeDlOnly;

New elements in struct FAMEHydraData:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* FAME Hydra rendezvous data structure
 */

struct	FAMEHydraData {
struct	IOExtSer			rd_ReadRequest,		/* Serial read request.							*/
											rd_WriteRequest;	/* Serial write request.						*/
struct	ConfList			*ConfStamm,				/* Ptr to node's conf list stamm		*/
											*FAMEConfList;		/* Ptr to node's current conf list	*/
struct	NumFlagList		*UFlagStamm,			/* Ptr to node's upload flag list		*/
											*USkipStamm,			/* Ptr to node's skiped files list	*/
											*ASLRqStamm,			/* Ptr to node's ASL req. list			*/
											*AddULPathStamm;	/* Ptr to node's add ul paths list	*/
struct	FAMEConfig		*NodeCfg;					/* Ptr to node's config structure		*/
ULONG									HydraDataFlag;		/* 32 bit flags											*/
struct	fAMEhYDRA			*aKTfAMEhYDRA;		/* Global FAME Hydra config pointer	*/
struct	fAMEhYDRAnODE	aKTfAMEhYDRAnODE;	/* Local FAME Hydra config struct		*/
struct	sYSTEM				*aKTsYSTEM;				/* System Data pointer							*/
};

New element in struct FileCheckData:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* Structure for filechecker process datas.
 */

struct	FileCheckData {
struct	MsgPort					*ffcd_FileCheckMsgPort;	/* Ptr to messageport				*/
struct	Process				  *ffcd_MPProcess,				/* Ptr to MainPart process	*/
												*ffcd_FCProcess;				/* Ptr to FChecker process	*/
struct	FAMEConfig			*ffcd_NodeCfg;					/* Ptr to node's config			*/
																								/* structure								*/
struct	sYSTEM					*ffcd_aKTsYSTEM;
struct	FileCheckStatus	*ffcd_FileCheckStatList;
ULONG										ffcd_BitFlags;
LONG										ffcd_Result;
struct	User						*ffcd_NodeReadUser;			/* Ptr. to read user data		*/
};

-------------[ FAMEInternSetStructs.h ]---------------------------------------

Renamed element in struct fAMEmODULES:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed LongNotUsed1 to FileCheckerStack.

Renamed elements in struct nODE:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed LongNotUsed2 to MinUserNameChars and renamed Obsolete2
to LessNewUserData.

Renamed elements in struct cONF:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed AddUlPathes to AddUlPaths and AddDlPathes to AddDlPaths.
Renamed ShortIntNotUsed5 to FirstPathsBehindA.

-------------[ FAMEInternSetStructs.h ]---------------------------------------

Renamed element in struct sYSTEM:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed LongNotUsed3 to MaxCopyBuffer	/* Maximum copy buffer for filecopies */
Renamed LongNotUsed4 to MinFreeMB			/* Minimum free MB for upload volumes */

New structures:
~~~~~~~~~~~~~~~
struct fAMEhYDRA /* FAME:Settings/FAMEHydra.dat */
{
char			StringNotUsed[1024];
ULONG			ULongNotUsed1,
					ULongNotUsed2,
					ULongNotUsed3,
					ULongNotUsed4,
					ULongNotUsed5;
long			LongNotUsed1,
					LongNotUsed2,
					LongNotUsed3,
					LongNotUsed4,
					LongNotUsed5;
short int	WriteLogFile,
					RememberWndPos,
					ShortIntNotUsed1,
					ShortIntNotUsed2,
					ShortIntNotUsed3,
					ShortIntNotUsed4,
					ShortIntNotUsed5;
};

struct fAMEhYDRAnODE /* FAME:Settings/Node<x>/FAMEHydra.dat */
{
char			StringNotUsed[1024];
ULONG			ULongNotUsed1,
					ULongNotUsed2,
					ULongNotUsed3,
					ULongNotUsed4,
					ULongNotUsed5;
long			ReceiveWndLeft,
					ReceiveWndTop,
					ReceiveWndWidth,
					ReceiveWndHeight,
					SendWndLeft,
					SendWndTop,
					SendWndWidth,
					SendWndHeight,
					ChatReadWndLeft,
					ChatReadWndTop,
					ChatReadWndWidth,
					ChatReadWndHeight,
					ChatWriteWndLeft,
					ChatWriteWndTop,
					ChatWriteWndWidth,
					ChatWriteWndHeight,
					ZoomMinX,
					ZoomMinY,
					ZoomMaxX,
					ZoomMaxY,
					LongNotUsed;
short int	ShortIntNotUsed1,
					ShortIntNotUsed2,
					ShortIntNotUsed3,
					ShortIntNotUsed4,
					ShortIntNotUsed5;
};

-------------[ FAMEDefine.h ]-------------------------------------------------

Removed defines:
~~~~~~~~~~~~~~~~
/* other defines */

#define	USERDATAOFFSET							sizeof(struct User)
#define	USERKEYSOFFSET							sizeof(struct UserKeys)
#define	USERCONFOFFSET							sizeof(struct UserConf)
#define	MSGHEADEROFFSET							sizeof(struct FAMEMailHeader)
#define	MSGSTATUSOFFSET							sizeof(struct FAMEMailStat)

New defines:
~~~~~~~~~~~~
 /* Number flag file list defines */

#define	FNFL_OVERWRITE						(1 << 0)

 /* File flag list flag defines */

#define	FFFL_FREEFILE							(1 << 0)
#define	FFFL_NUMDELFLAG						(1 << 1)

 /* Header defines of FAME Datafiles */

#define	FAMEHYDR		40	/* FAME Hydra global config data file */
#define	FAMEHYCO		41	/* FAME Hydra Node depending config data file */
#define	FAMESMDM		42	/* SModem global config data file */

Renamed define:
~~~~~~~~~~~~~~~
Renamed:
#define	SYSED_WND_uNuSED1           23
To:
#define	SYSED_WND_ExtXferMods       23

-------------[ FAMEInternLists.h ]--------------------------------------------

Changed structure:
~~~~~~~~~~~~~~~~~~
/* Flag file list structure
 */

struct	FileList {
struct	FileList	*Next,
									*Prev;
char							FileName[32],
									FilePath[102];
long							FileNumber;
ULONG							BitFlags;
};

/*
Usage of BitFlags:

byte 0:  FFFL_FREEFILE
  bit0:  FFFL_NUMDELFLAG
  bit1:
  bit2:
  bit3:
  bit4:
  bit5:
  bit6:
  bit7:
byte 1:
  bit0:
  bit1:
  bit2:
  bit3:
  bit4:
  bit5:
  bit6:
  bit7:
byte 2:
  bit0:
  bit1:
  bit2:
  bit3:
  bit4:
  bit5:
  bit6:
  bit7:
byte 3:
  bit0:
  bit1:
  bit2:
  bit3:
  bit4:
  bit5:
  bit6:
  bit7:
*/

Enhanced structure:
~~~~~~~~~~~~~~~~~~~
/* Number flag file list structure
 */

struct	NumFlagList {
struct	NumFlagList	*Next,
										*Prev;
char								FileName[102];
long								FileNumber;
ULONG								BitFlags;
};

Removed structure:
~~~~~~~~~~~~~~~~~~
struct FAMEUlPathList is now located in include:libraries/FAME.<h|i>

************************* Version v0.23 (19-Mr-96) **************************

-------------[ FAMEInternLists.h ]--------------------------------------------

Structure moved:
~~~~~~~~~~~~~~~~
struct	FAMEDestNodes is now located in FAMEPublicStructs.h

New structure elements:
~~~~~~~~~~~~~~~~~~~~~~~
Two new elements in struct NdLst: "LastAct" and "LastActCmd".
"LastAct" is moved from struct FAMEServerConfig.

Removed element:
~~~~~~~~~~~~~~~~
In struct NdLst the element "NodeUser" is removed.

New structure element:
~~~~~~~~~~~~~~~~~~~~~~
New element in struct NdLst: "NdFInfoList" which now contains the removed
element "NodeUser" and many more.
NdFInfoList is a part of the FAMESemaphore info list and is for each node
the current list element.

The new struct NdLst:
~~~~~~~~~~~~~~~~~~~~~
struct	NdLst {
struct	NdLst					*Next,				/* List next Pointer										*/
											*Prev;				/* List previous Pointer								*/
struct	FAMEConfig		*NodeCfg;			/* STRICTLY READ-ONLY!!!								*/
																		/* Config of the Node										*/
struct	FAMEInfoList	NdFInfoList;	/* The FAMEInfoList of the current Node	*/
																		/* This one is a part of the whole			*/
																		/* FAMESemaphore info list!							*/
char									UserName[22],	/* UserName															*/
											Location[22],	/* Location															*/
											Action[22],		/* Action at the Node										*/
											LastAct[22];	/* Last Action to restore								*/
long									Number,				/* Listentry number (= NodeNr)					*/
											BaudCps,			/* BaudRate or CPS (Transfer)						*/
											ChatFlag,			/* Chat flag														*/
											Online,				/* Node online ? TRUE/FALSE							*/
											ActionCmd,		/* What does the user do now?!					*/
											LastActCmd,		/* Last Action command to restore				*/
											LstCmd,				/* All Cmds (ActionCmd) incl. ServerCmd	*/
											ReStartNode,	/* Flag to restart the Node							*/
											LineColFlag,	/* Node displaycolor flag 0=black(norm)	*/
																		/* 1=blue(hidden), 2=white(chat/normal)	*/
																		/* 3=white(chat/hidden)									*/
											StartedNode;	/* Started Node flag										*/
SHORT									UsCol1,				/* UserName foreground color						*/
											LoCol1,				/* Location foreground color						*/
											AcCol1,				/* Action foreground color							*/
											BdCol1,				/* BaudCps foreground color							*/
											UserOnline;		/* 0 = Await, 1 = Connect, 2 = Valid		*/
ULONG									BitFlags;			/* Bit flags														*/
};

New structure (needed to get the struct NdLst):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* Node list entry pointer.
 */

struct	NodeListStamm {
struct	NdLst	*First;								/* First struct NdLst Pointer						*/
};

New structure (needed for some (private) FAME.library calls:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* UploadPathList, equal to Number flag file list structure.
 */

struct	FAMEUlPathList {
struct	FAMEUlPathList	*fupl_Next,			/* Ptr to next UploadPathList entry	*/
												*fupl_Prev;			/* Ptr to prev UploadPathList entry	*/
char										fupl_Path[102];	/* The upload path									*/
ULONG										fupl_Internal;	/* FAME.library internal						*/
																				/* Do not use!											*/
};

Enhanced element:
~~~~~~~~~~~~~~~~~

In struct NdLst the element UserOnline has a new number:

SHORT UserOnline;   /* 0=Await 1=Connect 2=Valid 3=Reset N. */

3=Reseting Node.

-------------[ FAMEDoorCommands.h ]-------------------------------------------

RD_StringToNodes description changed:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
StructDummy1 <- The list of Nodes from type struct FAMEDestNodes.
                                            ^^^^^^^^^^^^^^^^^^^^
RD_GetServerList description changed:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
StructDummy1 -> The internal Serverliststamm (struct NodeListStamm).

New RD commands:
~~~~~~~~~~~~~~~~
#define RD_GetMailHeader   1056
/* Retrieve the MailHeader pointer (SYSCMD: MAILHEADER)
 *
 * Data1
 * Data2
 * Data3
 * IOString
 * StructDummy1 -> The MailHeader pointer.
 */

#define RD_ShowMailHeader  1057
/* Inform the Node to show MailHeader (SYSCMD: MAILHEADER)
 *
 * Data1        <- True to show MailHeader, false not.
 * Data2
 * Data3
 * IOString
 */

Renamed NR command:
~~~~~~~~~~~~~~~~~~~
Renamed NR_LosCarrier to NR_LostCarrier.

Renamed NC command:
~~~~~~~~~~~~~~~~~~~
Renamed NC_LosCarrier tp NC_LostCarrier.

No longer obsolete NR command:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define NR_XferProt         66
/* Retrieve the User's (last) used transfer protocol
 *
 * Data1
 * Data2    -> Contains the User's (last) used transfer protocol value.
 * Data3
 * IOString -> Contains the User's (last) used transfer protocol name.
 */

-------------[ FAMEInternStructs.h ]------------------------------------------

Removed structure element:
~~~~~~~~~~~~~~~~~~~~~~~~~~
From struct FAMEServerConfig the element LastAction was removed and putted
into struct NdLst.

/* FAME Server config structure
 */

struct	FAMEServerConfig {
char		FAME_ServerPort[32],
				ServerStartName[52],
				ServerPopUpKey[52],
				CycLabel[2][10],
				NodeLabel[30][7];
long		ActLabel,
				ActGadSwitch,
				confanz,
				VisNodeGads,
				MinHeightEver,
				NodeGadHeight,
				AktWndHeight,
				NoNodeStru,
				FirstGadNode,
				LastActivNode,
				OldFirstGad,
				Version,
				Revision,
				StartedTime;
};

Enhanced SystemEditor config structure:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* FAME SystemEditor config structure
 */

struct	SysEdConf {
char		SystemEdVers[101],
				BrokerVertxt[101],
				SystemEdVerInfo[101],
				SystemEdPopUpKey[52],
				BBSLocation[101],
				LoadFileInWin[256];
SHORT		CreateNR,
				JumpToWin,
				WinCloseQuit;
};


New elements in struct FAMEConfig:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
char	FileUpload[32]
char	FileDownload[32]
cahr	UsedXferProt[32]
ULONG	UploadCPS,
ULONG	DownloadCPS;
short int UsedXferProtVal;

Removed structure element:
~~~~~~~~~~~~~~~~~~~~~~~~~~
Removed elements in struct FAMEConfig:

char TransferType[12]
char NodeName[32]

-------------[ FAMEPublicStructs.h ]------------------------------------------

Changed elements in struct FAMEMailHeader:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Element fmah_LongNotUsed1 is now named: fmah_AktMsgNum:
Needed for SYSCMD: MAILHEADER.

All BoolNotUsed changed to ShortNotUsed.

Element fmah_ShortNotUsed1 is now named: fmah_HeadNumLines:
Number of lines skipping because of header.

New struct FAMEMailHeader:

/* Messagebase mail header structure, version 0.
 */

struct	FAMEMailHeader {
char		fmah_ToName[32],			/* To user name  Name/ALL/EALL/UEALL					*/
				fmah_FromName[32],		/* From user name															*/
				fmah_Subject[32],			/* Subject																		*/
				fmah_ToNet[12],				/* From Net																		*/
				fmah_FromNet[12],			/* To Net																			*/
				fmah_CryptPW[12],			/* KryptPW																		*/
				fmah_StrNotUsed1[12],
				fmah_StrNotUsed2[12],
				fmah_StrNotUsed3[12];
long		fmah_MsgNum,					/* Message number															*/
				fmah_MsgDate,					/* Message date																*/
				fmah_Crypt,						/* Crypted Y/N 0=no														*/
				fmah_UFromLevel,			/* Level from writer													*/
				fmah_Lines,						/* Number of lines for read testing						*/
															/* if more than 100 lines...									*/
				fmah_AktMsgNum,				/* Needed for SYSCMD: MAILHEADER							*/
				fmah_LongNotUsed2,
				fmah_Prioity,					/* Priority																		*/
				fmah_DeleteInDays,		/* Delete in days															*/
				fmah_Received;				/* Times read																	*/
ULONG		fmah_ULongNotUsed1,
				fmah_ULongNotUsed2,
				fmah_ULongNotUsed3,
				fmah_ULongNotUsed4;
BOOL		fmah_MsgStatus,				/* State: deleted? 1=valid 0=deleted					*/
				fmah_AFileStat,				/* Attached file(s)?													*/
				fmah_NotUsed,
				fmah_Private,					/* Private msg?																*/
				fmah_ToNameRec;				/* Received by fmah_ToName?										*/
SHORT		fmah_HeadNumLines,		/* Number of lines skipping because of header */
				fmah_BoolNotUsed2,
				fmah_BoolNotUsed3,
				fmah_BoolNotUsed4,
				fmah_BoolNotUsed5;
};

Renamed structs:
~~~~~~~~~~~~~~~~
Renamed struct FAMECoProzessPort to FAMECoProcessMsg,
and FAMECoProzess to FAMECoProcess.

New structs:
~~~~~~~~~~~~
struct	FAMEInfoList {
struct	FAMEInfoList	*fili_Next,				/* Ptr. to next struct FAMEInfoList	*/
											*fili_Prev;				/* Ptr. to prev struct FAMEInfoList	*/
struct	User					*fili_NodeRUser,	/* Ptr. to Nodes read user datas		*/
											*fili_NodeWUser;	/* Ptr. to Nodes write user datas		*/
struct	ConfList			*fili_ConfStamm,	/* Origin ptr. of the conf. list		*/
											*fili_FAMECnfLst;	/* Ptr. to the current conf. datas	*/
STRPTR								fili_SVUserName,	/* UserName (Server string)					*/
																				/* Note: Max. 22 bytes in size !		*/
											fili_SVLocation,	/* UserLocation (Server string)			*/
																				/* Note: Max. 22 bytes in size !		*/
											fili_SVAction,		/* Node action string (Server str)	*/
																				/* Note: Max. 22 bytes in size !		*/
											fili_VerStr,			/* Node version string							*/
																				/* Note: Max. 32 bytes in size !		*/
											fili_VersionStr,	/* Complete Node version string			*/
																				/* Note: Max. 62 bytes in size !		*/
											fili_ComputerType,/* Computer type as string					*/
																				/* Note: Max. 36 bytes in size !		*/
											fili_ModemType,		/* Modem type as string							*/
																				/* Note: Max. 36 bytes in size !		*/
											fili_Extension,		/* Extension for text files					*/
																				/* Note: Max. 12 bytes in size !		*/
											fili_Language,		/* Users selected language					*/
																				/* Note: Max. 32 bytes in size !		*/
											fili_ConnectMsg,	/* Connect message string						*/
																				/* Note: Max. 82 bytes in size !		*/
											fili_XferProt,		/* Transfer protocol name						*/
																				/* Note: Max. 32 bytes in size !		*/
											fili_FileUpload,	/* Name of file uploading/ed				*/
																				/* Note: Max. 32 bytes in size !		*/
											fili_FileDownload,/* Name if file downloading/ed			*/
																				/* Note: Max. 32 bytes in size !		*/
											fili_SerialDriver,/* Serial device driver name				*/
																				/* Note: Max. 102 bytes in size !		*/
					 						fili_PubScrName,	/* Node PublicScreen name						*/
																				/* Note: Max. 22 bytes in size !		*/
											fili_FiFoName,		/* Node FiFo name										*/
																				/* Note: Max. 22 bytes in size !		*/
											fili_ReservedUser,/* Name of reserved user						*/
																				/* Note: Max. 32 bytes in size !		*/
											fili_ASLDlPath,		/* ASL requester download path			*/
																				/* Note: Max. 102 bytes in size !		*/
											fili_ASLULPath,		/* ASL requester upload path				*/
																				/* Note: Max. 102 bytes in size !		*/
											fili_ASLTxtViewP;	/* ASL requester text view path			*/
																				/* Note: Max. 102 bytes in size !		*/
long									*fili_WhatLogon,	/* Logon type (defined)       (ptr) */
											*fili_InitBaud,		/* Baud rate on initializing  (ptr) */
											*fili_BaudRate,		/* Baud rate with no CPS      (ptr) */
											*fili_UploadCPS,	/* Upload CPS rate            (ptr) */
											*fili_DownloadCPS,/* Download CPS rate          (ptr) */
											*fili_TimeConnect,/* Time connected to the Node (ptr) */
											*fili_NumConfs;		/* Number of conferences      (ptr) */
SHORT									*fili_RelativCnfs,/* 0 = real else relative     (ptr) */
											*fili_ChatFlag;		/* 0 = not available else available	*/
long									fili_SVNodeNumber,/* The number of this Node					*/
											fili_SVBaudCps,		/* BaudRate or CPS (Transfer)				*/
											fili_SVActionCmd,	/* Defined action number						*/
											fili_DataFileVer,	/* Data file version								*/
											fili_DataFileRev,	/* Data file revision								*/
											fili_Version,			/* Nodes version										*/
											fili_Revision,		/* Nodes revision										*/
											fili_StartedTime;	/* Nodes start time									*/
SHORT									fili_SVNodeOnline,/* 0 = not started else online			*/
											fili_UserOnline;	/* 0 = Await 1 = Connect 2 = Valid	*/
ULONG									fili_BitFlags,		/* Bit flags for different things		*/
											fili_Reserved[20];/* Reserved fileds for future usage	*/
};

struct	FAMESemaphore {
struct	SignalSemaphore	fsem_Semaphore;			/* The Signal Semaphore					*/
struct	FAMEInfoList		*fsem_FirstNode;		/* Ptr. to first FAMEInfoList		*/
																						/* entry, in every case Node 0	*/
STRPTR									fsem_SVBBSLocPath,	/* BBS Location Path						*/
												fsem_SVBBSName,			/* BBS Name											*/
												fsem_SVBBSOrigin,		/* BBS Origin/Group							*/
												fsem_SVSysOpName;		/* SysOp Name										*/
long										fsem_SVNumOfNodes,	/* The number of nodes in list	*/
												fsem_SVVersion,			/* Servers version							*/
												fsem_SVRevision,		/* Servers revision							*/
												fsem_SVStartedTime;	/* Servers start time						*/
ULONG										fsem_Reserved[20];	/* Reserved fileds for future		*/
};

Enhanced element:
~~~~~~~~~~~~~~~~~

In struct FAMEInfoList the element fili_UserOnline has a new number:

SHORT fili_UserOnline;  /* 0=Await 1=Connect 2=Valid 3=Reset*/

3=Reseting Node.

-------------[ FAMEDefine.h ]-------------------------------------------------

New defines:
~~~~~~~~~~~~
 /* FAMEInfoList fili_BitFlags defines */

#define	FILI_USERSAVELOCK					(1 << 0)

Renamed define:
~~~~~~~~~~~~~~~
Renamed FAME_LOSCARRIER to FAME_LOSTCARRIER

New define Block:
~~~~~~~~~~~~~~~~~
 /* SystemEditor window direct defines (JUMP argument) */

#define	SYSED_WND_Main              0
#define	SYSED_WND_SystemDatas       1
#define	SYSED_WND_MoreSystemDatas   2
#define	SYSED_WND_ServerSettings    3
#define	SYSED_WND_NodeEdit          4
#define	SYSED_WND_SerModScr         5
#define	SYSED_WND_MoreNodeEdit      6
#define	SYSED_WND_Conferences       7
#define	SYSED_WND_AccessSecure      8
#define	SYSED_WND_Levels            9
#define	SYSED_WND_MoreLevels        10
#define	SYSED_WND_ConferenceAccess  11
#define	SYSED_WND_Presets           12
#define	SYSED_WND_Activities        13
#define	SYSED_WND_Doors             14
#define	SYSED_WND_rESERVED1         15
#define	SYSED_WND_rESERVED2         16
#define	SYSED_WND_InternalDoors     17
#define	SYSED_WND_ComputerTypes     18
#define	SYSED_WND_ModemTypes        19
#define	SYSED_WND_Screens           20
#define	SYSED_WND_FileCheckers      21
#define	SYSED_WND_TextLanguage      22
#define	SYSED_WND_uNuSED1           23
#define	SYSED_WND_FAMEModules       24
#define	SYSED_WND_ExternModules     25
#define	SYSED_WND_UserFileBase      26
#define	SYSED_WND_Protocols         27
#define	SYSED_WND_DoonError         28
#define	SYSED_WND_DoorPortNames     29
#define	SYSED_WND_uNuSED2           30
#define	SYSED_WND_uNuSED3           31
#define	SYSED_WND_About             32

-------------[ FAMEUserStructs.h ]--------------------------------------------

Renamed element in struct User:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed LosCarrier to LostCarrier.

-------------[ FAMEInternSetStructs.h ]---------------------------------------

Renamed element in struct nODE:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed FilesNotAllPath to FilesNotAll.

Renamed element in struct sYSTEM:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Renamed ShortIntNotUsed6 to AutoRestrict.

-------------[ FAMEInternDoorCommands.h ]-------------------------------------

Removed commands:
~~~~~~~~~~~~~~~~~
/* FileHandle
 */

#define RD_LoadConfCnf              11802
#define RD_LoadActivitiesCnf        11807
#define RD_LoadErrorCnf             11808
#define RD_LoadInternDoorsCnf       11810
#define RD_LoadScreensCnf           11811
#define RD_LoadNodeCnf              11812
#define RD_LoadSerialCnf            11813
#define RD_LoadModemCnf             11814
#define RD_LoadScreenCnf            11815
#define RD_LoadCheckerCnf           11816
#define RD_LoadLangLocaleCnf        11817
#define RD_LoadIntModulesCnf        11819
#define RD_LoadExtModulesCnf        11820

******************************************************************************
<EOF>
