This shows you the differences between two versions of the page.
| proboard_file_structures [2023/06/20 10:20] – created admin | proboard_file_structures [2023/06/20 10:48] (current) – admin | ||
|---|---|---|---|
| Line 4: | Line 4: | ||
| For information on the structures of the RemoteAccess compatible files, refer | For information on the structures of the RemoteAccess compatible files, refer | ||
| to the RemoteAccess structures document. It can be obtained from [[http:// | to the RemoteAccess structures document. It can be obtained from [[http:// | ||
| + | |||
| + | The data-structures are C-structures, | ||
| + | |||
| + | Strings are stored as an array of characters, terminated by a 0. | ||
| + | A date is stored as 3 bytes (day, | ||
| + | A time is stored as 3 bytes (hour, | ||
| + | |||
| + | The ' | ||
| + | bit 30 flag ' | ||
| + | I know this doesn' | ||
| + | this :-). | ||
| + | |||
| + | The combined boards are stored in 125 bytes (1000 bits). One bit per message | ||
| + | area. | ||
| + | |||
| + | | ||
| + | typedef unsigned short word; | ||
| + | typedef unsigned long dword; | ||
| + | typedef unsigned char byte; | ||
| + | typedef unsigned long accessflags; | ||
| + | typedef unsigned char combinedboards[125]; | ||
| + | typedef unsigned char bool; | ||
| + | typedef unsigned char Time[3]; | ||
| + | typedef unsigned char Date[3]; | ||
| + | typedef unsigned char TimeFrame[7][6]; | ||
| + | |||
| + | typedef struct | ||
| + | { | ||
| + | byte periods[7][6]; | ||
| + | } | ||
| + | TimeFrame; | ||
| + | |||
| + | typedef struct | ||
| + | { | ||
| + | word | ||
| + | word | ||
| + | accessflags | ||
| + | accessflags | ||
| + | byte | ||
| + | byte | ||
| + | byte | ||
| + | word | ||
| + | word | ||
| + | TimeFrame | ||
| + | byte | ||
| + | dword minSpeed; | ||
| + | dword maxSpeed; | ||
| + | byte | ||
| + | } | ||
| + | AccessRecord; | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | This file is tied to the files USERS.BBS and USERSXI.BBS. The records are | ||
| + | stored in the same order as the records in USERS.BBS. The name of the user | ||
| + | is duplicated in this file, so it is possible to fix the userfile after using | ||
| + | a third-party userfile packer/ | ||
| + | |||
| + | | ||
| + | struct UsersPbBBS | ||
| + | { | ||
| + | char | ||
| + | char | ||
| + | char | ||
| + | char | ||
| + | char | ||
| + | char | ||
| + | Date | ||
| + | Date | ||
| + | short logLevel; | ||
| + | short tbTimeBalance; | ||
| + | short tbKbBalance; | ||
| + | short tbTimeWithdrawn; | ||
| + | short tbKbWithdrawn; | ||
| + | word | ||
| + | word | ||
| + | word | ||
| + | word | ||
| + | Date | ||
| + | Date | ||
| + | Date | ||
| + | word | ||
| + | accessflags | ||
| + | accessflags | ||
| + | dword uFlags; | ||
| + | combinedboards mailCheckBoards; | ||
| + | dword totalTimeUsed; | ||
| + | word | ||
| + | word | ||
| + | byte | ||
| + | byte | ||
| + | byte | ||
| + | byte | ||
| + | byte | ||
| + | }; | ||
| + | |||
| + | These are the extra user-flags for ' | ||
| + | #define RA_UFLAG_NOIBM | ||
| + | #define RA_UFLAG_NOTOPS | ||
| + | #define RA_UFLAG_AVTPLUS | ||
| + | #define RA_UFLAG_ATTEN | ||
| + | #define RA_UFLAG_NORIP | ||
| + | #define RA_UFLAG_MULTILOGIN | ||
| + | #define RA_UFLAG_FREECHAT | ||
| + | #define RA_UFLAG_LOCALONLY | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | struct CONFIG_PRO | ||
| + | { | ||
| + | char shellmsg[81]; | ||
| + | char sysopname[36]; | ||
| + | char txtpath[61]; | ||
| + | char mnupath[61]; | ||
| + | char msgpath[61]; | ||
| + | char uploadpath[61]; | ||
| + | char editorname[61]; | ||
| + | word newuserlevel; | ||
| + | short | ||
| + | accessflags newuserflags; | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | bool allowansi; | ||
| + | bool allowavatar; | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | unsigned | ||
| + | accessflags crashflags; | ||
| + | word attachlevel; | ||
| + | accessflags attachflags; | ||
| + | short | ||
| + | short | ||
| + | Time page_start; | ||
| + | Time page_end; | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | char originline[61]; | ||
| + | char nodelistdir[61]; | ||
| + | char sysopkeys[10][60]; | ||
| + | Time dl_start; | ||
| + | Time dl_end; | ||
| + | short | ||
| + | char pvtuploadpath[61]; | ||
| + | char quotestring[6]; | ||
| + | bool fastmode; | ||
| + | bool extra_bool_1; | ||
| + | bool killsent; | ||
| + | bool multiline; | ||
| + | bool egamode; | ||
| + | bool showuserinfo; | ||
| + | char pexpath[61]; | ||
| + | bool allowquicklogin; | ||
| + | bool suspendmsgtime; | ||
| + | short | ||
| + | bool pwdmessages; | ||
| + | bool extra_bool_2; | ||
| + | char bbsname[36]; | ||
| + | char pwdchar; | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | char systempwd[16]; | ||
| + | bool usesystempwd; | ||
| + | bool askbirthdate; | ||
| + | short | ||
| + | bool binloglocal; | ||
| + | short | ||
| + | bool indexfiles; | ||
| + | bool checkdupes; | ||
| + | bool killdupes; | ||
| + | bool ignore_ext; | ||
| + | char RIPpath[61]; | ||
| + | char iconspath[61]; | ||
| + | char location[36]; | ||
| + | char phone[26]; | ||
| + | char QWKid[9]; | ||
| + | word IObuffersize; | ||
| + | TimeFrame | ||
| + | char defaultLanguage[9]; | ||
| + | bool addUploaderName; | ||
| + | TimeFrame | ||
| + | bool askdataphone; | ||
| + | bool askfaxphone; | ||
| + | bool askaddress; | ||
| + | bool asksex; | ||
| + | bool askdateformat; | ||
| + | bool askstate; | ||
| + | bool askcountry; | ||
| + | short | ||
| + | bool hidePassword; | ||
| + | bool valConfirm; | ||
| + | char extra_char_1[17]; | ||
| + | char extChat[81]; | ||
| + | char virScanCommand[61]; | ||
| + | byte virScanType; | ||
| + | char virScanSemaphore[13]; | ||
| + | byte listColorTag; | ||
| + | byte listColorFileName; | ||
| + | byte listColorSize; | ||
| + | byte listColorDate; | ||
| + | byte listColorCounter; | ||
| + | byte listColorDesc; | ||
| + | byte listColorSeperator; | ||
| + | byte listColorMissing; | ||
| + | bool hideFileCounter; | ||
| + | bool disableRIP; | ||
| + | char extra_char_2[81]; | ||
| + | byte virScanFailedAction; | ||
| + | word virScanFailedArea; | ||
| + | byte promptColor; | ||
| + | bool internalfsed; | ||
| + | char extra[3]; | ||
| + | }; | ||
| + | |||
| + | |||
| + | | ||
| + | | ||
| + | struct TIMELOG_PRO | ||
| + | { | ||
| + | short | ||
| + | Date lastdate; | ||
| + | long hours[24]; | ||
| + | long days[7]; | ||
| + | long weeks[53]; | ||
| + | long totalcalls; | ||
| + | }; | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | struct FILECFG_PRO | ||
| + | { | ||
| + | char name[80]; | ||
| + | char listpath[80]; | ||
| + | char filepath[80]; | ||
| + | word level; | ||
| + | long flags; | ||
| + | char type; 1 = CDROM File listing type | ||
| + | short | ||
| + | short | ||
| + | bool notops; | ||
| + | bool free; Set to 1 -> free area | ||
| + | byte groups[4]; | ||
| + | bool allGroups; | ||
| + | byte minAge; | ||
| + | long flagsNot; | ||
| + | byte dateFormat; | ||
| + | byte extra[2]; | ||
| + | }; | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | struct MESSAGES_PB | ||
| + | { | ||
| + | word areaNum; | ||
| + | word hudsonBase; | ||
| + | char name[81]; | ||
| + | byte msgType; | ||
| + | byte msgKind; | ||
| + | byte msgBaseType; | ||
| + | char path[81]; | ||
| + | byte flags; | ||
| + | word readLevel; | ||
| + | accessflags readFlags; | ||
| + | accessflags readFlagsNot; | ||
| + | word writeLevel; | ||
| + | accessflags writeFlags; | ||
| + | accessflags writeFlagsNot; | ||
| + | word sysopLevel; | ||
| + | accessflags sysopFlags; | ||
| + | accessflags sysopFlagsNot; | ||
| + | char origin[62]; | ||
| + | short | ||
| + | word rcvKillDays; | ||
| + | word msgKillDays; | ||
| + | word maxMsgs; | ||
| + | char sysop[36]; | ||
| + | short | ||
| + | char echoTag[61]; | ||
| + | char qwkTag[13]; | ||
| + | byte groups[4]; | ||
| + | bool allGroups; | ||
| + | byte minAge; | ||
| + | byte extra[112]; | ||
| + | }; | ||
| + | |||
| + | #define MSGTYPE_BOTH | ||
| + | #define MSGTYPE_PVT | ||
| + | #define MSGTYPE_PUBLIC | ||
| + | #define MSGTYPE_TOALL | ||
| + | #define MSGKIND_LOCAL | ||
| + | #define MSGKIND_NET | ||
| + | #define MSGKIND_ECHO | ||
| + | #define MSGKIND_PVTECHO | ||
| + | #define MSGBASE_HUDSON | ||
| + | #define MSGBASE_SQUISH | ||
| + | #define MSGBASE_SDM | ||
| + | #define MSGBASE_JAM | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | struct ONLINE_PRO | ||
| + | { | ||
| + | char name[36]; | ||
| + | char city[16]; | ||
| + | word baud; Baud rate of user | ||
| + | short | ||
| + | char extra[8]; | ||
| + | }; | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | struct TOPS_PB | ||
| + | { | ||
| + | char name[36]; | ||
| + | dword | ||
| + | }; | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | struct PROTOCOL_PRO | ||
| + | { | ||
| + | char name[50]; | ||
| + | char key; | ||
| + | char flags; | ||
| + | char logfile[60]; | ||
| + | char ctlfile[60]; | ||
| + | char dlcom[128]; | ||
| + | char ulcom[128]; | ||
| + | char dlstring[80]; | ||
| + | char ulstring[80]; | ||
| + | char dlkeyword[40]; | ||
| + | char ulkeyword[40]; | ||
| + | short | ||
| + | }; | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | #define PROT_BATCH | ||
| + | #define PROT_ENABLED 2 | ||
| + | #define PROT_BOTH | ||
| + | #define PROT_BIM | ||
| + | #define PROT_LOCAL | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | struct LIMITS_PRO | ||
| + | { | ||
| + | word level; | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | char id[6]; | ||
| + | word free; Free upload in Kb. | ||
| + | byte factor; | ||
| + | word max_download; | ||
| + | short | ||
| + | short | ||
| + | char extra[5]; | ||
| + | }; | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | struct MODEM_PB | ||
| + | { | ||
| + | long maxBps; | ||
| + | long lockedBps; | ||
| + | dword | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | short | ||
| + | char msgCon300 | ||
| + | char msgCon1200 | ||
| + | char msgCon1275 | ||
| + | char msgCon2400 | ||
| + | char msgCon4800 | ||
| + | char msgCon7200 | ||
| + | char msgCon9600 | ||
| + | char msgCon12000 | ||
| + | char msgCon14400 | ||
| + | char msgCon16800 | ||
| + | char msgCon19200 | ||
| + | char msgCon21600 | ||
| + | char msgCon24000 | ||
| + | char msgCon26400 | ||
| + | char msgCon28800 | ||
| + | char msgCon38400 | ||
| + | char msgCon57600 | ||
| + | char msgCon64000 | ||
| + | char msgCon115200 | ||
| + | char msgConExternal[80]; | ||
| + | char msgRing | ||
| + | char msgOk | ||
| + | char cmdInit1 | ||
| + | char cmdInit2 | ||
| + | char cmdInit3 | ||
| + | char cmdAnswer | ||
| + | char cmdOffHook | ||
| + | char cmdDown | ||
| + | char cmdAttention | ||
| + | short | ||
| + | char msgCon31200 | ||
| + | char msgCon33600 | ||
| + | char msgCon36000 | ||
| + | char msgConUser1 | ||
| + | long userConBps1; | ||
| + | char msgConUser2 | ||
| + | long userConBps2; | ||
| + | char msgConUser3 | ||
| + | long userConBps3; | ||
| + | char msgConUser4 | ||
| + | long userConBps4; | ||
| + | char msgConUser5 | ||
| + | long userConBps5; | ||
| + | char msgConUser6 | ||
| + | long userConBps6; | ||
| + | byte extra[920]; | ||
| + | }; | ||
| + | |||
| + | #define MODEM_LOCKED | ||
| + | #define MODEM_MANUAL_ANSWER (0x00000002L) | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | struct BINLOG_PB | ||
| + | { | ||
| + | Date date; | ||
| + | Time timeIn; | ||
| + | Time timeOut; | ||
| + | char name[36]; | ||
| + | char city[26]; | ||
| + | char country[26]; | ||
| + | long baud; | ||
| + | word node; | ||
| + | long kbDown; | ||
| + | long kbUp; | ||
| + | word yells; | ||
| + | word level; | ||
| + | dword | ||
| + | char alias[36]; | ||
| + | char extra[45]; | ||
| + | }; | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | struct FILESIDX_PB | ||
| + | { | ||
| + | char filename[13]; | ||
| + | word area; File area number where file is located | ||
| + | }; | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | struct GROUPS_PB | ||
| + | { | ||
| + | char name[80]; | ||
| + | word level; | ||
| + | long flags; | ||
| + | long flagsNot; | ||
| + | byte extra[10]; | ||
| + | }; | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | struct PVTFILES_PB | ||
| + | { | ||
| + | Date date; | ||
| + | char fname [80]; | ||
| + | char to [36]; | ||
| + | char from [36]; | ||
| + | char desc [80]; | ||
| + | dword attr; | ||
| + | byte extra [61]; | ||
| + | }; | ||
| + | |||
| + | #define PVTFILE_KEEP (0x00000001L) | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | #define MENU_RIP 1 menu header attribute | ||
| + | struct MENU_HEADER | ||
| + | { | ||
| + | dword attr; // bit 0 = RIP menu | ||
| + | char prompt[200]; | ||
| + | byte color; | ||
| + | byte highlight; | ||
| + | char RIPname[9]; | ||
| + | byte extra[100]; | ||
| + | }; | ||
| + | |||
| + | #define MENU_SHOWREMOTE 1 menu item attribute | ||
| + | #define MENU_SHOWLOCAL | ||
| + | |||
| + | struct MENU_ITEM | ||
| + | { | ||
| + | dword attr; // Show remote/ | ||
| + | char text[160]; | ||
| + | char data[160]; | ||
| + | byte color; | ||
| + | byte hotKey; | ||
| + | word function; | ||
| + | char password[16]; | ||
| + | AccessRecord access; | ||
| + | byte extra[50]; | ||
| + | }; | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | struct LANG_HEADER | ||
| + | { | ||
| + | char name[41]; | ||
| + | bool avail; | ||
| + | word level; | ||
| + | accessflags flags; | ||
| + | char menuPath[61]; | ||
| + | char txtPath[61]; | ||
| + | char questPath[61]; | ||
| + | char copyright[81]; | ||
| + | byte attrib; | ||
| + | byte extra[500]; | ||
| + | }; | ||
| + | |||
| + | #define LANG_PROMPT | ||
| + | #define LANG_NOCOLOR 2 | ||
| + | |||
| + | struct LANG_PROMPT | ||
| + | { | ||
| + | word len; Length of string (excl. terminating ' | ||
| + | word numHotkeys; | ||
| + | byte color; | ||
| + | byte highlight; | ||
| + | byte promptcolor; | ||
| + | byte flags; | ||
| + | }; | ||
| + | | ||
| + | |||
| + | Each prompt consists of a LANG_PROMPT header, followed by ' | ||
| + | for the prompt (not including the terminating zero), followed by | ||
| + | ' | ||
| + | |||
| + | So a language file has the following structure: | ||
| + | LANG_HEADER | ||
| + | LANG_PROMPT 1 | ||
| + | string 1 | ||
| + | hotkeys 1 | ||
| + | lANG_PROMPT 2 | ||
| + | string 2 | ||
| + | hotkeys 2 | ||
| + | LANG_PROMPT 3 | ||
| + | string 3 | ||
| + | hotkeys 3 | ||
| + | .... | ||
| + | | ||
| + | |||