home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Black Box 4
/
BlackBox.cdr
/
progpas
/
prok344.arj
/
DATA.DOC
< prev
next >
Wrap
Text File
|
1991-04-01
|
17KB
|
373 lines
(*
* DATA.DOC - DOOR support data provided by ProKIT
*
* (C) 1988 Samuel H. Smith (rev. 8-aug-88)
*
(*********************************************************************8
*
* This describes the layout of the PCBoard 14.0 database records and
* the various free variables that are provided by the ProKIT library.
*
*)
type
{layout of the PCBOARD.SYS file while doors are open}
pcb_sys_rec = record
{1 }display: char2; {display on console? -1 or 0}
{3 }printer: char2; {print log? -1 or 0}
{5 }page_bell: char2; {bother sysop? -1 or 0}
{7 }alarm: char2; {caller alarm sound? -1 or 0}
{9 }sysop_next: char; {force sysop on next? 'N', 'X' or ' '}
case integer of
1: (
{10 }errcheck: char2; {error check/correcting modem? -1 or 0}
{12 }graphics: char; {ansi graphics mode? 'Y','N','7'}
{13 }nodechat: char; {node chat status 'U' or 'A'}
{14 }openbps: char5; {BPS rate to open modem port at}
{19 }connectbps: char5; {BPS connect rate or 'Local'}
{24 }usernum: integer; {record number in user file}
{26 }firstname: char15; {caller's first name}
{41 }password: char12; {caller's password}
{53 }time_on: integer; {when the user logged on in MINUTES}
{55 }prev_used: integer; {minutes used in prev calls today, <0}
{57 }time_logged: char5; {hh:mm time the user logged on}
{62 }time_limit: integer; {maximum minutes allowed from PWRD}
{64 }down_limit: integer; {daily download limit/1024 from PWRD}
{66 }curconf: byte; {active conference when door opened}
{67 }joined: bitmap; {areas user has been in}
{72 }ydone: bitmap; {areas user has done 'Y' on}
{77 }time_added: integer; {highest conference added time in mins}
{79 }time_credit: integer; {upload/chat time credit in minutes}
{81 }slanguage: char4; {language used, blank, .FRE etc}
{85 }name: char25; {caller's full name}
{110}sminsleft: integer; {minutes left when door opened}
{112}snodenum: byte; {current node number}
{113}seventtime: char5; {hh:mm event time}
{118}seventactive: char2; {event time active? "-1" or "0 "}
{120}sslide: char2; {slide event? "-1" or " 0"}
{122}smemmsg: single; {memorized message number}
{126}scomport: char; {com port number '0','1','2'}
{127}fill99: char2 {filler UNDOCUMENTED}
{record size: 128}
);
2: (
offline_filler: array[1..119] of char {filler, spaces}
);
end;
{layout of the USERS file}
pcb_user_rec = record
{1 }name: char25;
{26 }city: char24;
{50 }passwd: char12; {no spaces allowed}
{62 }busphone: char13;
{75 }phone: char13;
{88 }date: char6; {yymmdd of last call}
{94 }time: char5; {hh:mm of last call}
{99 }expert: char; {pcboard expert status Y or N}
{100}protocol: char; {X, C, Y, N}
{101}space1: char; {space - reserved}
{102}filedate: char6; {yymmdd of last file directory}
{108}level: byte; {security level}
{109}total_calls: integer; {number of times on system}
{111}pagelen: byte; {page length}
{112}uploads: integer; {number of uploads}
{114}downloads: integer; {number of downloads}
{116}downbytes: double; {daily download bytes so far}
{124}usercomment: char30; {user entered comment field}
{154}sysopcomment: char30; {sysop maintained comment field}
{184}lastused: integer; {minutes used so far today}
{186}expdate: char6; {yymmdd expiration date}
{192}explevel: byte; {expired security level}
{193}curconf: byte; {current conference number}
{194}conferences: bitmap; {area registration 1-39 (5 bytes)}
{199}expconf: bitmap; {expired conference registration}
{204}scanconf: bitmap; {user configured scan conferences}
{209}downtotal: double; {total bytes downloaded, all calls}
{217}uptotal: double; {total bytes uploaded, all calls}
{225}dead: char; {positive delete flag, Y or N}
{226}lastread: array[0..39] of single;
{last message pointer, main+39 conf's}
{386}reserved: char4; {reserved for future use}
(*
* THE FOLLOWING USERS FILE BYTES ARE TAKEN OVER BY PRODOOR
* FOR STORAGE OF PRODOOR-SPECIFIC DATA FOR A USER. OTHER DOOR
* PROGRAMS SHOULD TAKE CARE TO NOT CONFLICT WITH THESE BYTE
* POSITIONS!
*)
{390}curconfh: byte; {reserved for future use}
{391}extrarec: word; {record number for extra user record}
{393}flags: byte; {prodoor user flag bits}
{394}mailconf: byte; {conference user has mail in}
{395}scratchnum: byte; {scratch file number - incremented for
each use of a scratch file}
{396}dooruse: byte; {times in prodoor, up to 255}
{397}earned_k: word; {prodoor; earned kbytes}
{399}reserve3: word; {used by qmail??}
{total size: 400}
end;
const
{bit values in conf_flags}
conf_scan_blts = 1; {qmail include blts?}
conf_scan_files = 2; {qmail scan new files?}
type
(* layout of CNAMES/CONFINFO record *)
pcbconf_rec = record
conf_name: string[10];
conf_private_ul: boolean;
conf_private_mail: boolean;
conf_echo_mail: boolean;
conf_addsec: integer;
conf_addtime: integer; {minutes}
conf_msgblocks: integer; {1-32 message blocks; 1024 msgs each}
conf_msgfile: string[31]; {conference message base pathname}
conf_public_uplist: string[31]; {public uploads listing pathname}
conf_updir: string[31]; {conference upload dir}
conf_private_uplist: string[31]; {private uploads listing pathname}
conf_private_updir: string[31]; {private uploads dir}
conf_newsfile: string[31]; {conference news pathname}
conf_doormenu: string[31]; {door menu pathname}
conf_doorinfo: string[31]; {door info data pathname}
conf_bltmenu: string[31]; {bulletin menu pathname}
conf_bltinfo: string[31]; {bulletin info pathname}
conf_minsec: byte; {minimum security to join
if conference is non-public}
conf_maxsec: byte; {maximum security to join
if conference is non-public}
conf_dirmenu: string[31]; {file area menu pathname}
conf_dirinfo: string[31]; {file area info pathname}
conf_autojoin: boolean; {auto-rejoin on logon?}
conf_spare2: byte;
conf_dlinfo: string[31]; {download path info pathname}
conf_public: boolean; {is this conference public?}
conf_packopt: string[15]; {propack options}
conf_flags: byte; {Qmail flag bits}
conf_spare3: byte; {spare flag bits}
conf_msgs_read: single; {Number of messages downloaded/read
from this conference}
conf_msgs_entered: single; {Number of messages uploaded to this
conference}
conf_spare4: integer; {unallocated, used during rearrange}
conf_spare5: char4; {unallocated}
end;
(* layout of pcboard.dat *)
pcbsetup_rec = record
sysop_name: varstring; {sysop display name}
use_realname: boolean; {use real name for sysop?}
local_graphics: boolean; {graphics on in local mode?}
security_dir: varstring; {security messages location}
chat_dir: varstring; {node chat files location}
pcbtext_dir: varstring; {pcbtext file location}
userix_dir: varstring; {user index location}
users_path: varstring; {user file pathname}
caller_path: varstring; {caller log pathname}
cnames_path: varstring; {cnames file pathname}
pwrd_path: varstring; {pwrd file pathname}
fsec_path: varstring; {fsec file pathname}
upsec_path: varstring; {upsec file pathname}
tcan_path: varstring; {tcan file pathname}
welcome_path: varstring; {welcome file pathname}
newuser_path: varstring; {newuser file pathname}
closed_path: varstring; {closed file pathname}
warning_path: varstring; {30 day expiration warning pathname}
expired_path: varstring; {expired user message pathname}
usernet_path: varstring; {usernet.dat file pathname}
conference_menu: varstring; {conference menu pathname}
tranlog_path: varstring; {down/upload transfer log pathname}
logoff_path: varstring; {logoff message pathname}
language_path: varstring; {multi-lingual data file}
hayesv_modem: boolean; {hayes-v modem?}
initial_speed: word; {modem initial/top open speed}
lock_speed: boolean; {lock modem at initial speed}
modem_initial: varstring; {modem initial command}
modem_offhook: varstring; {modem off-hook command}
reset_modem: boolean; {reset modem during recycle?}
recycle_offhook: boolean; {modem offhook during recycle?}
allow_300: boolean; {allow 300 baud connections?}
start_300: string5; {starting hh:mm for 300 baud}
stop_300: string5; {ending hh:mm for 300 baud}
disable_scan: boolean; {disable message scan prompt}
disable_blanker: boolean; {disable 3 minute screen blanker}
disable_filter: boolean; {disable high-bit filter}
disable_quick: boolean; {disable quick logon/join}
multi_lingual: boolean; {run in multi-lingual mode?}
only_pwchange: boolean; {allow only password changes?}
closed_board: boolean; {run in closed-board mode?}
disable_graphics: boolean; {disable graphics mode?}
dos_recycle: boolean; {exit to dos after each caller}
subscription_mode: boolean; {enable expired user checks}
allow_esc_codes: boolean; {allow escape codes in messages}
validate_to: boolean; {validate "TO:" in messages}
enforce_time_limit: boolean; {enforce daily time limits?}
new_news: boolean; {display only NEW news files?}
timeout_minutes: integer; {keyboard timeout in minutes}
under_network: boolean; {running multi-node?}
node_number: varstring; {node number}
network_timeout: integer; {network timeout in seconds}
chat_delay: integer; {node chat delay in seconds}
system_name: varstring; {name of the bbs system}
macro_string: array[1..10] of varstring;
{shift-F1 thru F10 macros}
public_conferences: string40; {public conferences}
msg_lines: integer; {maximum message lines (1-99)}
ansi_intensity: varstring; {default intensity}
ansi_color: varstring; {color for inputs/filedisps}
event_active: boolean; {is event active?}
event_time: string8; {event time hh:mm}
event_buffer: integer; {minutes buffer before event}
event_noul: boolean; {disable uploads before event}
slide_event: boolean; {slide event time if needed}
disable_freecheck: boolean; {disable free space check}
printer_num: integer; {printer port number 1..3}
min_upload_free: integer; {stop uploads if free space less (K)}
newuser_level: integer; {level given to new users}
refused_level: integer; {level for those who refuse to reg.}
end;
(* layout of usernet.dat *)
usernet_rec = record
status: char2; {chatting-with-node-number or status code}
nodeno: char2; {this-node-number or "R " if chat request sent}
name: char25; {name of caller on this node}
city: char24; {location of caller on this node}
end;
(* flag bits in user.flags byte *)
const
flag_hasmail = $01; {user has mail waiting?}
{flag_expert = $02;} {is user an expert?}
flag_hotkeys = $04; {does user want hotkeys?}
flag_init = $20; {set before prodoor runs the first time}
flag_oldfmt = $40; {set by old versions of prodoor, must be clear in new}
(* user file index PCBNDX.X record layout *)
type
user_ix_rec = record
urec: word;
name: char25;
end;
var
user_ix: user_ix_rec;
(* ---------------------------------------------------------------- *)
(* variables *)
var
version: string[37]; {prokit version number}
linenum: integer; {current line number}
pcbsetup: pcbsetup_rec; {data from PCBOARD.DAT}
pcbsys: pcb_sys_rec; {data from PCBOARD.SYS}
user: pcb_user_rec; {data from USERS}
conf_info: pcbconf_rec; {data from CONFINFO}
conf_count: integer; {number of conferences}
current_conf: integer; {currently selected conference}
username: string30; {full user name}
first_name: string20; {user's first name}
userlevel: integer; {user's adjusted security level}
home_dir: filenames; {home/system directory}
comspec: filenames; {COMSPEC environment}
cmdline: string; {current command line}
par: string; {current command parameter}
parn: integer; {atoi of par}
par1: anystring;
par2: anystring; { $2$ }
par3: anystring; { $3$ }
par4: anystring; { $4$ }
par5: word; { $5W$ }
par6: word; { $6W$ }
par7: longint; { $7L$ }
par8: single; { $8S$ }
config_file: filenames; {filename of configuration file}
sys_dir: filenames; {directory where pcboard.sys is stored}
alti_fd: text;
pending_keys: anystring; {pending function keys}
extuser_file: filenames; {extuser data file}
confinfo_file: filenames; {confinfo data file}
set_pcb: anystring; {PCB environment settings}
const
hotkeys_active: boolean = false; {hotkeys active next get_cmdline}
status_active: boolean = false; {is status display active?}
chat_active: boolean = false; {is sysop chat active? (disables
time-left and 3 minute timeouts)}
event_pending: boolean = false; {true if event will run on exit}
process_fkeys: boolean = true; {false to disable sysop keys}
key_source: (sysop_key, user_key) = sysop_key;
{set by get_key}
alt_i: boolean = false; {file input in effect?}
alt_p: boolean = false; {printing all display text?}
allow_flagging: boolean = true; {include (F)lag option in MORE prompt}
dump_user: boolean = false; {set by F8, CD loss or time elapsed}
language: string[4] = ''; {selected alternate language .LNG}
extuser: extuser_ptr = nil; {variable allocation EXTUSER record}