HighWire documentation
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.
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%
- Colour support (mapped to current system palette)
- Graphics 90% - Now loads HTML files with Gifs - colors are perfect in 256/mono modes - other modes need adjusting.
- Gifs can now be dragged to a Highwire window where it 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
- CSS in HTML tabs (e.g. converted by HTMLtidy)
- 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
- Now buttons of forms are reacting to mouse clicks.
- 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 has been improved with the support of Selection List.
- Calulation of table width and cells has been improved.
It is currently missing:
- User interface
- Online module
- HTML forms
- Java/Javascript support
- Use of caches
- Use of internet clients
- Support for JPG and PNG
- External viewer support
- 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.
- HighWire code
- HighWire documentation
- Fontlist project
System requirements:
- Multitasking (preemptive multitasking) Atari OS – MagiC or MiNT
- NVDI 3 or SpeedoGDOS
- Speedo fonts with Bitstream International Character Set (BICS)
Hotkeys:
- 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
File types supported:
- HTML files (8-bit coded)
- GIF images
- Plain text (8-bit and 16-bit coded)
Configuration
- At present highwire.cfg consists mainly of font information. Change manually, or better with the setup tool FontList.
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.
Installation
Keep this binary in the HighWire directory. (Same directory as the
highwire.cfg file.)
Usage
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.
Here are some of the HTML tags that HighWire supports:
Hopefully will be updated to list all supported tags.
- A
- CHARSET
- HREF
- ID
- NAME
- TARGET
- B (bold)
- BASE
- BASEFONT
- BGSOUND (IE proprietary)
- BIG
- BLOCKQUOTE
- BODY
- ALINK
- BGCOLOR
- LEFTMARGIN (IE Propietary)
- MARGINHEIGHT (NS proprietary)
- MARGINWIDTH (NS proprietary)
- TEXT
- TOPMARGIN (IE proprietary)
- BR
- C
- CENTER
- CITE
- CODE
- DD (DL definition)
- DEL
- DFN (instance definition)
- DIR
- DIV
- DL (definition lists)
- DT (DL term)
- EM
- EMBED
- FONT
- FORM
- FRAME
- MARGINHEIGHT
- MARGINWIDTH
- NAME
- SCROLLING
- SRC
- FRAMESET
- H (H1 - H6)
- ALIGN
- BGCOLOR (HW proprietary, CSS wrapper)
- COLOR (HW proprietary, CSS wrapper)
- HR
- ALIGN
- BCOLOR (HW proprietary, CSS wrapper)
- COLOR
- HEIGHT
- NOSHADE
- SIZE
- WIDTH
- HTML
- I (italics)
- IMG
- ALIGN
- ALT
- HEIGHT
- HSPACE
- SRC
- VSPACE
- WIDTH
- INPUT
- CHECKED
- MAXLENGTH
- SIZE
- TYPE ('BUTTON','CHECKBOX','FILE',HIDDEN','PASSWORD','RADIO',RESET','SUBMIT',TEXT')
- VALUE
- INS
- IOD (IOD4 proprietary)
- KBD
- LI (list item)
- LISTING
- MENU
- META
- CONTENT
- HTTP_EQUIV ('"CHARSET','REFRESH"')
- NOSCRIPT
- OL (numbered lists)
- P
- PLAINTEXT
- PRE
- Q
- S (strike through)
- SAMP
- SCRIPT (unused atm)
- SMALL
- STRIKE
- STRONG
- STYLE (unused atm)
- SUB
- SUP
- TABLE
- ALIGN
- BGCOLOR
- BORDER
- CELLPADDING
- CELLSPACING
- HEIGHT
- WIDTH
- TD (table data cell)
- ALIGN
- BGCOLOR
- COLSPAN
- HEIGHT
- ROWSPAN
- VALIGN
- WIDTH
- (TEXTAREA)
- TH (table header cell)
- ALIGN
- BGCOLOR
- COLSPAN
- HEIGHT
- ROWSPAN
- VALIGN
- WIDTH
- TITLE
- TR (table row)
- ALIGN
- BGCOLOR
- HEIGHT
- VALIGN
- TT (teletype font)
- U (underlined)
- UL (bulleted lists)
- VAR
- XMP
While HighWire won't directly use these at this point. Here are some useful
links for the HighWire project:
http://highwire.atari-users.net
- Place for most current downloads and information about the Highwire project.
HighWire Users mailing list
- A list for users to ask questions and report bugs.
HighWire Developer Mailing list
- A list for people interested in actively working on the project.