Synchronet v3.18b-Win32 (install) has been released (Sept-2020).

Synchronet v3.19a, now under development, requires libarchive-dev to build successfully.

You can donate to the Synchronet project using PayPal.

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 Numberin 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

1)
The “Time Allowed On” field is not the calculated allowed time remaining. The user's record in the USERS file is not updated with the “Last Date On” or “Elapsed Time On” information so far that day before the program exits to either perform a DOS function or run a DOOR program. DOOR programs, therefore, should not update the USERS file in their application if the caller is returning to PCBoard. Only if the caller hangs up inside the DOOR and the DOOR modifies PCBOARD.SYS should the file be changed.
2)
The “Allowed K-Bytes for Download” field specifies the number of K-bytes the caller may download in a day according to the PWRD file and his security level and his connect speed (if specified in the PWRD file).
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.
3)
The “Upload/Sysop CHAT Credit Minutes” specifies a number of minutes that should be taken off from the current “time elapsed” for the caller thus extended his remaining number of minutes online for this session.
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.
4)
The “Language Extension” field specifies the extension to be added to filenames that PCBoard displays when the caller has chosen a language other than the default. The default is all spaces (i.e. “ ”) while if the caller has chosen a language such as French it may be set to “.FRE” for the extension.
5)
This field is provided only as a convenience to the DOOR programmer. It specifies the number of minutes PCBoard has calculated to remain at the time the DOOR was opened or that the caller exited to DOS. PCBoard does not read this field back in upon returning from the DOOR program.
6)
The final two conference fields are bitmapped just like the two fields at offsets 66 and 71 respectively. One key difference with these, however, is that they apply only to conferences beyond conference #39 and that they are dynamically sized at the byte level. Examples can be found in the table below:
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).
7)
See the Previous Footnote

In Other Languages
Translations of this page: