Table of Contents
Text File Sections
A Text File Section is a sysop-curated collection of text files made available to users for reading. Common uses are bulletins, ANSI art galleries, BBS information, news archives, and similar non-credit-bearing reading material. Text File Sections are distinct from the file transfer section — files in a text section are read in-line through the BBS terminal interface, not downloaded, and are not subject to credit/transfer access controls.
Text File Sections are configured in SCFG → Text File Sections.
Section List
╔═══════════════════════════════════════════╗ ║ Text File Sections ║ ╠═══════════════════════════════════════════╣ ║ │Information ║ ║ │ANSI Artwork ║ ║ │ANSI Music Files ║ ║ │PETSCII Artwork ║ ║ │RIP Art ║ ║ │UTF-8 Tests ║ ║ │Operator ║ ║ │PCBoard Display Files ║ ║ │Wildcat! Display Files ║ ║ │VT100 art ║ ╚═══════════════════════════════════════════╝
Insor+— add a new sectionDelor-— delete a sectionF5/Ctrl-C,F6/Ctrl-V— copy / paste a section- Press
Enteron a section to edit it.
When adding a section, SCFG prompts for a Name and an Internal Code. The internal code becomes the on-disk identifier for the section (and the name of the data subdirectory).
Per-Section Options
╔══════════════════════════════════════════════════════════╗ ║ Information ║ ╠══════════════════════════════════════════════════════════╣ ║ │Name Information ║ ║ │Internal Code INFO ║ ║ │Access Requirements ║ ╚══════════════════════════════════════════════════════════╝
| Option Name | Description |
|---|---|
| Name | Display name shown to users in the section list. |
| Internal Code | Up to 8 valid filename characters; uniquely identifies this section in storage. The lowercased code is also used as the on-disk subdirectory name. |
| Access Requirements | An ARS expression — users not matching the requirements cannot see or access the section. Blank = open to all. |
File Storage
Each section's text files live in:
data/text/<code>/— text files for the section (any text format: ASCII, ANSI, UTF-8, etc.). Created automatically by SCFG when the section is saved.
The configuration of the sections themselves (the [text:CODE] blocks) is persisted to ctrl/file.ini.
Section .ini File
If present at data/text/<code>.ini, this file is read by the default renderer (exec/text_sec.js) and gives the sysop control over presentation defaults and per-file overrides.
Root section keys
Keys placed before any [<filename>] section header apply to the entire text section as defaults:
| Key | Default | Description |
|---|---|---|
mode | P_CPM_EOF | Default pmode flags passed to console.printfile() for files in this section. Value is a JavaScript expression of one or more P_* constants combined with |. See the pmode flag reference below. |
cols | undefined (use terminal width) | Column count to format file output to. Files are wrapped or truncated to this width depending on the mode flags. |
Example minimal section .ini:
mode=P_CPM_EOF | P_NOATCODES cols=80
Per-file sections
Each [<key>] header in the .ini file describes one displayable file in the section. The <key> is a sysop-chosen short identifier the user types to view the file.
| Field | Description |
|---|---|
name | The actual filename in data/text/<code>/. |
desc | Descriptive title shown in the file list. |
ars | Optional ARS for this individual file. |
mode | Optional override of the section default ''mode'' for this file. |
cols | Optional override of the section default cols for this file. |
petscii_graphics | If set, the file is treated as native PETSCII graphics. |
tail | If set to a positive integer N, only the last N lines of the file are displayed (uses console.printtail). |
Example:
mode=P_CPM_EOF cols=80 [news] name=news.asc desc=Latest BBS news mode=P_CPM_EOF | P_AUTO_UTF8 [c64] name=welcome.pet desc=Welcome (PETSCII) petscii_graphics=true [changelog] name=CHANGELOG desc=Recent changes (last 50 lines) tail=50
pmode flag reference
The mode value is a JavaScript expression of pmode constants (defined in sbbsdefs.js / sbbsdefs.h), bitwise-OR'd with |. Most commonly used:
| Constant | Meaning |
|---|---|
P_NONE | No flags. |
P_NOABORT | User cannot abort the display with Ctrl-C. |
P_SAVEATR | Save current text attributes after display. |
P_NOATCODES | Don't process @-codes in the file. |
P_NOPAUSE | Disable the hit a key pause prompt at end-of-screen. |
P_SEEK | Allow keyboard navigation (Home/End/PgUp/PgDn) within the file. |
P_NOCRLF | Don't emit a CRLF before the file content. |
P_WORDWRAP | Word-wrap long lines for the user's terminal. |
P_CPM_EOF | Stop parsing/displaying at Ctrl-Z (CP/M end-of-file convention). The default. |
P_TRUNCATE | Truncate (rather than wrap) lines longer than cols. |
P_PETSCII | File is native PETSCII. |
P_UTF8 | File is UTF-8 encoded. |
P_AUTO_UTF8 | Auto-detect UTF-8 content. |
P_MARKUP | Process StyleCodes / Rich / StructuredText markup. |
P_HIDEMARKS | Hide markup source characters from the rendered output. |
P_NOXATTRS | Disable “Extra Attribute Codes” processing. |
The full set is defined in src/sbbs3/sbbsdefs.h.
Adding Files to a Section
There are two ways to populate a Text File Section:
Via the BBS (sysop)
Log into the BBS, enter the Text option of the main menu, choose the section, and use the Add command. The sysop is prompted for the title and the path/filename. If no path is given, the file is read from the section's data directory.
Directly on the filesystem
Drop files into data/text/<code>/. Optionally edit data/text/<code>.ini to set display order and friendly titles.
Renderer (Loadable Module)
The module that presents Text File Sections to users is configured in SCFG → System → Loadable Modules → Text Section. The default is text_sec (i.e. exec/text_sec.js). Sysops wanting a custom navigation experience can replace this with their own JavaScript module.
Recommended Sections
A reasonable baseline:
- Information (
INFO) — general BBS info; consider includingtext/sbbs.msg - Operator (
OPERATOR,ars=SYSOP) — sysop-only system notes / change logs - ANSI Artwork (
ANSI) — and sibling sections (PETSCII,RIP,VT100ART,UTF8) for systems catering to retro terminals
It is requested that sysops make at least the text/sbbs.msg file available somewhere reachable for users.
See Also
- Text Files (system display files, distinct topic)
- File Areas (transfer / download section)