PCBOARD.SYS
External Program Data File (a.k.a. drop file), PCBOARD.SYS
format.
This is a binary file written in 128 byte blocks
This file should be pre-filled with spaces inside the first 128 bytes so that any field not written is filled with spaces instead of zeroes or other characters. Typically this only really matters when a caller is not online at which time only the first four fields inside of the 128 byte block are valid. The rest of the fields outside of the 128 byte block may contain valid data or the file may be truncated to 128 bytes without serious loss of data.
The following layout is specified in a “byte offset” format such that the first field begins at offset 0.
The following is a definition of the variable types that will be used below:
- char = a 1 byte character
- str = an array of 2 or more “char” bytes
- int = a 2 byte integer
- long = a 4 byte long integer
- bsreal = a 4 byte Basic Single Precision real number
- bitmap = an array of bytes accessed a bit at a time
Offset | Type | Length | Description | Values |
---|---|---|---|---|
0 | str | 2 | Display On/Off | (“-1” = On, “ 0” = Off) |
2 | str | 2 | Printer On/Off | (“-1” = On, “ 0” = Off) |
4 | str | 2 | Page Bell On/Off | (“-1” = On, “ 0” = Off) |
6 | str | 2 | Caller Alarm On/Off | (“-1” = On, “ 0” = Off) |
8 | char | 1 | Sysop Flag | (“ ”, “N”=sysop next, “X”=exit dos) |
9 | str | 2 | Error Corrected | (“-1” = On, “ 0” = Off) |
11 | char | 1 | Graphics Mode | ('Y'=yes, 'N'=no, '7'=7E1) |
12 | char | 1 | Node Chat Status | ('A'=available, 'U'=unavailable) |
13 | str | 5 | DTE Port Speed | (PC to Modem speed) |
18 | str | 5 | Connect Speed | shown to caller or “Local” |
23 | int | 2 | User's Record Number | in the USERS file |
25 | str | 15 | User's First Name | (padded to 15 characters) |
40 | str | 12 | User's Password | (padded to 12 characters) |
52 | int | 2 | Time User Logged On | (in minutes since midnight) |
54 | int | 2 | Time used so far today | (negative number of minutes) |
56 | str | 5 | Time User Logged On | (in “HH:MM” format) |
61 | int | 2 | Time Allowed On | (from PWRD file) 1) |
63 | int | 2 | Allowed K-Bytes for Download | 2) |
65 | char | 1 | Conference Area user was in | (if ⇐ 255) |
66 | bitmap | 5 | Conference Areas the user has joined this session | |
71 | bitmap | 5 | Conference Areas the user has scanned this session | |
76 | int | 2 | Conference Add Time | in minutes |
78 | int | 2 | Upload/Sysop CHAT Credit Minutes | 3) |
80 | str | 4 | Language Extension | 4) |
84 | str | 25 | User's Full Name | (padded to 25 characters) |
109 | int | 2 | Calculated Minutes Remaining | 5) |
111 | char | 1 | Node Number | (or ' ' if no network) |
112 | str | 5 | Scheduled Event Time | (in “HH:MM” format) |
117 | str | 2 | Is Event Active | (“-1” = On, “ 0” = Off) |
119 | str | 2 | Slide Event | (“-1” = On, “ 0” = Off) |
121 | bsreal | 4 | Memorized Message Number | |
125 | char | 1 | Comm Port Number | (0=none, 1-8) |
126 | char | 1 | Reserved for PCBoard | |
127 | char | 1 | Reserved for PCBoard | |
128 | char | 1 | Use ANSI | (1 = Yes, 0 = No) |
129 | char | 8 | Last Event Date | (in “MM-DD-YY” format) |
137 | int | 2 | Last Event Minute | (in minutes since midnight) |
139 | char | 1 | Caller Exited to DOS | (1 = Yes, 0 = No) |
140 | char | 1 | Event Up Coming | (1 = Yes, 0 = No) |
141 | char | 1 | Stop Uploads | (1 = Yes, 0 = No) |
142 | int | 2 | Conference Area user was in | (up to 65535) |
144 | bitmap | varies | High Conference Areas the user has joined | 6) |
varies | bitmap | varies | High Conference Areas the user has scanned | 7) |
See Also
This is not the calculated number of K-bytes remaining. To calculate the number of bytes the caller may download you must multiply this number by 1024 and subtract from it the number of bytes the caller has downloaded today.
Unlike the “Elapsed Time On” field the “Number of Bytes Downloaded” field is updated before PCBoard exits to DOS or to a DOOR program.
Note that if the number of K-bytes remaining is set to 32767 then PCBoard considers this to be an “unlimited number” and that any bytes downloaded will not count against the limit.
DOOR programs may adjust this field if time credit was added or removed while the user was in the DOOR prior to returning to PCBoard.
High Conf Number | Extended Conferences | Dynamic Size |
---|---|---|
< 39 | 0 | 0 |
40 | 1 | 1 |
50 | 11 | 2 |
100 | 61 | 8 |
The formula for determining the dynamic size then is to take the high conference number and subtract 39 then divide by 8. (i.e. Size = (HighConf-39) / 8).