In the early 90’s I was constantly online, just not on the Internet, on the BBS’s or Bulletin board system. You used your modem to dial directly to another computer just like making a telephone call but between computers. The called-up computer ran a BBS program where people could leave messages and files for others. Once you disconnected others could call it up and see them. I spent many a night using Procomm trying to dial up single-lined BBSs and listening to busy signals.
I was amazed at the complexity of textual files that once interpreted by the terminal showed colorful images rendered using characters.
ANSI or American National Standards Institute escape codes are a standardized method used for signaling within text to control various aspects like cursor position, color, font style, and other settings on video text terminals and terminal emulators. These codes consist of specific sequences of bytes, often beginning with an ASCII or American Standard Code for Information Interchange escape character followed by a bracket character, which is inserted into the text. Instead of being displayed as regular text, the terminal interprets these sequences as commands. In the 1970s, ANSI sequences were introduced to replace proprietary sequences, gaining widespread adoption in the computer equipment market by the early 1980s. They find applications across development, scientific research, commercial text-based software, and bulletin board systems.
First off, what are ASCII Codes? If you are on Windows go to your Start/Search and type Charmap or Character Map. It will start a small utility that has been in Windows, unchanged, since almost the beginning with the first truly usable Windows, Windows 3.11.
Notice that we are using Arial font and that there are two different values in the bottom panel. The left value is the Unicode value and the right is the ASCII value. The difference is that while ASCII contains 128 characters or 256 for an extended set, Unicode is currently up to 149,186 characters. The other difference is that we can easily access ASCII characters via the keyboard.
To output the ¾ character, press and hold ALT, type in on numpad the number, then release ALT. Make sure you have num lock enabled.
If you did this in, let’s say, Notepad, you should see a 2/3 symbol. So, open Notepad, press and hold ALT, and on the numpad type 0190. ¾ will appear.
I use this almost every day. I hate image icons, but I love font icons. especially ones that come with standard fonts. I use them as Icons for buttons, menus, flairs, and everywhere. Windows comes with a couple of fonts that are dedicated to such use, Wingdings.
Notice that the ASCII table also has noncharacter values in there like Null, Carriage Return, and others. Those can be used to produce some undesired effects, like in early Dos and Windows systems if you created a folder with ALT+255 you would create a folder that would not be visible in the directory structure. Even today, If you want to create a Folder or an Icon on the desktop you can use ALT+255 to create an Icon on your Desktop without a name.
Another “feature” I use every day is ASCII banners. They are stylized representations of text using ASCII characters. Unlike standard fonts that we use in word processors, ASCII fonts are made up of a series of ASCII characters arranged to form letters and numbers. Each 'font' is a creative interpretation of the alphabet and numerals, with each character being a small ASCII art piece in itself.
I use them in combination with VS Code and its Minimap feature to quickly find locations in code. There is a VS Code Extension named Banner Comments for doing that directly from within VS Code. You can try it out on patorjk website.
Now, If we look at the extended ASCII set we can see blocks, arrows, and lines. If we combine that with ANSI codes we can color the character's background and foreground.
We have sixteen foreground colors and sixteen background colors. The first eight can be used for both foreground and background, while the second eight are only for foreground use. It's worth noting that ASCII often refers to code page 437 in the art scene, except in cases like the Amiga ASCII world which had its own character set. However, when we mention ANSI, we're primarily referring to about 10 characters, commonly referred to as blocks. Among these ten, the most significant are the four known as f1, f2, f3, and f4. These were utilized to create solid blocks of color as well as shading. For instance, if we see red, it signifies the foreground color, while black indicates the background color.
Now, if we combine everything we get ANSI art. Combination of Extended ASCII character sets, mostly blocks and colors to produce, in my humble opinion, unique works of art.
A user on GitHub blocktronics has a nice collection of ANSI art. To view them or edit you can use Moebius.
In an era dominated by high-resolution images and videos, there is an undeniable charm and utility in these text-based art forms. Whether it's the practical use of ASCII in adding flair to comments, or the artistic expression found in ANSI art, these characters and codes continue to influence both the functionality and aesthetics of digital media.
It's worth remembering these humble beginnings — a testament to the ingenuity and creativity of early computing pioneers who laid the groundwork for the rich, multifaceted digital experience we enjoy today.