enigma-bbs/art/general.html

2505 lines
29 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" sizes="16x16" href="/enigma-bbs/assets/images/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/enigma-bbs/assets/images/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="32x32" href="/enigma-bbs/assets/images/favicon-32x32.png">
<link rel="stylesheet" href="/enigma-bbs/assets/css/style.css?v=">
<!-- Begin Jekyll SEO tag v2.7.1 -->
<title>General Art Information | ENiGMA½ BBS Software</title>
<meta name="generator" content="Jekyll v4.2.1" />
<meta property="og:title" content="General Art Information" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="General Art Information One of the most basic elements of BBS customization is through its artwork. ENiGMA½ supports a variety of ways to select, display, and manage art." />
<meta property="og:description" content="General Art Information One of the most basic elements of BBS customization is through its artwork. ENiGMA½ supports a variety of ways to select, display, and manage art." />
<meta property="og:site_name" content="ENiGMA½ BBS Software" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2022-05-24T06:10:38+00:00" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="General Art Information" />
<script type="application/ld+json">
{"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"description":"General Art Information One of the most basic elements of BBS customization is through its artwork. ENiGMA½ supports a variety of ways to select, display, and manage art.","url":"/enigma-bbs/art/general.html","@type":"BlogPosting","headline":"General Art Information","dateModified":"2022-05-24T06:10:38+00:00","datePublished":"2022-05-24T06:10:38+00:00","mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/general.html"},"@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
</head>
<body>
<div id="container">
<div class="sidebar" id="sidebar">
<hr class="mobile-divide">
<div class="container">
<a href="/enigma-bbs/"><img src="/enigma-bbs/assets/images/enigma-logo.png" class="logo" alt="Enigma logo"></a>
</div>
<ul>
<li>Installation</li>
<ul>
<li><a href="/enigma-bbs/installation/installation-methods.html">Installation Methods</a></li>
<li><a href="/enigma-bbs/installation/install-script.html">Install Script</a></li>
<li><a href="/enigma-bbs/installation/docker.html">Docker</a></li>
<li><a href="/enigma-bbs/installation/manual.html">Manual Installation</a></li>
<li>OS / Hardware Specific</li>
<ul>
<li><a href="/enigma-bbs/installation/hardware/rpi.html">Raspberry Pi</a></li>
<li><a href="/enigma-bbs/installation/hardware/windows.html">Installation Under Windows</a></li>
</ul>
<li><a href="/enigma-bbs/installation/network.html">Network Setup</a></li>
<li><a href="/enigma-bbs/installation/testing.html">Testing Your Installation</a></li>
<li><a href="/enigma-bbs/installation/production.html">Production Installation</a></li>
</ul>
<li>Configuration</li>
<ul>
<li><a href="/enigma-bbs/configuration/creating-config.html">Creating Initial Config Files</a></li>
<li><a href="/enigma-bbs/configuration/sysop-setup.html">SysOp Setup</a></li>
<li><a href="/enigma-bbs/configuration/config-files.html">Configuration Files</a></li>
<li><a href="/enigma-bbs/configuration/config-hjson.html">System Configuration</a></li>
<li><a href="/enigma-bbs/configuration/hjson.html">HJSON Config Files</a></li>
<li><a href="/enigma-bbs/configuration/menu-hjson.html">Menu HSJON</a></li>
<li><a href="/enigma-bbs/configuration/directory-structure.html">Directory Structure</a></li>
<li><a href="/enigma-bbs/configuration/external-binaries.html">External Support Binaries</a></li>
<li><a href="/enigma-bbs/configuration/archivers.html">Archivers</a></li>
<li><a href="/enigma-bbs/configuration/file-transfer-protocols.html">File Transfer Protocols</a></li>
<li><a href="/enigma-bbs/configuration/email.html">Email</a></li>
<li><a href="/enigma-bbs/configuration/colour-codes.html">Colour Codes</a></li>
<li><a href="/enigma-bbs/configuration/event-scheduler.html">Event Scheduler</a></li>
<li><a href="/enigma-bbs/configuration/acs.html">Access Condition System (ACS)</a></li>
<li><a href="/enigma-bbs/configuration/security.html">Security</a></li>
</ul>
<li>Miscellaneous</li>
<ul>
<li><a href="/enigma-bbs/misc/user-interrupt.html">User Interruptions</a></li>
</ul>
<li>File Base</li>
<ul>
<li><a href="/enigma-bbs/filebase/index.html">About File Areas</a></li>
<li><a href="/enigma-bbs/filebase/first-file-area.html">Configuring a File Base</a></li>
<li><a href="/enigma-bbs/filebase/acs.html">ACS</a></li>
<li><a href="/enigma-bbs/filebase/uploads.html">Uploads</a></li>
<li><a href="/enigma-bbs/filebase/web-access.html">Web Access</a></li>
<li><a href="/enigma-bbs/filebase/tic-support.html">TIC Support</a></li>
<li><a href="/enigma-bbs/filebase/network-mounts-and-symlinks.html">Network Mounts &amp; Symlinks</a></li>
</ul>
<li>Message Areas</li>
<ul>
<li><a href="/enigma-bbs/messageareas/configuring-a-message-area.html">Message Base</a></li>
<li><a href="/enigma-bbs/messageareas/message-networks.html">Message Networks</a></li>
<li><a href="/enigma-bbs/messageareas/bso-import-export.html">BSO Import / Export</a></li>
<li><a href="/enigma-bbs/messageareas/netmail.html">Netmail</a></li>
<li><a href="/enigma-bbs/messageareas/qwk.html">QWK Support</a></li>
<li><a href="/enigma-bbs/messageareas/ftn.html">FidoNet-Style Networks (FTN)</a></li>
</ul>
<li>Art</li>
<ul>
<li class="active-nav">General Art Information</li>
<li><a href="/enigma-bbs/art/themes.html">Themes</a></li>
<li><a href="/enigma-bbs/art/mci.html">MCI Codes</a></li>
<li>Views</li>
<ul>
<li><a href="/enigma-bbs/art/views/button_view.html">Button View</a></li>
<li><a href="/enigma-bbs/art/views/edit_text_view.html">Edit Text View</a></li>
<li><a href="/enigma-bbs/art/views/full_menu_view.html">Full Menu View</a></li>
<li><a href="/enigma-bbs/art/views/horizontal_menu_view.html">Horizontal Menu View</a></li>
<li><a href="/enigma-bbs/art/views/mask_edit_text_view.html">Mask Edit Text View</a></li>
<li><a href="/enigma-bbs/art/views/multi_line_edit_text_view.html">Multi Line Edit Text View</a></li>
<li><a href="/enigma-bbs/art/views/predefined_label_view.html">Predefined Label View</a></li>
<li><a href="/enigma-bbs/art/views/spinner_menu_view.html">Spinner Menu View</a></li>
<li><a href="/enigma-bbs/art/views/text_view.html">Text View</a></li>
<li><a href="/enigma-bbs/art/views/toggle_menu_view.html">Toggle Menu View</a></li>
<li><a href="/enigma-bbs/art/views/vertical_menu_view.html">Vertical Menu View</a></li>
</ul>
</ul>
<li>Servers</li>
<ul>
<li>Login Servers</li>
<ul>
<li><a href="/enigma-bbs/servers/loginservers/telnet.html">Telnet Server</a></li>
<li><a href="/enigma-bbs/servers/loginservers/ssh.html">SSH Server</a></li>
<li><a href="/enigma-bbs/servers/loginservers/websocket.html">Web Socket / Web Interface Server</a></li>
</ul>
<li>Content Servers</li>
<ul>
<li><a href="/enigma-bbs/servers/contentservers/web-server.html">Web Server</a></li>
<li><a href="/enigma-bbs/servers/contentservers/gopher.html">Gopher Server</a></li>
<li><a href="/enigma-bbs/servers/contentservers/nntp.html">NNTP Server</a></li>
</ul>
</ul>
<li>Modding</li>
<ul>
<li><a href="/enigma-bbs/modding/local-doors.html">Local Doors</a></li>
<li><a href="/enigma-bbs/modding/door-servers.html">Door Servers</a></li>
<li><a href="/enigma-bbs/modding/telnet-bridge.html">Telnet Bridge</a></li>
<li><a href="/enigma-bbs/modding/existing-mods.html">Existing Mods</a></li>
<li><a href="/enigma-bbs/modding/file-area-list.html">File Area List</a></li>
<li><a href="/enigma-bbs/modding/last-callers.html">Last Callers</a></li>
<li><a href="/enigma-bbs/modding/whos-online.html">Who's Online</a></li>
<li><a href="/enigma-bbs/modding/user-list.html">User List</a></li>
<li><a href="/enigma-bbs/modding/msg-conf-list.html">Message Conference List</a></li>
<li><a href="/enigma-bbs/modding/msg-area-list.html">Message Area List</a></li>
<li><a href="/enigma-bbs/modding/bbs-list.html">BBS List</a></li>
<li><a href="/enigma-bbs/modding/rumorz.html">Rumorz</a></li>
<li><a href="/enigma-bbs/modding/file-transfer-protocol-select.html">File Transfer Protocol Select</a></li>
<li><a href="/enigma-bbs/modding/onelinerz.html">Onelinerz</a></li>
<li><a href="/enigma-bbs/modding/show-art.html">The Show Art Module</a></li>
<li><a href="/enigma-bbs/modding/file-base-download-manager.html">File Base Download Manager</a></li>
<li><a href="/enigma-bbs/modding/file-base-web-download-manager.html">File Base Web Download Manager</a></li>
<li><a href="/enigma-bbs/modding/set-newscan-date.html">Set Newscan Date Module</a></li>
<li><a href="/enigma-bbs/modding/node-msg.html">Node to Node Messaging</a></li>
<li><a href="/enigma-bbs/modding/top-x.html">TopX</a></li>
<li><a href="/enigma-bbs/modding/user-2fa-otp-config.html">2FA/OTP Config</a></li>
<li><a href="/enigma-bbs/modding/autosig-edit.html">Auto Signature Editor</a></li>
<li><a href="/enigma-bbs/modding/menu-modules.html">Menu Modules</a></li>
</ul>
<li>Administration</li>
<ul>
<li><a href="/enigma-bbs/admin/administration.html">Administration</a></li>
<li><a href="/enigma-bbs/admin/oputil.html">oputil</a></li>
<li><a href="/enigma-bbs/admin/updating.html">Updating</a></li>
</ul>
<li>Troubleshooting</li>
<ul>
<li><a href="/enigma-bbs/troubleshooting/monitoring-logs.html">Monitoring Logs</a></li>
</ul>
</ul>
</div>
<div class="main_area">
<div class="container">
<section id="main_content">
<div class="PageNavigation">
<a class="btn" style="float:left;margin-right: 20px;" href="/enigma-bbs/messageareas/ftn.html">« FidoNet-Style Networks (FTN)</a>
<a href="#sidebar" class="btn menu_button">MENU</a>
<a class="btn" style="float: right;margin-left: 20px" href="/enigma-bbs/art/themes.html">Themes »</a>
<br clear="both">
</div>
<div class="page">
<h1 class="page-title">General Art Information</h1>
<h2 id="general-art-information">General Art Information</h2>
<p>One of the most basic elements of BBS customization is through its artwork. ENiGMA½ supports a variety of ways to select, display, and manage art.</p>
<h3 id="art-file-locations">Art File Locations</h3>
<p>As a general rule, art files live in one of two places:</p>
<ol>
<li>The <code class="language-plaintext highlighter-rouge">art/general</code> directory. This is where you place common/non-themed art files.</li>
<li>Within a <em>theme</em> such as <code class="language-plaintext highlighter-rouge">art/themes/super_fancy_theme</code>.</li>
</ol>
<h3 id="mci-codes">MCI Codes</h3>
<p>All art can contain <a href="/enigma-bbs/art/mci.html">MCI Codes</a>.</p>
<h3 id="art-in-menus">Art in Menus</h3>
<p>While art can be displayed programmatically such as from a custom module, the most basic and common form is via <code class="language-plaintext highlighter-rouge">menu.hjson</code> entries. This usually falls into one of two forms:</p>
<h4 id="standard">Standard</h4>
<p>A “standard” entry where a single <code class="language-plaintext highlighter-rouge">art</code> spec is utilized:</p>
<pre><code class="language-hjson">{
mainMenu: {
art: main_menu.ans
}
}
</code></pre>
<h4 id="module-specific--multiple-art">Module Specific / Multiple Art</h4>
<p>An entry for a custom module where multiple pieces are declared and used. The second style usually takes the form of a <code class="language-plaintext highlighter-rouge">config.art</code> block with two or more entries:</p>
<pre><code class="language-hjson">{
nodeMessage: {
config: {
art: {
header: node_msg_header
footer: node_msg_footer
}
}
}
}
</code></pre>
<p>A menu entry has a few elements that control how art is selected and displayed. First, the <code class="language-plaintext highlighter-rouge">art</code> <em>spec</em> tells the system how to look for the art asset. Second, the <code class="language-plaintext highlighter-rouge">config</code> block can further control aspects of lookup and display. The following table describes such entries:</p>
<table>
<thead>
<tr>
<th>Item</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">font</code></td>
<td>Sets the <a href="http://syncterm.bbsdev.net/">SyncTERM</a> style font to use when displaying this art. If unset, the system will use the arts embedded <a href="http://www.acid.org/info/sauce/sauce.htm">SAUCE</a> record if present or simply use the current font. See Fonts below.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">pause</code></td>
<td>If set to <code class="language-plaintext highlighter-rouge">true</code>, pause after displaying.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">baudRate</code></td>
<td>Set a <a href="http://syncterm.bbsdev.net/">SyncTERM</a> style emulated baud rate when displaying this art. In other words, slow down the display.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">cls</code></td>
<td>Clear the screen before display if set to <code class="language-plaintext highlighter-rouge">true</code>.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">random</code></td>
<td>Set to <code class="language-plaintext highlighter-rouge">false</code> to explicitly disable random lookup.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">types</code></td>
<td>An optional array of types (aka file extensions) to consider for lookup. For example : <code class="language-plaintext highlighter-rouge">[ '.ans', '.asc' ]</code>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">readSauce</code></td>
<td>May be set to <code class="language-plaintext highlighter-rouge">false</code> if you need to explicitly disable SAUCE support.</td>
</tr>
</tbody>
</table>
<h4 id="art-spec">Art Spec</h4>
<p>In the section above it is mentioned that the <code class="language-plaintext highlighter-rouge">art</code> member is a <em>spec</em>. The value of a <code class="language-plaintext highlighter-rouge">art</code> spec controls how the system looks for an asset. The following forms are supported:</p>
<ul>
<li>
<code class="language-plaintext highlighter-rouge">FOO</code>: The system will look for <code class="language-plaintext highlighter-rouge">FOO.ANS</code>, <code class="language-plaintext highlighter-rouge">FOO.ASC</code>, <code class="language-plaintext highlighter-rouge">FOO.TXT</code>, etc. using the default search path. Unless otherwise specified if <code class="language-plaintext highlighter-rouge">FOO1.ANS</code>, <code class="language-plaintext highlighter-rouge">FOO2.ANS</code>, and so on exist, a random selection will be made.</li>
<li>
<code class="language-plaintext highlighter-rouge">FOO.ANS</code>: By specifying an extension, only the exact match will be searched for.</li>
<li>
<code class="language-plaintext highlighter-rouge">rel/path/to/BAR.ANS</code>: Only match a path (relative to the systems <code class="language-plaintext highlighter-rouge">art</code> directory).</li>
<li>
<code class="language-plaintext highlighter-rouge">/path/to/BAZ.ANS</code>: Exact path only.</li>
</ul>
<p>ENiGMA½ uses a fallback system for art selection. When a menu entry calls for a piece of art, the following search is made:</p>
<ol>
<li>If a direct or relative path is supplied, look there first.</li>
<li>In the users current theme directory.</li>
<li>In the system default theme directory.</li>
<li>In the <code class="language-plaintext highlighter-rouge">art/general</code> directory.</li>
</ol>
<h4 id="acs-driven-conditionals">ACS-Driven Conditionals</h4>
<p>The <a href="/enigma-bbs/configuration/acs.html">ACS</a> system can be used to make conditional art selection choices. To do this, provide an array of possible values in your art spec. As an example:</p>
<pre><code class="language-hjson">{
fancyMenu: {
art: [
{
acs: GM[l33t]
art: leet_art.ans
}
{
// default
art: newb.asc
}
]
}
}
</code></pre>
<h4 id="syncterm-style-fonts">SyncTERM Style Fonts</h4>
<p>ENiGMA½ can set a <a href="http://syncterm.bbsdev.net/">SyncTERM</a> style font for art display. This is supported by many other popular BBS terminals as well. A common usage is for displaying Amiga style fonts for example. The system will use the <code class="language-plaintext highlighter-rouge">font</code> specifier or look for a font declared in an artworks SAUCE record (unless <code class="language-plaintext highlighter-rouge">readSauce</code> is <code class="language-plaintext highlighter-rouge">false</code>).</p>
<p>The most common fonts are probably as follows:</p>
<ul>
<li><code class="language-plaintext highlighter-rouge">cp437</code></li>
<li><code class="language-plaintext highlighter-rouge">c64_upper</code></li>
<li><code class="language-plaintext highlighter-rouge">c64_lower</code></li>
<li><code class="language-plaintext highlighter-rouge">c128_upper</code></li>
<li><code class="language-plaintext highlighter-rouge">c128_lower</code></li>
<li><code class="language-plaintext highlighter-rouge">atari</code></li>
<li><code class="language-plaintext highlighter-rouge">pot_noodle</code></li>
<li><code class="language-plaintext highlighter-rouge">mo_soul</code></li>
<li><code class="language-plaintext highlighter-rouge">microknight_plus</code></li>
<li><code class="language-plaintext highlighter-rouge">topaz_plus</code></li>
<li><code class="language-plaintext highlighter-rouge">microknight</code></li>
<li><code class="language-plaintext highlighter-rouge">topaz</code></li>
</ul>
<p>…and some examples:</p>
<p><img src="../assets/images/cp437.png" alt="cp437" title="cp437"><br>
<img src="../assets/images/pot_noodle.png" alt="pot_noodle" title="pot_noodle"><br>
<img src="../assets/images/mo_soul.png" alt="mo_soul" title="mo_soul"><br>
<img src="../assets/images/microknight_plus.png" alt="microknight_plus" title="microknight_plus"><br>
<img src="../assets/images/topaz_plus.png" alt="topaz_plus" title="topaz_plus"><br>
<img src="../assets/images/microknight.png" alt="microknight" title="microknight"><br>
<img src="../assets/images/topaz.png" alt="topaz" title="topaz"><br></p>
<p>Other “fonts” also available:</p>
<ul>
<li><code class="language-plaintext highlighter-rouge">cp1251</code></li>
<li><code class="language-plaintext highlighter-rouge">koi8_r</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_2</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_4</code></li>
<li><code class="language-plaintext highlighter-rouge">cp866</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_9</code></li>
<li><code class="language-plaintext highlighter-rouge">haik8</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_8</code></li>
<li><code class="language-plaintext highlighter-rouge">koi8_u</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_15</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_4</code></li>
<li><code class="language-plaintext highlighter-rouge">koi8_r_b</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_4</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_5</code></li>
<li><code class="language-plaintext highlighter-rouge">ARMSCII_8</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_15</code></li>
<li><code class="language-plaintext highlighter-rouge">cp850</code></li>
<li><code class="language-plaintext highlighter-rouge">cp850</code></li>
<li><code class="language-plaintext highlighter-rouge">cp885</code></li>
<li><code class="language-plaintext highlighter-rouge">cp1251</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_7</code></li>
<li><code class="language-plaintext highlighter-rouge">koi8-r_c</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_4</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_1</code></li>
<li><code class="language-plaintext highlighter-rouge">cp866</code></li>
<li><code class="language-plaintext highlighter-rouge">cp437</code></li>
<li><code class="language-plaintext highlighter-rouge">cp866</code></li>
<li><code class="language-plaintext highlighter-rouge">cp885</code></li>
<li><code class="language-plaintext highlighter-rouge">cp866_u</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_1</code></li>
<li><code class="language-plaintext highlighter-rouge">cp1131</code></li>
</ul>
<p><img class="emoji" title=":information_source:" alt=":information_source:" src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png" height="20" width="20"> See <a href="https://github.com/protomouse/synchronet/blob/master/src/conio/cterm.txt">this specification</a> for more information.</p>
<h4 id="syncterm-style-baud-rates">SyncTERM Style Baud Rates</h4>
<p>The <code class="language-plaintext highlighter-rouge">baudRate</code> member can set a <a href="http://syncterm.bbsdev.net/">SyncTERM</a> style emulated baud rate. May be <code class="language-plaintext highlighter-rouge">300</code>, <code class="language-plaintext highlighter-rouge">600</code>, <code class="language-plaintext highlighter-rouge">1200</code>, <code class="language-plaintext highlighter-rouge">2400</code>, <code class="language-plaintext highlighter-rouge">4800</code>, <code class="language-plaintext highlighter-rouge">9600</code>, <code class="language-plaintext highlighter-rouge">19200</code>, <code class="language-plaintext highlighter-rouge">38400</code>, <code class="language-plaintext highlighter-rouge">57600</code>, <code class="language-plaintext highlighter-rouge">76800</code>, or <code class="language-plaintext highlighter-rouge">115200</code>. A value of <code class="language-plaintext highlighter-rouge">ulimited</code>, <code class="language-plaintext highlighter-rouge">off</code>, or <code class="language-plaintext highlighter-rouge">0</code> resets (disables) the rate.</p>
<p><img class="emoji" title=":information_source:" alt=":information_source:" src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png" height="20" width="20"> See <a href="https://github.com/protomouse/synchronet/blob/master/src/conio/cterm.txt">this specification</a> for more information.</p>
<h3 id="common-example">Common Example</h3>
<pre><code class="language-hjson">fullLogoffSequenceRandomBoardAd: {
art: OTHRBBS
desc: Logging Off
next: logoff
config: {
baudRate: 57600
pause: true
cls: true
}
}
</code></pre>
<h3 id="see-also">See Also</h3>
<p>See also the <a href="/enigma-bbs/modding/show-art.html">Show Art Module</a> for more advanced art display!</p>
</div>
<div class="PageNavigation">
<a class="btn" style="float:left;margin-right: 20px;" href="/enigma-bbs/messageareas/ftn.html">« FidoNet-Style Networks (FTN)</a>
<a class="btn" style="float: right;margin-left: 20px" href="/enigma-bbs/art/themes.html">Themes »</a>
<br clear="both">
</div>
</section>
</div>
</div>
</div>
</body>
</html>