Turbo Vision (FreeVision) gopher client written in Pascal (FreePascal).
Go to file
John Sennesael 94bdf299a3 add project files 2023-03-30 15:22:38 -05:00
dist Proper unicode support using the new FV with unicode support, which I included under dist/ since fpc on most distros doesnt have it yet 2022-10-13 18:52:03 -05:00
scripts add makefile 2020-01-30 19:15:30 -06:00
src Working on keybindings window (unfinished) 2023-03-30 15:19:22 -05:00
.gitignore Proper unicode support using the new FV with unicode support, which I included under dist/ since fpc on most distros doesnt have it yet 2022-10-13 18:52:03 -05:00
README.md scratch one off the list 2022-10-13 18:54:55 -05:00
screenshot.png add screenshot to readme 2020-12-29 19:21:45 -06:00
turbogopher.lpi add project files 2023-03-30 15:22:38 -05:00
turbogopher.lpr Working on keybindings window (unfinished) 2023-03-30 15:19:22 -05:00
turbogopher.lps add project files 2023-03-30 15:22:38 -05:00

README.md

What is this?

If you're old (or curious) enough to have used Turbo Pascal 7 back in the day for dos, you probably used the blue-background IDE it came with. This IDE was written using the TurboVision Text-User-Interface (TUI) framework. It was really quite nifty and ahead of it's time. It was a fully object-oriented framework for creating text-based user interfaces, with lots of extra fancy features. Unlike low-level curses, TV could do window management for you, and easily would let you create draggable/resizable windows with all kinds of widgets on them. It even had input validation functionality for controls and such.

I always had fond memories using the Turbo Pascal IDE from back then, and other TurboVision applications, so I figured, why not browse GopherSpace in it?

FreePascal (a modern Free pascal implementation) comes with FreeVision, which is a Turbo-Vision compatible implementation, which is what I ended up using here.

TV does have some old-age problems, like lack of UTF-8 support, and only supporting 16 colors (like really,... they coded the fg/bg color of stuff as the hi and lo nibbles of a byte).

In theory this stuff should compile on platforms other that Linux (Maybe even DOS?), but I haven't tried yet at the time of writing.

What's it look like?

It looks like a typical TurboVision app!

screenshot

Here's a video

How do I use it?

So far, the following keyboard shortcuts are supported:

  • Alt+g ( Or via the menu Browse->Go ) - opens up a dialog to enter a url to browse to.
  • Arrow keys + PgUp/PgDwn - Navigate the text on the page.
  • Alt+up - Select previous link
  • Alt+down - Select next link.
  • Alt+left - Back.
  • Alt+right - Forward.

How do i build & run it

At the time of writing, I still have to put up a build toolchain with proper build scripts and such for building outside of Lazarus.

So to build it right now, you have to open the turbogopher.lpi file with lazarus and build with shift+f9 This should produce an executable in the project root directory that you can run from a terminal. Don't run it from within lazarus, because it doesn't know how to handle console stuff.

FILES

The only relevant file right now is /tmp/turbogopher_debug.txt which should contain the last log line (for debugging) - this will go away / be configurable eventually.

TODO

(very) basic browsing works, but a lot of work is left:

  • (essential) Opening non-text links and associated mime type handling.
  • (essential) Opening search links / stuff that takes user input.
  • (feature) A lot of configuration dialogs to allow configuration of keybindings, colors, logfile, loglevel, etc,...
  • (essential) Add make scripts for people to build this without lazarus. Add packaging stuff, release pipeline stuff.
  • (FV bug?) Application does not resize when terminal is resized.
  • (feature) History menu and/or window.