home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / TRIBBS / TBAPI501.ZIP / TBAPI.H < prev    next >
Text File  |  1994-01-04  |  9KB  |  355 lines

  1. /*
  2. * tbapi.h  - Header file for the TriBBS API
  3. * Copyright (c) 1994 By TriSoft
  4. */
  5. #ifndef __TBAPIH__
  6. #define __TBAPIH__
  7.  
  8. #include <stdio.h>
  9.  
  10. /* definitions for portability across platforms */
  11.  
  12. #ifndef SHORT
  13. typedef short int SHORT;
  14. #endif
  15.  
  16. #ifndef USHORT
  17. typedef unsigned short int USHORT;
  18. #endif
  19.  
  20. #ifndef LONG
  21. typedef long LONG;
  22. #endif
  23.  
  24. #ifndef ULONG
  25. typedef unsigned long ULONG;
  26. #endif
  27.  
  28. #define TRUE 1
  29. #define FALSE 0
  30. #define UNCOMPRESSED 0
  31. #define COMPRESSED 1
  32.  
  33. typedef unsigned char BASICSINGLE[4];
  34.  
  35. typedef union {
  36.     double Value;
  37.     unsigned char Byte[8];
  38. } IEEEDOUBLE;
  39.  
  40. typedef struct _SYSDAT1DATA {
  41.     char BoardName[41];
  42.     char SysopName[41];
  43.     char BoardStartDate[9];
  44.     char DefaultArchiveExtension[4];
  45.     SHORT TotalNodes;
  46.     SHORT CallsToday;
  47.     SHORT MessagesToday;
  48.     SHORT UploadsToday;
  49.     SHORT DownloadsToday;
  50.     SHORT DefaultDailyTimeLimit;
  51.     SHORT DefaultDailyLogons;
  52.     SHORT DefaultTimePerLogon;
  53.     SHORT MinimumSysopSecurityLevel;
  54.     SHORT NewUserSecurityLevel;
  55.     SHORT NewUserTimeTimeLimit;
  56.     SHORT UploadTimeCompensationRatio;
  57.     SHORT MaximumKeyboardIdleTime;
  58.     LONG TotalCalls;
  59.     SHORT PhoneNumberFlag;
  60.     SHORT TestUploadsFlag;
  61.     SHORT AutoANSIDetectFlag;
  62.     SHORT CheckForWaitingMessagesFlag;
  63.     char SystemPassword[16];
  64.     SHORT ULDLRatioTypeFlag;
  65.     SHORT PhoneOnHookDuringMaintenanceFlag;
  66.     SHORT NoOneWordNamesFlag;
  67.     SHORT NoBulletinMenuAtLogonFlag;
  68.     SHORT AllowAliasesFlag;
  69.     SHORT ClearScreenBeforeMenusFlag;
  70.     SHORT ExactFileNameMatchingForDupesFlag;
  71.     SHORT DisableNewUserBirthdayPrompt;
  72.     SHORT DetailedCallerLogFlag;
  73.     SHORT MajorVersionNumber;
  74.     SHORT MinorVersionNumber;
  75.     SHORT EnableRIPScripEmulationFlag;
  76.     SHORT MinimumFileAttachmentSecurityLevel;
  77.     SHORT MinimumAtVariableSecurityLevel;
  78.     SHORT FastLogonSecurityLevel;
  79.     SHORT UseAliasOrRealNamesFlag;
  80.     SHORT ClearUploadsAndDownloadsFlag;
  81.     SHORT ClearPrivateMessageAreasFlag;
  82.     SHORT ClearPrivateFileAreasFlag;
  83.     char ReservedDataArea[69];
  84. } SYSDAT1DATA;
  85.  
  86. typedef struct _SYSDAT2DATA {
  87.     char Node1sMainDirectory[81];
  88.     char ReservedDataArea[175];
  89. } SYSDAT2DATA;
  90.  
  91. typedef struct _NODEDATA {
  92.     char InitializationString[81];
  93.     char ErrorCorrectingConnectionMessage[5];
  94.     char DateOfLastCall[9];
  95.     SHORT NodeNumber;
  96.     USHORT MaximumBaudRate;
  97.     SHORT SerialPort;
  98.     SHORT No300BaudCallersFlag;
  99.     SHORT No1200BaudCallersFlag;
  100.     SHORT RTSCTSHandshakingFlag;
  101.     SHORT LockSerialPortFlag;
  102.     SHORT DirectScreenWriteFlag;
  103.     SHORT DelayBeforeATA;
  104.     SHORT NumberOfRings;
  105.     SHORT PageBellOnFlag;
  106.     SHORT UseNodeDISPLAYDirectoryFlag;
  107.     SHORT NodeSecurityLevel;
  108.     SHORT No2400BaudCallersFlag;
  109.     SHORT PhoneOffHookDuringEventsFlag;
  110.     SHORT NonStandardIRQNumber;
  111.     char ReservedDataArea[129];
  112. } NODEDATA;
  113.  
  114. typedef struct _USERSDATA {
  115.     char Name[31];
  116.     char Password[16];
  117.     char CityAndState[31];
  118.     char PhoneNumber[13];
  119.     char Birthday[9];
  120.     char DateOfFirstCall[9];
  121.     char DateAndTimeOfLastCall[15];
  122.     char DateOfLastFileCheck[9];
  123.     SHORT SecurityLevel;
  124.     SHORT NumberOfCalls;
  125.     SHORT TimeLeftForToday;
  126.     SHORT LastMessageConference;
  127.     SHORT LastFileArea;
  128.     SHORT DefaultProtocol;
  129.     SHORT ExpertModeFlag;
  130.     SHORT LockedOutFlag;
  131.     SHORT MarkedForDeletionFlag;
  132.     SHORT NumberOfCallsToday;
  133.     SHORT IncludeLOGON1InQWKFlag;
  134.     SHORT IncludeGOODBYEInQWKFlag;
  135.     SHORT IncludeBulletinsInQWKFlag;
  136.     SHORT IncludeNewFilesInQWKFlag;
  137.     SHORT IncludeNewsletterInQWKFlag;
  138.     SHORT QWKNetworkNode;
  139.     LONG NumberOfFilesUploaded;
  140.     LONG NumberOfFilesDownloaded;
  141.     LONG NumberOfKBytesUploaded;
  142.     LONG NumberOfKBytesDownloaded;
  143.     LONG NumberOfMessagesPosted;
  144.     SHORT DefaultEditor;
  145.     SHORT InitialChatStatus;
  146.     SHORT CheckForWaitingMessagesFlag;
  147.     char SubscriptionExpirationDate[9];
  148.     char Alias[31];
  149.     SHORT NumberOfFilesDownloadedToday;
  150.     LONG NumberOfBytesDownloadedToday;
  151.     char ReservedDataArea[19];
  152. } USERSDATA;
  153.  
  154. typedef struct _USERSINDEX {
  155.     ULONG Crc;
  156.     SHORT RecordNumber;
  157. } USERSINDEX;
  158.  
  159. typedef struct _USERSSUPMESSAGES {
  160.     SHORT QueuedConferenceFlag;
  161.     SHORT PrivateConferenceFlag;
  162.     LONG LastMessageRead;
  163.     SHORT WaitingMessageCounter;
  164. } USERSSUPMESSAGES;
  165.  
  166. typedef struct _USERSSUPFILES {
  167.     SHORT PrivateAreaFlag;
  168. } USERSSUPFILES;
  169.  
  170. typedef struct _MCONFDATA{
  171.     SHORT ReadSecurityLevel;
  172.     SHORT NetworkedConferenceFlag;
  173.     SHORT UserDeleteFlag;
  174.     SHORT TriPackBackupFlag;
  175.     SHORT TriPackNumberOfDaysToSave;
  176.     SHORT PrivateConferenceFlag;
  177.     SHORT FidoStyleNetMailFlag;
  178.     SHORT AliasConferenceFlag;
  179.     SHORT PostSecurityLevel;
  180.     SHORT DisablePrivateMessagesFlag;
  181.     char ConferenceName[41];
  182.     char NetworkName[41];
  183.     LONG HighestMessageNumber;
  184.     SHORT DisablePublicMessagesFlag;
  185.     char  ReservedDataArea[148];
  186. } MCONFDATA;
  187.  
  188. typedef struct MPTRDATA {
  189.     char DateAndTime[15];
  190.     char From[31];
  191.     char To[31];
  192.     char Subject[41];
  193.     SHORT EchoMessageFlag;
  194.     SHORT ThreadedMessageFlag;
  195.     SHORT PrivateMessageFlag;
  196.     SHORT DeletedMessageFlag;
  197.     SHORT ReceivedMessageFlag;
  198.     SHORT PermanentMessageFlag;
  199.     SHORT NetMailFromZone;
  200.     SHORT NetMailFromNet;
  201.     SHORT NetMailFromNode;
  202.     SHORT NetMailFromPoint;
  203.     SHORT NetMailToZone;
  204.     SHORT NetMailToNet;
  205.     SHORT NetMailToNode;
  206.     SHORT NetMailToPoint;
  207.     LONG OffsetIntoTextFile;
  208.     LONG Number;
  209.     LONG NumberOfMessageThisRepliesTo;
  210.     char NameOfAttachedFile[81];
  211. } MPTRDATA;
  212.  
  213. typedef struct _MIDXDATA {
  214.     ULONG FromCRC;
  215.     ULONG ToCRC;
  216.     LONG Number;
  217.     LONG NumberOfMessageThisRepliesTo;
  218. } MIDXDATA;
  219.  
  220. typedef struct _FAREADATA{
  221.     SHORT SecurityLevel;
  222.     SHORT SortType;
  223.     SHORT PrivateAreaFlag;
  224.     char Name[41];
  225.     char FileAreaPath[81];
  226.     char FileAreaUploadPath[81];
  227.     char FileAreaFileList[81];
  228.     char FileAreaUploadList[81];
  229.     SHORT CDROMFileAreaFlag;
  230.     SHORT AliasAreaFlag;
  231.     char FileAreaIndexFile[81];
  232.     char AdditionalFileAreaPaths[10][81];
  233.     char ReservedDataArea[14];
  234. } FAREADATA;
  235.  
  236. typedef struct _DOORSTMPDATA {
  237.     USHORT BaudRate;
  238.     SHORT ErrorCorrectingConnection;
  239.     SHORT UserRecordNumber;
  240.     SHORT TimeLeftAtLogon;
  241.     SHORT ANSIFlag;
  242.     SHORT CurrentFileArea;
  243.     SHORT CurrentMessageConference;
  244.     LONG TimeWhenUserLoggedOn;
  245.     SHORT FrontEnd;
  246.     USHORT FrontEndBaudRate;
  247.     SHORT FrontEndHangUpFlag;
  248.     SHORT UserWindowFlag;
  249.     SHORT FrontEndTime;
  250.     SHORT WhereTheDoorWasCalledFrom;
  251.     SHORT ChatRequested;
  252.     SHORT EventPendingFlag;
  253.     SHORT GoodbyeFromDoorFlag;
  254.     SHORT ForceBoardDownAfterCallFlag;
  255.     SHORT LanguageNumber;
  256.     SHORT RIPScripFlag;
  257.     SHORT NumberOfFilesFlagged;
  258.     SHORT DOORSYSFlag;
  259.     SHORT TimeInDOORSYS;
  260.     char ReservedDataArea[208];
  261. } DOORSTMPDATA;
  262.  
  263. /* function prototypes */
  264. #ifdef __cplusplus
  265. extern "C" {
  266. #endif
  267. double TBBasicSingleToDouble(BASICSINGLE OldNumber);
  268. SHORT TBCheckForShareExe(void);
  269. LONG TBCompress(unsigned char *cib, SHORT cil,
  270.     unsigned char *cob, unsigned char *wb);
  271. void TBDoubleToBasicSingle(BASICSINGLE *New, double Old);
  272. SHORT TBGetNextMnnnnIDX(LONG n);
  273. char *TBInitialCaps(char *s);
  274. void TBInitialize(void);
  275. char *TBMakePathName(char *buffer, char *path, char *file);
  276. SHORT TBNumberInFAREADAT(void);
  277. SHORT TBNumberInMCONFDAT(void);
  278. SHORT TBNumberInMnnnnIDX(void);
  279. SHORT TBNumberInMnnnnPTR(void);
  280. SHORT TBNumberInUSERSDAT(void);
  281. void TBOpenFAREADAT(void);
  282. void TBOpenMCONFDAT(void);
  283. void TBOpenMnnnnIDX(SHORT n);
  284. void TBOpenMnnnnPTR(SHORT n);
  285. void TBOpenMnnnnTXT(SHORT n);
  286. void TBOpenUSERSDAT(void);
  287. void TBOpenUSERSSUP(void);
  288. void TBReadDOORSTMP(char *s);
  289. void TBReadFAREADAT(SHORT n);
  290. void TBReadMCONFDAT(SHORT n);
  291. void TBReadMnnnnIDX(SHORT n);
  292. void TBReadMnnnnPTR(SHORT n);
  293. void TBReadNODEDAT(void);
  294. void TBReadSYSDAT1DAT(void);
  295. void TBReadSYSDAT2DAT(void);
  296. void TBReadUSERSDAT(SHORT n);
  297. void TBReadUSERSSUP(SHORT n);
  298. SHORT TBSearchMnnnnIDX(LONG n);
  299. SHORT TBSearchUSERSIDX(ULONG n);
  300. ULONG TBStrCrc32(char *s);
  301. void TBStripNewline(char *s);
  302. void TBStripSpaces(char *s);
  303. ULONG TBStrNCrc32(char *s, USHORT l);
  304. LONG TBUncompress(unsigned char *cib, SHORT cil,
  305.     unsigned char *cob, unsigned char *wb);
  306. void TBUpdateFromAndTo(ULONG f, ULONG t, SHORT c);
  307. void TBWriteDOORSTMP(char *s);
  308. void TBWriteFAREADAT(SHORT n);
  309. void TBWriteMCONFDAT(SHORT n);
  310. void TBWriteMnnnnIDX(SHORT n);
  311. void TBWriteMnnnnPTR(SHORT n);
  312. void TBWriteNODEDAT(void);
  313. void TBWriteSYSDAT1DAT(void);
  314. void TBWriteUSERSDAT(SHORT n);
  315. void TBWriteUSERSSUP(SHORT n);
  316.  
  317. /* file sharing versions of the C runtime file routines */
  318. FILE *fsopen(const char *filename, const char *mode, int shflg);
  319. size_t fswrite(const void *ptr, size_t size, size_t n, FILE *stream);
  320. size_t fsread(void *ptr, size_t size, size_t n, FILE *stream);
  321. int fsgetc(FILE *stream);
  322. int fsputc(int c, FILE *stream);
  323. char *fsgets(char *s, int n, FILE *stream);
  324. int fsputs(char *s, FILE *stream);
  325. int fsprintf(FILE *stream, char *f, ...);
  326. char *fsgetstring(char *s, int n, FILE *stream);
  327.  
  328. /* global variables */
  329. extern SHORT IsShare;
  330. extern char Node1sMainDirectory[81];
  331. extern SYSDAT1DATA SysDat1Data;
  332. extern SYSDAT2DATA SysDat2Data;
  333. extern NODEDATA NodeData;
  334. extern USERSDATA UsersData;
  335. extern USERSSUPMESSAGES *UsersSupMessages;
  336. extern USERSSUPFILES *UsersSupFiles;
  337. extern USERSINDEX *UsersIndex;
  338. extern USERSINDEX *AliasIndex;
  339. extern MCONFDATA MConfData;
  340. extern MPTRDATA  MPtrData;
  341. extern MIDXDATA MIdxData;
  342. extern FAREADATA FAreaData;
  343. extern DOORSTMPDATA DoorsTmpData;
  344. extern FILE *MConfFile, *MPtrFile, *MIdxFile, *MTxtFile, *UsersFile;
  345. extern FILE *UsersSupFile, *FAreaFile;
  346. extern SHORT NumberOfMessageAreas, NumberOfFileAreas, SupplementalLength;
  347. extern SHORT NumberOfUsers;
  348. extern void (*TBErrorRoutine)(char *f, ...);
  349. #ifdef __cplusplus
  350. }
  351. #endif
  352.  
  353. #endif
  354.  
  355.