fsxNet Wiki

BBS Development & Resources

User Tools

Site Tools


probbs:qwk

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
probbs:qwk [2019/11/16 20:06]
ozz [Index files (*.NDX)]
probbs:qwk [2019/11/18 07:16] (current)
ozz [MESSAGES.DAT]
Line 73: Line 73:
  
 In Pascal: In Pascal:
 +<code pascal>
     type     type
        ​MsgHeaderRec=Packed Record        ​MsgHeaderRec=Packed Record
Line 88: Line 88:
           Attributes:​String[6];​           Attributes:​String[6];​
        End;        End;
 +</​code>​
  
 In C: In C:
 +
 +<code C>
     struct QwkHeader {     struct QwkHeader {
  unsigned char Msgstat; ​    /* Message status ​      */  unsigned char Msgstat; ​    /* Message status ​      */
Line 108: Line 111:
  unsigned char Msgtagp;  unsigned char Msgtagp;
     } __attribute__((packed));​     } __attribute__((packed));​
 +</​code>​
  
 Of course to populate that structure you will BlockRead 128 bytes, them move from offset to length to each field. Of course to populate that structure you will BlockRead 128 bytes, them move from offset to length to each field.
  
 ^Offset ​ |^Length ​ |^Description| ^Offset ​ |^Length ​ |^Description|
-^1|^1|^Message status flag (unsigned character)| +|1||1||Message status flag (unsigned character)| 
-^ |^ |^#32 = (space) public, unread| +^ |^ ||#32 = (space) public, unread| 
-^ |^ |^'​-'​ = public, read| +^ |^ ||'​-'​ = public, read| 
-^ |^ |^'​+'​ = private, unread| +^ |^ ||'​+'​ = private, unread| 
-^ |^ |^'​*'​ = private, read| +^ |^ ||'​*'​ = private, read| 
-^ |^ |^'​~'​ = comment to Sysop, unread| +^ |^ ||'​~'​ = comment to Sysop, unread| 
-^ |^ |^'​`'​ = comment to Sysop, read| +^ |^ ||'​`'​ = comment to Sysop, read| 
-^ |^ |^'​%'​ = password protected, unread| +^ |^ ||'​%'​ = password protected, unread| 
-^ |^ |^#94 = (carrot) password protected, read| +^ |^ ||#94 = (carrot) password protected, read| 
-^ |^ |^'​!'​ = group password, unread| +^ |^ ||'​!'​ = group password, unread| 
-^ |^ |^'#'​ = group password, read| +^ |^ ||'#'​ = group password, read| 
-^ |^ |^'​$'​ = group password to all| +^ |^ ||'​$'​ = group password to all| 
-^2|^7|^Message number (in ASCII)| +|2||7||Message number (in ASCII)| 
-^9|^8|^Date (mm-dd-yy, in ASCII)| +|9||8||Date (''​mm-dd-yy''​, in ASCII)| 
-^17|^5|^Time (24 hour hh:mm, in ASCII)| +|17||5||Time (24 hour ''​hh:mm''​, in ASCII)| 
-^22|^25|^To (uppercase, left justified)| +|22||25||To (uppercase, left justified)| 
-^47|^25|^From (uppercase, left justified)| +|47||25||From (uppercase, left justified)| 
-^72|^25|^Subject of message (mixed case)| +|72||25||Subject of message (mixed case)| 
-^97|^12|^Password (space filled)| +|97||12||Password (space filled)| 
-^109|^8|^Reference message number (in ASCII)| +|109||8||Reference message number (in ASCII)| 
-^117|^6|^Number of 128-bytes blocks in message ​[1]| +|117||6||Number of 128-bytes blocks in message ((including the header, in ASCII; the lowest value should be 2, header plus one block message; this number may not be left flushed within the field))| 
-^123|^1|^Flag [2]| +|123||1||Flag ((ASCII 225 means message is active; ASCII 226 means this message is to be killed))| 
-^124|^2|^Conference number ​(unsigned word)| +|124||2||Conference number (unsigned word)| 
-^126|^2|^Logical message number in the current packet [3]| +|126||2||Logical message number in the current packet ((this number will be 1 for the first message, 2 for the second, and so on. unsigned word))| 
-^128|^1|^Indicates whether the message has a network tag-line or not. [4]| +|128||1||Indicates whether the message has a network tag-line or not. ((A value of '​*'​ indicates that a network tag-line is present; a value of ' ' (space) indicates there isn't one.  Messages sent to readers (non-net-status) generally leave this as a space. Only network software need this information.))|
- +
-[1] = (including the header, in ASCII; the lowest value should be 2, header plus one block message; this number may not be left flushed within the field) +
- +
-[2] = (ASCII 225 means message is active; ASCII 226 means this message is to be killed) +
- +
-[3] = this number will be 1 for the first message, 2 for the second, and so on. (unsigned word)+
  
-[4] = A value of '​*'​ indicates that a network tag-line is present; a value of ' ' (space) indicates there isn't one.  Messages sent to readers (non-net-status) generally leave this as a space. Only network software need this information. 
  
 ==== MESSAGE BODY ==== ==== MESSAGE BODY ====
Line 211: Line 207:
     }     }
  
 +==== 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 selection of other messages to be flagged as personal messages.
  
 +**NOTE** I have found that not all BBS software generate this file, for example PCBoard 15.x
  
probbs/qwk.1573934804.txt.gz · Last modified: 2019/11/16 20:06 by ozz