/RIPtermJS

Displays RIPscrip v1.54 (RIP) files in an HTML canvas

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

RIPtermJS

By Carl Gorringe

Before the web, there was the BBS...

The Remote Imaging Protocol (RIP) was a vector graphics encoding used in Bulletin Board Systems (BBSs) during the 90's. To connect to a BBS, one would use a program called a terminal, and everything was text-based or used ANSI escape codes to position and color the text.

In 1992 a standard for drawing graphics in the terminal was invented called RIP, also known as RIPscrip. It was designed in such a way to support existing BBS software, while adding vector graphics capability, such as drawing lines and shapes, similar to today's SVG format on the web. Buttons could be rendered that when clicked, would send text through the terminal as if you pressed the keys on the keyboard. It gave a GUI interface to existing menus, and some games made use of it too. Just like the underground ANSI art scene where artists made use of colored text characters, there was a RIP art scene too. There's a large collection of ANSI and RIP art available to download at 16colors.

The most popular terminal program for accessing RIP-enabled BBSs was an MS-DOS program called RIPterm, and the most popular version of RIPscrip was v1.54. It used an EGA graphics mode with a resolution of 640 x 350 px and 16 colors (out of a wider palette). Since this didn't use a 4:3 aspect ratio, like 640 x 480 VGA, the pixels drawn weren't square. Drawing on a modern screen means either a squished canvas, or stretching it to make the pixels square.

RIPtermJS is my attempt at recreating a RIP file viewer drawn to an HTML canvas, as well as an experimental attempt to create a RIP to SVG converter. Ultimately, I'd like to turn it into a terminal that one could use to access a RIP-enabled BBS from a website, possibly through a websocket interface.

Status

Version 3 Under Development

RIPtermJS will correctly display a number of v1.54 RIP files in a canvas, including using Flood Fill with patterns.

TODO

  • Filled Circles, Ovals, & Pie Slices (DONE)
  • Drawing Text using .CHR fonts (DONE)
  • Default Text Font (8x8 font DONE)
  • Buttons & Mouse regions (in progress)
  • Loading & drawing of Icons
  • WebSockets to BBS on server
  • Text windows & ANSI emulation
  • $ Variables

Visit my demo page.

License

Copyright (c) 2018-2021 Carl Gorringe. All rights reserved.

Licensed under the the terms of the GNU General Public License version 3 (GPLv3).