Qwk format Part 2/3

 BBS: Inland Empire Archive
Date: 01-26-93 (01:26)             Number: 341
From: DIK COATES                   Refer#: NONE
  To: MARVIN HART                   Recvd: NO  
Subj: Qwk format Part 2/3            Conf: (2) Quik_Bas
Start Part 2 of 3 (Have stripped out some blank lines)
 MH> *.NDX

[3.10]  Index files (*.NDX)
[3.10.1]  Conference indices
     The index files contain a list of pointers pointing to the beginning
     of messages in the MESSAGES.DAT file.  The pointer is in terms of the
     128-bytes block logical record that the MESSAGES.DAT file is in.  Each
     conference has its own xxx.NDX file, where xxx is the conference num-
     ber left padded with zeroes.  Some mail programs offer the user the
     option to not generate index files.  So the mail readers need to cre-
     ate the index files if they are missing.
     EZ-Reader 1.xx versions will convert the NDX files from Microsoft MKS
     format into IEEE long integer format.  The bad part about this is that
     the user may store those index files back into the QWK file.  When
     another reader reads the index files, it will be very confused!

     Special note for BBSes with more than 999 conferences: Index files for
     conferences with four digit conference numbers is named xxxx.NDX,
     where xxxx is the conference number (left padded with zeroes).  The
     filenames for three digit conferences are still named xxx.NDX on these
     boards.  I would assume filenames for conferences in the five digit
     range is xxxxx.NDX, but I have not seen a BBS with 10,000 or more
     conferences yet!
     Each NDX file uses a five bytes logical record length and is formatted
     Offset  Length  Description
     ------  ------  ------------------------------------------------------
         1       4   Record number pointing to corresponding message in
                     MESSAGES.DAT.  This number is in the Microsoft MKS$
                     BASIC format.
         5       1   Conference number of the message.  This byte should
                     not be used because it duplicates both the filename of
                     the index file and the conference # in the header.  It
                     is also one byte long, which is insufficient to handle
                     conferences over 255.
     Please refer to appendix B for routines to deal with MKS numbers.

[3.10.2]  Personal index (PERSONAL.NDX)
     There is a special index file named PERSONAL.NDX.  This file contains
     pointers to messages which are addressed to the user, i.e. personal
     messages.  Some mail door and utility programs also allow the selec-
     tion of other messages to be flagged as personal messages.

[3.11]  Pointer file
     Pointer file is generally included so that the user can reset the last
     read pointers on the mail program, in case there is a crash on the BBS
     or some other mishaps.  There should be little reason for the reader
     program to access the pointer file.

     The pointer files I have seen are:
     KMail          BBSID.PNT
     MarkMail       BBSID.PNT
     Qmail          BBSID.PTR
     QWiKer         HMP.PTR
     SFMailQwk      BBSID.SFP
     Additions to this list are welcomed.

     This file, if included, will contain the message scanning screen the
     user sees from the door.
I have added the following, because it is likely of interest... there is
enough info in the following to take up another 3 long messages... I have
deleted the info for the various doors... Just listed them...

[4]  REP files
[4.1]  Naming convention
     The reply file is named BBSID.MSG, where BBSID is the ID code for the
     BBS found on line 5 of the CONTROL.DAT file.  Once this file has been
     created, the mail reader can archive it up into a file with REP exten-

[4.2]  Message file (BBSID.MSG)
     Replies use the same format as the MESSAGES.DAT file, except that
     message number field will contain the conference number instead.  In
     other words, the conference number will be placed in the two bytes
     (binary) starting at offset 124, as well as the message number field
     (ASCII) at offset 2.
     A private message is indicated by '*' in the message status flag.  For
     some reason, most mail doors only accept '*' as a private message and
     not '+'.
     The first 128-bytes record of the file is the header.  Instead of the
     copyright notice, it contains the BBSID of the BBS.  This 1-8 charac-
     ter BBSID must start at the very first byte and must match what the
     BBS has.  The rest of the record is space padded.  The replies start
     at record 2.  Each reply message will have a 128-bytes header, plus
     one or more for the message text; followed by another header, and so
     The mail program must check to make sure the BBSID in the first block
     of the BBSID.MSG file matches what the BBS has!

[4.3]  Door control messages
     These messages allow the user to change their setup on the BBS by
     simply entering a message.  The goal is to allow the user to be able
     to control most areas of the BBS via the mail door.  Different mail
     doors have different capabilities.  Most all of them offer the ability
     to add and drop a conference, as well as reset the last read pointers
     in a conference.

[4.3.1]  DOOR.ID file
[4.3.2]  Qmail
[4.3.3]  MarkMail
[4.3.4]  KMail
[4.3.5]  RoseMail
[4.3.6]  Complete Mail Door
[4.3.7]  The MainMail System
[4.3.8]  BGQWK
[4.3.9]  UltraBBS
[4.3.10]  TriMail
[4.3.11]  Cam-Mail

[4.4]  Turning off the echo flag
[4.5]  Tag-lines
[5]  Net mail

End of Part 2 of 3

... And Caesar said to Cleopatra, "Veni, Veni, Veni..." -Dik
--- Blue Wave/QWK v2.10

--- Maximus 2.00
 * Origin: Durham Systems (ONLINE!) (1:229/110)
Outer Court
Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET