<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Welcome on TextMode Demo</title><link>https://mgomersbach.github.io/textmode/</link><description>Recent content in Welcome on TextMode Demo</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 04 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://mgomersbach.github.io/textmode/index.xml" rel="self" type="application/rss+xml"/><item><title>Hello World</title><link>https://mgomersbach.github.io/textmode/posts/hello-world/</link><pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate><guid>https://mgomersbach.github.io/textmode/posts/hello-world/</guid><description>&lt;p>This is the first post on the TextMode demo site.&lt;/p>
&lt;h2 id="code-examples">Code Examples&lt;/h2>
&lt;p>Here is some &lt;code>inline code&lt;/code> and various highlighted blocks:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-basic" data-lang="basic">&lt;span style="display:flex;">&lt;span>10 &lt;span style="color:#268bd2">PRINT&lt;/span> &lt;span style="color:#2aa198">&amp;#34;HELLO WORLD&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>20 &lt;span style="color:#268bd2">GOTO&lt;/span> 10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">def&lt;/span> &lt;span style="color:#268bd2">greet&lt;/span>(name):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#2aa198">&amp;#34;&amp;#34;&amp;#34;A simple greeting function.&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">for&lt;/span> i &lt;span style="color:#719e07">in&lt;/span> &lt;span style="color:#b58900">range&lt;/span>(&lt;span style="color:#2aa198">3&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#b58900">print&lt;/span>(&lt;span style="color:#2aa198">f&lt;/span>&lt;span style="color:#2aa198">&amp;#34;Hello, &lt;/span>&lt;span style="color:#2aa198">{&lt;/span>name&lt;span style="color:#2aa198">}&lt;/span>&lt;span style="color:#2aa198">! #&lt;/span>&lt;span style="color:#2aa198">{&lt;/span>i &lt;span style="color:#719e07">+&lt;/span> &lt;span style="color:#2aa198">1&lt;/span>&lt;span style="color:#2aa198">}&lt;/span>&lt;span style="color:#2aa198">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">if&lt;/span> &lt;span style="color:#268bd2">__name__&lt;/span> &lt;span style="color:#719e07">==&lt;/span> &lt;span style="color:#2aa198">&amp;#34;__main__&amp;#34;&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> greet(&lt;span style="color:#2aa198">&amp;#34;DOS&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">#include&lt;/span> &lt;span style="color:#719e07">&amp;lt;stdio.h&amp;gt;&lt;/span>&lt;span style="color:#719e07">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#dc322f">int&lt;/span> &lt;span style="color:#268bd2">main&lt;/span>(&lt;span style="color:#dc322f">void&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#dc322f">char&lt;/span> &lt;span style="color:#719e07">*&lt;/span>msg &lt;span style="color:#719e07">=&lt;/span> &lt;span style="color:#2aa198">&amp;#34;Hello from C&amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">printf&lt;/span>(&lt;span style="color:#2aa198">&amp;#34;%s&lt;/span>&lt;span style="color:#cb4b16">\n&lt;/span>&lt;span style="color:#2aa198">&amp;#34;&lt;/span>, msg);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">return&lt;/span> &lt;span style="color:#2aa198">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="typography">Typography&lt;/h2>
&lt;p>Regular text looks like this. &lt;strong>Bold text&lt;/strong> is highlighted in white. &lt;em>Emphasized text&lt;/em> gets slash decorators.&lt;/p>
&lt;h3 id="lists">Lists&lt;/h3>
&lt;ul>
&lt;li>First item&lt;/li>
&lt;li>Second item&lt;/li>
&lt;li>Third item&lt;/li>
&lt;/ul>
&lt;ol>
&lt;li>Numbered one&lt;/li>
&lt;li>Numbered two&lt;/li>
&lt;li>Numbered three&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>This is a blockquote. It has a left border in gray.&lt;/p></description></item><item><title>Building a DOS Theme for Hugo</title><link>https://mgomersbach.github.io/textmode/posts/building-a-theme/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>https://mgomersbach.github.io/textmode/posts/building-a-theme/</guid><description>&lt;p>This post documents the process of creating a text-mode Hugo theme from scratch - no Bootstrap, no npm, just Hugo and SCSS.&lt;/p>
&lt;h2 id="design-decisions">Design Decisions&lt;/h2>
&lt;p>The key insight was that a DOS text-mode interface is actually &lt;em>simpler&lt;/em> than modern web design. No gradients, no rounded corners, no subtle shadows. Just:&lt;/p>
&lt;ol>
&lt;li>A fixed-width monospace font&lt;/li>
&lt;li>A 16-color palette&lt;/li>
&lt;li>Box-drawing borders (single and double)&lt;/li>
&lt;li>Drop shadows made of solid color blocks&lt;/li>
&lt;/ol>
&lt;h2 id="the-cga-palette">The CGA Palette&lt;/h2>
&lt;p>The entire theme uses only 16 colors from the original CGA adapter:&lt;/p></description></item><item><title>The Golden Age of Retro Computing</title><link>https://mgomersbach.github.io/textmode/posts/retro-computing/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><guid>https://mgomersbach.github.io/textmode/posts/retro-computing/</guid><description>&lt;p>The 1980s gave us some of the most iconic computing interfaces ever designed. From the Borland Turbo Pascal IDE to Norton Commander, these text-mode interfaces proved that you don&amp;rsquo;t need a GUI to be productive.&lt;/p>
&lt;h2 id="the-machines">The Machines&lt;/h2>
&lt;p>The IBM PC 5150 launched in 1981 and changed everything. Here&amp;rsquo;s what it looked like:&lt;/p>
&lt;figure class="dos-figure ">
 &lt;div class="dos-window">
 &lt;div class="dos-window-header">ASCII.PNG&lt;/div>
 &lt;div class="dos-window-body dos-figure-body">&lt;img src="https://mgomersbach.github.io/textmode/posts/retro-computing/ascii_hu_41d9d8ef5f080037.png" alt="MS-DOS ASCII characters"
 loading="lazy">&lt;/div>
 &lt;/div>
 &lt;figcaption>MS-DOS ASCII character set - the building blocks of text-mode interfaces&lt;/figcaption>
&lt;/figure>

&lt;p>The original IBM PC came with just 16KB of RAM and a cassette port. No hard drive. The operating system fit on a single floppy disk.&lt;/p></description></item><item><title>Essential DOS Commands</title><link>https://mgomersbach.github.io/textmode/posts/dos-commands/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><guid>https://mgomersbach.github.io/textmode/posts/dos-commands/</guid><description>&lt;p>A quick reference for the commands every DOS user should know.&lt;/p>
&lt;h2 id="file-management">File Management&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-batch" data-lang="batch">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">DIR&lt;/span> List files in current directory
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">DIR&lt;/span> /W Wide format listing
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">DIR&lt;/span> /P Pause after each screen
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">COPY&lt;/span> file1 file2 Copy a file
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">MOVE&lt;/span> file1 dir\ Move a file
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">DEL&lt;/span> file Delete a file
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">REN&lt;/span> old new Rename a file
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">TYPE&lt;/span> file Display file contents
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="directory-navigation">Directory Navigation&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-batch" data-lang="batch">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">CD&lt;/span> \ Go to root
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">CD&lt;/span> .. Go up one level
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">CD&lt;/span> dirname Enter directory
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">MD&lt;/span> dirname Make directory
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">RD&lt;/span> dirname Remove directory
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>TREE Show directory tree
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="system-commands">System Commands&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-batch" data-lang="batch">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">CLS&lt;/span> Clear screen
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">VER&lt;/span> Show DOS version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>MEM Show memory usage
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>CHKDSK Check disk
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>FORMAT A: Format floppy
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>FDISK Partition hard drive
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="batch-file-example">Batch File Example&lt;/h2>
&lt;p>Here&amp;rsquo;s a simple batch file that creates a menu:&lt;/p></description></item><item><title>About</title><link>https://mgomersbach.github.io/textmode/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mgomersbach.github.io/textmode/about/</guid><description>&lt;h2 id="about-this-theme">About This Theme&lt;/h2>
&lt;p>This is a Hugo theme inspired by the classic DOS/Borland text user interfaces of the 1980s.&lt;/p>
&lt;h3 id="features">Features&lt;/h3>
&lt;ul>
&lt;li>Pure CSS, zero JavaScript&lt;/li>
&lt;li>CGA/EGA color palette&lt;/li>
&lt;li>Pixel-perfect monospace typography&lt;/li>
&lt;li>CSS-only dropdowns, modals, and toggles&lt;/li>
&lt;li>Responsive layout with CSS Grid&lt;/li>
&lt;li>Custom DOS-style scrollbars&lt;/li>
&lt;/ul>
&lt;p>Built with &lt;em>Hugo Pipes&lt;/em> and /SCSS/, no npm or external build tools required.&lt;/p></description></item><item><title>Components</title><link>https://mgomersbach.github.io/textmode/components/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mgomersbach.github.io/textmode/components/</guid><description>&lt;h2 id="buttons">Buttons&lt;/h2>
&lt;p>&lt;a class="btn" href="#">Default&lt;/a>
&lt;a class="btn btn-primary" href="#">Primary&lt;/a>
&lt;a class="btn btn-success" href="#">Success&lt;/a>
&lt;a class="btn btn-warning" href="#">Warning&lt;/a>
&lt;a class="btn btn-danger" href="#">Danger&lt;/a>
&lt;a class="btn btn-info" href="#">Info&lt;/a>
&lt;a class="btn btn-inverse" href="#">Inverse&lt;/a>&lt;/p>
&lt;h2 id="alerts">Alerts&lt;/h2>
&lt;p>&lt;div class="alert">&lt;button class="close">&amp;times;&lt;/button>This is a dismissible alert (with JS, click X to dismiss).&lt;/div>

&lt;div class="alert alert-success">This is a success alert.&lt;/div>

&lt;div class="alert alert-error">This is an error/danger alert.&lt;/div>
&lt;/p>
&lt;h2 id="labels-and-badges">Labels and Badges&lt;/h2>
&lt;p>&lt;span class="label">Default&lt;/span>
&lt;span class="label label-success">Success&lt;/span>
&lt;span class="label label-warning">Warning&lt;/span>
&lt;span class="label label-important">Important&lt;/span>
&lt;span class="label label-info">Info&lt;/span>
&lt;span class="label label-inverse">Inverse&lt;/span>&lt;/p>
&lt;h2 id="dos-window">DOS Window&lt;/h2>
&lt;div class="dos-window">
 
 &lt;div class="dos-window-header">
 Window Title
 
 &lt;/div>
 &lt;div class="dos-window-body">This is a DOS-style window with a title bar and drop shadow.&lt;/div>
 
&lt;/div>

&lt;h2 id="collapsible-window">Collapsible Window&lt;/h2>
&lt;div class="dos-window">
 &lt;input type="checkbox" id="dos-wintoggle-4" class="dos-window-toggle" style="display:none">
 &lt;div class="dos-window-header">
 COLLAPSIBLE.TXT
 &lt;label for="dos-wintoggle-4" class="dos-window-toggle-label">&lt;/label>
 &lt;/div>
 &lt;div class="dos-window-body">Click the arrow in the top-right corner of the title bar to collapse this window. Click again to expand it. Just like Turbo Pascal.&lt;/div>
 
&lt;/div>

&lt;h2 id="well">Well&lt;/h2>
&lt;div class="well">This is a well - a simple container with a black background.&lt;/div>

&lt;h2 id="hero-unit">Hero Unit&lt;/h2>
&lt;div class="hero">
 &lt;h1>BLINKING HEADLINE&lt;/h1>
 The hero unit has a double border, cyan background, and the h1 blinks.
&lt;/div>

&lt;h2 id="progress-bars">Progress Bars&lt;/h2>
&lt;div class="progress">&lt;div class="bar" style="width: 60%">&lt;/div>&lt;/div>
&lt;div class="progress progress-success">&lt;div class="bar" style="width: 40%">&lt;/div>&lt;/div>
&lt;div class="progress progress-danger">&lt;div class="bar" style="width: 80%">&lt;/div>&lt;/div>
&lt;h2 id="breadcrumb">Breadcrumb&lt;/h2>
&lt;nav class="breadcrumb">
 &lt;a href="#">Home&lt;/a>
 &lt;a href="#">Section&lt;/a>
 &lt;span class="active">Current Page&lt;/span>
&lt;/nav>
&lt;h2 id="table">Table&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Command&lt;/th>
 &lt;th>Description&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>DIR&lt;/td>
 &lt;td>List directory contents&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>COPY&lt;/td>
 &lt;td>Copy files&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DEL&lt;/td>
 &lt;td>Delete files&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>FORMAT&lt;/td>
 &lt;td>Format a disk&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="dropdown-css-only">Dropdown (CSS-only)&lt;/h2>
&lt;details class="dropdown">
 &lt;summary class="btn">File Menu&lt;/summary>
 &lt;div class="dropdown-menu">
 &lt;a href="#">New&lt;/a>
 &lt;a href="#">Open&lt;/a>
 &lt;a href="#">Save&lt;/a>
 &lt;hr class="divider">
 &lt;a href="#">Exit&lt;/a>
 &lt;/div>
&lt;/details>
&lt;h2 id="button-group">Button Group&lt;/h2>
&lt;div class="btn-group">
 &lt;a class="btn" href="#">Left&lt;/a>
 &lt;a class="btn" href="#">Middle&lt;/a>
 &lt;a class="btn" href="#">Right&lt;/a>
&lt;/div>
&lt;h2 id="accordion-css-only">Accordion (CSS-only)&lt;/h2>
&lt;div class="accordion">
 &lt;details>
 &lt;summary>Section 1&lt;/summary>
 &lt;div class="accordion-body">Content for section 1.&lt;/div>
 &lt;/details>
 &lt;details>
 &lt;summary>Section 2&lt;/summary>
 &lt;div class="accordion-body">Content for section 2.&lt;/div>
 &lt;/details>
 &lt;details>
 &lt;summary>Section 3&lt;/summary>
 &lt;div class="accordion-body">Content for section 3.&lt;/div>
 &lt;/details>
&lt;/div>
&lt;h2 id="pager">Pager&lt;/h2>
&lt;nav class="pager">
 &lt;a class="pager-prev" href="#">&amp;larr; Previous&lt;/a>
 &lt;a class="pager-next" href="#">Next &amp;rarr;&lt;/a>
&lt;/nav>
&lt;h2 id="tooltip-css-only">Tooltip (CSS-only)&lt;/h2>
&lt;p>Hover over &lt;span data-tooltip="This is a tooltip!">this text&lt;/span> to see a tooltip.&lt;/p></description></item></channel></rss>