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

-------------[ 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]-----------------------

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_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 ]-------------------------------------------------

New defines:
~~~~~~~~~~~~
/*
 * 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;
	char			upus_Reserved[16384];
};

-------------[ 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

/*
 * 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)

/*
 * 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

 /* 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>
