#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif

#ifndef LIBRARIES_DOSEXTENS_H
#include <libraries/dosextens.h>
#endif

#ifndef _STDIO_H
#include <stdio.h>
#endif

#ifndef NL_NL_H
#include <dialog/nl.h>
#endif

/* Cron routines */
LONG CronEvent(UBYTE,ULONG,char *);
LONG WhenEvent(char *);


/* Handler routines */
LONG SendCtlMsg(LONG, LONG, char *);
LONG TSetFlags(ULONG,char *);
LONG TUnSetFlags(ULONG,char *);
LONG TBaud(LONG,char *);
LONG TColors(USHORT *,char *);
LONG TCont(char *);
LONG TDevQuery(struct tdev_info *,char *);
LONG TFreeze(char *);
LONG TGetSer(struct TPTSerStuff *,char *);
LONG TGetTitle(char *,char *);
LONG TKill(char *);
LONG TRecover(char *);
LONG TScreen(LONG,struct ScrStruct *,char *);
LONG TString(char *,char *);
LONG TTimeDelay(LONG,char *);
LONG TTitle(char *,char *);
LONG TWindow(LONG,struct WinStruct *,char *);
LONG TWinHeight(char *,char *);
LONG TInTrans(char *,char *);
LONG TOutTrans(char *,char *);
LONG TCheckCarrier(char *);
LONG TSendBreak(char *);


/* String comparison routines */
LONG Stricmp(char *,char *);
LONG Strnicmp(char *,char *,USHORT);


/* String formatting routines */
void Upper(char *);
void Capitalize(char *);
void UnderScore(char *);
void DeScore(char *);
void StripSpaces(char *);


/* Formatting routines*/
LONG __stdargs ASPrintf(struct USER_DATA *,char *,char *,...);
LONG __stdargs AFPrintf(struct USER_DATA *,BPTR,char *,...);
LONG           XASPrintf(struct USER_DATA *,char *,char *,void *);
LONG           XAFPrintf(struct USER_DATA *,BPTR,char *,void *);
LONG           AFormat(struct USER_DATA *,void *,long (*putsub)(),char *,char *);


/* Time routines */
void  MDate(char *);
void  SMDate(ULONG,char *);
ULONG AmigaTime(void);
void  UnpackTime(ULONG, struct ATime *);
LONG  TimeUntilShutdown(char *);
void  SuspendTime(struct Ram_File *, char *);
void  ResumeTime(struct Ram_File *, char *);


/* Resource management routines */
LONG ResourceMsg(struct RMMessage *);
LONG ActivatePort(char *,char *);
LONG DeActivatePort(char *,char *);
LONG LockPort(char *,char *,char *,char,char *);
LONG ImmedLockPort(char *,char *,char *,char,char *);
LONG TransferPortLock(char *,char *,char *,char *,char,char *);
LONG FreePort(char *,char *);
LONG GetPortInfo(struct PortInfo *);
LONG FreePortInfo(struct PortInfo *);
LONG LockArea(USHORT,char *,char *,char,UBYTE);
LONG BorrowArea(USHORT,char *,char *,char,UBYTE);
LONG FreeArea(USHORT,char *,UBYTE);
LONG EnterArea(USHORT,UBYTE);
LONG LeaveArea(USHORT,UBYTE);
LONG GetAreaInfo(struct DLGAreaInfo *,UBYTE);
LONG FreeAreaInfo(struct DLGAreaInfo *);
LONG ListPorts(char *,char *);
LONG LoadLang(char *,char *);
struct LangStruct *GetLang(char *);
LONG LockResource(char *,char *,char *,char,UBYTE);
LONG FreeResource(char *,char *);
struct List *GetResReport(void);
LONG FreeResReport(struct List *);
LONG LockMenu(char *,struct MenuStuff *,USHORT,char *,char *,char,UBYTE);
LONG FreeMenu(char *,char *,char *);
LONG PurgeMenu(char *,char *);


/* Structured File I/O routines */
LONG AddStruct(char *,char *,ULONG,USHORT);
LONG DeleteStruct(char *,char *,ULONG,USHORT);
LONG GetStruct(char *,char *,ULONG,USHORT);
LONG GetFirstStruct(char *,char *,ULONG);
BOOL Exists(char *);
LONG FileSize(char *,ULONG *);
LONG GetComment(char *, char *);
BOOL GetFileDate(char *, long *);
BOOL DelDir(char *, struct USER_DATA *);
LONG DirSize(char *);
BOOL CD(char *);
LONG Cat(char *, char *, char *);
LONG Copy(char *, char *);
LONG SmartRename(char *, char *);
LONG AppendFile(char *,char *);
LONG BinPos(BPTR,ULONG,char *,USHORT,USHORT,ULONG *);
LONG FileCopy(BPTR,BPTR,ULONG,ULONG,ULONG);


/* Broadcast routines */
LONG BroadCast(char *,char *,UBYTE);
LONG BCPend(char *);
LONG BCResume(char *);
LONG BCGet(char *,char *);
LONG HandleBCMsgs(char *);
LONG BCMsg(char *,char *,UBYTE,UBYTE);
BOOL Inform(char *,char *,char *,UBYTE);
BOOL WaitingMail(char *,char *,char *,SHORT,char *,SHORT,char *);


/* User access routines */
LONG  GetDevName(char *);
BOOL  ReadRam(struct Ram_File *,char *);
BOOL  WriteRam(struct Ram_File *,char *);
BOOL  ReadUser(struct Ram_File *,struct USER_DATA *,char *);
BOOL  WriteUser(char *,struct USER_DATA *);
LONG  GetComputerType(SHORT,char *);
LONG  Age(SHORT,SHORT,SHORT);
LONG  CheckUser(char *);
SHORT GetLevel(char *);
void  LogOut(struct Ram_File *, struct USER_DATA *, char *, char *);


/* Logging routines */
BOOL WriteLog(UBYTE,char *,char *,char *);
BOOL WriteEvent(char *,char *);


/* Routines for accessing groups */
BPTR OpenGroup(char *);
BOOL NextInGroup(BPTR,char *);
void CloseGroup(BPTR);


/* Translation routines */
LONG TranslateBuffer(char *,char *,ULONG,struct USER_DATA *,struct Ram_File *,char *);
BOOL Substitute(char *,char *,struct USER_DATA *,struct Ram_File *,char *);
BOOL ScreenMsg(char *,char *,UBYTE,USHORT);
BOOL ScreenBuffer(char *,char *,ULONG,char *);


/* Search routines */
struct SearchCookie *SearchStart(char *,char *);
char *SearchNext(struct SearchCookie *);
void  SearchEnd(struct SearchCookie *);
BOOL  DLGPatternMatch(char *,char *);
char *DLGSearch(char *,char *,USHORT,USHORT,USHORT);
char *DLGBinSearch(char *,char *,USHORT,USHORT,USHORT);


/* Argument parsing routines */
LONG ArgParse(char *,char **,UBYTE);
char *StripPath(char *);


/* Input Routines */
LONG DLGQuery(struct Query *,struct UserInfo *);
char GetChar(void);
char ReadChar(ULONG);
void PutChar(char,BPTR);
void ClearLine(void);
LONG IntQuery(char *,SHORT,SHORT,SHORT,struct UserInfo *);
BOOL BoolQuery(char *,UBYTE,struct UserInfo *);
LONG More(BPTR,UBYTE,UBYTE);
BOOL Pause(void);


/* Display Routines */
LONG DispBuffer(BPTR,char *,USHORT *,USHORT,char *,USHORT,char *,struct USER_DATA *);
LONG DispMsg(struct MsgDisplay *,struct USER_DATA *);
BOOL DispForm(char *,struct USER_DATA *,struct USER_DATA *,struct Ram_File *,char *);
void Clr(UBYTE);
BOOL PrintSpace(BPTR,UBYTE,USHORT);
void Draw_Line(UBYTE);
void SDraw_Line(char *, UBYTE);


/* Message access routines */
LONG SendPrivateMsg(struct Msg_Header *,char *,USHORT,char *,char *);
LONG SendPublicMsg(struct MsgStruct *,struct fido *,char *,char *);
LONG ImportPublicMsg(struct Msg_Header *,char *,struct Msg_Area *,char *);
LONG SendRawMsg(struct MsgStruct *,char *,char *);
BOOL KillMsg(LONG,USHORT,char *,char *);
LONG SendBulletin(struct Bulletin *,char *,char *);
void GetHiLowPointers(USHORT,char *,LONG *,LONG *,char *);
BOOL PutHiLowPointers(USHORT,char *,LONG,LONG,char *);
BOOL GetOrigin(char *, SHORT *, SHORT *, SHORT *, SHORT *);
LONG CallEditor(char *, char *, char *, char , struct USER_DATA *, struct Ram_File *, char *);


/* Area management routines */
BOOL ReadArea(USHORT, struct Msg_Area *, UBYTE);
BOOL AddArea         (char *, USHORT);
BOOL DelArea         (char *, USHORT);
BOOL ExistsGlobalArea(char *, USHORT );
LONG ListAreas(char *, struct USER_DATA *, char , UBYTE );
BYTE ListSIGS(struct USER_DATA *, char , char );


/* DLG File tranfer protocol routines */
struct DLGSerInfo *DLGGetSer(char *,char);
void               DLGReleaseSer(struct DLGSerInfo *);
void               DLGProtoStatus(struct DLGSerInfo *,ULONG,ULONG,char *);


/* Debugging Routine */
BOOL  DB(char *);


/* File access Routines */
void  GetHiLowFPointers(USHORT,char *,LONG *,LONG *,char *);
BOOL  PutHiLowFPointers(USHORT,char *,LONG,LONG,char *);
LONG  GetPath(char *, SHORT , struct Msg_Area *, char *);
void  ScreenPath(char *);
BOOL  ReceiveFile(char *, struct Protocol *, struct File_Header *, struct USER_DATA *, struct Ram_File *, char *);
BOOL  SendFile(struct Protocol *, char *, char *, struct USER_DATA *, struct Ram_File *, char *);


/* Execute Routines */
LONG  OverlayProgram(char *);
BOOL  ChainProgram(char *, char *);
BOOL  DialogBatch(char *, struct USER_DATA *, struct Ram_File *, char *);


#ifndef NO_PRAGMAS
/* Cron routines*/
#pragma libcall DLGBase CronEvent         1E  81003
#pragma libcall DLGBase WhenEvent         24  801
/**/
/* Handler routines*/
#pragma libcall DLGBase TSetFlags         2A  8002
#pragma libcall DLGBase TUnSetFlags       30  8002
#pragma libcall DLGBase TBaud             36  8002
#pragma libcall DLGBase TColors           3C  9802
#pragma libcall DLGBase TCont             42  801
#pragma libcall DLGBase TDevQuery         48  9802
#pragma libcall DLGBase TFreeze           4E  801
#pragma libcall DLGBase TGetSer           54  9802
#pragma libcall DLGBase TGetTitle         5A  9802
#pragma libcall DLGBase TKill             60  801
#pragma libcall DLGBase TRecover          66  801
#pragma libcall DLGBase TScreen           6C  98003
#pragma libcall DLGBase TString           72  9802
#pragma libcall DLGBase TTimeDelay        78  8002
#pragma libcall DLGBase TTitle            7E  9802
#pragma libcall DLGBase TWindow           84  98003
#pragma libcall DLGBase TWinHeight        8A  9802
#pragma libcall DLGBase TInTrans          90  9802
#pragma libcall DLGBase TOutTrans         96  9802
#pragma libcall DLGBase TCheckCarrier     9C  801
#pragma libcall DLGBase TSendBreak        A2  801
/**/
/* String comparison routines*/
#pragma libcall DLGBase Stricmp           A8  9802
#pragma libcall DLGBase Strnicmp          AE  09803
/**/
/* String formatting routines*/
#pragma libcall DLGBase Upper             B4  801
#pragma libcall DLGBase Capitalize        BA  801
#pragma libcall DLGBase UnderScore        C0  801
#pragma libcall DLGBase DeScore           C6  801
/**/
/* Formatting routines*/
#pragma libcall DLGBase AFormat           CC  B0A9805
#pragma libcall DLGBase XASPrintf         D2  BA9804
#pragma libcall DLGBase XAFPrintf         D8  BA9804
/**/
/* Time routines*/
#pragma libcall DLGBase MDate             DE  801
#pragma libcall DLGBase SMDate            E4  8002
#pragma libcall DLGBase AmigaTime         EA  0
/**/
/* Resource management routines*/
#pragma libcall DLGBase ResourceMsg       F0  801
#pragma libcall DLGBase ActivatePort      F6  9802
#pragma libcall DLGBase DeActivatePort    FC  9802
#pragma libcall DLGBase LockPort          102 B0A9805
#pragma libcall DLGBase ImmedLockPort     108 B0A9805
#pragma libcall DLGBase TransferPortLock  10E 10BA9806
#pragma libcall DLGBase FreePort          114 9802
#pragma libcall DLGBase GetPortInfo       11A 801
#pragma libcall DLGBase FreePortInfo      120 801
#pragma libcall DLGBase LockArea          126 2198005
#pragma libcall DLGBase BorrowArea        12C 2198005
#pragma libcall DLGBase FreeArea          132 18003
#pragma libcall DLGBase EnterArea         138 1002
#pragma libcall DLGBase LeaveArea         13E 1002
#pragma libcall DLGBase GetAreaInfo       144 0802
#pragma libcall DLGBase FreeAreaInfo      14A 801
#pragma libcall DLGBase ListPorts         150 9802
#pragma libcall DLGBase LoadLang          156 9802
#pragma libcall DLGBase GetLang           15C 801
#pragma libcall DLGBase LockResource      162 10A9805
#pragma libcall DLGBase FreeResource      168 9802
#pragma libcall DLGBase GetResReport      16E 0
#pragma libcall DLGBase FreeResReport     174 801
#pragma libcall DLGBase LockMenu          17A 21BA09807
#pragma libcall DLGBase FreeMenu          180 A9803
#pragma libcall DLGBase PurgeMenu         186 9802
/**/
/* Structured File I/O routines*/
#pragma libcall DLGBase AddStruct         18C 109804
#pragma libcall DLGBase DeleteStruct      192 109804
#pragma libcall DLGBase GetStruct         198 109804
#pragma libcall DLGBase GetFirstStruct    19E 09803
#pragma libcall DLGBase FileSize          1A4 9802
#pragma libcall DLGBase Exists            1AA 801
#pragma libcall DLGBase AppendFile        1B0 9802
#pragma libcall DLGBase BinPos            1B6 A2190806
#pragma libcall DLGBase FileCopy          1BC 2109805
/**/
/* Broadcast routines*/
#pragma libcall DLGBase BroadCast         1C2 09803
#pragma libcall DLGBase BCPend            1C8 801
#pragma libcall DLGBase BCResume          1CE 801
#pragma libcall DLGBase BCGet             1D4 9802
#pragma libcall DLGBase HandleBCMsgs      1DA 801
#pragma libcall DLGBase BCMsg             1E0 109804
#pragma libcall DLGBase Inform            1E6 0A9804
#pragma libcall DLGBase WaitingMail       1EC 21B0A9807
/**/
/* User access routines*/
#pragma libcall DLGBase GetDevName        1F2 801
#pragma libcall DLGBase ReadRam           1F8 9802
#pragma libcall DLGBase WriteRam          1FE 9802
#pragma libcall DLGBase ReadUser          204 A9803
#pragma libcall DLGBase WriteUser         20A 9802
#pragma libcall DLGBase GetComputerType   210 8002
#pragma libcall DLGBase Age               216 21003
#pragma libcall DLGBase CheckUser         21C 801
/**/
/* Logging routines*/
#pragma libcall DLGBase WriteLog          222 A98004
#pragma libcall DLGBase WriteEvent        228 9802
/**/
/* Routines for accessing groups*/
#pragma libcall DLGBase OpenGroup         22E 801
#pragma libcall DLGBase NextInGroup       234 9802
#pragma libcall DLGBase CloseGroup        23A 801
/**/
/* Translation routines*/
#pragma libcall DLGBase TranslateBuffer   240 1BA09806
#pragma libcall DLGBase Substitute        246 0BA9805
#pragma libcall DLGBase ScreenMsg         24C 109804
#pragma libcall DLGBase ScreenBuffer      252 A09804
/**/
/* Search routines*/
#pragma libcall DLGBase SearchStart       258 9802
#pragma libcall DLGBase SearchNext        25E 801
#pragma libcall DLGBase SearchEnd         264 801
#pragma libcall DLGBase DLGPatternMatch   26A 9802
#pragma libcall DLGBase DLGSearch         270 2109805
#pragma libcall DLGBase DLGBinSearch      276 2109805
/**/
/* Argument parsing routines*/
#pragma libcall DLGBase ArgParse          27C 09803
#pragma libcall DLGBase StripPath         282 801
/**/
/* Input Routines*/
#pragma libcall DLGBase DLGQuery          288 9802
#pragma libcall DLGBase GetChar           28E 0
#pragma libcall DLGBase ReadChar          294 001
#pragma libcall DLGBase PutChar           29A 8002
#pragma libcall DLGBase IntQuery          2A0 9210805
#pragma libcall DLGBase BoolQuery         2A6 90803
#pragma libcall DLGBase More              2AC 10803
#pragma libcall DLGBase Pause             2B2 0
/**/
/* Display Routines*/
#pragma libcall DLGBase DispBuffer        2B8 3B2A198008
#pragma libcall DLGBase DispMsg           2BE 9802
#pragma libcall DLGBase DispForm          2C4 0BA9805
#pragma libcall DLGBase Clr               2CA 001
#pragma libcall DLGBase PrintSpace        2D0 10803
/**/
/* Message access routines*/
#pragma libcall DLGBase ReadArea          2D6 18003
#pragma libcall DLGBase SendPrivateMsg    2DC BA09805
#pragma libcall DLGBase SendPublicMsg     2E2 BA9804
#pragma libcall DLGBase ImportPublicMsg   2E8 BA9804
#pragma libcall DLGBase SendRawMsg        2EE A9803
#pragma libcall DLGBase KillMsg           2F4 981004
#pragma libcall DLGBase SendBulletin      2FA A9803
#pragma libcall DLGBase GetHiLowPointers  300 BA98005
#pragma libcall DLGBase PutHiLowPointers  306 9218005
/**/
/* DLG File tranfer protocol routines*/
#pragma libcall DLGBase DLGGetSer         30C 0802
#pragma libcall DLGBase DLGReleaseSer     312 801
#pragma libcall DLGBase DLGProtoStatus    318 910804
/**/
/* Debugging Routine*/
#pragma libcall DLGBase DB                31E 801
/**/
/* More Routines*/
#pragma libcall DLGBase UnpackTime        324 8002
/**/
/* File access Routines */
#pragma libcall DLGBase GetHiLowFPointers 32A BA98005
#pragma libcall DLGBase PutHiLowFPointers 330 9218005
#pragma libcall DLGBase GetPath           336 A90804
#pragma libcall DLGBase ScreenPath        33c 801
#pragma libcall DLGBase ReceiveFile       342 10BA9806
#pragma libcall DLGBase SendFile          348 10BA9806
/**/
/* Additional New Routines */
#pragma libcall DLGBase GetComment        34e 9802
#pragma libcall DLGBase GetFileDate       354 9802
#pragma libcall DLGBase DelDir            35a 9802
#pragma libcall DLGBase DirSize           360 801
#pragma libcall DLGBase CD                366 801
#pragma libcall DLGBase Cat               36c A9803
#pragma libcall DLGBase Copy              372 9802
#pragma libcall DLGBase SmartRename       378 9802
#pragma libcall DLGBase SendCtlMsg        37e 81003
#pragma libcall DLGBase ClearLine         384 0
#pragma libcall DLGBase Draw_Line         38a 001
#pragma libcall DLGBase SDraw_Line        390 0802
#pragma libcall DLGBase GetLevel          396 801
#pragma libcall DLGBase AddArea           39c 0802
#pragma libcall DLGBase DelArea           3a2 0802
#pragma libcall DLGBase ExistsGlobalArea  3a8 0802
#pragma libcall DLGBase StripSpaces       3ae 801
#pragma libcall DLGBase LogOut            3b4 BA9804
#pragma libcall DLGBase TimeUntilShutdown 3ba 801
#pragma libcall DLGBase SuspendTime       3c0 9802
#pragma libcall DLGBase ResumeTime        3c6 9802
#pragma libcall DLGBase GetOrigin         3cc 0BA9805
#pragma libcall DLGBase CallEditor        3d2 21B0A9807
#pragma libcall DLGBase ListAreas         3d8 109804
#pragma libcall DLGBase ListSIGS          3de 10803
/**/
/* Execute Routines */
#pragma libcall DLGBase ChainProgram      3e4 9802
#pragma libcall DLGBase OverlayProgram    3ea 801
#pragma libcall DLGBase DialogBatch       3f0 BA9804
#endif


/* Prototypes for functions defined in addglobalarea.c */
BOOL AddGlobalArea   (SHORT , SHORT , SHORT , char , char , char *);


/* Prototypes for functions defined in filetobuf.c */
BOOL FileToBuf(char **, char *, long , long , long );

/* Prototypes for functions defined in alignarea.c */
BOOL AlignAreas(struct Msg_Area *, char );


/* Prototypes for functions defined in buildarray.c */
int BuildArray(char **, char *, int , int , int );
int dosort(char *, char *);


/* Prototypes for functions defined in buildprivflag.c */
void BuildPrivFlag(struct Msg_Area *, struct Msg_Log *, int );
void BuildFPrivFlag(struct Msg_Area *, struct Msg_Log *, int );


/* Prototypes for functions defined in creq.c */
void   ColorReq(UWORD *, int , int , UBYTE , UBYTE );
USHORT ColourMenu(struct Gadget *);
BOOL   OpenColorWindow(int , int , UBYTE , UBYTE );
void   CloseColorWindow(void);


/* Prototypes for functions defined in debug.c */
BOOL DeBug(char *);
BOOL SDB(char *);
BOOL PDB(char *);
void Oldb(char *);


/* Prototypes for functions defined in display.c */
LONG DisplayBuffer(BPTR , char *, int , int , char , char , USHORT *, int , char *, int , char *);
LONG Display_Msg(int , char *, char *, char , char *, int , int , char , USHORT *, long , char , char *);


/* Prototypes for functions defined in displayfile.c */
SHORT Display_File(char *, int , int , char , USHORT *, long , char , char *);


/* Prototypes for functions defined in dlginput.c */
long  DLGInput(char *, char *, char *, char *, USHORT , USHORT , char);
int  iinput(char *, int , int , int);
char finput(char *, char);


/* Prototypes for functions defined in editfile.c */
BOOL EditFile(char *, struct USER_DATA *, struct Ram_File *, char *);


/* Prototypes for functions defined in format.c */
int DummyPrintf(const char *,...);
int DummySPrintf(char *,const char *,...);


/* Prototypes for functions defined in gethandflags.c */
long GetHandFlags(long , char );


/* Prototypes for functions defined in globalareas.c */
int AddGlobalAreas(char *, int , int , unsigned char , char *);


/* Prototypes for functions defined in globals.c */
int ReadGlobals(char *, struct Global_Settings *);


/* Prototypes for functions defined in insertstack.c */
BOOL InsertStack(char *, char *);


/* Prototypes for functions defined in listeditors.c */
SHORT ListEditors(int);
BYTE  CheckEditor(int , int);


/* Prototypes for functions defined in listmenusets.c */
SHORT ListMenuSets(int );
BOOL  CheckMenuSet(int , int );


/* Prototypes for functions defined in listprotocols.c */
SHORT ListProtocols(int , char *, int , char );


/* Prototypes for functions defined in listsets.c */
BOOL ListSets(int );
BOOL CheckSet(int , int );


/* Prototypes for functions defined in makebody.c */
BOOL MakeBody(char *, char *, char *, char *, char **);


/* Prototypes for functions defined in makesigarray.c */
SHORT MakeSigArray(char *, SHORT **, char );
BOOL CheckForSig(int , SHORT *, int );


/* Prototypes for functions defined in menu.c */
int MenuInput(char *,char *,char *,struct NewShortMenu *,
	      UBYTE,int (*)(UBYTE),struct USER_DATA *,
	      struct Ram_File *,int,
	      int (*)(char *,char *));
int DisplayMenu(struct MenuStuff *ms,struct NewShortMenu *rlist,UBYTE numr,
		struct USER_DATA *User,int helplev,struct Ram_File *ramfile,
		char *ext,int (*transcall)(char *,char *));


/* Prototypes for functions defined in newuser.c */
BYTE New_User(char *, struct USER_DATA *, char );
SHORT Display_Computer_Types(void);


/* Prototypes for functions defined in listarchivers.c */
int ListArchivers(int level,int mask);
int CheckArchiver(int number,int level,int mask);


/* Prototypes for functions defined in quest.c */
BYTE OpenQuest(char *);
BOOL NextQuest(struct Question *);
void CloseQuest(void);


/* Prototypes for functions defined in printuser.c */
LONG Show_User(char *, struct twocoldata *, char , struct threecoldata *, char );


/* Prototypes for functions defined in purgearea.c */
BOOL PurgeArea(int , int , int , char );


/* Prototypes for functions defined in rawdump.c */
BOOL RawDump(char *);


/* Prototypes for functions defined in screenname.c */
void ScreenName(UBYTE *);


/* Prototypes for functions defined in sendnet.c */
BYTE SendNet(struct Msg_Header *, struct fido *, struct fido *, char *, struct USER_DATA *, int , char *, char *);


/* Prototypes for functions defined in strtodate.c */
BOOL StringToDate(char *, long *);


/* Prototypes for functions defined in timeleft.c */
LONG TimeLeft(char *);


/* Prototypes for functions defined in trans.c */
LONG TransBuf(char *inbuffer,char *outbuffer,int maxsize,
	      int (*callback)(char *,char *));

/* Prototypes for functions defined in twolines.c */
void TwoLines(void);
void OneLine(void);


/* Prototypes for functions defined in usecharset.c */
BOOL UseCharSet(UBYTE , char *);


/* Prototypes for functions defined in wheel.c */
void StartWheel(void);
void TurnWheel(void);
void StopWheel(void);


/* Prototypes for functions defined in enterarea.c */
BYTE _EnterArea(SHORT , UBYTE , UBYTE );


/* Prototypes for functions defined in callmsgeditor.c */
BYTE CallMsgEditor(char *, char *, char *, struct Msg_Area *, char , char *, char , struct USER_DATA *, struct Ram_File *);


/* Prototypes for functions defined in thread.c */
BYTE StartThread(SHORT , SHORT , SHORT );
void BaseThread(SHORT );
BYTE IsBaseThread(void);
void EndThread(void);
SHORT NextMessage(SHORT , SHORT , SHORT , SHORT , SHORT );
SHORT SkipRest(SHORT , SHORT , SHORT , char *);


/* Prototypes for functions defined in checkbatch.c */
BYTE CheckBatch(char *, char *);


/* Prototypes for functions defined in describefiles.c */
BOOL DescribeFiles(char *, struct USER_DATA *, struct Msg_Area *, struct Ram_File *, char *, char *, char *, LONG , struct Msg_Log *);


/* Prototypes for functions defined in dltime.c */
LONG DLTime(LONG , LONG , UBYTE , char *);


/* Prototypes for functions defined in getprotocol.c */
BYTE GetProtocol(char *, struct USER_DATA *, SHORT , char , char *, char *);


/* Prototypes for functions defined in killfile.c */
BOOL KillFile(SHORT , char *, SHORT , char *, char , struct Msg_Area *, char , struct USER_DATA *, char *);


/* Prototypes for functions defined in loadfiles.c */
SHORT LoadFiles(SHORT , char **, char *);


/* Prototypes for functions defined in loadprotocol.c */
LONG LoadProtocol(struct Protocol *, char );


/* Prototypes for functions defined in rawupload.c */
LONG RawUpload(char *, char *, struct File_Header *, char *, char *, struct Msg_Area *, char *, char );


/* Prototypes for functions defined in removecredit.c*/
BOOL RemoveCredit(char *, LONG , struct USER_DATA *, char *);


/* Prototypes for functions defined in resetcomment.c*/
BOOL ResetComment(char *);


/* Prototypes for functions defined in scanup.c*/
void ScanUp(char *, SHORT , char *, char );
void ScanUpBatch(char *);


/* Prototypes for functions defined in timestring.c*/
BOOL TimeString(LONG , char *);


/* Prototypes for functions defined in translatecall.c*/
void TranslateCall(char *, char *, char *, char *);


/* Prototypes for functions defined in oldmenu.c*/
UBYTE menu(struct ShortMenu *,char ,char);


/* Prototypes for functions defined in getlang.c*/
char **getlang(char *);


/* Prototypes for functions in fido.lib */

UWORD FixNumber(UWORD);

