Home  Documentation  Screenshots  Download  Development  
HighWire documentation Last updated: December 22, 2009 by P.Slegg

HighWire documentation

Table of contents
  1. HighWire release license
  2. What is HighWire?
  3. HighWire development team
  4. Use of HighWire
  5. Use of FontList
  6. Supported HTML tags
  7. Project links


1.  HighWire release license

This software is provided ?as-is?, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.

Anyone uses bits of the code for other reasons is welcome to, as long as they specifically state that their work is based, in part, on the Project HighWire source release by Robert Goldsmith.


2.  What is HighWire? - History

This is taken from the HighWire site written by the original author, Robert Goldsmith.

For those of you who have not heard, HighWire is a new web browser. It has been in ?development? for over a year. I started HighWire in what I considered a feeble attempt to discourage me from moaning about CAB. I figured that when I proved my code was vastly slower than CAB at parsing and rendering a page I would give up and accept that browsing on my Falcon would always be slow.
Things did not turn out how I expected...

I think the big problem with my plan was that, unbeknownst to me at the time, I had had a couple of rather good ideas. The result is HighWire.

Ok, so can I download it? You cannot write a web-browser in a month. I know, I tried. :) HighWire is still very much in development.

Originally HighWire could do the following:

  • Load in an HTML 3.2 page hardcoded into the source
  • Display this page multiple times in hard coded frames
  • Redraw and scroll the frames and resize the window
  • Quit

Where we have gone with the project ...

New items since it went open source:

  • Frameset Support (90%)
  • Tables (98%)
  • HTML 4 compliant (90%)
  • HTML forms (20%)
  • Online OVLs for mintnet, sting and support for iconnect
  • Colour support (mapped to current system palette)
  • Graphics (99%) - Now loads HTML files with Gifs, Jpgs, XBM, XPM and Pngs (50%) - colors are now perfect in all color modes (mono/256/32k/64k/24bit/32bit) which were tested using a Hades060 with a Nova graphics card May solve color problems on a Falcon with a Nova card, but this has not been tested as yet.
  • Files (Graphics, HTMLs, Docs etc.) can be dragged to a Highwire window where they will be displayed.
  • Implementation of memory caching of images avoids multiple loading of same image. The pseudo URI "about:cache" now shows detailed information about cached images.
  • GEM Version with drop-down menues
  • GemScript support
  • Iconify/uniconify window
  • HighWire now loads sample HTML files from a folder named ?HTML?
  • Sound support
  • International Character Set support
  • Unicode characters up to U+FFFD with NVDI 4 and TrueType fonts
  • Scroll Window using arrow keys
  • A working implementation of hyperlinks (text and image)
  • File Selector support
  • Display text files using PRE style font selection
  • Number of windows only restricted by operating system
  • Frame Scroll controls are implemented now, also support of right mouse button.
  • Real time scrolling
  • Background Scrolling is now working
  • Highwire now works with scroll mice when the program MWheel is being used.
  • The program My PDF has been added to the Highwire package and is currently under development (PDF support 10%)
  • Several Hotkeys added
  • Extended menu bar, the current charset encoding can be seen and changed at menu title "View". Also de/increasing of the display font is available there.
  • Menu entry "info.." will show now some basic information about the active frame.
  • Improved algorithm for the line breaking to avoid splitting of text at wrong positions
  • HTTP protcol layer reworked, is faster now and works for much more servers.
  • The problem of files with long names no loaded at some Magic versions (eg. *html) is solved now.
  • Added a workaround to have it working under Geneva again.
  • Reworked code to avoid a flickering mouse pointer when using Highwire.
  • Navigation Bar added with the traditional browser buttons: Forward, Back, Home, Reload, Stop and URL Edit Field.
  • When holding down the Forward and Back buttons a bit longer, a popup appears that allows selection of any URL stored in History as well as the Last and Next URLs.
  • Using the commands, ^C/^V, copying between the Navigation Bar's edit field and the Clipboard can be done.
  • The Navigation Bar can be hidden or shown by holding down the ALT key while clicking the window's Close button.
  • Initial implementation of the Ovl's for different TCP/IP stack support has been added.
  • Form support added which allows keyboard input into form input fields.
  • Calulation of table width and cells has been improved.
  • New keyword FONT_MINSIZE to define a minimum font height in points, eg. for (font size = 1) (see example.cfg\highwire.cfg for explanation).
  • Nw menu entry under "Option" to have frames always resizable and scrollbars if necessary, even if the HTML defines anything else there. The default is off, but can be set with the keyword FORCE_FRAMECTRL = 1.
  • The cfg file now supports three new keywords concerning the cache: 1) CACHEDIR which lets the user choose where Highwire will define a directory for the storage of visited pages/images, 2) CACHEMEM=(kbytes) to limit the amount of memory cached images (default is now 100k) which should help to prevent Highwire from running out of memory due to always storing every image ever loaded and 3) CACHEDSK which sets limits for filling up the cache in order to prevent blowing up hard drives. (eg. CACHEDSK = 8192 1000 means to use only 8192 of disk space, but not more than 1000 files).
  • More functionality for the redo button: Holding down the ALT key clears now the whole cache. Additional holding down the SHIFT key will avoid forcing a page reload then.
  • The TAB key can now be used to jump between text fields, including automatical page scrolling to the actual field -- the latter in opposite to CAB. To leave the edit mode either press CTRL+TAB or click somewhere else on the page.
  • A right mouse click not only brings up the options: Back, Foward, Reload, View Source and Info, but also Copy URL and Save As. This means that now it is possible to download archive and HTML files to a local directory.
  • TEXTAREA tags are now working and editable.
  • Highwire is now capable of storing non-session cookies to allow persistent user preferences for sites as offered by Google, Yahoo and others. Access this in the "Options" menu.
  • When the option 'Cookies allowed' in the menu gets changed, this will be stored in the config file.
  • F10 brings up full-screen mode.
  • New keyword for the Highwire cfg file. START_PAGE = to define what should be displayed after program start. NOTE: This option will always be ignored at the very first start of a new installed version.
  • The menu bar got changed: 'Suppress Images' was removed (still useable from config file) and instead 'View Images' and 'Use CSS' were added. Both of the latter are stored in the cfg file also when changed.
  • Highwire now has CSS support especially for the layout of the floating block elements (DIV, TABLE, P, ..). Also recognised are the CSS attributes: float, clear, border and font.
  • Highwire now loads it's config file from the HOME directory under Magic and Mint.

It is currently missing:

  • User interface
  • Java/Javascript support
  • Use of internet clients
  • External viewer support
  • External emailer
  • Lots more...

So why all the fuss?

Well, HighWire can load in, parse and render an HTML page in full 16-bit fonts (for all the ?strange? characters such as ?) in about half the time of CAB. Furthermore, once a page is pre-rendered (before the first time it is displayed) it does not need further processing, making redraws and window resizes much much faster. On a Hades machine the code was tested on, the page render including font sizes, centering and lists redrew correctly in real time (with a slight flicker...) as the window was resized.


3.  HighWire development team


4.  Use of HighWire

System requirements:

  • Multitasking (preemptive multitasking) Atari OS – MagiC or MiNT
  • NVDI 3 or SpeedoGDOS
  • Speedo fonts with Bitstream International Character Set (BICS)

File types supported:

  • HTML files (8-bit coded)
  • GIF images
  • JPG images
  • PNG images (not yet complete: no interlaced pics at the moment)
  • Plain text (8-bit and 16-bit coded)


  • At present highwire.cfg consists mainly of font information. Change manually, or better with the setup tool FontList.


  • Control + I - About HighWire alert
  • Control + O - Open file selector
  • Control + R - Reload
  • Control + Q - Quit HighWire
  • Control + V - Cycle window
  • Control + W - Cycle window
  • Control + TAB - Close frames
  • 1: Reload with default character set ISO/IEC 8859-1, Latin-1, Windows codepage 1252 (This is the default character set for a HTML browser.)
  • 2: Reload with default character set ISO/IEC 8859-2, Latin-2
  • A: Reload with default character set Atari ST system font
  • U: Reload with default encoding UTF-8, Unicode
  • Tab: Cycle Frames
  • +: Reload with increased font size
  • –: Reload with decreased font size
  • Help, F1 - Help: Help
  • F5 - Reload
  • F7 - Toggle logging to console
  • F8 - Toggle pictures or alternative text
  • Undo - Go back in file history (+Shift: go forward)
  • Arrow keys: Scroll frame

The scroll elements support the right mouse button

Editor keys:

  • Tab – move to next field on form
  • Cursor up, down, left, right – move cursor one character/line
  • Shift cursor left, right - move to start/end of text line
  • Home - move to start of text area
  • End, Shift Home - move to end of text area
  • Backspace – remove character to left of cursor
  • Delete – remove character to right of cursor
  • Shift Backspace – remove all characters to left of cursor
  • Shift Delete – remove all characters to right of cursor
  • Escape – remove all text in text area
  • Page Up/Down -


5.  Use of FontList


Coded by Lp and GokMasE for the HighWire Project

FontList is a small utility to change the font settings in the HighWire configuration file.


Keep this binary in the HighWire directory. (Same directory as the highwire.cfg file.)


As of FontList 1.11 a default config file is created at launch time, unless an existing file is located in FontList's work directory. Also note that if the font setting you are seeking to change is not present (or not activated) in the old config file, FontList will add the new setting to the end of the config.

Select 1 (there can be only one) of the fonts, then use menubar to decide what setting in HighWire should be affected. You can also right click on any of the fonts to open up a popup menu and select a text style to link the current font ID to. Note that changes are written to HighWire configuration file instantly when you select an entry in either menu!

Another thing you can do, is select a number of fonts (hold down CTRL) and later press CTRL + C. Then the prg will save a list of all currently selected fonts to the clipboard.

CTRL + A selects / deselects all.

NOTE: When NVDI is installed, all non-speedo fonts are greyed out and thus not selectable. The reason for this is that HighWire at this time does not support other format than Speedo. However, if you wish to play around with other fonts you can enable all listed fonts by selecting ?Allow non-speedo? from menubar.

General Advice

It might be a good idea to keep a backup of latest working configuration file.


6.  Supported HTML tags

Here are some of the HTML tags that HighWire supports:
Hopefully will be updated to list all supported tags.

HighWire website and graphics by GokMasE • Copyright © 2002-2010 HighWire Development Project • All Rights Reserved