home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Beijing Paradise BBS Backup
/
PARADISE.ISO
/
software
/
BBSDOORW
/
FDDEV202.ARJ
/
PASCAL.ARJ
/
CTL.INC
next >
Wrap
Text File
|
1991-10-02
|
24KB
|
713 lines
(*
** ctl.inc (FrontDoor)
**
** Copyright 1991 Joaquim H. Homrighausen. All rights reserved.
**
** SETUP.FD definitions for FrontDoor 2.00+
**
** Last revision: 91-10-02
**
** -------------------------------------------------------------------------
** This information is not necessarily final and is subject to change at any
** given time without further notice
** -------------------------------------------------------------------------
*)
(* Mailer ----------------------------------------------------------------- *)
(* --- Loglevels *)
CONST
LOGFATAL = $0001; (* ! Fatal errors *)
LOGERROR = $0002; (* ? Errors *)
LOGBRIEF = $0004; (* + Major changes in action *)
LOGACCT = $0008; (* $ Accounting information *)
LOGXFER = $0010; (* * Sent/Received files *)
LOGTRIVIAL = $0020; (* - Minor changes in action *)
LOGXFERMSG = $0040; (* % Transfer messages *)
LOGMODEM = $0080; (* = Modem activities/responses *)
LOGTRX = $0100; (* : Session transaction numbers *)
LOGSESSION = $0200; (* ~ Session stuff, SysOp, etc. *)
LOGRMTAKAS = $0400; (* ~ Remote system's AKAs *)
LOGRMTINFO = $0800; (* ~ Remote system's information *)
LOGUNEXPECT = $1000; (* # Unexpected password *)
LOGDEBUG = $8000; (* All loglevels enabled *)
(* --- Miscellaneous MAILER flags *)
NOUNLISTED = $00000001; (* Don't allow unlisted systems *)
CREATE_BATCH = $00000002; (* Create batchfile when BBS caller *)
TERMONLY = $00000004; (* Running as Terminal-Only *)
DTR_HANGUP = $00000008; (* Use DTR to hangup *)
DTR_DIAL = $00000010; (* Toggle DTR prior to dialing *)
DTR_BUSY = $00000020; (* Use DTR to signal BUSY *)
MANUAL_ANSWER = $00000040; (* Use manual answer *)
CONNECT_RESET = $00000080; (* Reset modem to connect speed *)
MODEM_FIXED = $00000100; (* Use constant speed against modem *)
NOMAIL_NOPWD = $00000200; (* No mail from unsecured systems *)
DELAYFIRST = $00000400; (* Delay before first call *)
CLOCK = $00000800; (* Display clock *)
KILLNULL = $00001000; (* Remove messages with no text *)
MAILONLY = $00002000; (* Don't allow human callers *)
LIMITED_ANSWER = $00004000; (* Limited hours to answer *)
EXIT_NETMAIL = $00008000; (* Exit when netmail received *)
ZONE_ADAPTION = $00010000; (* Adopt called/calling zone *)
PRINTNEWMSGS = $00020000; (* Print received messages *)
NOUNKNOWNPOINTS = $00040000; (* Don't accept unlisted points *)
FORCEDCARRIER = $00080000; (* Carrier is forced. Ring required *)
NULLMODEM = $00100000; (* Initiate session when CD high *)
MAILER43LINES = $00200000; (* Use 43/50 line mode in mailer *)
SWAPTOEMSDISK = $00400000; (* Swap file to LIM/EMS/DISK w/shell *)
MAILEREMSOK = $00800000; (* If EMS can be used for swapping *)
PRESENTAKAS = $01000000; (* Present AKAs during EMSI sessions *)
NOBLINKMAIL = $02000000; (* Don't flash the waiting mail sign *)
EXITONANYFILE = $04000000; (* Exit after ANY data has been rcvd *)
MAILERAUTOLINES = $08000000; (* Use whatever screen mode is there *)
HONOR_RRQ = $10000000; (* Honor RRQ *)
NO_TIMESTAMP = $20000000; (* Don't show timestamp in window-1 *)
MAILERCUSTOMCRT = $40000000; (* User-defined screen size *)
(* --- Audio flags *)
CLOCKNOISE = $0001; (* Tic-tac-tic-tac-tic-tac *)
INMAILNOISE = $0002; (* Unpacked any mail *)
INCRASHNOISE = $0004; (* Unpacked crash or immediate mail *)
INCONNECTNOISE = $0008; (* Incoming MAIL call (connect) *)
INCALLERNOISE = $0010; (* Incoming human caller passed >BBS*)
MAILWAITING = $0020; (* Mail is waiting *)
OUTMAILNOISE = $0040; (* Sent mail (after session) *)
OUTCONNECTNOISE = $0080; (* Outgoing MAIL call (connect) *)
ERRORNOISE = $0100; (* S.O.S. *)
(* --- Request types *)
REQALL = $01; (* Anybody can request *)
REQNONE = $02; (* No one can request *)
REQLISTED = $04; (* Only listed systems *)
REQLIMITED = $08; (* Limited hours *)
(*--------------------------------------------------------------------------*)
MAXKEY = 24;
TYPE
Arr11 = array[1..11] of Char;
Arr16 = array[1..16] of Char;
Arr26 = array[1..26] of Char;
Arr31 = array[1..31] of Char;
Arr40 = array[1..40] of Char;
Arr41 = array[1..41] of Char;
Arr50 = array[1..50] of Char;
Arr61 = array[1..61] of Char;
Arr71 = array[1..71] of Char;
(*--------------------------------------------------------------------------*)
MailRec = RECORD
(* --- The logfile *)
Log : Arr71;
LogLevel : word; (* See --- Loglevels *)
(* --- Telephone number manipulation *)
Prefix : Arr31; (* Always added *)
Hidden : array[1..10] of Arr31; (* Strip these if in # *)
PostFix : Arr31; (* Always appended *)
(* --- Miscellaneous flags *)
Flags : longint; (* See --- Miscellaneous flags *)
Flags_Reserved: longint; (* Reserved flags *)
Audio : word; (* See --- Audio flags *)
SynchTimer : byte; (* Number of seconds for sync *)
(* --- Errorlevels *)
CrashExit, (* Mail exit *)
bbs300,
bbs1200,
bbs1275,
bbs2400,
bbs4800,
bbs9600,
bbs19200,
bbs38400 : byte;
(* --- Modem *)
ModemBaud : word; (* 30=300, 24=2400, etc. *)
ModemPort, (* 1-255 (COM1=1, COM2=2, etc.) *)
ModemDelay : byte; (* 1/10 seconds delay / line sent *)
(* --- Messages *)
b300msg,
b1200msg,
b1275msg,
b2400msg,
b4800msg,
b9600msg,
b19200msg,
b38400msg,
ErrorMsg,
BusyMsg,
NoCarrierMsg,
OkMsg,
RingMsg,
NodialMsg,
NoAnswerMsg,
VoiceMsg : Arr16;
(* --- Commands *)
EscapeStr,
OffhookStr,
ReconnectStr : Arr11;
Init1,
Init2,
Init3,
ResetStr,
DownStr : Arr50;
HangupStr,
DialStr : Arr11;
(* --- Manual answer stuff *)
OldModemAnswer: Arr11; (* Not used anymore *)
AnswerDelay : byte;
(* --- Limited answer start and end times *)
Begin_Hour,
Begin_Minute,
End_Hour,
End_Minute : byte;
(* --- Calling control *)
RetryBusy,
RetryResend,
RetryDelay : byte;
(* --- File request control *)
reqlist, (* List to scan for reqable dirs *)
reqalias, (* Magic filenames *)
reqmessage : Arr71; (* Appended to FAILED REQUEST message *)
reqtype, (* Bit field *)
reqmaxfiles : byte; (* Max number of files to send on 1 req *)
reqmaxtime, (* Maximum number of minutes for req *)
reqmaxsize, (* Maximum size (in KB) for req *)
reqminbaud : word; (* Minimum baudrate for req *)
reqstarthr, (* Start time for file requests, can be *)
reqstartmin, (* - combined with the reqdays field *)
reqendhr,
reqendmin,
reqdays : byte; (* 7 6 5 4 3 2 1 $80==All days
_ _ _ _ _ _ _
: : : : : : :
: : : : : : +--- Saturday
: : : : : +----- Friday
: : : : +------- Thursday
: : : +--------- Wednesday
: : +----------- Tuesday
: +------------- Monday
+--------------- Sunday *)
(* --- File to send when human callers are let thru *)
BBSname : Arr11;
LoadBBSbanner : Arr71;
(* Function keys from mailer menu *)
(* --- F1-F12, Shift F1-F12 *)
Key : Array[1..MAXKEY] of RECORD
Cmd : Arr61;
Title : Arr26;
Behavior : byte; (* 1-Pause, 2-Process msg base *)
End;
(* --- Mailer colors *)
Color : RECORD
Header,
HiLite,
Clock,
DataEntry,
Error,
NormalText,
Frame,
WndwText,
WndwFrame,
WndwSelect,
WndwHiLite : byte;
End;
(* --- Number of days to keep entries in history files *)
KeepHistory : byte;
(* --- FDServer password, if none given, server is INactive *)
SlavePwd : Array[1..21] of char;
(* --- File displayed to users when system is in event for no callers *)
InEventFile : Arr71;
(* --- File displayed when human callers are seen on mail-only system *)
MailOnlyFile : Arr71;
(* --- External programs to run on certain "wake-up" strings *)
ExternMail : Array[1..10] of RECORD
WakeUpStr : Arr40;
ErrorLevel : byte;
End;
(* --- Limited audio start and end times. If the below four bytes
are all zero (0), audio is enabled all the time *)
AudioBeginHour,
AudioBeginMin,
AudioEndHour,
AudioEndMin : byte;
(* --- Minimum cost to process undialable *)
MinUnDialCost : word;
(* --- Carrier detect mask (commercial version), default=128 *)
CDmask : byte;
(* --- FDCD buffer sizes (commercial version) *)
FossilOutBs,
FossilInBs : word;
(* --- List to scan for SECURE sessions during file requests *)
ReqSecList : Arr71;
(* --- Extended baud rate exits *)
bbs7200,
bbs12000,
bbs14400 : byte;
(* --- Custom screen size parameters to INT 10H (commercial version) *)
SetCustomCRTax,
SetCustomCRTbx,
SetCustomCRTcx,
SetCustomCRTdx,
ResetCustomCRTax,
ResetCustomCRTbx,
ResetCustomCRTcx,
ResetCustomCRTdx : word;
(* --- Alias List to scan for SECURE sessions *)
ReqSecAlias : Arr71;
(* --- Command string to force modem to answer *)
ModemAnswer : Arr41;
RESERVERAT : Array[1..811] of Char;
End;
(* Editor ------------------------------------------------------------------*)
CONST
EDITOR43LINES = $00000001; (* Use 43/50-line mode *)
SHOWHARDCRS = $00000002; (* Display paragraph (hard CR) char *)
EDITORSWAP = $00000004; (* Swap file to LIM/EMS/DISK w/shell *)
EDITOREMSOK = $00000008; (* Whether or not EMS should be used *)
EDITORAUTOLINES = $00000010; (* Use whatever screen mode is there *)
HONOR_CFM = $00000020; (* Honor CFM *)
EDITORCUSTOMCRT = $00000040; (* User-defined screen size *)
RKILL_NEVER_E = $00000080; (* Never ask "Delete Original?"-E *)
RKILL_NEVER_L = $00000100; (* Never ask "Delete Original?"-L *)
RKILL_NEVER_N = $00000200; (* Never ask "Delete Original?"-N *)
USEZONEGATE_YES = $00000400; (* Always use zone gate if OK *)
USEZONEGATE_NO = $00000800; (* Never use zone gate, even if OK *)
(* --- Netmail folder behavior *)
RESTRICTED = $00000001;
EXPORTOK = $00000004;
USEXLATTABLES = $00000008;
EDREADONLY = $00000020;
MAXORIGIN = 20;
TYPE
EditRec = RECORD
(* --- Macro keys *)
(* F1-F12, Shift F1-F12 *)
MacroKey : Array[1..MAXKEY] of Arr61;
(* --- Margin, default==60 *)
Margin : byte;
(* --- Default message status *)
MsgBits : word;
(* --- Miscellaneous settings *)
Flags : longint;
(* --- Origin lines *)
Origin : Array[1..MAXORIGIN] of Arr61;
(* --- Editor colors *)
Color : RECORD
TopLine,
StatusLine,
Error,
Text,
TextQuotes,
TextReverse,
TextHardCRs,
Header,
HeaderData,
HeaderDataHiLite,
DataEntry,
WndwFrame,
WndwText,
WndwSelect,
WndwHiLite : byte;
End;
(* --- Netmail folder flags *)
NetBehave : longint;
(* --- Translation tables IN/OUT *)
XlateIn,
XlateOut : Array[0..255] of Char;
(* --- Where Hudson-style message base files are *)
QBase : Arr71;
(* --- Custom screen size parameters to INT 10H (commercial version) *)
SetCustomCRTax,
SetCustomCRTbx,
SetCustomCRTcx,
SetCustomCRTdx,
ResetCustomCRTax,
ResetCustomCRTbx,
ResetCustomCRTcx,
ResetCustomCRTdx : word;
(* --- RESERVED *)
Reserved : Array[1..1008] of Char;
End;
(* Shared data ------------------------------------------------------------- *)
CONST
FASTKEY = $00000001;
FLICKER = $00000002;
BLACKOUT = $00000004;
HAVEEXTKBD = $00000008; (* Use extended INT 16H calls *)
FORCE24HOUR = $00000010; (* Force 24-hour time format *)
SUPERUSER = $00000001; (* User flags *)
ADMINUSER = $00000002;
USER = $00000004;
BYPASSRO = $00010000;
BYPASSEXP = $00020000;
PROTECT_MEXIT = $00000001; (* Protect Alt-Q Mailer *)
PROTECT_MSHELL = $00000002; (* Protect Alt-Z Mailer *)
PROTECT_MKEYS = $00000004; (* Protect function keys Mailer *)
PROTECT_MFREQ = $00000008; (* Protect file requests Mailer *)
PROTECT_MXMIT = $00000010; (* Protect transmit Mailer *)
PROTECT_MSEND = $00000020; (* Protect send mail Mailer *)
PROTECT_MPOLL = $00000040; (* Protect poll Mailer *)
PROTECT_MNCOMP = $00000080; (* Protect FDNC Mailer *)
PROTECT_MQUEUE = $00000100; (* Protect mail queue Mailer *)
PROTECT_MPRN = $00000200; (* Protect printer toggle Mailer *)
MAXAKA = 10;
MAXUSER = 10;
(*
** Domain structure
*)
TYPE
_DOMAIN = RECORD
Zone, (* Zone for domain *)
Reserved : Word;
Name : Array[1..28] of Char; (* Name of domain *)
End;
(*
** AKA matching structure
*)
_ZMATCH = RECORD (* Zone to match *)
Zone, (* Net to match *)
Net, (* AKA to use *)
AKAnum : Word;
End;
(*
** Shared information structure
*)
ShrdRec = RECORD
SystemPath,
MailPath,
SwapPath,
RescanPath, (* Commercial version *)
_ReservedPath,
InfilePath,
PacketPath,
NodelistPath : Arr71;
CountryCode : word;
AKA : Array[0..MAXAKA] of RECORD
Zone,
Net,
Node,
Point : word;
End;
(* --- Timeout value for screen blanker in SECONDS (0-255) *)
Flags : longint;
BlackoutTimer : byte;
(* --- User record *)
User : Array[1..MAXUSER] of RECORD
Name : Array[1..37] of Char;
PwdCrc, (* CRC-32 of user password, -1L No pwd *)
Flags : longint;
End;
(* --- Protection of exits (commercial version) *)
ExitPwdCrc, (* Password for DOS shell, exits, etc. *)
ExitFlags : longint; (* Which flags should be protected *)
(* --- Zone match set-up *)
ZMatch : Array[1..20] of _ZMATCH;
(* --- "Domain" set-up *)
Domain : Array[1..20] of _DOMAIN;
(* --- System information *)
SiteInfo : RECORD
Name : Arr50; (* Name of site *)
Location : Arr40; (* Location of site *)
PhoneNo : Arr26; (* Phone number or '-Unpublished-' *)
MaxBaud : Longint; (* Baud rate (300-115200) *)
Flags : Arr50; (* Capability flags of site *)
End;
(* --- Reserved *)
Reserved : Array[1..86] of Char;
End;
(* Terminal --------------------------------------------------------------- *)
CONST
CONNECT_NOISE = $00000001;
TRANSFER_NOISE = $00000002;
USE_TRANSLATE = $00000004;
USE_43LINES = $00000008;
AUTOZMODEM = $00000010;
NOWRAPAROUND = $00000020;
LOCALECHO = $00000040;
NOAVATAR = $00000080;
USE_AUTOLINES = $00000100;
NOCLRONFF = $00000200; (*Don't clear screen on form feeds*)
IEMSIACTIVE = $00000400; (*Interactive EMSI Support*)
TERMCUSTOMCRT = $00000800; (*User-defined screen size*)
TERMLOG = $00001000; (*Logging in Terminal*)
TYPE
TermRec = RECORD
(* --- Init String *)
InitString : Arr41;
(* --- Max memory to use for buffer (in K) *)
ScrollSize : word;
(* --- 0=TTY, 1=ANSI, 2=VT52, 3=VT100 *)
Emulation : byte;
(* --- Index in protocol list *)
Protocol : byte;
(* --- Shift F1-F12 macro settings *)
ShiftKeys : Array[1..12] of Array[1..31] of Char;
(* --- Ctrl F1-F12 macro settings *)
CtrlKeys : Array[1..12] of Array[1..31] of Char;
(* --- Default download path *)
DownloadPath : Array[1..60] of Char;
(* --- Default upload path *)
UploadPath : Array[1..60] of Char;
(* --- Translation table - modem->screen *)
XlatIn : Array[0..255] of Char;
(* --- Translation table - screen->modem *)
XlatOut : Array[0..255] of Char;
(* --- Seconds to wait before next dial.. *)
RetryWait : byte;
(* --- Behavior, sounds, flashes.. etc. *)
Flags : longint;
(* --- CRC-32 of password to enter PhoneDir *)
DirectoryPWD : longint;
(* --- Invoked with Alt-I *)
Editor : Array[1..60] of Char;
(* --- Default profile. See TERMINAL.INC *)
Profile : Array[1..94] of byte;
(* --- Custom screen size params to INT 10H (commercial version) *)
SetCustomCRTax,
SetCustomCRTbx,
SetCustomCRTcx,
SetCustomCRTdx,
ResetCustomCRTax,
ResetCustomCRTbx,
ResetCustomCRTcx,
ResetCustomCRTdx : word;
(* --- Reserved *)
Reserved : Array[1..854] of Char;
End;
(* Printer (commercial version) ------------------------------------------- *)
CONST
PAGE_FORMAT = $00000001;
PAGE_FFEED = $00000002;
EJECT = $00000004;
MANUAL_PAPER = $00000008;
HIDE_KLUDGE = $00000010;
CONTINOUS = $00000020;
TYPE
PrintRec = RECORD
Port, (* 0 LPT1, 1 LPT2, 2 LPT3, 3 COM1, 4 COM2 *)
Baud, (* 0 9600, 1 4800, 2 2400, 3 1200 *)
StopBits, (* $00 - 1, $01 - 2 *)
WordLength, (* $00 - 7, $01 - 8 *)
Parity, (* $00 - Even, $01 - Odd, $02 - None *)
PageLen : byte;
Behavior : longint;
Init,
Reset : Arr71;
BoldOn,
BoldOff,
UnderOn,
UnderOff,
ItalicsOn,
ItalicsOff : Arr31;
PageWidth, (* Width in columns of a page *)
LeftMargin, (* Left margin, ie. start printing at column *)
Footer, (* Footer margin, ie. leave nn lines *)
Header : byte; (* Header margin, ie. skip nn lines *)
XlatOut : Array[0..255] of Char;(* Translation table, disk->printer *)
Reserved : Array[1..100] of Char;
End;
(*****************************************************************************
** **
** Don't use ANY of the data in the file if the CRC values are NOT correct. **
** **
** Check the fingerprint[] field before assuming 1.99b and higher. Your **
** software should also check the sysrev field to make sure it's compatible **
** with the data listed in SETUP.FD **
** **
*****************************************************************************)
CONST
FD_THISREV = $0100;
TYPE
CtlRec = RECORD
FingerPrint : Array[1..5] of Char; (* Must contain "JoHo<NUL>" *)
SysRev : word; (* Must contain FD_THISREV above *)
CtlCrc : longint; (* CRC-32 of struct excluding the 1st 11 bytes *)
M : MailRec;
E : EditRec;
S : ShrdRec;
T : TermRec;
P : PrintRec;
CtlCrc2 : longint; (* CRC-32 of all the above *)
End;
(* --- Uncomment this and compile to display size of records *)
(*
Begin
Writeln('Mail ', Sizeof(MailRec));
Writeln('Editor ', Sizeof(EditRec));
Writeln('Shared ', Sizeof(ShrdRec));
Writeln('Terminal ', Sizeof(TermRec));
WriteLn('Printer ', SizeOf(PrintRec));
writeln('Total ', sizeof(ctlrec));
End.
*)
(* --------------------------------------------------------- *)
(* end of file "ctl.inc" *)