516 lines
19 KiB
C++
516 lines
19 KiB
C++
// 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 <gftnall.h>
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
#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.<node>)
|
|
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;
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
// <systempath>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
|
|
|
|
// ------------------------------------------------------------------
|