// This may look like C code, but it is really -*- C++ -*- // ------------------------------------------------------------------ // The Goldware Library // Copyright (C) 1992-1994 Peter Davies // Copyright (C) 1990-1999 Odinn Sorensen // ------------------------------------------------------------------ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Library General Public // License as published by the Free Software Foundation; either // version 2 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Library General Public License for more details. // // You should have received a copy of the GNU Library General Public // License along with this program; if not, write to the Free // Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, // MA 02111-1307, USA // ------------------------------------------------------------------ // $Id$ // ------------------------------------------------------------------ #ifndef __gs_ez110_h #define __gs_ez110_h // ------------------------------------------------------------------ #include // ------------------------------------------------------------------ #if defined(GOLD_CANPACK) #pragma pack(1) #endif // ------------------------------------------------------------------ // EzyCom structures converted to C format V1.10 6/3/94 // by Peter Davies and Ron Clark // // These structures may ONLY be used in accordance with those // agreements laid out in the Official Ezycom Structures. // Peter Davies or Ron Clark takes no responsibility whatsoever // for the correctness of these structures. #define EZYVER "1.10" #define VERSIONHIGH 1 #define VERSIONLOW 10 #define MAXFREE 1238 #define USERFREE 125 #define CONSTANTFREESPACE 89 #define CONSTANTFILEFREESPACE 537 #define MAXNODES 128 #define MAXAKA 32 #define MAXMESS 1536 #define MAXMESSALL 1536 #define MAXBAUDREC 11 typedef byte AskType; // 0=yes,1=no,2=ask default yes,3=ask default no typedef byte MsgType; // 0=local,1=net,2=echo,3=passthru,4=waitthru,5=allmail typedef byte MsgKindsType; // 0=public,1=private,2=both typedef byte ShowFileSizeType; // 0=nosize,1=bytes,2=kilobytes typedef char UserString[36]; typedef byte Str8[9]; typedef byte EzFlagType[4]; typedef struct SECURITYTYPE { word security; EzFlagType onflags, offflags; } SECURITYTYPE; // ------------------------------------------------------------------ // CONFIG.EZY Configuration Record // // printerport = // 0 : LPT1 // 1 : LPT2 // 2 : LPT3 // 3 : COM1 // 4 : COM2 // 5 : COM3 // 6 : COM4 // // autodetect = bit // 0 : Auto Detect ANSI // 1 : ANSI Detect for NewUser // 2 : Auto Detect IEMSI // 3 : IEMSI Detect for NewUser // 4 : Auto Detect RIP // 5-7 : [Reserved] // // configattr = bit // 0 : Move Local Uploads // 1-15 : [Reserved] // // multitasker = // 0 = Do Not Detect or Use Any MultiTasker // 1 = Auto-Detect // 2 = Desqview // 3 = Double DOS // 4 = OS/2 // 5 = MultiDOS Plus // 6 = Taskview // 7 = Topview // 8 = Windows Enhanced Mode // 9..255 = [Reserved] // // shownewfileschar // 0 - No // 1 - ASCII Only // 2 - Always typedef struct CONFIGRECORD { Str8 version, deflanguage; byte nocarrierstring[21]; UserString guestaccount; char freespace01[11], // unused logpath[61], textpath[61], menupath[61], mnurampath[61], netmailpath[61], nodelistpath[61], msgpath[61], filepath[61], freespace02[61], // unused binkleyoutpath[61], temppath[61], userbasepath[61], avatarpath[61], ascpath[61], asclowpath[61], filemaint[61], fileattachpath[61], soundpath[61], fastindexpath[61], systempwd[16], // Password to Logon System sysoppwd[16], // Password to Keyboard newuserpwd[16]; // Password for Newuser Str8 newtopmenu; // NewUser TopMenu byte newusergroups[4], inboundmail[61], outboundmail[61], uploadpath[61], swapfile[61], multipath[61], brackets[3], inactivitytime, minmesscheck, maxlogintime, freespace03, // unused answerdelay, // BOOLEAN shellswap, // " highbit, // " disppass, // " asklocalpass, // " fastlogon, // " sysopremote, // " printerlog, // " phone1ask, // " colourask, // " aliasask, // " dobask, // " phoneforce, // " direct_video, // " snow_check, // " freespace04, // unused screen_blank, oneword; // BOOLEAN AskType checkmail, checkfile, ansiask, fullscreenask, clearask, moreask, avatarask, extendask, usdateask; byte phone2ask, // BOOLEAN phoneformat[15], freespace04a[61], freespace04b[61], shellprompt[61], shell2prompt[61], enterprompt[61], chatprompt[61], listprompt[61], f7keylinetop[80], f7keylinebot[80], freespace05[84], // unused chat2prompt[61], freespace05a[61], freespace05b[61], freespace05c[61], freespace05d[61], loadprompt[61], freespace05e[61], freespace05f[61]; word security, logonsecurity; EzFlagType flags; byte minpasslength, dispfwind, // Status Bar Colour constant dispbwind, // Status Bar Colour " disppopupf, // Popup Forground " disppopupborder, // Popup Border " disppopupb, // Popup Background " dispf, // Foreground Colour " freespace06, // Unused comport, passlogons, doblogon, printerport, passtries, topmenu[9], freespace07[4]; // Unused word watchmess, // constant netmailcredit; // constant long ansiminbaud; word slowbaud, minloginbaud, lowsecuritystart, lowsecurityend, slowstart, slowend; byte quotestring[6], freespace09, // Unused offhook; // BOOLEAN word forcecrashmail, optioncrashmail, netmailfileattach; byte popuphighlight, // Popup Highlight Colour (constant) freespace10, // Unused maxpages, maxpagefiles, pagelength; word pagestart[7], freespace50, // Unused localfattachsec, sectouploadmess, sectoupdateusers, readsecnewecho, writesecnewecho, sysopsecnewecho, secreplyvianetmail; AskType netmailkillsent; byte swaponarchive, freespace11[9], // Unused popuptext; // Popup Text Colour (constant) word pageend[7]; byte freespace12[22]; // Unused word incomingcallstart, incomingcallend, fp_upload; // File Points Upload Credit byte altf[10][61], ctrlf[10][41], freespace13[4]; word fp_credit; // Newuser Filepoints byte ks_per_fp, // Number of Kilobytes per FP freespace14, // unused rego_warn_1, rego_warn_2, freespace15[2]; // Unused word min_space_1; // constant byte swapbimodem, // boolean modembusy, // boolean (* Toggle DTR or ATH1 *) scrheight, // boolean (* 43/50 line mode *) msgtmptype, // boolean (True=MSGTMP False=MSGTMP.) swapupload, // boolean phonelogon, carrierdetect, // (* Carrier Detect (Default=$80) *) newfileshighlight, // boolean; max_descrip, min_descrip; word requestreceipt; byte ushowdate; // boolean ShowFileSizeType ufilesizek; byte uuploader, // boolean udownloadcount, // boolean freespace16, // unused ushowsecurity, // boolean sshowdate; // boolean ShowFileSizeType sfilesizek; byte suploader, // boolean sdownloadcount, // boolean freespace17, // Unused sshowsecurity, // boolean ushowtime, // boolean ushowfp, // boolean sshowtime, // boolean sshowfp; // boolean word fp_percent; // Download Filepoints Credit byte autodetect, dispsecurityfile, // boolean askforpagereason, // boolean delincompletefiles, // boolean freespace18, // unused swaponfeditview, // constant freespace19, // unused secfileschar, passchar; byte localinactivity, // boolean freespace20, // unused leftbracket[2], rightbracket[2]; word ignorefp; // Min Security to Ignore FPs byte menuminage, // Minimum Age for Age Checks freespace21; // unused word modemeff[MAXBAUDREC], modembaud[MAXBAUDREC]; byte modemconnect[MAXBAUDREC][16], freespace22[10]; // unused word configattr; byte usercol1_2, usercol3_4, usercol5_6, usercol7_8, userbkcol, newusercol2, chstatcol, getentercol, usdateforsysop, // boolean ezyovrpath[61], freespace23[36], ovrems, // boolean; swapezy, filesecpath[61], freespace24, // unused multitasker; word oldmaxbaud; byte lockedport; word filereqsec; byte autoanswer, // boolean initresponse[11], ringstring[11], inittries, initstring1[61], initstring2[61], busystring[21], answerstring[21], mailerstring[61]; word modemstart, modemend; byte modemdelay, sendbreak, // boolean; externaleditor[61]; char defaultorigin[51], connectfax[16]; long maxbaud; byte freespace25[12]; word uploadcredit; // Upload Credit Percentage byte freespace26[36], shownewfileschar; byte freespace[MAXFREE]; } CONFIGRECORD; // ------------------------------------------------------------------ // CONSTANT.EZY Constant Configuration Information // // The four following definitions // constantrecord // compressrecord // domaintype // constantfilefreespacetype // make up the complete CONSTANT.EZY file // As shown in "constantfilerecord" // // scantossattr = bit // 0 : Dupe Detection // 1 : Kill Null Netmail // 2 : Keep EchoArea Node Receipts // 3 : Import Messages to Sysop // 4 : Binkley Support // 5 : Kill Bad Archives // 6 : ArcMail 0.6 Compatability // 7 : Binkley 5D Support // 8-15 : [Reserved] // // constantattr = bit // 0 : Sysop Alias in Chat // 1 : Auto Log Chat // 2 : Display Full Message to User // 3 : Do not delete outbound mail bundles with no .MSG // 4 : On means do not use real name kludge line // 5 : User can write messages to user of same name // 6 : Users receive QWK messages that they posted // 7 : Show Sysop Online // 8 : Make Binkley Crash, Hold, etc // 9 : Show Colour in File Areas // 10-15 : [Reserved] // // unknownarea = // 0 : Kill Messages // 1 : Make a New EchoMail Area // 2 : Make a New PassThru Area typedef struct CONSTANTRECORD { byte version[9], system[41]; UserString sysopname, sysopalias; byte systemlocation[36], multiline; // boolean, multiline operation word maxmess, // maximum usable message areas maxfile, // maximum usable file areas watchmess, // watchdog message area pagemessboard, // paging message board badpwdmsgboard; // bad logon message board byte mintimeforcall, // minimum time to register call today freespace2[11]; word scantossattr, // ezymail scan/toss info constantattr, maxmsgsrescan; // Maximum msgs to rescan (0=disable) Str8 qwkfilename; // Unique QWK Mail filename word qwkmaxmail, // Maximum Msgs for QWK archive qwkmsgboard; // Bad QWK Message Board ftn_addr oldnetaddress[16]; word oldnetmailboard[16]; byte oldnewareagroup[16]; word oldnewareastmess[16]; // New area start msg board byte quotestring[6], // quote messsage string swaponezymail, // ezymail swapping information unknownarea, // unknown new area tag action swaponfeditview, // FEdit swapping information swaponarchive; // Ezymaint swapping information word minspaceupload; // minimum space to upload byte textinputcolour; // default text input colour word badmsgboard; // Bad echomail msg board ftn_addr netaddress[MAXAKA]; word netmailboard[MAXAKA]; char newareagroup[MAXAKA]; word newareastmess[MAXAKA]; // New area start msg board byte domain[21][MAXAKA]; byte freespace[CONSTANTFREESPACE]; } CONSTANTRECORD; // ------------------------------------------------------------------ // MESSAGES.EZY: Used by Ezycom to store message areas // // attribute = bit // 0 : Allow Aliases // 1 : Use Alias // 2 : Use Alias, Ask for Aliases // 3 : Test Age (use config age) // 4 : Combined Area Access // 5 : Local File attaches // 6 : Keep Private Bit on Incoming EchoMail // 7 : Security *) // // attribute2 = bit // 0 : Show Seenby Lines // 1 : Forced Mail Check // 2 : Tiny Seenbys // 3-4 : [Reserved] // 5 : Areafix Info Visible // 6 : Initial Combined Area Access // 7 : Do Not Use in Template *) // // attribute3 = bit // 0-7 : [Reserved] typedef struct MESSAGERECORD { char name[31], areatag[76], qwkname[13]; MsgType typ; MsgKindsType msgkinds; byte attribute, attribute2, attribute3, dayskill, recvkill; word countkill, kilobytekill; SECURITYTYPE readsecurity, writesecurity, sysopsecurity; byte minimumage; char originline[51]; byte originaddress, seenby[MAXAKA/8], areagroup, messgroup, altgroups[3], echomailfeed, // 0=No Uplink destnodes[MAXNODES/8], // Nodes 1 to 8 - DestNode[1] // Nodes 9 to 16 - DestNode[2] // Nodes 17 to 24 - DestNode[3] freespace[32]; } MESSAGERECORD; // ------------------------------------------------------------------ #if defined(GOLD_CANPACK) #pragma pack() #endif // ------------------------------------------------------------------ #endif // ------------------------------------------------------------------