82 lines
4.1 KiB
Plaintext
82 lines
4.1 KiB
Plaintext
This file briefly describes the QWK file format.
|
||
|
||
The following is an abbreviated version of Appendix G of DELUXE.DOC:
|
||
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
|
||
All of the messages in a mail packet are contained in a file
|
||
named MESSAGES.DAT. The file's logical record length is 128
|
||
bytes. The first record of MESSAGES.DAT always contains
|
||
Sparkware's copyright notice produced by The Qmail Door.
|
||
Messages start in record #2 and use this format:
|
||
|
||
Starting Position,Length Description
|
||
------------------------ ----------------------------
|
||
1,1 Message status flag
|
||
2,7 Message number
|
||
9,8 Date (MM-DD-YY)
|
||
17,5 Time (HH:MM)
|
||
22,25 To
|
||
47,25 From
|
||
72,25 Subject
|
||
97,12 Password
|
||
109,8 Message reference number
|
||
117,6 Number of blocks
|
||
123,1 Message status
|
||
124,2 Conference number
|
||
|
||
The text of message continues in the next record. You can
|
||
find out how many blocks make up one message by looking at
|
||
the value of "Number of blocks". Message text is delimited
|
||
by a pi symbol (ASCII 227) between lines.
|
||
|
||
The xxx.NDX files contain record numbers that point into the
|
||
MESSAGES.DAT file for actual messages. Each conference that
|
||
contains messages has its own "xxx.NDX" file. The "xxx" is
|
||
the conference number for the index file.
|
||
|
||
Each .NDX file uses a five byte logical record length and is
|
||
formatted to:
|
||
|
||
Starting Position,Length Description
|
||
------------------------ ------------------------
|
||
1,4 Record number of message
|
||
in MKS$ format.
|
||
5,1 Conference number.
|
||
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
|
||
|
||
The formula for converting x, a LONGINT in MKS$ format, to MKSToNum, a
|
||
binary integer, is:
|
||
|
||
MKSToNum := ((x AND NOT $ff000000) OR $00800000)
|
||
SHR (24 - ((x SHR 24) AND $7f));
|
||
|
||
It's not pretty but it works (and it only handles positive numbers).
|
||
|
||
The CONTROL.DAT is a text file containing information about
|
||
the host BBS and conference information. Here is a sample
|
||
one with comments:
|
||
|
||
Ivo Andric Memorial BBS ;bbs name
|
||
Victoria, BC, CANADA ;bbs location
|
||
604-380-0297 ;bbs number
|
||
Gwen Barnes, Sysop ;format is "First Last, Sysop"
|
||
20001,ANDRIC ;DOOR_SERIAL,PACKET_ID
|
||
01-09-1991,14:54:44 ;mm-dd-yyyy,hh:mm:ss ..pkt time
|
||
GREG HEWGILL ;user name
|
||
;name of QMENU file if exists
|
||
0 ;unknown
|
||
0 ;unknown
|
||
254 ;total # of conferences - 1
|
||
0 ;# of first conf
|
||
Local ;name of conf (10 chars max)
|
||
1 ;# of second conf
|
||
I_Central ;etc...for 255 confs
|
||
...
|
||
255 ;this is the 255'th conf (#24
|
||
U_C_Prog ; is omitted from this packet)
|
||
HELLO ;filename of welcome file
|
||
NEWS ;filename of news file
|
||
GOODBYE ;filename of goodbye file
|
||
|
||
If you're looking at a real CONTROL.DAT, any further lines you can
|
||
ignore because current mail doors don't generate it (it's obsolete).
|
||
|