Viaduct - Table of Contents


  Viaduct

Viaduct is a PCWindow replacement for CBM Bridgeboards for Amiga
computers that is designed for fast RTG systems. It also comes with 
some additional tools for easier disk image creation.

   Why? 

   Requirements 
   Installation 
   Configuration 
   F.A.Q. 

   Credits & Thanks 
   Version History 
   Known Issues 

   Disclaimer 


Copyright (c) 2018-2022 Karoly Balogh <charlie@amigaspirit.hu>

http://viaduct.amigaspirit.hu

Viaduct and all associated tools are written in Free Pascal.


Why?


  Why?

In short, I like crazy projects which don't make any sense whatsoever.

Now that we got that out of the way, here are a few more reasons
a bit longer:

The old PCWindow software was designed for 1988-state Amiga computers.
it doesn't play nice with fast CPUs and it doesn't support RTG systems
properly. It was designed to also run with older Kickstarts and it best
works with those. This is where Viaduct comes in. It was designed for
"modern" Amiga, OS3.1, RTG and fast CPU expansion. (See Requirements)
If you have a fast, expanded classic Amiga system, there's a good chance
Viaduct will work better for you than PCWindow ever did. Viaduct can also
display the PC's Color output in a Workbench window, while PCWindow
only supports this for Mono output only.

Please note that Viaduct and doesn't support all features of PCWindow
currently. Also, not all hardware combinations supported by janus.library
and the CBM driver stack were tested.

I wrote this software for my own needs, and to support things I found
interesting. It's entirely possible that it won't fit your use case, or
it doesn't support things you find important. In this case, please send
a feature request or a bug report. Please also read the Known Issues
section.


Requirements


  Requirements

    * 68020+ CPU, 4MB Fast RAM
    * a CBM Bridgeboard, like the A2286 or A2386sx
    * AmigaOS 3.1 or newer
    * an RTG card with Picasso96 or CyberGraphX drivers and at least
      800x600 Workbench resolution in 256 colors for windowed mode,
      or a 640x480 screen in 256 colors for full screen mode
    * properly installed and functioning janus.library and PC Tools

  Recommended Configuration

    * a fast CPU, like a 68040, 68060 or faster


Installation


  Installation

  Viaduct requires no special installation process. Just copy the contents
  of its archive where you want on your disk.

  Viaduct however, requires that janus.library and the original Commodore
  PC Tools are installed first. Without janus.library, Viaduct will not
  function either.

  Technically, the "viaduct" executable is functional standalone. If you
  want to run Viaduct from Workbench, you might want to use one of the
  bundled icons. If you're not happy with the default settings, set some
  of the available tooltypes or environment variables. See Configuration.


Configuration


  Configuration

There are several tooltypes or environment variables available to configure
Viaduct. The tooltypes and environment variables share the same name, but
the environment variable's name is prefixed with "VIADUCT_". Tooltypes are
only taken into account, when Viaduct is run from an icon. Tooltypes also
take precedence over environment variables, when both are present.


Setting Tooltypes is done using the "Information..." window in Workbench.

Setting environent variables can be done with the following CLI command:

      > setenv <variablename> <value>

For example:

      > setenv VIADUCT_VIDEO MDA

Use the "copy ENV:<variablename> to ENVARC:" command, if you want to make
the setting permanent.


The following tooltypes and environment variables are available:

VIDEO tooltype or VIADUCT_VIDEO environment variable:

    Setting this will force Viaduct into a certain video emulation mode.

    Available values: MDA, CGA

OUTPUT tooltype or VIADUCT_OUTPUT environment variable:

    Setting this will force viaduct into a certain output configuration,
    either windowed or full screen.

    Available values: WINDOW, FULLSCREEN

    In full screen mode, Viaduct will try to open a screen on the same
    Monitor as your Workbench screen, in 640x480 mode and in 8 bit color
    depth. If Viaduct doesn't open on the right monitor, or in the mode
    you want, see the next option.

FSMODEID tooltype or VIADUCT_FSMODEID environment var:

   You can set this to a certain desired screen Mode ID in hexadecimal
   format. Viaduct will check if the mode is available, and if yes, it
   will try to use it when going to full screen mode. Forcing anything
   else than an 8 bit mode might not work at all, or might result in
   reduced peformance. Mode IDs are unique to each system. For example,
   you can use the application "Scout" to find out the available Mode IDs
   on your system. They are listed in the ScreenModes window.

   Available values: any value in hexadecimal format (0x1234ABCD)

BLINK tooltype or VIADUCT_BLINK environment variable:

   Some text mode PC apps set the Text blink settings using a BIOS call,
   which is not implemented on a CGA card. Regardless, Viaduct can be
   forced to always use 16 background colors in text mode, to better
   support such apps. Setting this to "OFF" will force ignoring the blink
   bit. This might cause artifacts in some apps which would set the blink
   bit correctly in the hardware, hence it is not the default. Note that
   Viaduct doesn't support Text Blinking at this point, so this setting
   only affects the the 8 additional background colors in CGA text modes.

   Available values: ON, OFF


F.A.Q.


  Frequently Asked Questions (F.A.Q.)

Q: But... Why?
A: See  here .

Q: Did you really develop this in Free Pascal?
A: Yes.

Q: You seem to have a lot of free time.
A: I don't have a lot of free time, and that wasn't a question.

Q: What hardware did you use to develop Viaduct?
A: I used my Amiga 2000, with a Blizzard 2060, PicassoIV and an A2386sx
   or A2286, running AmigaOS 3.1 (original Commodore version). I also
   used an Intel MacBook Pro with macOS to crosscompile with Free Pascal.

Q: Will you open the source code later?
A: This is possible, yes. The source is already on GitHub, in a private
   repository. But I want to keep it private until it reaches a
   "functional and complete enough" state. If you want to contribute
   before, please contact me in e-mail.

Q: I want to contribute somehow, but I cannot code. Is there a way I
   can help?
A: Send bugreports and test hardware combinations. Also, I'm looking
   for a nice 4 color and MagicWB icon for this project, for the main
   file itself, and the folder itself.

Q: Could you support other PC Bridgeboards like the Vortex GoldenGate
   series?
A: Theroetically yes. This depends on the availability of programming
   material for these cards or the effort needed to reverse engineer
   it. I have a GoldenGate 386sx, but I made no effort in researching
   it yet.

Q: CGA or MDA sucks, so I'm using a VGA card in my Bridgeboard setup.
   Can Viaduct display the VGA card's picture in a Workbench window?
A: No. Viaduct can only display the picture of the built-in emulated
   MDA or CGA display adapter. The Bridge hardware doesn't support
   promoting the picture of an external ISA card directly to the
   Amiga side.

Q: CGA colors suck. Couldn't Viaduct emulate EGA or VGA? Or at least
   PCjr/Tandy?
A: Adding emulation of hardware anything beyond the Bridge's hardware
   emulation can support is probably too complex and would be far too
   slow on the average RTG Amiga, therefore doesn't worth the effort,
   sadly.

Q: So, how about CGA composite mode support at least?
A: Yuck... :P

Q: I see Viaduct trying to autodetect the Video mode, but it doesn't
   work for my setup. How can I fix it?
A: In the PCPrefs application, make sure either MDA or CGA emulation,
   or both are enabled, and the default video configuration is set
   properly to an enabled emulation mode.

Q: I see Viaduct trying to autodetect the Video mode, but it doesn't
   work for my setup. How to force Viaduct into a certain configuration?
A: You can set a tooltype or an environment variable for that.
   See Configuration.

Q: How can I set Viaduct into full screen mode?
A: You can switch to full screen mode and back from the Menu. You can
   also set a tooltype or an environment variable to set Viaduct into
   full screen mode on startup. See Configuration.

Q: Viaduct's full screen mode doesn't open in the right mode or on the
   right monitor. Is there a way to force a certain mode?
A: You can set a tooltype or an environment variable for that.
   See Configuration.

Q: I use a text mode PC app, which sets the Text blink settings using a
   BIOS call, which is not implemented on a CGA card. How can I force
   Viaduct to always use 16 background colors in text mode?
A: You can set a tooltype or an environment variable for that.
   See Configuration.


Credits & Thanks


  Additional Credits & Thanks

Peter "Ratman" Foldesi
  - for test hardware support extraordinaire
Zsolt "adsr" Mari
  - for test hardware support
Marcus "Alb42" Sackrow
  - for his awesome work on Free Pascal Amiga version and various
    additional code and support
Balazs "Poison" Oszvald
  - for Viaduct icons
Viktor "dh1" Soponyai
  - for Viaduct icons

  Translations

German: Danilo "BrenMcGuire" Mielniczek
Hungarian: Karoly "Chain-Q" Balogh

  Notable mentions

Thanks to the following people for reporting issues, testing beta
versions, and/or suggesting new features:
  - Brian Carpignano
  - Jaime Cagigal Bordonaba


Version History


  Version History

1.5 (2022.05.24)
- Instead of environment variables, it's now possible to use Tooltypes
  in the icons. Tooltypes have the same name, but without the "VIADUCT_",
  prefix, and function identically. If both are set, icon Tooltypes have
  preference over environment variables. Icon ToolTypes are ignored when
  Viaduct is started from the Shell.
- Viaduct is now localized. English, German (Deutsch), and Hungarian
  (Magyar) locales are bundled by default. Feel free to send more, I'll
  be happy to include them.
- The documentation is now in AmigaGuide format.
- Mostly finished at the 10. Amiga Treffen Ost in Halle (Saale), and
  released a few days later

1.4 (2021.03.27)
- This is a bugfix release with no new features.
- Fixed distorted looking menus on some systems, caused by freeing
  VisualInfo too early.
- Fixed menu visuals to be NewLook menus. This issue was hidden by
  MagicMenu, which I use on my own test hardware. MagicMenu always
  forces menus to be NewLook menus.
- Fixed an enforced hit when entering fullscreen mode.
- Fixed an enforcer hit on startup, caused by a Free Pascal compiler
  bug, by rebuilding with a newer compiler where this has been fixed.
- Added VIADUCT_FSMODEID environment variable. This can be set to any
  mode ID available on the system to force Viaduct's full screen
  mode to appear on a specific monitor in multi-monitor systems, or
  in any screen mode. See the new FAQ item which details its use.
- Thanks to Brian Carpignano for reporting these issues and then
  testing the fixes.
- Added new alternate icons by Viktor "dh1" Soponyai

1.3 (2018.12.27)
- Implemented support for unofficial CGA 16 color "graphics" modes
  80x100 and 160x100, which are technically text mode hacks
- Implemented some more menu options. Some upcoming features appear
  disabled for now.
- Implemented cursor blinking speed setting via the menu
- Implemented integrated "PC Reset" feature, available via the menu
  or using the RAmiga-R hotkey combination
- Implemented switching between Full Screen mode and Windowed mode
  via the menu, or using the RAmiga-F hotkey combination
- Fixed "Blinking Text Enable" bit polarity when reading the CGA
  Mode Control register. Note that blinking text itself is still not
  supported, but the upper 8 background colors are masked away when
  the bit is enabled.
- Added VIADUCT_BLINK environment variable. If set to "OFF", this
  forces 16 background colors in all CGA text modes, making Viaduct
  ignore the blink settings in the hardware, by disabling the
  masking of the upper 8 backgrounds colors. Since some PC apps use
  a BIOS call to set the blink bit and this BIOS call is not
  implemented on the CGA, they might end up using wrong colors on
  a CGA, thus, also in Viaduct. If you use such apps a lot, you
  might want to use this setting.

1.2 (2018.11.26)
- Implemented Full Screen support (hardwired to 640x480 for now)
- Implemented 40x25 Text Mode support
- Implemented underline support in Mono Text Mode
- Implemented video signal off detection, as "blanked" mode
- Implemented a simplistic menu, with About... box and Quit,
  including a Quit-shortcut from Keyboard (Right Amiga - Q)
- Implemented Num Lock and Scroll Lock key support
- Various fixes in Keyboard support
- Fixed some very hacky code while setting the Window title, which
  failed on some systems
- Fixed MDA mode to properly release pens on exit
- Fixed a bug where all of the Intuition requesters opened by Viaduct
  were closed immediately without waiting for interaction.
- Added new icons (MagicWB and standard) by Balazs "Poison" Oszvald

1.1 (2018.07.03)
- Implemented initial 80x25 Mono Text Mode and MDA emulation support
- Automatic detection of the right emulation mode on start, based on
  the Bridgeboard's configuration file.
- Added VIADUCT_VIDEO environment variable, to force a specific display
  mode and ignore the config (See the FAQ above.)
- Now displays the current video mode in the window titlebar
- Implemented delta rendering for 320x200 4 color mode, speeds up
  refresh where the application (usually games) only update small
  parts of the screen.
- Fixed trashed display of the first frame when Viaduct was started
  while the PC was in 320x200 4 color mode.
- Fixed silly a bug, where the cursor drawing could cause a deadlock
  depending on the CRTC register contents

1.0 (2018.05.27)
- First version.


Known Issues


  Known Issues

- Blinking is not supported in the various text modes.
- The rendering engine supports a lot of options to improve usability,
  speed and rendering quality, but currenty the default settings are
  hardwired. There should be a settings GUI to change these options.
- The code was not tested on an AGA screen and will probably break. I
  have no functioning AGA system with a PC card at this point, and no
  Windows system to try with WinUAE.
- Running on an ECS screen is not supported at all (ECS doesn't have
  enough colors in high res).
- Viaduct relies on a *FAST* hardware BltTemplate() implementation in
  the video driver, and will probably be very slow if it's missing.
  (Some RTG cards are known not to implement this.)
- The keyboard emulation is still not complete.
- Probably there is more. But I prefer to release early and often,
  rather than try to polish it forever and never get it out there...


  Future Plans

- Support other aspects of CGA and MDA emulation as far as the bridge
  hardware and performance allows.
- Resizeable/scrollable main window
- Settings GUI (possibly with MUI 3.8)
- Clipboard support
- Performance improvements and bugfixes



Disclaimer


  Disclaimer

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

This software is written with best intentions, and in the hope that it
will be useful, but it is based on information obtained with reverse
engineering of computer systems and hardware otherwise unsupported and
end of life for decades. In other words, if this software sets your
Amiga or PC Board on fire, I'm not responsible. Use at your own risk.