The PC/2 beta home page

The PC/2 home page

Welcome to the home of PC/2, or Program Commander/2 if you prefer the long name. This page covers the public release 2.20, which went GA (general availability) in December, 2000! As there is of course still room for improvements, you may check the PC/2 beta page.

The final V2.20 build is now available and uploaded to 3 of the major OS/2 anonymous-ftp sites!

As PC/2 2.20 is fresh meat you may also want to check the PC/2 V2.10 page as it contains some information that applies to V2.10 but is still true - if not enhanced siginificantly - for V2.20! Depending on the feedback (reviews are very welcome!) I'll add things here.

However, software can never be perfect and PC/2 is no exception. You were and still are welcome to tell me your problems, I tried my best to correct them but there is no guarantee that this worked in each case!

You can download the PC/2 V2.20 from this site or major anonymous-ftp servers supporting OS/2 software, but first please take a look at the Highlights and into the more detailed PC/2 features page, containing some fancy screen shots and even a downloadable Ultimotion demo video.

Known problems

Highlights

PC/2 lets you become more productive using and maintaining your OS/2 based workplace because of its:

Fixes, changes and enhancements compared to V2.10

Many things have been improved for V2.20. The following items give you some detail about those changes, as they are listed in their chronological sequence some may be changes to something that was introduced by one of the PC/2 2.09 Betas.

  1. Fixes

    • Fixed PC2NET.C to compile under Warp Toolkit 4.5 for 16-bit TCP/IP protocol stack header files (using TCPV40HDRS macro).
    • Fixed that toggling the visibility of the Overview window's Titlebar and SmartIcons required 2 times activating the Desktop dialog (flags had been checked after deciding what to (un)hide in Dialog.c).
    • Fixed that PC/2's Hotkey feature worked only for keyboards using the same physical keys as US and German keyboards. Special thanks to Istvan Kovacs for hinting me that different keyboards (a Hungarian in his case) might use different physical keys to represent the same ASCII values than US and German keyboards (the ones I have/know).
    • Fixed that autostarting >10 items at exactly the same time could cause PC/2 to run out of stack space. Stack space has been doubled and in the online documentation a recommendation not to autostart >10 items has been added.
    • Fixed that thread health supervision displayed an incorrect message.
    • Fixed that SessionBar "No Grid" option was missing.
    • Fixed that PC/2 Online Automatic Update feature (PC2NET.DLL) did not work when Autorization, either from your Proxy or from PC/2's Registration page (very unlikely that this will be required in the future), was required. PC/2 now checks for HTTP Status Codes 401 (WWW-Authenticate) and 407 (Proxy-Authenticate) when receiving responses and authenticates with your supplied Userid and Password then. Thanks to Leo Pedone for hinting me that!
    • Fixed that the APM Powerdown/Suspend timer kicks in even if APM support within PC/2 is disabled. Thanks to Lorne Tyndale and Charles Lassiter for the bug reports.
    • Fixed a possible bug in the VisualAge C++ 3 CSD8 compiler optimizer (using /O option, see Makefile) that caused an optimized PC/2 build to hang during thread startup exception hander registration in Thread.c (since 2.19c).
    • Fixed to load DosVerifyPidTid() dynamically so that PC/2 will still run under OS/2 2.x (using DosWaitThread()).
    • Fixed that registration does not file the registration date/version of the current running PC/2 if sending registration E-mail did not work (but a "NULL" registration or the last successful one).
    • Fixed that PC2NET.C did return an error writing PC2.NET even when there is nothing available to write.
    • Fixed that during posting Registration information the wrong Url could be displayed in the status window.
    • Fixed that SessionBar status text was not reset (to the time display) correctly when the pointer was moved from a session's icon directly onto the scroll icons or the Warp button (without prior touching the background).
    • Fixed that PC/2 sets its current directory to the root of the drive with the highest drive letter, this will prevent that drive from being unmounted. PC/2 now sets its current directory to the root of the boot drive. Thanks to Charles Lasitter for reporting!
    • Fixed that the SessionBar's Bubblehelp could influence the Z-Order when not being visible at all, due to showing it unwantedly during SessionBar startup repaint processing in WM_DRAW.
    • Fixed (a typo in the dialog source) causing not being able to change the SessionBar's Activation Delay. Thanks to Nicholas Saxon for reporting.
    • Fixed that a dynamically activated SessionBar on the bottom of the screen will appear on top after the next restart of PC/2. Thanks to Nicholas Saxon for reporting.
    • Fixed that when the Overview gets unhidden via the Edge Activation feature, it does not disappear again when clicking on the menubar Smarticons or activation the Overview Popup Menu (by CTRL+MB1). Thanks to Kees Bergwerf for that suggestion.
    • Fixed that Overview window's Window Representation did forget to redraw some colors of the Colorization when switching between different representations.
    • Fixed that an error (SYS99) occured when launching a program with PC/2 while a music CD-ROM is inserted in a CD-ROM drive. Thanks to Peter Moylan for reporting (though I could not reproduce the problem, may be related to certain drives/drivers only)!
    • Fixed that PC/2 could load outdated DLLs (PC2HOOK.DLL, PC2?RES.DLL), which can be caused by an improper installation (as I've seen during 2.19e Beta testing a few times). PC/2 will now read the signature of all DLLs, this can cause optional DLLs not to be loaded or that PC/2 exits for mandatory DLLs.
    • Fixed that commandline option -INI was ignored (PC2.INI was always used to load configuration from).
    • Fixed when clicking on a surrounding row or column of a Virtual Desktop the frame window below the mouse pointer (usually the WPS if we're clicking on a Virtual Desktop adjacent to the WPS) will not cause PC/2 (with the "Follow Focus" option selected) to switch to the Virtual Desktop that frame window resides on (as the click on the surrounding row or column would have caused *another* switch afterwards, resulting in an effect that PC/2 would have switched over 2 Virtual Desktops).
    • Fixed an invalid comparison in WM_QUITTHREAD processing (thread IDs are not bitmaps but ordinal numbers).
    • Fixed a possible stack corruption when popping up a message box that PC/2 could not remove all Titlebar Smarticons from other frame windows that likely had caused a PM hang (probably requireing a reboot).
    • Fixed that the Scroll Percentage now can't be less than 5% (previously one could set it to 0% and while having selected Autoscroll with a Scrolling Delay of 0ms resulting in some kind of endless loop bringing your system to crawl if not to hang). Thanks to Kees Bergwerf for being eager enough to test that!
    • Fixed that PC/2 (SessionBar, QuickSwitch,...) could not switch to any session immediately after switching to PM from XFree86/2 with CTRL+ESC (due to invalidly rejecting to switch when the PM session itself is the foreground session). Thanks to Michael Taylor for reporting!
    • Fixed that the a Hotkey CTRL+* did only work with the left CTRL-Key but not the right one too as it was supposed to (caused by the way the left WIN-Key was handled as a Hotkey).

  2. Changes

    • Changed the intervall for Autostart from 30 to 5 seconds upon user requests.
    • Changed that for newly created Menuentries selecting Autostart does not cause it to be autostarted automatically. IMHO this is more exactly what Autostart means, invoking after PC/2 is launched.
    • Changed that Registration can detect changes in the Beta build postfix (e.g. detects that 2.19b has been installed over 2.19a), preventing Registration to be posted even without Beta build changes.
    • Changed that when no working directory is specified the current directory will be the root of the boot drive before launching an application (previously that was done only for OS/2 and DOS command processors).
    • Changed that Advanced Marking does not kick in when one of the SHIFT keys is pressed meanwhile.
    • Changed that WM_NETACCESS now can display a few message boxes (instead of just 1), while still preventing running out of resources due to that limit.
    • Changed that error message surfaced in PC2NET.C will also show the line number and module information from PC2NET.C.
    • Changed references (of my IBM workstation) from stangl.austria.ibm.com to the new address stangl.vienna.at.ibm.com.
    • Changed INSTALL.CMD to determine the boot drive by looking for the environment variable OS2_SHELL (instead of SYSTEM_INI which may not be on the boot drive. Thanks to Richard Gelderblom for his support!
    • Changed that pressing ALT+CTRL+x (where x is any key) does no longer produce a diagnostics beep.
    • Changed the drawing of the SessionBar when having selected to show small icons to look a little bit more attractive.
    • Changed INSTALL.CMD to provide detailed installation help and guidance, trying to detect a previously installed PC/2 and suggesting equivalent options.
    • Changed that Thread Hang Detection (watchdog timer) silently logs the hang into PC2.TRP instead of displaying a message box addtionally (except you are running Debug level 1 or above (activated by ALT+SYSREQ)).
    • Changed that SessionBar puts itself on top of Z-Order if being clicked on (when it isn't already set to keep itself on top of Z-Order).
    • Changed that PC/2 exits even when not all frame windows honored the request to remove PC/2's Titlebar Smarticons (which sometime will happen due to the PM design). That's a more risky approach and we'll see if it works.
    • Changed that when PC/2 starts an applications into the foreground the visible Overview window does no longer automatically become top of Z-Order while still receiving the input focus (only a window having the input focus can start another application into the foreground).

  3. Additions

    • Added optimization for Autostart feature to prevent unnecessary enumeration of Popup Menu (NOPENDINGAUTOSTART flag).
    • Added DLL entrypoint location to easy to localize Fixpack independent trap locations in non PC/2 DLLs (Except.c).
    • Added support to change colors of the CPU Performance Status area of the SessionBar by dragging colors from the Color Palette onto it.
    • Added an option to hide the grid in the CPU Performance Status area.
    • Added checkpointing support (to allow me to find which PM API sometime blocks the Working Thread rendering PC/2 unusuable).
    • Added DosKillThread() to kill the Working thread when it gets hanging (which seem to be at WinQueryWindowText() for just-being-destroyed windows). Finally there should be a kill-resume feature.
    • Added Advanced Marking support for button and static text controls, that is dragging the mouse while having mouse button 1 pressed copies the contol's text into the clipboard (which is useful e.g. when the URL specified in NetScape's download dialog is too long to be visible completely and is not directly visible on a Web-page due to being the result of a http-redirect or cgi-bin).
    • Added that you can now specify Environment Variables as Makros (e.g. %ENVVAR%) in the Application's Working Directory, for the Application's Parameter and for the Application's Path. Of course, the Environment Variables may come from the Environment of the Application itself.
    • Added the commandline option -ReserveDriveLetter Drives to instruct PC/2 not to change into the root directory of the drives specified in Drives (to workaround buggy drivers, e.g. the "OAD" parallel port ZIP driver which does not behave correctly when the drive is empty). Thanks to Alexander Men'shchikov for testing that option as the workaround added previously doesn't seem to always work.
    • Added the Hang Protection feature to PC/2 which will allow it to automatically detect hanging/blocking/looping threads and resume execution at a known state after seconds of a few minutes later. This feature should overcome a PM bug or design flaw that causes some APIs not to return to the caller under some circumstances (e.g. when using WinQueryWindowText() during frame window destruction or when applications crash and/or block the SIQ), you will notice that the Hang Protection kicks in when the PC/2 message "that a thread is no longer responding" pops up.
    • Added that Lockup dialog does reposition itself regularily on the screen to prevent screen burn-ins (though today's displays no longer burn-in that easily and what is much better due to reduction of power consumption is to put the display into standby by DPMS/APM/...).
    • Added an option to disable PC/2's QuickSwitch (CTRL+TAB) window, thanks to Andreas Seybold for that suggestion.
    • Added that if the Overview window is visible during Edge Activation, it is ensured that it will be moved on top of Z-Order.
    • Added the option to display a customized date/time format in the SessionBar's status area.
    • Added support of the left WIN key for Hotkeys (you may define similar to the e.g. CTRL+O Hotkey a Left-WIN+O Hotkey). As the WIN keys aren't used too much under OS/2 (actually it's a shame for our industry that MS can force hardware vendors to adopt such nonsense) they're likely free for Hotkey use. Of course, you can still use that key to activate PC/2's Popup Menu too.
    • Added documentation and code to allow complete testing of Online Automatic Update locally (using IBM's ICS or Lotus Go webservers).
    • Added a BubbleHelp for PC/2's SessionBar.
    • Added that PC/2 will not start up at all when pressing and holding the ALT-Key while PC/2 loads. This may be useful to replace parts of PC/2 when PC/2 normally gets started automatically every boot (from STARTUP.CMD or the Startup-Folder) causing some DLLs to be locked even when you close PC/2 (this is possible, working as designed and can't be avoided, e.g. PC2HOOK.DLL very likely will be locked after the first invocation of PC/2).
    • Added a watchdog mechanism to check new exceptions in PC2.TRP and if new are found the user is requested to contact me (the author).
    • Added a Popup Menum activated by mouse button 2, for the SessionBar's Statusarea to allow the date/time text to be displayed left- or right-justified. Thanks to Kees Bergwerf for that suggestion.
    • Added that when the Icon representation is selected for the Overview Window Representation the correct icon is displayed more likely. However as that seemd to have caused hang earlier, you might need to be careful. The hang recovery will diagnose a hang after checkpoint 0x0080 in that case.
    • Added %CDDRIVE% macro which gets replaced by the first CD-ROM's drive (e.g. if your first CD-ROM drive is D: that macro will be replaced by D:).
    • Added that Environment Spaces can exported as Batch files (*.CMD), so they can be run with an OS/2 command processor (e.g. CMD.EXE) to build up an Environment from there too.
    • Added to allow the right CTRL-Key (RCTRL) being used as a PC/2 Hotkey. That allows you to use a Hotkey CTRL+* key for both, in an application and for PC/2, because the CTRL-Key consists of both the left and the right CTRL-Key while the RCTRL-Key only consists of the right CTRL-Key. Thus, to use CTRL+* in an application use the left CTRL-Key, to use it as a PC/2 Hotkey use the right CTRL-Key.

Good to know

Once you downloaded the PC/2 V2.20, I recommend you to take a quick look into the announcement letter PC2.DOC and the additional online documentation before starting installation.

One thing I'ld like to mention is that from the feedback I think that the concept of Environment Spaces introduced with PC/2 2.00 is one of the most valuable features of PC/2, not available in any other application I know of! If you have some time, please look for it in the online documentation, I think you can't live without it afterwards!

Installation information

It's pretty simple hopefully, just download the complete package into a temporary directory and unzip it with e.g. INFOZIP's UNZIP:

  1. If you haven't installed PC/2 currently yet, just start the installation Install.cmd (extensive help is available during the installation, so I hope it isn't a problem).
  2. If you are a PC/2 user, before starting installation of this version, backup your existing PC/2 configuration. Then you might need to stop (to ensure that no files are locked) or even deinstall (in case you want to upgrade WPS 2 PC/2, as the WPS will lock WPS2PC2.DLL otherwise, making it impossible to replace it) PC/2 (but keep your PC2.INI, PC2.CFG and PC2.ENV as they can be upgraded by this version) and reboot. After the next boot, no PC/2 files should be locked and installation by Install.cmd will work then.
  3. Of course, if you're an OS/2 expert user you can install by just copying the modules (*.DLL, *.EXE, *.HLP) over your existing installation (note, to replace DLLs locked by the WPS like PC/2's WPS2PC2.DLL you can kill PMSHELL.EXE with a process killer and while the WPS restarts you can delete that DLL under the covers). In case of problems then I may not be able to help you as I can't see your installation.
The PC/2 features page has been updated for PC/2 2.20 also, and the PC/2 hints and tricks are still helpful (just use pc2v220 as the password to decrypt the source archive.

Download PC/2 V2.20

Well, here is what you are waiting for ;-). You can download PC/2 V2.20 from this site, hopefully you won't have too much troubles downloading it, as Geocities sometimes has bandwith problems (if you have problems, please let me know and I split the archive in multiple parts).

This download corresponds to the final! V2.20 build, which has just some very minor changes in the online documentation and INSTALL.CMD compared to build "C" many of you have downloaded.

Just download the PC/2 V2.20 GA (1.534 kB) archive from here in the US or from a mirror in Austria. The archive does include the source code! Now, feel free to upload that archive to any site you think it should be available!

I'm also goint to upload it to the following anonymous-ftp servers (as I won't check the Urls you may also try to locate pc2v220.zip with e.g. ftpsearch):

Once you start the installation or run PC/2 for the first time you will notice the request to fill in the Registration notebook page. Though this page is called Registration it does not mean PC/2 no longer is Freeware (PC/2 still is Freeware). If the text would have fitted, I would have called that page Online Automatic Update feature.

So what's the reason for a Registration? Well, with a few words there are 2 main reasons:

When you launch PC/2 while not having filled out the Registration page, a dialog will ask you to do so, please select the Help button then to get a really extensive information why I introduced that feature.
This is the first time I'm supplying such a technology, so if you feel to give me some comments why you think this is not a good idea, please e-mail me!

I do know that misusing e-mail addresses for spam mails is a problem nowadays, but I do not pass on any information I get from you, be it e-mail or the registration. What I get when you register is a mail like the following:

Please respond to No.Return.Email@geocities.com (Geocities WebMonitor mail) To: Roman Stangl/Austria/IBM@IBMAT cc: Subject: FORM results Sent from Mail Form posted at: (Subject) PC/2 V2.20 (12,2000) Online Automatic Update (FirstName) Roman (LastName) Stangl (Email) Roman_Stangl@at.ibm.com (TCP/IP Address) 9.244.7.113 (Hostname) stangl.vienna.at.ibm.com

That's all, most important for me is the version of PC/2 you are using in the Subject line.


(C) Roman Stangl (Roman_Stangl@at.ibm.com), 10.05.1997
Last update: 03.01.2002
1