Skip to content

Latest commit

 

History

199 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 through a websocket interface.

Credit

If you use this app on your website, we require that you give credit or acknowledgement. Please include a link to https://github.com/cgorringe/RIPtermJS and credit Carl Gorringe.

Known Websites that use RIPtermJS

  • L.O.R.D. Town - A really fun implementation of Legend of the Red Dragon!

Other Links

Status

Version 0.4 Under Development

RIPtermJS will correctly display most v1.54 RIP files in a canvas.

What's done and what's in progress:

  • Basic Shapes (lines, ellipses, arcs, rectangles, bezier curves)
    • Fix filled circles, ovals, & pie slices
    • Fix polylines slightly off
  • Flood fill with patterns
  • Drawing Text using .CHR fonts
  • Default 8x8 Text Font
  • Buttons & Mouse regions
    • Fix button label position slightly off
  • Loading & drawing of Icons
  • WebSockets to BBS on server (in progress)
  • Text Windows & ANSI emulation (in progress)
    • Window size & position
    • Scrolling (in progress)
    • Text color & position
    • Draw cursor
    • 8x8, 8x14 fonts
    • 7x8, 7x14, 16x14 fonts (in progress)
    • ANSI Music & BEL
  • Host Commands & Variables
    • Pre-defined Text Variables (in progress)
    • User-defined Text Variables
    • Audio effects
    • Pop-up Pick Lists
    • Host Command Templates
    • Local File Playback

Visit my demo page.

License

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

Licensed under the terms of the Mozilla Public License version 2.0 (MPL-2.0).

About

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

Resources

Stars

28 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages