This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
probbs:qwk [2019/11/16 20:59] ozz [Personal index (PERSONAL.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 ==== |