/icy_term

Old school ANSI/AVT terminal program for modern systems.

Primary LanguageRustApache License 2.0Apache-2.0

icy_term

IcyTERM is a BBS terminal program with allows you to connect to BBSes. Visit https://www.telnetbbsguide.com/ for a start to enter the BBS world.

Features supported so far:

  • Connection
    • Telnet
    • SSH
    • Raw
  • Terminal encoding support
    • Ansi
    • Avatar
    • Petscii
    • Built in fonts, many DOS fonts, C64, Amiga & Atari font supported.
    • ATASCII
    • Viewdata
  • File transfer protocols
    • Xmodem, 1k & 1k-G (implemented but needs testing)
    • Ymodem batch & Ymodem-G (implemented but needs testing)
    • Zmodem/ZedZap (implemented but needs testing)
  • Auto login
    • IEMSI
    • Terminate style auto login system
  • Misc features
    • Scrollback buffer (scrollwheel)
    • Exporting buffer to disk
    • IEMSI/Autologin editor (you need to edit it as text for the moment)
    • Better rendering engine (maybe switching the UI to OpenGL)
    • Copy & Paste
    • Internationalization

Get binaries

Get the latest release here: https://github.com/mkrueger/game_cheetah/releases/latest

Screenshots

Code page 437 (aka "DOS") support:

DOS

Petscii screenshot:

Petscii

Atascii screenshot:

Petscii

Viewdata screenshot:

Viewdata

History

I had an own BBS back in the 90'. When I started rust I searched a project and some days earlier I spoke with my wife about the good old days, PCBoard and then I got the idea to improve the PPL decompiler we used these days. That was my first project and it was successful (https://github.com/mkrueger/PPLEngine). Around that time I learned that there are still BBSes in the internet and I started to update my old ansi drawing tool (MysticDraw) however I lost a bit track because of the gtk4 bindings. It's very difficult to write even a mid sized UI application with these.

I tried to use druid & egui for that but none of these libraries felt that it was the way to go.

Now I want to make some small real world projects for each.

  • I made a small prototype for the ansi drawer in druid (feels very comfortable to work with but the APP looks bad)
  • Made a game cheating tool with egui - very nice tool but the APPs still have not the look & feel
  • Now I made a terminal app with iced - PopOS! is switching to that library.

With all my ansi & buffer routines I've already written it makes sense to make a terminal. I need one program as well - most terminal programs are a bit too old school. Time to change that.

Build instructions

  • Install rust toolchain: https://www.rust-lang.org/tools/install
  • Running: "cargo run"
  • Building release version: "cargo build --release" - in target/release the icy_term executable is all you need

Building redistrib

Bugs

Please file some - I'm sure the protocols still have issues