****************************************************************************** 
                        Frequently Asked Questions Part 3/3

                   PC/2 - Program Commander/2 Version 2.20 for
     IBM OS/2 2.x, OS/2 WARP, WARP Srv. SMP, Aurora Presentation Manager
                  Copyright (C) by Roman Stangl December, 2000

                               Version 2.20 Draft
******************************************************************************

Contents:

71.) I pressed CTRL+ESC to activate the Window List, the Window List pops up
     but immediately disappears being replaced by PC/2's Popup Menu.
72.) What is Hardware assisted Panning (also called Hardware Virtual Desktop)?
73.) How can the icon and default font size be changed under OS/2 PM?
74.) How can the icon and default font size be changed under WIN-OS2?
75.) I want to include OS/2 and DOS command processor and seamless WIN-OS2
     sessions in an Exception List, however I can't seem to get it working 
     correctly!
76.) Some windows of PC/2 are always visible, even when e.g. my screen saver
     is running.
77.) I'm using the SessionBar and/or selected to keep PC/2's Overview window
     on top of Z-Order, now other applications behave differently!
78.) I'm using the SessionBar and/or selected to keep PC/2's Overview window
     on top of Z-Order, now my system is very unresponsive or hangs!
79.) Since I have/had PC/2 running, now other applications disappear silently,
     what's wrong with my system.
80.) Since running PC/2, files named PDUMP.xxx, POPUPLOG.OS2 are always 
     created and PC2.TRP grows!
91.) Since running PC/2 some applications disappear with heavy disk activity!
92.) Can I customize the bitmaps PC/2 uses?
93.) What adjustment to the workstations power management supports PC/2?
94.) PC/2 seems to prevent screen savers from working, can this be corrected?
95.) How can I view the source code?
96.) Is the data displayed in the SessionBar's CPU Performance graphics 
     correct?
97.) I think I'm running no CPU intensive application, but the SessionBar's
     CPU Performance graphics always shows a flat out system, what't that?
98.) What causes the message that "PC/2 has detected a not responding thread 
     and restarting PC/2 is recommened"?
99.) Is the Registration notebook page supposed to let me register PC/2?
100.) How does the Registration (Automatic Update) feature work?
101.) I'm confused with the Sticky Windows. I can't seem to figure out when
      windows will be kept on the active Desktop and when they won't?
102.) PC/2 always grabs the input focus even when starting some programs that
      can easily run in the background. Any way to prevent that?
103.) PC/2 supports Macros, what's that?
104.) PC/2's Online Automatic Update does not work!
105.) Can I delete PC2.TRP?
106.) PC/2, the WPS (PMSHELL.EXE) and WarpCenter, it behaves very peculiar!

Questions, Answers:

71.) I pressed CTRL+ESC to activate the Window List, the Window List pops up
     but immediately disappears being replaced by PC/2's Popup Menu.

     You have most likely selected that the Popup Menu should be displayed
     with the left and/or right CTRL key. Unfortunately you have to hold the
     CTRL key a little bit longer before pressing the ESC key or after
     depressing the ESC key in order to avoid this problem.

     The technical explanation is: Every key generates a make code when it
     get pressed and a break code when it gets depressed. If you press and
     hold a key, the make key gets repeated after a short delay at a certain
     rate (which can be configured in OS/2's System Setup folder with the
     Keyboard Object). PC/2 detects that the user wants the Popup Menu to be
     displayed with the CTRL key, when the first make code is followed by
     the break code of the same key, keeping the key pressed so that multiple
     make codes are generated or pressing a different key would tell PC/2
     that the Popup Menu should not be activated.

     However in the case of CTRL+ESC, PC/2 does not see that ESC follows the
     CTRL key, all it sees is that the CTRL key's make code gets immediately
     followed by the CTRL key's break code and displays the Popup Menu, which
     causes the Window List to disappear again. CTRL+ESC is one of the Hotkeys
     OS/2 filters via a device driver so that PC/2 (not being a device driver)
     can't see the ESC key of this combination. OS/2 does not filter the
     CTRL key, because it can't know that the user wants to press ESC next
     (the user could also press CTRL+Q instead), and as a result, PC/2 detects
     only the CTRL key toggled. If you hold the CTRL key a little longer,
     another make code follows the first make code and PC/2 knows that you
     don't want the Popup Menu to be displayed.

     As OS/2 displays the Window List after detecting the break code of the ESC
     key, but filters the CTRL make codes after detecting the make code of the
     ESC key there is no chance for a reliable workaround of this problem
     (unless using a device driver).

72.) What is Hardware assisted Panning (also called Hardware Virtual Desktop)?

     Some hardware and video drivers (e.g. IBM ThinkPads) support a feature
     that is (in technical terms) called Hardware Panning. For example assume
     that your video adapter has 1 MB video memory which supports a resolution
     of XGA, that is 1024 by 768 pixels with 256 colors. When you attach a
     CRT (display) its no problem to run that resolution. However assume that
     your video adapter is inside a Laptop, which has a LCD display that can
     display resolutions up to VGA, that is 640 by 480 pixels, only.
     With 1 MB video memory you can display a VGA resolutions with up to 64k
     colors, however if you only use 256 colors, more than half of the video
     memory is not used.

     So, vendors, like IBM, decided that if the VGA LCD runs only with 256 
     colors, the full videom memory can be used, if the VGA screen is used
     as a window within the XGA resolution. The hardware and video driver then
     support Hardware Panning, where this VGA sized window is moved by 
     hardware assistance within the XGA sized video memory. Due to the
     hardware assistance, this operation is much faster than any software
     solution. You can compare this with PC/2's Virtual Desktop, where the
     Physical Desktop covers only a part of the whole Virtual Desktop.

     Unfortunately this approach has a drawback. As the physical video memory
     organization is XGA, OS/2 PM also assumes a XGA-sized display, and windows
     are created with a XGA sized display in mind. Expressed differently, most
     windows are larger than the VGA display, which is very annoying from the
     point of usability.
   
     PC/2 now lets you limit the size of windows, for example to VGA. Using 
     this option while having activated the Hardware assisted Panning running 
     on XGA resolution, ensures that windows are not larger than your VGA 
     sized LCD display. Of course the windows will be displayed anywhere 
     within the XGA sized area, but you can move the windows or use the
     Hardware assisted Panning to move your VGA sized LCD display to cover
     that windows. However, this applies only for sizeable windows (that is
     windows having a sizeable border), because tests have shown that reducing
     non sizeable windows can cause them to be unoperable by the user.

     Most easily, just use the Spy notebook page to find out the names of the
     processes that created the windows you want to add to the Exception List. 
     Please also see item 75.) how to add OS/2 and DOS command windows and 
     seamless WIN-OS2 windows, as they are all run by PMSHELL.EXE.      

     Note: The VGA sized LCD panel within a XGA sized video memory is only an
           example. SVGA and XGA sized LCD panels already exist (e.g. the IBM
           ThinkPad 760 series), so the requirement for Hardware assisted 
           Panning may disappear in the near future, unless the supported
           video memory is not increased too (e.g. the IBM ThinkPad 760 series
           contain 2 MB video memory which would allow resolutions up to 1600 
           by 1200 pixels with 256 colors... (not necessarily on a CRT display 
           and/or the OS/2 video driver, but from the video memory 
           organization supported by the hardware)).

73.) How can the icon and default font size be changed under OS/2 PM?

     Unfortunately, changing the icon and default font size under OS/2 is a
     somewhat tricky and difficult task. I would recommend you to get Jason
     Shannon's SMALLF13.ZIP, which should be available on all major OS/2
     archives, which provides a excellent automatization of the required
     patches. If you are lucky, you may even get support for the default font
     and icon sizes by the display driver itself, e.g. the latest S3 Corp.
     drivers allow to adjust them via the Capabilities pushbutton on the 
     Screen page of the System notebook.

     How is the icon and default font size determined under OS/2 PM?
     Well, the icon and font sizes are dependent on the resolution you are
     running, and what resolution causes which icon and font sizes is
     unfortunately hardcoded in the display driver. For resolutions of
     VGA (640 * 480) and SVGA (800 * 600), the icon size is (usually) 32 * 32
     pixels and the font size is designed for 96 DPI (dots per inch). For
     resolutions of XGA (1024 * 768) and above, the icon size is (usually)
     40 * 40 pixels and the font size is designed for 120 DPI. Fortunately
     you can patch the display driver to use different icon and font sizes.

     Patching is a difficult and dangerous task, you can easily currupt your 
     display driver and prevent PM (Presentation Manager) from booting, 
     however you can always boot to a command line. The following procedure
     outlines what you have to do:

     1) You have to find the DLL that implements your display driver. This
        DLL is usually named after your video chipset, e.g. IBMS332.DLL for
        S3 or IBMCNT32.DLL for Chip's and Technologies. This DLL is located
        in [d]\OS2\DLL, where [d] is the drive you installed OS/2 onto, and
        also on the diskette (possibly in one of the archives) you installed 
        your display driver from.

     2) Make a backup copy of the DLL you are going to patch! Don't skip this
        step, this allows you to undo the patches you made! As the DLL is
        locked while PM is running, you have to boot to a OS/2 command window
        from either the Recovery Choices Screen or from another OS/2 partition
        or from the OS/2 boot diskettes.

     3) Locate the DPI definition in the DLL to change it from 120 (0x78) to
        96 (0x60). Either use SMALLF13 or search for a byte sequence of 0x78
        0x00 0x00 0x00, and patch 0x78 to 0x60 by using SMALLF13 or the OS/2
        PATCH command.

        Note: There may be multiple occurances of this byte sequence. You may
              have to try out them sequentially, if the system boots after the
              patch you changed the correct one, otherwise you will most 
              likely experience traps while booting PM.

     4) Locate the default icon size definition in the DLL to change it from
        40 (0x28) to 32 (0x20). Either use SMALLF13 again, or search for a 
        byte sequence of 0x28 0x00 0x28 0x00, and patch both 0x28 occurances
        to 0x20 by using SMALLF13 or the OS/2 PATCH command.

        Note: There may be multiple occurances of this byte sequence. You may
              have to try out them sequentially, if the system boots after the
              patch you changed the correct one, otherwise you will most 
              likely experience traps while booting PM.

     5) Put the patched DLL into effect. As the DLL is locked, you have to 
        boot to a OS/2 command window from either the Recovery Choices Screen
        or from another OS/2 partition or from the OS/2 boot diskettes.

     6) Reboot your system with the patched DLL in place and hopefully you
        will get more information onto your display!

     Note: Changing the icon size may be useful for systems (e.g. like most
           IBM ThinkPads) that support Hardware Panning. Changing the default
           font size may be useful for any resolution to display more 
           information on your display.

74.) How can the icon and default font size be changed under WIN-OS2?

     First, check that you have installed the font support for VGA, that is
     VGAFIX.FON, VGAOEM.FON and VGASYS.FON, which you most likely will find in
     the directory [d]\OS2\MDOS\WINOS2\SYSTEM, where [d] is the drive you
     installed WIN-OS2 into. If you have installed OS/2 VGA support before
     you installed your OS/2 video driver, these files will have been 
     installed, otherwise its very likely that they have been installed too.
     If you can't locate these files, either get them from another WIN-OS2 or
     Windows installation, or you have to find the archive from your OS/2
     installation medium containing these files and unpack them (the location
     of this archive is OS/2 version dependent, but you can easily display
     the contents of an archive by typing at an OS/2 command prompt:
         unpack archive /show
     where archive is the name of an archive.

     Second, make a backup copy of the file SYSTEM.INI, which you will find in
     the directory [d]\OS2\MDOS\WINOS2.

     At last, use your favourite editor to change the following statements in
     your SYSTEM.INI from:
         [boot]
         oemfonts.fon=xgaoem.fon
         fixedfon.fon=xgafix.fon
         fonts.fon=xgasys.fon
       
         [display]                
         dpi=120
     to:
         [boot]
         oemfonts.fon=vgaoem.fon
         fixedfon.fon=vgafix.fon
         fonts.fon=vgasys.fon
       
         [display]                
         dpi=96

     Restart WIN-OS2 and be pleased about the reduced font size.

     Note: As WIN-OS2 and Windows only support one icon size (32 * 32), you
           can't and don't need to change the icon size.

           Changing the default font size may be useful not only for systems
           supporting Hardware Panning (e.g. most IBM ThinkPads), but also
           may be useful to display more information on your display.
 
           The procedure outlined above will also work under Windows.

75.) I want to include OS/2 and DOS command processor and seamless WIN-OS2
     sessions in an Exception List, however I can't seem to get it working 
     correctly!

     To include OS/2 and DOS command processors simply enter CMD, to include
     seamless WIN-OS2 sessions simply enter SEAMLESS in the multiline 
     entryfield of the Titlebar Smarticons and/or Hardware Panning features.

     Note: OS/2 and DOS windowed command processors (and all processes 
           running under or as a windowed command processor) and seamless
           WIN-OS2 sessions run their windows in the context (address space) 
           of PM (Presentation Manager) itself. The executable of PM is the 
           executable PMSHELL.EXE, so you would have to specify PMSHELL.

           However the WPS (that is all your WPS windows) are also run by
           PMSHELL.EXE, so adding PMSHELL in the Exception List would also
           disable the features for WPS windows. Fortunately PC/2 is smart
           enough to allow you to specify CMD if you just want to include OS/2 
           and DOS windows or to specify SEAMLESS if you just want to include
           seamless WIN-OS2 sessions in the Exception List, while keeping WPS 
           windows. 

     Note: How does it fit together that OS/2 and/or DOS window and seamless
           WIN-OS2 sessions are run by PMSHELL but you are sure you've invoked 
           CMD.EXE, COMMAND.COM or WIN.COM?

           Well, for OS/2 and DOS command processors the program that really 
           runs really is CMD.EXE (or a kernel process for DOS windows) which 
           you can easily verify by using PSTAT.
           However OS/2 support for OS/2 and DOS windows in PMSHELL.EXE 
           displays the command processor's output in a PM window and passes
           input from that PM window back to the command processor. You can
           do that yourselves too, just start a command processor from your
           PM window and redirect its standard output and input.

           And for seamless WIN-OS2 sessions, the program that really runs is
           a kernel process which you can als verify by using PSTAT.
           However seamless WIN-OS2 support in PMSHELL.EXE is twofold, on one
           hand to integrate WIN-OS2 programs into PM, each seamless WIN-OS2 
           window is covered by a "shadow" PM window (e.g. to support focus 
           change), on the other hand the WIN-OS2 display driver is a (lower
           than PM) interface to the GRE (GRraphics Engine, the engine that is
           responsible for all drawing). Because of this "split" design, 
           screen corruption can occur when the "shadow" PM window gets out of
           sync with the "lower" layer GRE drawing - which is the primarily
           reason, PC/2's Overview and/or SessionBar will prevent all other PM 
           windows to get on top of Z-Order but don't prevent seamless WIN-OS2
           windows (because PC/2 can prevent the "shadow" PM window from 
           getting onto top of Z-Order and getting the user input, but the 
           "lower" layer GRE drawing would draw on PC/2's windows, you will
           then see the drawing of the seamless WIN-OS2 session, but the 
           WIN-OS2 session would never get user input - your GUI will become
           unusuable).

76.) Some windows of PC/2 are always visible, even when e.g. my screen saver
     is running.

     PC/2 ensures that its SessionBar (when having selected it to stay on top 
     of Z-Order), its Overview Window (when having selected it too in the 
     Desktop dialog) and the QuickSwitch window stay on top of Z-Order that is
     above all other windows to prevent them from being overlapped by other 
     windows.
     As there is no way to tell that a window, e.g. a screen saver, wants to
     stay on top of Z-Order anyway, the funny effect may occur that most of
     the display is covered by that window, but PC/2 windows are shining 
     through.
     For your screen saver, you can deselect that PC/2 keeps its window on 
     top of Z-Order, but you must also ensure that the SessionBar is not at
     absolute top or bottom of the screen, because even it the SessionBar
     may not be on top of Z-Order it will reposition other windows then to
     avoid overlapping.

     Note: I tried to avoid this behaviour by testing for systemmodal windows,
           and then prevent PC/2 windows to set themselves on top of Z-Order,
           but unfortunately the API WinQuerySysModalWindow() returned a 
           window sometimes when absolutely no systemmodal window was active.
           So I had to left out such a test.

77.) I'm using the SessionBar and/or selected to keep PC/2's Overview window
     on top of Z-Order, now other applications behave differently!

     You are most likely running OS/2 2.x or WARP 3 (under WARP 4 I couldn't
     reproduce that behaviour). To to a bug, PC/2's SessionBar and Overview 
     window can become part of the owner chain of other applications (e.g. 
     the Job Properties dialogs of printer drivers seem to show this problem 
     most likely, as a sample printer driver shipped by IBM had a bug, please
     upgrade to the latest driver level which should fix that problem). The 
     easiest way to find out if a window is the owner of another window is 
     to click on that window, if you can hear a beep and won't be able to 
     set the input focus to that window then you have found an owner.

     The problem you may experiencing is, that PC/2's windows become the 
     owner of other applications windows (even in other process contexts),
     causing problems with that applications. I've written a small sample
     program that shows that problem and made it available to OS/2 
     development, where they could reproduce the problem and advised to
     use the latest printer driver (which in my case worked for the PostScript
     driver).

     However, you can circumvent that problem easily. Disable that the 
     SessionBar is kept on top of Z-Order (at least temporarily). Also 
     uncheck the option to keep PC/2's Overview window on top of Z-Order. 
     Most easily, the problem usually can be avoided by changing the focus to
     other windows than PC/2's before invoking the windows you experienced 
     problems with. 
     
     As this behaviour is highly reproducable, I've opened the APAR 11867 and
     the change team advised to upgrade to the latest printer driver (and in
     my case for the PostScript driver, the problem was disappeared this way).

78.) I'm using the SessionBar and/or selected to keep PC/2's Overview window
     on top of Z-Order, now my system is very unresponsive or hangs!

     Due to the design of OS/2 PM, it is a problem to keep a window on top of
     Z-Order (compared to Windows). If PC/2 and another applications try to
     keep their windows on top of Z-Order in a similar way, it is likely that
     your system becomes unresponsive due to looping in processing the Z-Order
     chain or hang at all.

     The only ways to solve that problem is to only run one application
     concurrently, or change the behaviour of PC/2 not to keep windows on top
     of Z-Order as shown in question 77.).

79.) Since I have/had PC/2 running, now other applications disappear silently,
     what's wrong with my system.

     In a single word nothing, your system is still ok. In order to improve
     problem diagnostics, PC/2 may have activated OS/2 settings that are 
     equivalent to having added the DUMPPROCESS and SUPPRESSPOPUPS statements 
     (please see the online OS/2 command reference for a detailed 
     description) in your CONFIG.SYS, unless you have explicitely disabled 
     PC/2 diagnostics. I said may, because some beta version had activated
     that setting by default in contrast to the shipped version.

     These settings will write files named PDUMP.xxx (where xxx is unique) and
     POPUPLOG.OS2 into the root of your boot drive when a process dump is
     taken or a fatal unrecoverable error occurs. You can force a PC/2 process 
     dump by clicking with mouse button 1 onto PC/2's Overview or SessionBar
     window while pressing and holding the ALT and CTRL keys.

     Unfortunately there is no way to query and to activate these settings 
     just for PC/2's process. These settings will therefore be activated for
     all processes and stay activated even when PC/2 terminates. However, this
     does no harm to your system, an applications that terminates because of
     a fatal unrecoverable error does this silently (and the dumps will also
     written) without the system error popup you may expect.

     If these files contain the string PC2, they contain data of a fatal PC/2
     problem, please contact the author then. You may safely delete the 
     PDUMP.xxx and POPUPLOG.OS2 files to recover some (a few kB) diskspace 
     anytime.

     Note: You can request PC/2 that it doesn't activate the diagnostic
           settings inside the General notebook page. The settings as defined
           in your CONFIG.SYS will become active after the next reboot.

     Note: You can explicitely request a PC/2 dump by pressing the CTRL-key
           while clicking mouse button 1 onto the Overview or SessionBar
           window and selecting Debug->Dump PC/2 from the popup menu.

80.) Since running PC/2, files named PDUMP.xxx, POPUPLOG.OS2 are always 
     created and PC2.TRP grows!

     The files PDUMP.xxx (where xxx is unique) and POPUPLOG.OS2 contain 
     process dump data when a process was terminated due to a fatal 
     unrecoverable error. PC/2 activates two OS/2 RAS tracing settings that 
     are equivalent of having the statements DUMPPROCESS and SUPPRESSPOPUPS 
     in your CONFIG.SYS.

     Once activated, these settings will be active systemwide, that they will
     not be limited to PC/2's process only. They will also stay active even
     when PC/2 has already been terminated.

     For a default installation, the system error popup appears when a 
     application is terminated due to a fatal unrecoverable error. PC/2 will
     remove this popup and the information displayed will be appended to
     POPUPLOG.OS2 instead. One positive side effect is, that you get a log
     of processes terminated unexpectedly and you may help the vendor of
     the failing application by sending them this log together with the
     PDUMP.xxx file (to find the correct one, just search for the one 
     containing the uppercase name of the application's executable).

     If these files contain the string PC2, they contain data of a fatal PC/2
     problem, please contact the author then, but do *not* mail then without
     asking previously (as reading them depends on tools that must correspond
     to the CSD level of the system they were written at). You may safely 
     delete the PDUMP.xxx and POPUPLOG.OS2 files to recover some (a few kB) 
     diskspace anytime.

     Note: You can request PC/2 that it doesn't activate the diagnostic
           settings inside the General notebook page. The settings as defined
           in your CONFIG.SYS will become active after the next reboot.

     PC/2 always does append internal unrecoverable error into the file 
     PC2.TRP. This file is independent of the OS/2 CSD level, feel free to
     mail (MIME-64 encoded) them the author to help removing the remaining
     bugs. 

91.) Since running PC/2 some applications disappear with heavy disk activity!

     Most likely your application has terminated due to a fatal unrecoverable
     error. PC/2 activates settings, that instruct OS/2 to dump the data,
     that is displayed in the system error popups for default installation,
     into files.

     Check the root of your boot drive for files named PDUMP.xxx (where xxx is
     unique) and POPUPLOG.OS2. You may load both files into an editor to see
     which application terminated unexpectedly (POPUPLOG.OS2 is even human
     readable). The vendor of the failing application may be interested in 
     that data, at least I'm, as the author of PC/2.
    
     If these files contain the string PC2, they contain data of a fatal PC/2
     problem, please contact the author then. You may safely delete the 
     PDUMP.xxx and POPUPLOG.OS2 files to recover some (a few kB) diskspace 
     anytime.

     Note: You can request PC/2 that it doesn't activate the diagnostic
           settings inside the General notebook page. The settings as defined
           in your CONFIG.SYS will become active after the next reboot.

92.) Can I customize the bitmaps PC/2 uses?

     Yes, if you have installed the OS/2 Developers Toolkit you can customize 
     the bitmaps that are included in the resource files PC2xRES.RC, where x 
     is V for VGA and B for BGA screen resolutions. The required steps are 
     somewhat user-unfriendly, but this guide should make them fairly easily. 

     Note: If there are enough requests to allow customization without needing
           to have the OS/2 Developers Toolkit installed, I will remove this
           requirement.
    
     PC/2 includes the full source code in an archive named SOURCE.ZIP which
     the installation has copied into the directory you installed PC/2 into
     (unless you have installed only the required files), just unzip that
     archive.

     The following subdirectories will be created (and the SOURCE directory
     should be your working directory afterwards):
     \SOURCE\                ... C source files
     \SOURCE\RESOURCE\       ... Resource files (OS/2 version dependent)
     \SOURCE\RESOURCE\MERLIN ... Resource files (for Warp 4 and above)
     \SOURCE\RESOURCE\WARP   ... Resource files (for Warp 3 and before)
     To customize the bitmaps for Warp 4 copy the MERLIN subdirectory, for 
     Warp 3 copy the WARP directory, into the RESOURCE directory.
         
     Edit the PC2xRES.RC file to see which bitmaps you can customize, and the 
     Iconeditor to load and customize them. Bitmap files have the extension 
     xGA, where x is V for VGA and B for BGA screen resolutions again. You can
     customize the Titlebar Smarticons, PC/2's Overview window Smarticons, the 
     SessionBar's Launch button and others, just be sure that you don't modify 
     PC2xRES.RC.

     Once you have customized (and backuped) the bitmaps, invoke the resource
     compiler RC.EXE from the subdirectory SOURCE by typing (where x again is 
     V or B):
     RC -R PC2xRES.RC
     This will create a file named PC2xRES.RES, which you will have to add to
     PC2xRES.DLL by typing (where x again is V or B):
     RC PC2xRES.RES ..\PC2xRES.DLL  
  
     You can attach the resources to PC2xRES.DLL as often as you like, because
     the resource compiler will replace the previous resources attached to the
     DLL with the current resources you supplied to RC.EXE as the commandline
     argument.

     Note: I stronly recommend not to change the sizes of the bitmaps you
           customize. PC/2 will not to cease to function otherwise, but the
           bitmaps will look something wired.

93.) What adjustment to the workstations power management supports PC/2?

     Upon a requests from a Overview window's SmartIcon, a menuentry within
     the Popup Menu or with the Scheduler, you can either suspend or power off 
     your workstation. PC/2 request suspend and power off events to be 
     performed by APM (Advanced Power Management).  

     Note: To suspend or power off your workstation via APM, PC/2 requires the 
           APM.SYS device driver of OS/2 to be installed. Ensure that for OS/2 
           2.11 the line
           DEVICE=[x]\OS2\APM.SYS, and for OS/2 WARP the line
           DEVICE=[x]\OS2\BOOT\APM.SYS is contained in your CONFIG.SYS, where
           [d] is the the drive letter you installed OS/2 at, e.g. E: ).

           This line be missing is you haven't selected APM support during 
           OS/2 installation (which you can add now by selective install) or if
           your PC doesn't support APM (which you can verify in your PC's 
           User's Guide).

           WARP 4 supports APM specification 1.1, but a 1.2 compliant driver 
           is in development and will be released likely on the DDPAK site.

     Warning! For power off requests to work, you must be moving at least Warp 
              4. Previous OS/2 versions may power off your PC without 
              perfoming a ShutDown of OS/2, causing a CHKDSK during the next
              reboot.
            
              Do not try to run the Warp 4 APM device driver on prior versions
              of OS/2, as there are dependencies upon other system files 
              including the OS/2 kernel. Thanks to Frank Schroeder from OS/2
              I/O Subsystem/Device Driver Development for technical help  
              coding APM support.

              Depending on your hardware and BIOS (you may update to the 
              latest level), APM may not support suspend or power off requests
              or just hang OS/2. Unfortunately there is no easy way to find
              out what doesn't work, you have to experiment yourself.           
    
    Warning! APM Power Off may not work on all systems despite they are 
             supporting APM and APM.SYS works correctly. Symptoms are (thanks 
             to Frank Schroeder from the OS/2 I/O Subsystem/Device Driver 
             Development, who owns the OS/2 APM driver, for his support to 
             give me some explanations about possible causes):

             *) APM power off does power off your PC, but even under Warp 4 a
                CHKDSK is performed due to the next reboot. This may be 
                related to the combination of a too fast processor and a too 
                slow harddisk, because the request to the disk subsystem didn't 
                finish in time before the power is dropped (this may corrupt 
                partitions!). 
             *) Your PC is powered off, but immediately powers on again. This 
                may be related that the APM BIOS thinks that is should power up 
                again, which can be caused by "Wakeup on LAN" adapters or that 
                OS/2's APM support polls APM BIOS which confuses APM BIOS.
             *) APM power off does not work under OS/2 but does under Windows. 
                As OS/2 (as a protected mode operating system) may use 
                different entrypoints into APM BIOS as Windows, there are some 
                chances that there are BIOS bugs. Even when the same BIOS code 
                is used, timing issues and differences in the frequency of 
                polling, the order of APIs called, the method of APM event
                notifications,... can explain differences.

94.) PC/2 seems to prevent screen savers from working, can this be corrected?

     Well it depends. If you have selected that PC/2 keeps its Overview and
     SessionBar windows on top or Z-Order, then these window will cover any
     screen saver window. If the SessionBar window is a top or bottom of the
     screen, then the screen saver window won't be covered but adjusted in its
     position so that the SessionBar window is still visible. In that case you
     can remove the SessionBar from absolute top or bottom of the screen.
     
     However, even if PC/2's windows may overlap or may adjust the screen 
     saver's window the screen saver will still protect access to your PC,
     as it won't allow you to switch the input focus to any window other
     than the screen saver. If your screen saver is used to blank out your
     screen (to protect your monitor), then the suggested solution would be
     to use the APM (Advanced Power Management) functions builtin your PC to
     suspend or power off your display.

95.) How can I view the source code?
    
     To prevent using the source code on any of the Windows platforms, the
     source code archive has been encrypted by a program that is only 
     available on the OS/2 platform. As no Windows can run 32-bit OS/2
     applications you need to have OS/2 installed to run the decryption
     program.
 
     The encrypted source SOURCE.ZIE and the decryption program PROTECT.EXE
     are used to get the unencrypted source SOURCE.ZIP, which can be 
     uncompressed with UNZIP.EXE then.
     Just run from an OS/2 window the command: PROTECT pc2v200 SOURCE.ZIE
     and SOURCE.ZIP will be created.

     Note: The password pc2v200 (spelling is case sensitive!) is no secret,
           because the algorithm used to decode SOURCE.ZIE is proprietary
           and only available on OS/2. No OS/2 installed, no way to view
           my source.

           I had to use my own proprietary encryption, because the password
           feature of InfoZip's ZIP/UNZIP is also available on the Windows
           platforms and even if the source code is publicly available, the
           export regulations of the US would be violated if my proprietary
           version (so that decryption again would be bound to the OS/2 
           platform) of UNZIP.EXE were re-exported again. 

96.) Is the data displayed in the SessionBar's CPU Performance graphics 
     correct?

     Yes, as I'm using an OS/2 call available on Warp 4+ and Warp Server
     Advanced SMP+ and not just some loops checking free idle time (like
     PULSE does) that data is correct.

     However, to prevent excessive CPU usage PC/2 does not run itself with a
     higher priority than normal applications, which on the other hand may
     prevent a smooth updating of the graphics if the load is high (or the
     SIQ Single Input Queue is blocked).

97.) I think I'm running no CPU intensive application, but the SessionBar's
     CPU Performance graphics always shows a flat out system, what't that?

     Likely you are still running an application that ensures by a low 
     priority that applications using normal priority will get the CPU when 
     required but do consume the CPU when no other application requires it
     anyway. Examples are PULSE, the RC5 cracking client or the NetFinity 
     client.

     As OS/2 reports low priority usage also as CPU usage, and PC/2 gets this
     data from an OS/2 call, it is correct that the CPU utilization is shown
     as 100 %. The only way to avoid that is to stop the mentioned 
     applications.
 
98.) What causes the message that "PC/2 has detected a not responding thread 
     and restarting PC/2 is recommened"?

     PC/2 is a multithreaded application, and uses threads to perform functions
     like finding all windows and determining their size, position and name.
     To determine those data OS/2 APIs are uses, which sometimes send messages
     to the window in question.

     When an application's window now doesn't answer such questions, other
     applications sending message will have a problem too due to OS/2's design
     of the SIQ - Single Input Queue. If one program blocks the SIQ, all other
     programs won't react on user input (by keyboard and mouse) too, the only
     way to recover is that the program starts to process messages again or to
     exit it from the dialog presented after CTRL+ESC is pressed.

     Another side effect of that is IMHO that sometimes not the SIQ is blocked
     but calling some OS/2 APIs blocks the caller until the called program
     answers (and sometimes they don't or it may take a long time). In other
     words, PC/2 calls OS/2 APIs and those APIs never return, thus PC/2 is not
     able to continue processing. This happens seldomly from my experience, 
     but running Lotus Notes and NetScape together increases the likelyhood.

     PC/2 tries to recover automatically from such a hang, however if it 
     detects recovery is required, the user is prompted to confirm that.

99.) Is the Registration notebook page supposed to let me register PC/2?

     No! I did use the term "Registration" because it's a kind of 
     registration, but the term "Online Automatic Updates" which would 
     describe this feature much better simply doesn't fit onto the tab.
     PC/2 is and will be Freeware (though dontations are still welcome ;-),
     the Registrations just gives you and me the following advantages.

     If you register as a PC/2 user I will know you (and have better numbers
     of how many PC/2 users are out there, which of course gives me motivation
     to keep improving it). And of course, I will not pass on or make available
     that data anywhere.

     If you fill out the Registration notebook page completely (and correctly)
     PC/2 will then be able to automatically retrieve news/updates/fixes/...
     regarding PC/2 from the Internet (from my Automatic Update homepage to be
     exact) regularily. This does help you by not having to check my homepages
     for news regularily (though you are indeed welcome), and does help me by
     having a tool to "push" important news to PC/2 users easily (e.g. if a
     new version is coming out I will modify my Automatic Update homepage and
     PC/2 will display those news to you the next day (if the Registration
     page has been filled out correctly).

     The Automatic Update (aka Registration) feature is implemented in 
     PC2NET.DLL. PC/2 will only be able to load that DLL during startup when
     TCP/IP is installed correctly. Assuming this is the case, PC/2 will
     request you to fill out the Registration notebook page and use that
     information to contact my Automatic Update homepage directly or via a
     proxy. You can be connected to the Internet either permanently or via a
     dial-up connection.

     The information retrieved from the Automatic Update homepage is saved 
     into the file PC2.NET. If you have missed a message box (which is
     displayed when PC/2 has found some news), you can browse into that file
     (as your registration date is stored here too, please don't delete or
     modify this file unless you are really sure what you do e.g. in case of
     a corrupted file).

100.) How does the Registration (Automatic Update) feature work?

     The Automatic Update (aka Registration) feature tries to connect to my
     Automatic Update homepage (located at the URL specified at the 
     Registration notebook page, so you can use a browser to display it too).

     What PC/2 does is to retrieve documents and fills out a form with your
     registration data via the standard HTTP protocol. You can use IPTRACE
     and IPFORMAT to verify that there is really no magic.

     To register you as a user, a URL is posted to my Automatic Update 
     homepage which looks like as if a form had been filled out containing
     your registration data (this URL then causes my homepage to send me an
     e-mail containing your registration data, and that's all I ask you to
     do to allow me to know you as a PC/2 user).

     To inform you about news/updates/fixes/... PC/2 downloads a document
     from my Automatic Update homepage. This document is then parsed and
     mirrored locally into the file PC2.NET (to allow PC/2 to detect news
     which haven't been shown to you yet avoiding to show you known news
     multiple times). If news are detected, you will be informed by a
     message box, if updates are found they will be downloaded and you 
     will be presented instructions how to put that update into effect
     (e.g. stop PC/2, replace a DLL and reboot). The term update is used
     here for enhancements, bug fixes and additions.

     PC/2 tries to connect to the Automatic Update homepage daily, that is
     if the connection succeeded, it will wait 24 hours before connecting
     again (the last successful connection time is also saved into PC2.NET).
     If a connection is scheduled, PC/2 tries to connect to the homepage
     through a proxy (when specified) or directly. If the connection fails,
     it is retried a few times per hour unless a dial-up interface is
     detected (which is checked once a minute), because if a dial-up 
     interface is up then likely a connection to the Automatic Update
     homepage will work (whereas when a direct e.g. LAN connection fails,
     it is unlikely that this is just a problem for a few minutes). A Status
     window will inform you when a connection has been established and
     information is downloaded from my Automatic Update homepage.

     Again, the registration makes life easier, so I really would appreciate
     knowing you as a registered PC/2 user (but not doing so does *not*
     prevent you from using any PC/2 feature)!

101.) I'm confused with the Sticky Windows. I can't seem to figure out when
      windows will be kept on the active Desktop and when they won't?

     First, I admit that this really may be confusing due to the liabilities
     introduced with the necessary design changes over the more than 6 year
     history of PC/2 (the main reason was that a window not necessarily has
     a 1 to 1 relationship to an application which the concept of Menuentries
     assume and that it seems to be easier for users to configure such a
     feature at a central place).
     
     Up to version 2.00, you had to select the option "Keep on active Desktop"
     of an application Menuentry's Hotkey notebook page to keep a window always
     on the active Desktop.
     
     Beginning with version 2.10, this option has been renamed to "Sticky 
     Window" and additionally the Overview notebook page of the Desktop Dialog
     also contains an entryfield for Sticky Windows. Of course, uniqueness will
     be ensured.
     
     This new entryfield will be expanded by all Sticky Windows found in 
     Menuentries during loading of the Popup Menu in addition to what you enter
     here. However, when you delete an entry that was migrated from from a
     Menuentry, this will affect only the current instance of PC/2, because the
     next time you launch PC/2 the entry will be migrated again from the 
     Menuentry - unless you deselect the Sticky Window option there too.
     
     Even when you delete an entry that was migrated from an Menuentry, it will
     only disappear the the list in the Desktop Dialog's Overview notebook 
     page, but will still work according to the Menuentry's settings on the
     Hotkey page (because to make a window sticky, it must appear *either* at 
     the Overview *or* Hotkey page). This is true for at least version 2.10, as
     the removal of the Sticky Window option at the Hotkey page in a future 
     PC/2 version will set and end to that confusion.

102.) PC/2 always grabs the input focus even when starting some programs that
      can easily run in the background. Any way to prevent that?

     Yes, just select the Program Style "Background" on the Program 
     Installation's Style notebook page. PC/2 will then start the Program
     without first moving the input focus to itself.
     
     The rationale behind that is, that only sessions being in the foreground
     (and foreground is equivalent of having the input focus) can start other
     sessions into the foreground. And when you have not checked the 
     "Background" style, PC/2 assumes you want to launch the program into the
     foreground.
     
     This way, PC/2 has been working for years so I would break existing
     installations if I would change it, though now I admit that assuming that
     the session should be started into the background by default unless a
     "Foreground" option is selected would have been a better design.

103.) PC/2 supports Macros, what's that?
    
     You may already know that you can specify the Environment that will be
     attached to sessions you launch from the Popup-Menu. The Environment
     is a collection of sentences of the form:
         ENVIRONMENTVARIABLE=VALUE

     You may then specify that the VALUE of a ENVIRONMENTVARIABLE is 
     substituted instead of a certain text, and that text is a Macro. A
     Macro thus has the exact same literal as the ENVIRONMENTVARIABLE but
     pre- and postfixed by a percentage sign (%-sign).

     For example, assume you have defined in the Program Installation dialog:
        Program Title:      Macro-Test
        Path and Filename:  %INSTDIR%\BIN\MyApp.exe
        Working Directory:  %INSDDIR%\
        Parameters:         -Install %INSTDIR% -Temp %WORKDIR%
        Environment:        INSTDIR=[d]\APPS\TEST
                            WORKDIR=[d]\TEMP
    When launching that session what actually is presented to OS/2 to launch
    is:
        Program Title:      Macro-Test
        Path and Filename:  [d]\APPS\TEST\BIN\MyApp.exe
        Working Directory:  [d]\APPS\TEST\
        Parameters:         -Install [d]\APPS\TEST -Temp [d]\TEMP
        Environment:        INSTDIR=[d]\APPS\TEST
                            WORKDIR=[d]\TEMP
    which is indeed a very unique and powerful feature.

104.) PC/2's Online Automatic Update does not work!

    Most likely, your Proxy settings on the Desktop Dialog's Registration
    notebook page are not correct. You should use the same setting that work
    e.g. in Netscape, just the Proxy hostname and its Port are written in
    URL form (for examples please see the online help).

    PC/2 ships with default settings that might be better then not specifying
    Proxy settings at all, however in most cases you have to modify the
    default settings.

105.) Can I delete PC2.TRP?

    In one word, yes, it is not vital for PC/2 to function. More, you might
    even do that regularily as it may grow over time. More exactly that
    file contains the traces of 2 events critical to PC/2 (allowing me the
    author to improve debugging):

    *) Traps (access violations) within PC/2. Those traps are the result of
       a severe bug and you're welcome to report their occurance to the
       author.

       PC2.TRP logs a hang starting with the line: "Exception Dump Facility".
       I'm certainly interested about hearing about such problems as they
       are bugs within PC/2 that should be fixed. I might ask you to
       download some stuff that allows me do diagnose the problem in more
       detail.

    *) Thread hangs within PC/2. PC/2 has a kind of watchdog feature that
       allows it to detect hanging threads, which for reasons not clear to
       me sometimes can happen (to be exacty, some PM APIs under certain
       conditions just hang a thread by never returning to PC/2 again).

       PC2.TRP logs a hang starting with the line: "Thread Dump Facility".
       Most likely, scrolling some lines downwards shows the entrypoint
       nearest to the hang with "Nearest    : Ordinal xxxx", where xxxx
       is the entrypoint. For me, xxxx usually is 5120 in PMMERGE.DLL,
       from reports 5352 seems to be popular too. If you find one of those
       2 entrypoints then it is a already known problem (though I still
       don't know what PM is doing there, as both are not documented).

106.) PC/2, the WPS (PMSHELL.EXE) and WarpCenter, it behaves very peculiar!

    The WPS (PMSHELL.EXE) is just a window like many others, it even has a
    Titlebar which is per design not visible (but if you display the Window
    List and doubleclick with mouse button 1 on "Desktop" while holding down
    the CTRL-key, the WPS will resize it so that the Titlebar is visible).
    Normally the display looks like:

    ************ ... Invisible Titlebar of WPS 
    +----------+ ... The physical display (e.g. sized 1280x1024 pixels)
    !          !  
    !          !  
    !          !
    *----------+  

    Now when you open the WarpCenter at the top of screen, you will notice a
    short flash of the screen and then the WarpCenter is located on top of
    the screen:

    ************ ... WarpCenter covering the Titlebar of the resized WPS
    !          !  
    !          !  
    !          !
    *----------+  
 
    WarpCenter resizes the WPS so that the WPS's Titlebar would be visible
    (exactly as if you had shown it yourself with CTRL+MB1 doubleclick in
    the Window List), but only would as it is immediately covered by the
    WarpCenter itself. I said short flash, because parts of the screen
    redraw.

    If you now close the WarpCenter it restores the WPS back again so that
    the WPS Titlebar is just above the visible screen:
    
    ************
    +----------+
    !          !  
    !          !  
    !          !
    *----------+  

    And finally we are where we have to be carefull. The WarpCenter adjusts 
    the size of the WPS in such a way that it just covers the physical screen 
    with it's Titlebar just above the visible area (WarpCenter closed) or
    just covered by the WarpCenter itself (WarpCenter showing) *regardless* 
    of what size the WPS had been before!

    If you request PC/2 to resize the WPS over all Virtual Desktops with
    "Expand WPS" PC/2 honors that requests, however WarpCenter does not care
    and resizes the WPS again whenever you open or close it. In other words
    the changes done to the WPS by PC/2 can easily be undone by opening or
    closing the WarpCenter.

    Sorry, that's not the optimal behaviour on the side of the WarpCenter,
    but is the way it currently works.

Also, please read the help panels.

Enjoy! Roman
