home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / pcwatch.doc < prev    next >
Text File  |  1985-07-01  |  114KB  |  2,687 lines

  1.  
  2.  
  3.                                      PCWATCH 
  4.  
  5.                                      Topics
  6.  
  7.              What is PCWATCH? .......................................1
  8.  
  9.              Before You Begin .......................................1
  10.  
  11.              "Do-It-Yourself" PCWATCH Demo ..........................2
  12.  
  13.              The PCWATCH Command ....................................6
  14.  
  15.                PCWATCH Categories and Specific Events ...............7
  16.  
  17.                PCWATCH Categories ...................................9
  18.  
  19.                  BIOS ...............................................9
  20.  
  21.                  Communications .....................................9
  22.  
  23.                  Disk/Diskette ......................................9
  24.  
  25.                  DOS ................................................9
  26.  
  27.                  External ...........................................9
  28.  
  29.                  File System ........................................9
  30.  
  31.                  Keyboard ...........................................9
  32.  
  33.                  Noise ..............................................9
  34.  
  35.                  Printer ............................................9
  36.  
  37.                  Timer ..............................................9
  38.  
  39.                  User Defined 1, 2, and 3 ..........................10
  40.  
  41.                  Video .............................................10
  42.  
  43.                  Disabled Entry ....................................10
  44.  
  45.                  Exit with Carry ...................................10
  46.  
  47.                PCWATCH Options .....................................11
  48.  
  49.                  Monochrome Display ................................11
  50.  
  51.                  Graphics Display ..................................12
  52.  
  53.                  Split Screen Mode .................................12
  54.  
  55.                  Top to line [xx] ..................................12
  56.  
  57.                  Bottom from [xx] ..................................12
  58.  
  59.                  Printer [LPTx] ....................................13
  60.  
  61.  
  62.  
  63.                  Max Output [xxxx] .................................13
  64.  
  65.                  Wait for Keystroke ................................14
  66.  
  67.                  Start by Rebooting ................................14
  68.  
  69.                  Exit to Debugger ..................................15
  70.  
  71.                  Register Display ..................................16
  72.  
  73.                  Input Registers ...................................16
  74.  
  75.                  Output Registers ..................................16
  76.  
  77.                  Control Blocks ....................................17
  78.  
  79.                  Nested Events .....................................17
  80.  
  81.              The PCWATCH Tables ....................................18
  82.  
  83.                The PCWATCH.TBL File ................................19
  84.  
  85.                  Names for PCWATCH Key Selections ..................21
  86.  
  87.                  Attributes ........................................22
  88.  
  89.                  Formatting Options ................................23
  90.  
  91.                  A Sample PCWATCH.TBL File .........................24
  92.  
  93.                The PCWTBLB Command .................................25
  94.  
  95.              The PCWATCH.SYS Device Driver .........................26
  96.  
  97.              Limitations ...........................................27
  98.  
  99.              Questions and Answers .................................29
  100.  
  101.              Using PCWATCH with TopView ............................32
  102.  
  103.                PCWATCH Program Information for TopView .............32
  104.  
  105.                Restrictions on PCWATCH in the TopView Environment ..34
  106.  
  107.              Messages ..............................................35
  108.  
  109.                PCWATCH Messages ....................................35
  110.  
  111.                PCWTBLB Messages ....................................40
  112.  
  113.              Appendix A:  Control Block Descriptions ...............45
  114.  
  115.                ASCIIZ Strings ......................................45
  116.  
  117.                Diskette Parameters .................................45
  118.  
  119.                Disk Status .........................................46
  120.  
  121.                FCB (File Control Block) ............................46
  122.  
  123.  
  124.  
  125.                NCB (Network Control Block) .........................47
  126.  
  127.              Appendix B:  Changing Display Attributes ..............48
  128.  
  129.              Appendix C:  Specify PCWATCH Parameters Keys ..........49
  130.  
  131.                                  End of Topics
  132.  
  133.                                       1
  134.  
  135.    What is PCWATCH?~
  136.    ----------------
  137.  
  138.          PCWATCH is a powerful problem determination tool that lets you
  139.          "watch" what is happening while your computer is running.  It
  140.          lists interrupts as they occur so you can trace the order in
  141.          which they happen.
  142.  
  143.          PCWATCH monitors your computer's activity at the system
  144.          interface level, not at the machine language instruction
  145.          level.  It permits you to deal with the same functional
  146.          abstractions that are used by your programs when interacting
  147.          with DOS or BIOS.
  148.  
  149.          PCWATCH lets you focus your attention on selected activities
  150.          so that only those that are of interest to you are presented.
  151.          It allows you to determine the precise sequence of events
  152.          leading up to your problem so you can concentrate your
  153.          efforts on fixing it, not finding it.
  154.  
  155.  
  156.    Before You Begin~
  157.    ----------------
  158.  
  159.          It is important to make a backup copy of your PCWATCH
  160.          diskette in case your original is lost or damaged.  Use the
  161.          DOS DISKCOPY command to make a copy of your diskette.  Then
  162.          label the diskette "PCWATCH Backup."  Store the original in a
  163.          safe place and use the copy as you work.
  164.  
  165.          You might want to put PCWATCH on a utilities diskette.  The
  166.          files you need to copy are:
  167.  
  168.             PCWATCH.COM
  169.             PCWATCH.TBL
  170.             PCWATCH.SYS
  171.             PCWTBLB.EXE
  172.  
  173.             NOTE:  A fifth file, PCWATCH.PRO, may have been created if
  174.             you have already used PCWATCH.  You will want to copy it,
  175.             too, if it exists.
  176.  
  177.                                       2
  178.  
  179.    "Do-It-Yourself" PCWATCH Demo~
  180.    -----------------------------
  181.  
  182.           ------------------------------------------
  183.          | You will find it easier to follow this   |
  184.          | demonstration if you have a printed      |
  185.          | copy.  If you have a printer, switch it  |
  186.          | on and align the paper.  When you are on |
  187.          | the Topics screen, select "'Do-It-       |
  188.          | Yourself' PCWATCH Demo."  Press F2 then  |
  189.          | F4.                                      |
  190.           ------------------------------------------
  191.  
  192.  
  193.          The best way to preview the capabilities of PCWATCH is to run
  194.          a short demonstration.  To start the demo, follow the
  195.          instructions described in this section.  Explanations of the
  196.          various PCWATCH options and advice for using PCWATCH in a
  197.          variety of circumstances are given in later sections.
  198.  
  199.           1.  Return to DOS and set your default drive to A.
  200.  
  201.           2.  Insert your PCWATCH program diskette in drive A.
  202.  
  203.           3.  Start the program by entering:
  204.  
  205.                 PCWATCH
  206.  
  207.               The PCWATCH logo screen appears.  After a few seconds,
  208.               the Specify PCWATCH Parameters screen (shown below)
  209.               appears with the large block cursor on the top line in
  210.               the box labeled "Categories."
  211.  
  212.   ----------------------------------------------------------------------------
  213.  
  214.                            Specify PCWATCH Parameters
  215.  
  216.      ----Categories-----     -------Options--------     --Specific Events--
  217.      | BIOS            |     | Monochrome Display |     | Int00 DivByZero |
  218.      | COMMUNICATIONS  |     | Graphics Display   |     | Int01 SinglStep |
  219.      | DISK/DISKETTE   |     | Split Screen Mode  |     | Int03 BreakPt   |
  220.      | DOS             |     |   Top to line [13] |     | Int04 Overflow  |
  221.      | EXTERNAL        |     |   Bottom from [13] |     | Int05 PrtSc     |
  222.      | FILE SYSTEM     |     | Printer     [LPT1] |     | Int06 InvalidOp |
  223.      | KEYBOARD        |     | Max Output  [9999] |     | Int08 IRQ0-time |
  224.      | NOISE           |     | Wait for Keystroke |     | Int09 IRQ1-keyb |
  225.      | PRINTER         |     | Start by Rebooting |     | Int0A IRQ2-slav |
  226.      | TIMER           |     | Exit to Debugger   |     | Int0B IRQ3-com2 |
  227.      | USER DEFINED 1  |     | Register Display   |     | Int0C IRQ4-com1 |
  228.      | USER DEFINED 2  |     |   Input Registers  |     | Int0D IRQ5-fdsk |
  229.      | USER DEFINED 3  |     |   Output Registers |     | Int0E IRQ6-dskt |
  230.      | VIDEO           |     |   Control Blocks   |     | Int0F IRQ7-prtr |
  231.      | Disabled Entry  |     |   Nested Events    |     | Int10 Set mode  |
  232.      | Exit with Carry |     |                    |     | Int10 Curs type |
  233.      -------------------     ----------------------     ---PgDn for More---
  234.  
  235.      F1 Include/Select   F2 Exclude        F3 Quit           F4 Start PCWATCH
  236.      F5 Save Setup       F6 Recall Setup   F7 EGA 43 Lines   F8 Show Keys
  237.  
  238.   ----------------------------------------------------------------------------
  239.  
  240.                                       3
  241.  
  242.           4.  Use the Cursor Down key to move the cursor to the line
  243.               "DOS."
  244.  
  245.           5.  Press F1 (Include/Select).
  246.  
  247.               The word "DOS" becomes highlighted and the designation
  248.               "Include" appears to its right.
  249.  
  250.                  NOTE:  If you make a mistake anywhere in the next few
  251.                  steps, press F3 (Quit) and return to step 3.
  252.  
  253.           6.  Move the cursor down to "NOISE."
  254.  
  255.           7.  Press F2 (Exclude).
  256.  
  257.               "Exclude" appears to the right of "NOISE" and to the
  258.               left of one of the events listed in the Specific Events
  259.               box at the far right.
  260.  
  261.           8.  Press PgDn three or four times to see other events that
  262.               are included in the Noise category.
  263.  
  264.           9.  Move the cursor to the center box labeled "Options."
  265.  
  266.          10.  Do one of the following:
  267.  
  268.               o  If you have a one-display system, go to step 11.
  269.  
  270.               o  If you have a two-display system, move the cursor to
  271.                  the type of display PCWATCH is not running on and
  272.                  press F1.  (For example, if the Specify PCWATCH
  273.                  Parameters screen is now on your monochrome display,
  274.                  select "Graphics Display.")
  275.  
  276.          11.  Move the cursor to the "Output Registers" line.
  277.  
  278.          12.  Press F1 (Include/Select).
  279.  
  280.          13.  Press F4 (Start PCWATCH).
  281.  
  282.          You have just requested that PCWATCH monitor all DOS services
  283.          as they occur, showing the registers' contents both on entry
  284.          into and exit from the interrupt routine for each occurrence.
  285.          By excluding the category Noise, you requested that no
  286.          services that occur when the machine is in an idle state
  287.          (waiting for input) should be shown.
  288.  
  289.                                       4
  290.  
  291.          If you have a one-display system, the screen clears, PCWATCH
  292.          lists the interrupts that are occurring in the top half, and
  293.          the DOS prompt appears in the bottom half.  This is referred
  294.          to as "Split Screen mode."  Half of your display is being
  295.          used by PCWATCH and the other half by DOS.  The solid line
  296.          dividing the two sections indicates that Split Screen mode is
  297.          active.
  298.  
  299.          If you have a two-display system, one display fills with
  300.          output from PCWATCH while the DOS prompt appears at the top
  301.          of the other.
  302.  
  303.          Regardless of the number of displays you have, when the DOS
  304.          prompt appears, the output generated by PCWATCH stops.
  305.  
  306.          In the PCWATCH output, a special line called "the marker" is
  307.          highlighted.  This line traverses the PCWATCH screen while
  308.          PCWATCH is active and serves the following purposes:
  309.  
  310.          o  It tracks where the next output line generated by PCWATCH
  311.             will appear.
  312.  
  313.             The line immediately above the marker is always the most
  314.             recent event that PCWATCH has displayed.  When the marker
  315.             reaches the bottom of the PCWATCH screen (or PCWATCH
  316.             partition if you are using the Split Screen mode), it
  317.             returns to the top and starts over, overwriting the oldest
  318.             output line from PCWATCH.  This way, only the most recent
  319.             events are kept on the display.
  320.  
  321.          o  It labels the various fields shown on each line of
  322.             PCWATCH output.
  323.  
  324.             The leftmost field is the CS IP field.  This has the
  325.             Code Segment and Instruction Pointer addresses that the
  326.             service returns to when it has completed.
  327.  
  328.             The name of the service immediately follows the CS IP
  329.             field.  This is the name as it appears in the PCWATCH
  330.             tables.  You can supply your own names for system services
  331.             by customizing PCWATCH with the PCWTBLB program.  (See
  332.             "The PCWATCH Tables" for more information.)
  333.  
  334.             If the CS and IP registers are separated by a colon (:),
  335.             the remaining values shown on the line are the registers
  336.             on entry to the service.  If the separator character is a
  337.             slash (/), the values shown are the contents of the
  338.             registers when the service completed.  Any changes to the
  339.             registers that occurred as a result of invoking the
  340.             service function are highlighted.
  341.  
  342.          o  It serves as a counter to keep track of the number of
  343.             events that PCWATCH has displayed.
  344.  
  345.             The event count appears after the word "Service" in the
  346.             marker.
  347.  
  348.                                       5
  349.  
  350.          For certain services, additional output lines will also
  351.          appear.  These lines are used to display common arguments
  352.          such as ASCIIZ strings, File Control Blocks (FCBs), diskette
  353.          parameters, and other information used by system functions.
  354.          These lines are labeled at the left and indented slightly so
  355.          that they can be readily distinguished from the register
  356.          information.
  357.  
  358.          Continue the PCWATCH demo on your own.  Try running some
  359.          common DOS commands, such as DIR and TYPE, and see what
  360.          happens while they run.  Press the Enter key a couple of
  361.          times, also.
  362.  
  363.          You may notice that PCWATCH slows your system down slightly.
  364.          This is due to the overhead of intercepting and displaying
  365.          the services.  PCWATCH is currently running in "real time"
  366.          mode.  Sometimes the services will go by so fast that you
  367.          will not be able to read them unless you use Ctrl-Num Lock to
  368.          freeze the system's operation.  Even then, it would be hard
  369.          to stop the output at the right times.
  370.  
  371.          However, PCWATCH also has a "slow-motion" mode of operation,
  372.          allowing an entire screen or partition to fill with PCWATCH
  373.          output and then causing the computer to halt until you press
  374.          a key.  This mode of operation is selected from the Specify
  375.          PCWATCH Parameters screen by including the Wait for Keystroke
  376.          option.  Since PCWATCH passes these keystrokes through to DOS
  377.          or the program you are running, press the left or right Shift
  378.          key rather than a character.  (See the section "Wait for
  379.          Keystroke for more information.)
  380.  
  381.          You can temporarily deactivate the output from PCWATCH by
  382.          pressing Alt-S.  This suspends the appearance of PCWATCH
  383.          output, but all of the normal monitoring that you selected
  384.          continues to be in effect so that you can resume it at a
  385.          later time.  To resume the PCWATCH output, press Alt-R.
  386.          PCWATCH can be suspended and later resumed any number of
  387.          times.
  388.  
  389.          To return your system to normal operation, press Alt-T to
  390.          terminate PCWATCH.  Once you have terminated PCWATCH, it can
  391.          no longer be resumed.  To restart PCWATCH, enter the PCWATCH
  392.          command again.
  393.  
  394.          The PCWATCH Suspend, Resume, and Terminate keys can be used
  395.          at any time while PCWATCH is active, even while programs are
  396.          running.  Although these functions are assigned by default to
  397.          Alt-S, Alt-R, and Alt-T, you can associate them with keys of
  398.          your preference using the PCWTBLB program.  (See "The PCWATCH
  399.          Tables" for more information.)
  400.  
  401.                                       6
  402.  
  403.    The PCWATCH Command~
  404.    -------------------
  405.  
  406.          The PCWATCH command is completely interactive because PCWATCH
  407.          is intended to be used solely as an interactive tool.  There
  408.          are no command arguments; all inputs and options are
  409.          indicated using the Specify PCWATCH Parameters screen.
  410.  
  411.          Start PCWATCH by entering:
  412.  
  413.             d:PCWATCH
  414.  
  415.          at the DOS prompt, where "d" is the letter of the drive where
  416.          your file PCWATCH.COM is located (if it is not in your
  417.          current directory).
  418.  
  419.          If the resident portion of PCWATCH is not already installed
  420.          in your system, you see the PCWATCH logo screen.  PCWATCH
  421.          removes the logo screen after a few seconds or as soon as you
  422.          press a key.
  423.  
  424.          The Specify PCWATCH Parameters screen appears next.
  425.          Normally, your approach to this screen should be to move the
  426.          cursor to the appropriate categories or specific events that
  427.          you want to include or exclude and select them using F1
  428.          (Include/Select) or F2 (Exclude).  After you have finished
  429.          indicating the types of services you want to watch, move the
  430.          cursor to the Options window and select from these options.
  431.          Briefly review your selections (all included and excluded
  432.          items will be highlighted) and, if they are correct, activate
  433.          PCWATCH by pressing F4.
  434.  
  435.          If you make a mistake and include something you want to
  436.          exclude, move the cursor back to that item and press F2.  If
  437.          you change your mind completely and decide not to start
  438.          PCWATCH after all, press F3 to exit.
  439.  
  440.          Once you press F4 to start PCWATCH, the PCWATCH program is
  441.          installed and begins intercepting all the appropriate
  442.          services.  Those that meet the selection criteria you've
  443.          specified cause PCWATCH to produce output on the display or
  444.          printer you selected.  PCWATCH continues to operate in this
  445.          manner until you enter the PCWATCH command again or press
  446.          either the Suspend key or the Terminate key.
  447.  
  448.          If you think you might want to run PCWATCH again with a
  449.          similar or identical set of events and options, you can use
  450.          the F5 key to save your current specifications for later use.
  451.          When you press F5, PCWATCH first attempts to save your setup
  452.          specifications in a file called PCWATCH.PRO in the current
  453.          directory of the default drive.  If PCWATCH is unable to
  454.          create a file (because the drive is not ready, the diskette
  455.          is write-protected, or there is no space available), it saves
  456.          the current setup information in memory, from which it can
  457.          later be recalled.
  458.  
  459.                                       7
  460.  
  461.          Use F6 to recall a saved setup specification.  Like the save
  462.          function, a recall first looks for a PCWATCH.PRO file in the
  463.          current directory of the default drive.  If none can be
  464.          found, PCWATCH then looks to see if a saved set of
  465.          specifications is available in memory.  Failing that, PCWATCH
  466.          recalls the specifications that were used the last time
  467.          PCWATCH was started.  An informational message at the bottom
  468.          of the screen indicates the type of setup information that
  469.          was recalled.
  470.  
  471.          If you have an IBM Enhanced Graphics Adapter (EGA) attached
  472.          to a monochrome or an IBM Enhanced Color Display, you can use
  473.          the F7 key to toggle between the 25- and 43-line fonts.  The
  474.          43-line font permits you to display more PCWATCH output at
  475.          one time than the 25-line font.  Also, the 43-line font
  476.          permits you to specify that output from PCWATCH should appear
  477.          only in lines 26 through 43, giving you the use of a full 25
  478.          by 80 screen for your applications without the need of two
  479.          displays.  See "PCWATCH Options" for more information on how
  480.          to set up this kind of split screen operation.
  481.  
  482.  
  483.    PCWATCH Categories and Specific Events~
  484.  
  485.          The left window on the Specify PCWATCH Parameters screen is
  486.          labeled "Categories" and the right window is labeled
  487.          "Specific Events."  These windows are related in that either
  488.          may be used to indicate services that you want to watch or
  489.          not watch.  However, the items listed in the Categories
  490.          window refer to groups of individual services listed in the
  491.          Specific Events window.
  492.  
  493.          The Specific Events window can be paged forward or backward
  494.          using the PgDn and PgUp keys.  Using Ctrl-PgDn takes you to
  495.          the end of the list; using Ctrl-PgUp returns you to the
  496.          beginning.
  497.  
  498.          One line appears in this window for each service (or event)
  499.          that has been defined in the PCWATCH tables.  You can add or
  500.          delete items in this list, or modify existing items, by
  501.          updating the PCWATCH tables directly.  (See "The PCWATCH
  502.          Tables" for more information.) The PCWATCH tables also
  503.          determine which services in this list belong to which
  504.          category on the left.
  505.  
  506.          To include an entire category of services, move the cursor to
  507.          the appropriate category in the left window and press F1.
  508.          You can see which services have been selected by paging
  509.          backward and forward through the Specific Events window and
  510.          noting the services that have been designated with the
  511.          "Include" indicator.  If you want to exclude one or more of
  512.          the services in a category, move the cursor to the specific
  513.          service in the Specific Events window and press F2.
  514.  
  515.                                       8
  516.  
  517.          Some of the events on the right are classified as belonging
  518.          to several categories.  For example, the category Keyboard
  519.          includes some events from the BIOS category as well as some
  520.          from the DOS category.  Consequently, when you exclude a
  521.          category, you may end up excluding some events from other
  522.          categories as well.
  523.  
  524.          The most commonly excluded category is Noise.  Noise is
  525.          essentially defined here to mean any service or event which
  526.          occurs while the computer is in an idle state.  Examples of
  527.          services in the Noise category are interrupt 08 (Time of Day)
  528.          and interrupt 1C (Timer Tick), both of which occur 18 times a
  529.          second, and interrupt 16, AH=1 (Test for Key), which DOS uses
  530.          constantly to poll the keyboard to determine if there is
  531.          anything to do yet.
  532.  
  533.          Generally speaking, because services in this category are
  534.          used so heavily and so frequently even when nothing is going
  535.          on, they are almost never of interest.  Some liberties have
  536.          been taken with this definition and some additional services
  537.          have been included which do not actually occur in the idle
  538.          state but are otherwise heavily used and usually
  539.          uninteresting.  One of these, for example, is the DOS service
  540.          interrupt 3E (Close a File Handle).  DOS issues 15 of these
  541.          each time a program exits, whether they are needed or not.
  542.  
  543.          You might enjoy watching the Noise category of events just to
  544.          see why "noise" events are usually excluded.
  545.  
  546.          The inclusion of one or more categories makes groups of
  547.          events eligible to appear in PCWATCH's output.  What actually
  548.          appears in the output are included events that have not been
  549.          excluded.  (Remember that some categories overlap, so that
  550.          some services may be both included and excluded.) The rule is
  551.          that "exclude" overrides "include," except that including a
  552.          specific event directly overrides excluding it via a
  553.          category.
  554.  
  555.          In practice, therefore, if you mark a particular service for
  556.          exclusion in the right-hand window, it will definitely be
  557.          excluded and you will never see it.  If you mark a particular
  558.          service in the right-hand window as included, it will
  559.          definitely be included and you will see it if it occurs, even
  560.          if it is a member of a category that you later excluded.
  561.  
  562.          Two final points on this topic:
  563.  
  564.          1.  You can always change your mind.  For instance, if you
  565.              have excluded something that you meant to include, just
  566.              move the cursor back to it and press the include key.
  567.  
  568.          2.  Your include/exclude specifications remain in effect only
  569.              until you terminate PCWATCH or run the PCWATCH command
  570.              again.
  571.  
  572.                                       9
  573.  
  574.    PCWATCH Categories~
  575.  
  576.          PCWATCH's categories are described in the sections below.
  577.  
  578.  
  579.    BIOS~
  580.  
  581.          The basic input/output (BIOS) routines described in your
  582.          machine's Technical Reference manual.
  583.  
  584.  
  585.    Communications~
  586.  
  587.          All BIOS and DOS services that pertain to the use of the
  588.          RS-232 ports, PC Cluster, or the PC Network.
  589.  
  590.  
  591.    Disk/Diskette~
  592.  
  593.          All BIOS and DOS services that pertain directly to physical
  594.          operations on diskettes or fixed disks.
  595.  
  596.  
  597.    DOS~
  598.  
  599.          Services described in the DOS Technical Reference (or
  600.          Appendix D of the earlier DOS manuals).
  601.  
  602.  
  603.    External~
  604.  
  605.          External interrupts that occur as a result of IRQ signals on
  606.          the IBM PC bus.
  607.  
  608.  
  609.    File System~
  610.  
  611.          DOS services that pertain to operations on files.
  612.  
  613.  
  614.    Keyboard~
  615.  
  616.          BIOS and DOS services in support of the keyboard.
  617.  
  618.  
  619.    Noise~
  620.  
  621.          Essentially, services or events that occur regularly while
  622.          the PC is in an idle state.
  623.  
  624.  
  625.    Printer~
  626.  
  627.          BIOS and DOS services in support of printers.
  628.  
  629.  
  630.    Timer~
  631.  
  632.          BIOS services that relate to the time-of-day clock and the
  633.          use of the internal timer.
  634.  
  635.                                       10
  636.  
  637.    User Defined 1, 2, and 3~
  638.  
  639.          You can define the meaning of these categories any way you
  640.          want by modifying the PCWATCH tables.
  641.  
  642.  
  643.    Video~
  644.  
  645.          BIOS and DOS services in support of displays.
  646.  
  647.  
  648.    Disabled Entry~
  649.  
  650.          This category is somewhat different from those above in that
  651.          it does not refer directly to any specific events.  Instead,
  652.          when you include Disabled Entry, PCWATCH monitors every
  653.          interrupt defined in the PCWATCH.TBL file to see if it is
  654.          issued while the machine is in a disabled state.
  655.  
  656.          Since most of the services represented by interrupts
  657.          immediately re-enable the machine for additional interrupts,
  658.          an occurrence of this condition may be indicative of a
  659.          software error.  Errors of this sort can be particularly
  660.          elusive to find using normal debugging tools but can be
  661.          readily discerned with PCWATCH.
  662.  
  663.  
  664.    Exit with Carry~
  665.  
  666.          This category also does not refer to any group of specific
  667.          events but causes PCWATCH to report any service which returns
  668.          to its caller with the carry flag set.  Since this convention
  669.          is used by many DOS services and some BIOS services to
  670.          represent the occurrence of an error, it can frequently be of
  671.          interest when debugging a problem.
  672.  
  673.                                       11
  674.  
  675.    PCWATCH Options~
  676.  
  677.          The center window of the Specify PCWATCH Parameters screen
  678.          displays the options of the PCWATCH program.  To select an
  679.          option, move the cursor until it covers the desired option
  680.          and press F1.  PCWATCH highlights the option to indicate that
  681.          it has been selected.  Default options are already
  682.          highlighted when you start PCWATCH.
  683.  
  684.          To deselect an option, move the cursor to it and press F2.
  685.          PCWATCH removes the highlighting to indicate that the option
  686.          is no longer selected.
  687.  
  688.          Some of the options in the list are related.  For instance,
  689.          the Printer [LPTx] option and the display options are
  690.          mutually exclusive.  Selecting the Printer [LPTx] option
  691.          automatically deselects all of the display options.
  692.          Similarly, if you deselect the Register Display option, all
  693.          of its subordinate options (Input Registers, Output
  694.          Registers, Control Blocks, and Nested Events) are
  695.          automatically deselected because Register Display is a
  696.          prerequisite for the others.
  697.  
  698.          You will find it difficult to make a mistake because PCWATCH
  699.          will not let you select a conflicting set of options or omit
  700.          one that is needed for another.
  701.  
  702.          Most of the options you select remain selected as defaults
  703.          the next time you run PCWATCH, provided you have not rebooted
  704.          or powered off your computer since then.  As a convenience,
  705.          certain specialty options (such as Start by Rebooting and
  706.          Exit to Debugger) are never automatically selected when
  707.          PCWATCH is started.
  708.  
  709.          Descriptions of the options are given below.
  710.  
  711.  
  712.    Monochrome Display~
  713.  
  714.          If you are using your monochrome display when you start
  715.          PCWATCH, this option will always be selected by default, even
  716.          if you have a two-display system.  This is primarily because
  717.          PCWATCH cannot tell whether or not your other display is on.
  718.  
  719.          If you have a two-display system, the monochrome display is
  720.          usually your best choice for PCWATCH output because it can be
  721.          updated more rapidly than your graphics display.  The
  722.          exception to this rule is if your graphics display is
  723.          attached to an IBM Enhanced Graphics Adapter, in which case
  724.          it is faster.
  725.  
  726.                                       12
  727.  
  728.    Graphics Display~
  729.  
  730.          This option directs PCWATCH to place its output on the
  731.          display attached to your IBM Color/Graphics Monitor Adapter.
  732.          You should be aware, however, that PCWATCH always operates
  733.          the graphics adapter in text mode, never in graphics mode.
  734.  
  735.          Because the standard graphics adapter is slower than the
  736.          monochrome adapter, it is possible to overrun it if you
  737.          include too much output from PCWATCH.  You can avoid this
  738.          condition by always excluding services in the Noise or Timer
  739.          categories.
  740.  
  741.  
  742.    Split Screen Mode~
  743.  
  744.          If you have a one-display system, PCWATCH will insist on
  745.          operating in Split Screen mode.  In this mode, PCWATCH uses
  746.          either the upper or lower portion of your display to show
  747.          your output, while DOS and programs running under DOS use the
  748.          other portion.  You can specify which part of the screen
  749.          should be used for PCWATCH's output with one of the next two
  750.          options (Top to line [xx] and Bottom from [xx]).
  751.  
  752.          In either case, the split line may be as small as three or as
  753.          large as three less than the maximum number of lines on your
  754.          display.  Displays attached to an IBM Enhanced Graphics
  755.          Adapter can have as many as 58 lines on the screen, depending
  756.          on the active font.  The F7 key may be used as a toggle to
  757.          select either a 25- or 43-line font if you have a monochrome
  758.          or IBM Enhanced Color Display attached to an EGA card.
  759.  
  760.  
  761.    Top to line [xx]~
  762.  
  763.          When you select this option, the cursor narrows to bring your
  764.          attention to the number in brackets just to the right of the
  765.          words "Top to line."  This is the number of the line where
  766.          the split should occur; PCWATCH uses only the portion of the
  767.          screen above this line.  The default value is 13.  Press
  768.          Enter to accept the default or enter a new value.
  769.  
  770.  
  771.    Bottom from [xx]~
  772.  
  773.          When you select this option, the cursor narrows to bring your
  774.          attention to the number in brackets just to the right of the
  775.          words "Bottom from."  This is the number of the line where
  776.          the split should occur; PCWATCH will use only the portion of
  777.          the screen below this line.  Ordinarily the default value is
  778.          13, but if you use the F7 key to select the EGA 43-line mode,
  779.          the default value is 26.  Press Enter to accept the default
  780.          or enter a new value.
  781.  
  782.             NOTE:  Using the Split Screen mode with "Bottom from [26]"
  783.             is the ideal way to use PCWATCH whenever you are using the
  784.             EGA 43-line font.  This permits you to run full screen
  785.             applications in the top 25 lines and still generate a
  786.             useful amount of PCWATCH output on a single display.
  787.  
  788.                                       13
  789.  
  790.    Printer [LPTx]~
  791.  
  792.          This option directs PCWATCH to route all of its output to a
  793.          parallel printer of your choice.  This can be used to obtain
  794.          a permanent record of services monitored by PCWATCH.
  795.  
  796.          When you select the Printer [LPTx] option, the cursor narrows
  797.          until it covers only the number following the letters "LPT"
  798.          just to the right of "Printer." Either enter the number of
  799.          your printer (1, 2, or 3), or press Enter to accept the
  800.          default (1).  The cursor then resumes its normal length.
  801.  
  802.          Because PCWATCH output is produced while your programs are
  803.          running, the use of the printer slows down your system
  804.          considerably.  It is a good idea whenever you use the Printer
  805.          [LPTx] option to be as specific as possible when including
  806.          events to watch.  Since the system may run very slowly if
  807.          many services have been included, it could take several
  808.          seconds for PCWATCH to even respond to the Terminate or
  809.          Suspend key.
  810.  
  811.  
  812.    Max Output [xxxx]~
  813.  
  814.          This option is primarily intended for use in conjunction with
  815.          the Exit to Debugger option.  When you select this option,
  816.          you indicate the maximum number of services for which PCWATCH
  817.          should produce output.  When this number has been reached,
  818.          PCWATCH deactivates itself automatically.
  819.  
  820.          If used with the Exit to Debugger option, this deactivation
  821.          causes PCWATCH to exit to your resident debugging program as
  822.          if a call to it had occurred immediately following the final
  823.          service monitored by PCWATCH.  (See "Exit to Debugger" for
  824.          more information.)
  825.  
  826.          When you select the Max Output [xxxx] option, the cursor
  827.          narrows to cover the maximum number of events.  Enter the
  828.          value you want.  The cursor then returns to its normal size.
  829.  
  830.                                       14
  831.  
  832.    Wait for Keystroke~
  833.  
  834.          This option causes PCWATCH to operate in "slow motion" so
  835.          that each output line can be closely inspected.  When
  836.          operating in this mode, PCWATCH allows the computer to run
  837.          until its screen or partition has filled.  Then PCWATCH halts
  838.          the computer until you press a key so you can review the
  839.          output.
  840.  
  841.          Although PCWATCH waits until you press a key, it does not
  842.          consume the key itself.  That is, any key you press will be
  843.          allowed to go into the system's internal keyboard buffer.
  844.          This permits you to continue to interact with programs that
  845.          require keyboard input.  You will understand better what we
  846.          mean when you have to enter a command to DOS while PCWATCH is
  847.          still in Wait for Keystroke mode.
  848.  
  849.          It is recommended that you press a Shift key to signal that
  850.          PCWATCH should continue so that no unintended characters
  851.          enter the keyboard buffer.  If you are watching a large
  852.          number of events, you must be quick and light on the Shift
  853.          keys or the screen will fill and continue before you've had a
  854.          chance to study it.
  855.  
  856.  
  857.    Start by Rebooting~
  858.  
  859.          This option instructs PCWATCH to relocate itself to the upper
  860.          portion of memory and simulate a boot sequence while
  861.          remaining active.  This permits you to watch stand-alone
  862.          programs and DOS device drivers while they are being
  863.          installed.
  864.  
  865.          PCWATCH requires the use of the upper 48KB of memory when
  866.          this option is selected.
  867.  
  868.          To monitor the use of DOS services during the reboot process,
  869.          you should first make certain that PCWATCH.SYS has been added
  870.          to your CONFIG.SYS file.  (See "The PCWATCH.SYS Device
  871.          Driver" for further information.)
  872.  
  873.                                       15
  874.  
  875.    Exit to Debugger~
  876.  
  877.          This option tells PCWATCH to start your resident debugging
  878.          program when the number of services specified by the Max
  879.          Output [xxxx] option have occurred.  It is a powerful way to
  880.          give control to your debugger at a precise point without
  881.          inserting special traps or debugging code into existing
  882.          programs.
  883.  
  884.          A resident debugging program is one which has already been
  885.          installed prior to running PCWATCH and can respond to an
  886.          interrupt, such as interrupt 01 (Single Step), interrupt 02
  887.          (Nonmaskable), or interrupt 03 (Breakpoint).  A good example
  888.          of a resident debugger is provided by the Resident Debug Tool
  889.          (RDT) in IBM's Professional Debug Facility.  PCWATCH comes
  890.          with tables preconfigured to invoke RDT using the nonmaskable
  891.          interrupt.
  892.  
  893.          In most circumstances, this feature can also be used with the
  894.          standard DOS 3.0 (or later) DEBUG program using interrupt 01
  895.          (Single Step).  To use PCWATCH with DEBUG:
  896.  
  897.          1.  Modify your PCWATCH.TBL file to use interrupt 01 as the
  898.              debug interrupt.  (See "The PCWATCH Tables" for more
  899.              information.)
  900.  
  901.          2.  Run the PCWTBLB program to install the new tables into
  902.              PCWATCH.
  903.  
  904.          3.  From DOS, enter the command:
  905.  
  906.                 DEBUG COMMAND.COM
  907.  
  908.          4.  In response to the prompt from DEBUG, enter:
  909.  
  910.                 G
  911.  
  912.              (for "GO").  COMMAND.COM displays its usual startup
  913.              message and returns to the DOS prompt.  DEBUG is now
  914.              installed and ready to use with PCWATCH.
  915.  
  916.          You must exercise some caution when using the Exit to
  917.          Debugger option with DEBUG because DEBUG uses DOS services
  918.          for console input and output.  You should avoid causing the
  919.          Exit to Debugger option to occur during any DOS console
  920.          services (interrupt 21 services 01 thru 0C).
  921.  
  922.          Exactly when the entry to your debugger occurs depends upon
  923.          whether or not you have selected the Output Registers or
  924.          Nested Events option.  If you have chosen either, PCWATCH
  925.          calls your debugger immediately following the completion of
  926.          the selected service but before returning.  The CS:IP value
  927.          upon entry to the debugger points to the instruction where
  928.          the service routine would have returned.
  929.  
  930.          If you have not selected Output Registers or Nested Events,
  931.          PCWATCH enters your debugger with the CS and IP registers
  932.          pointing to the first instruction of the selected service.
  933.  
  934.                                       16
  935.  
  936.          One exception you should be aware of is when the service that
  937.          triggers the Exit to Debugger has the Oneway attribute in the
  938.          PCWATCH tables.  In this case, the debugger is entered prior
  939.          to the start of the service regardless of the selected output
  940.          options.  (See "The PCWATCH Tables" for more information on
  941.          the Oneway attribute.)
  942.  
  943.  
  944.    Register Display~
  945.  
  946.          This option helps you designate what PCWATCH should include
  947.          in its output.  You can specify exactly what you want to see
  948.          with the four options indented below "Register Display."
  949.  
  950.          If you deselect the Register Display option, PCWATCH produces
  951.          an "event display."  This is a trace of each event giving
  952.          only its return address (CS:IP values) and name, not the
  953.          contents of its registers.  It is a quick way to scan a large
  954.          number of services to see the sequence in which they occur.
  955.          For an event display, PCWATCH places up to three events on
  956.          each line and uses a short marker to keep its place across
  957.          the line.  The event marker moves from left to right and from
  958.          top to bottom.
  959.  
  960.  
  961.    Input Registers~
  962.  
  963.          This option governs whether or not PCWATCH displays the
  964.          contents of the registers upon entry into each service.  The
  965.          marker is used to label the registers.
  966.  
  967.  
  968.    Output Registers~
  969.  
  970.          This option governs whether or not PCWATCH displays the
  971.          contents of the registers upon exit from a service.  As with
  972.          the Input Registers option, the marker is used to label the
  973.          registers.  Any changes in the registers' contents as a
  974.          result of the service are highlighted.
  975.  
  976.          Note that output registers cannot be displayed for any
  977.          services in the PCWATCH tables that have the Oneway
  978.          attribute.  Output registers are not meaningful for Oneway
  979.          services.
  980.  
  981.                                       17
  982.  
  983.    Control Blocks~
  984.  
  985.          This option controls the formatting and display of
  986.          information other than the contents of the registers.  If
  987.          selected, it allows you to see ASCIIZ strings and FCBs used
  988.          with DOS services, diskette parameters, disk status
  989.          information, and, for some services, 32 bytes of unformatted
  990.          information pointed to by DS:BX, DS:DX, DS:SI, ES:BX, or
  991.          ES:DI.
  992.  
  993.          Whether or not control blocks apply to particular services is
  994.          indicated by information in the PCWATCH tables and can be
  995.          assigned as appropriate based on your specifications.  See
  996.          Appendix A for explanations of the individual control block
  997.          types PCWATCH can display.
  998.  
  999.  
  1000.    Nested Events~
  1001.  
  1002.          This option provides a "how does it work?" capability.  When
  1003.          an included event or service occurs, all subsequent services
  1004.          which occur between the time that the included event starts
  1005.          and the time it returns to its invoker are automatically
  1006.          included and presented as PCWATCH output.  This allows you to
  1007.          see just what goes on internally within a particular service.
  1008.  
  1009.          Note that the rule about excluded services still applies, and
  1010.          any services you have explicitly excluded (either by category
  1011.          or specific event) will not be shown.  In this way, Noise
  1012.          services can still be filtered out.
  1013.  
  1014.                                       18
  1015.  
  1016.    The PCWATCH Tables~
  1017.    ------------------
  1018.  
  1019.          Because PCWATCH is completely table-driven, it can be readily
  1020.          customized.  All of the default customizations and table
  1021.          entries are provided with PCWATCH in a file named
  1022.          PCWATCH.TBL.  So that modifying the table information can be
  1023.          as easy as possible, all entries are stored as ASCII text.
  1024.          Consequently, you can view or print the tables with standard
  1025.          DOS commands and modify them with a text editor that operates
  1026.          on ASCII files.
  1027.  
  1028.          However, the ASCII table format is not the most efficient
  1029.          representation for PCWATCH to use during its operation.
  1030.          Therefore, the PCWATCH Table Builder program (PCWTBLB) is
  1031.          provided to "compile" the table information directly into the
  1032.          PCWATCH program itself.
  1033.  
  1034.          To modify, add, or delete table entries:
  1035.  
  1036.          1.  Edit the PCWATCH.TBL file as desired.
  1037.  
  1038.          2.  Run PCWTBLB to update the PCWATCH program with the
  1039.              revised table information.
  1040.  
  1041.          This effectively produces a new version of the PCWATCH
  1042.          program, customized specifically for your use.
  1043.  
  1044.          When you edit your PCWATCH.TBL file, it is recommended that
  1045.          you "comment out" entries that do not apply to your system
  1046.          configuration rather than delete them entirely.  To remove an
  1047.          entry, just convert it to a comment by placing a semicolon
  1048.          (;) before it.  To restore an entry, remove the semicolon.
  1049.  
  1050.          The table file supplied with PCWATCH has definitions for most
  1051.          interrupts used by DOS 3.1 and earlier and many that are
  1052.          specific to certain models or device adapters of the IBM PC
  1053.          family.  These are labeled with appropriate comments in
  1054.          PCWATCH.TBL.
  1055.  
  1056.                                       19
  1057.  
  1058.    The PCWATCH.TBL File~
  1059.  
  1060.          You can make four types of definitions in the PCWATCH.TBL
  1061.          file:
  1062.  
  1063.          o  Terminate, Suspend, and Resume keys
  1064.  
  1065.             You can define which keys will terminate, suspend, or
  1066.             resume PCWATCH output.  The format of these lines is
  1067.             "terminate key = ", "suspend key = ", or "resume key = "
  1068.             followed by the name of the key.  (See "Names for PCWATCH
  1069.             Key Selections" for a list of the valid key names.)
  1070.  
  1071.          o  Exit to Debugger method
  1072.  
  1073.             This definition allows you to indicate which method should
  1074.             be used to call your debugger when using the Exit to
  1075.             Debugger option.  The format of this line is "debug int = "
  1076.             followed by a hexadecimal number between 0 and FF.
  1077.  
  1078.             The most common values used are interrupt 01 (Single
  1079.             Step), interrupt 02 (Nonmaskable), and interrupt 03
  1080.             (Breakpoint).  Consult the documentation for your debugger
  1081.             to determine the method that will work for you.
  1082.  
  1083.          o  Interrupts
  1084.  
  1085.             These lines allow you to define which specific events you
  1086.             will have the opportunity to select from the Specify
  1087.             PCWATCH Parameters screen.  Their format is:
  1088.  
  1089.                INT=xx  "name"  [attr,form]
  1090.  
  1091.             where:
  1092.  
  1093.                xx         is the interrupt number (in hexadecimal
  1094.                           format).
  1095.  
  1096.                name       is the name for the interrupt that you want
  1097.                           to appear in PCWATCH's output.  It can be up
  1098.                           to 15 characters long and must be enclosed
  1099.                           in double quotation marks.
  1100.  
  1101.                attr,form  are any attributes and formatting options
  1102.                           you want to apply to the interrupt (see
  1103.                           "Attributes" and "Formatting Options"
  1104.                           below).  Codes should be separated by
  1105.                           commas, and the entire list should be
  1106.                           enclosed in square brackets.  This field is
  1107.                           optional; you do not have to give attributes
  1108.                           and/or formatting options for every
  1109.                           interrupt.
  1110.  
  1111.                                       20
  1112.  
  1113.          o  Interrupt subfunctions
  1114.  
  1115.             These lines allow you to define the special cases of an
  1116.             interrupt so PCWATCH will recognize them.  Their format is
  1117.             the same as general interrupts, except that the "INT" is
  1118.             replaced by either "AH" or "AL."
  1119.  
  1120.             In general, subfunctions can be specified as based on AH
  1121.             or AL, and within either of these the other (AL or AH) can
  1122.             also be used to specify further subfunctions.  For
  1123.             example, INT=21 is used for DOS services, and within this
  1124.             interrupt AH is used to designate the particular DOS
  1125.             service.  For AH=44 (the DOS IOCTL function), AL further
  1126.             indicates the type of IOCTL function to be performed.
  1127.  
  1128.          You can add comments to the end of any of the definition
  1129.          lines by starting the comment with a semicolon (;).  (An
  1130.          entire line can be a comment if its first character is a
  1131.          semicolon.)
  1132.  
  1133.          Each of the definitions must fit on one line.
  1134.  
  1135.          All entries must be given in ascending order by interrupt
  1136.          number, and within interrupts, by subfunction number.
  1137.  
  1138.          If you want to modify the PCWATCH tables, be careful not to
  1139.          define any INT entries where BIOS, DOS, or other system
  1140.          components expect to find anchors or pointers to tables.  If
  1141.          PCWATCH were to install intercept routines over those
  1142.          locations, it could result in a hung system.  Make certain
  1143.          you understand what a particular interrupt is used for before
  1144.          you define it for PCWATCH.  Most presently known uses of
  1145.          interrupts as table anchors are currently noted via comments
  1146.          in the PCWATCH.TBL file.
  1147.  
  1148.                                       21
  1149.  
  1150.    Names for PCWATCH Key Selections~
  1151.  
  1152.          This is a list of all of the keys that can be specified in
  1153.          the PCWATCH.TBL file for assignment as the PCWATCH Resume,
  1154.          Suspend, or Terminate keys.  In general, keys may be
  1155.          specified using the designation that appears on the key tops.
  1156.          Names have been assigned to keys with only graphic
  1157.          designators.
  1158.  
  1159.          Note that C can be used for Ctrl, S for Shift, and A for Alt.
  1160.          Also, PCWTBLB accepts key names in either upper or lower
  1161.          case, with or without hyphens or spaces.
  1162.  
  1163.             Up
  1164.             Down
  1165.             Left                          Ctrl-Left
  1166.             Right                         Ctrl-Right
  1167.             PgUp                          Ctrl-PgUp
  1168.             PgDn                          Ctrl-PgDn
  1169.             Home                          Ctrl-Home
  1170.             End                           Ctrl-End
  1171.  
  1172.             Esc
  1173.             Tab                           Shift-Tab
  1174.             Backspace                     Ctrl-Backspace
  1175.             Enter (or Return)             Ctrl-Enter (or Ctrl-Return)
  1176.             Ins
  1177.             Del
  1178.  
  1179.             Alt-A through Alt-Z
  1180.             Alt-0 through Alt-9
  1181.  
  1182.             F1 through F10                Ctrl-F1 through Ctrl-F10
  1183.             Shift-F1 through Shift-F10    Alt-F1 through Alt-F10
  1184.  
  1185.             Keypad-Plus (or Keypad +)
  1186.             Keypad-Minus (or Keypad -)
  1187.             PrtSc-* (or PrtSc or *)       Ctrl-PrtSc
  1188.  
  1189.                                       22
  1190.  
  1191.    Attributes~
  1192.  
  1193.          The attribute field is used to group the specific events into
  1194.          the categories that can be selected from the Specify PCWATCH
  1195.          Parameters screen.  An interrupt can belong to more than one
  1196.          category.
  1197.  
  1198.          The attributes that can be specified are:
  1199.  
  1200.             Attribute
  1201.               Code                   Category
  1202.             ---------             --------------
  1203.  
  1204.                 B                 BIOS
  1205.  
  1206.                 C                 Communications
  1207.  
  1208.                 D                 DOS
  1209.  
  1210.                 E                 External
  1211.  
  1212.                 F                 File System
  1213.  
  1214.                 K                 Keyboard
  1215.  
  1216.                 N                 Noise
  1217.  
  1218.                 O                 Oneway
  1219.  
  1220.                 P                 Printer
  1221.  
  1222.                 S                 Disk/Diskette
  1223.  
  1224.                 T                 Timer
  1225.  
  1226.                 V                 Video
  1227.  
  1228.                 1                 User Defined 1
  1229.  
  1230.                 2                 User Defined 2
  1231.  
  1232.                 3                 User Defined 3
  1233.  
  1234.  
  1235.             NOTE:  Any services which do not (or might not) return to
  1236.             the invoker of the service must be defined to have the
  1237.             Oneway attribute listed above.  Omission of this attribute
  1238.             where it is needed could result in a hung system.
  1239.  
  1240.                                       23
  1241.  
  1242.    Formatting Options~
  1243.  
  1244.          The formatting options allow you to specify additional
  1245.          information you want displayed for an interrupt when you
  1246.          select the Control Blocks option.
  1247.  
  1248.          If you want the same formatting option to apply on both entry
  1249.          to and exit from a service, choose the code from the list
  1250.          below and add it to the list of attributes.  You may only
  1251.          choose one formatting option per service.
  1252.  
  1253.          However, if you want PCWATCH to display some information on
  1254.          entry to the service and/or different information on its
  1255.          return, you can choose two options.  Follow the option for
  1256.          entry with an "I" (for input) and the option for exit with an
  1257.          "O" (for output).
  1258.  
  1259.          The formatting options are:
  1260.  
  1261.             Format Code                      Function
  1262.             -----------      ----------------------------------------
  1263.  
  1264.                  A           Format the data at DS:[DX] as a DOS
  1265.                              ASCIIZ string.
  1266.  
  1267.                  G           Format the data at DS:[DX] as a DOS FCB.
  1268.  
  1269.                  H           Format the current BIOS diskette
  1270.                              parameters.
  1271.  
  1272.                  L           Format up to 13 words from the stack.
  1273.  
  1274.                  M           Format the status bytes from the disk or
  1275.                              diskette controller.
  1276.  
  1277.                  Q           Format the data at ES:[BX] as a PC
  1278.                              Network Control Block (NCB).
  1279.  
  1280.                  U           Format the 32 bytes at DS:[BX].
  1281.  
  1282.                  W           Format the 32 bytes at DS:[SI].
  1283.  
  1284.                  X           Format the 32 bytes at DS:[DX].
  1285.  
  1286.                  Y           Format the 32 bytes at ES:[BX].
  1287.  
  1288.                  Z           Format the 32 bytes at ES:[DI].
  1289.  
  1290.          For more information, see Appendix A.
  1291.  
  1292.                                       24
  1293.  
  1294.    A Sample PCWATCH.TBL File~
  1295.  
  1296.   ;  This is a very short sample of a PCWATCH.TBL file.
  1297.   ;  To see a long, detailed example, print out a copy of the PCWATCH.TBL
  1298.   ;    file that came with PCWATCH.
  1299.   ;
  1300.       terminate key = Alt-T       ;For immediate PCWATCH termination
  1301.       suspend key   = Alt-S       ;To suspend all PCWATCH output temporarily
  1302.       resume key    = Alt-R       ;To resume suspended PCWATCH output
  1303.   ;
  1304.       debug int = 2               ;Use nonmaskable interrupt to
  1305.                                   ;  trigger debugger
  1306.   ;----------------------------------------------------------------------------
  1307.   ;  Interrupt       Service       Attributes       Comments
  1308.   ;   Number           Name       & Formatting
  1309.   ;----------------------------------------------------------------------------
  1310.   ;
  1311.       INT=04    "Int04 Overflow"     [O]          ;Fixed overflow
  1312.       INT=05    "Int05 PrtSc"        [B,P]        ;Print screen
  1313.   ;
  1314.       INT=13    "Int13 Disk/ette"    [B,S,HI,MO]  ;Disk/diskette services
  1315.         AH=00   "Int13 DiskReset"    [B,S,HI]     ;  Reset disk(ette) system
  1316.         AH=02   "Int13 Read secs"    [B,S,HI,MO]  ;  Read sectors
  1317.         AH=03   "Int13 WriteSecs"    [B,S,HI,MO]  ;  Write sectors
  1318.   ;
  1319.       INT=21    "Int21 Dos Svc"      [D]          ;DOS services
  1320.         AH=01   "Dos01 Key input"    [D,K]        ;  Keyboard Input
  1321.         AH=06   "Dos06 Con I/O"      [D,K]        ;  Direct console I/O
  1322.         AH=44   "Dos44 IOCTL"        [D,F]        ;  I/O control for devices
  1323.           AL=00 "Dos44 Get info"     [D,F]        ;    Get device information
  1324.           AL=01 "Dos44 Set info"     [D,F]        ;    Set device information
  1325.           AL=06 "Dos44 InputStat"    [D,F]        ;    Get input status
  1326.           AL=07 "Dos44 OutptStat"    [D,F]        ;    Get output status
  1327.           AL=0A "Dos44 HRedirect"    [D,F]        ;    Handle redirected?
  1328.         AH=45   "Dos45 DupHandle"    [D,F]        ;  Duplicate file handle
  1329.         AH=47   "Dos47 Cur dir"      [D,F,AO]     ;  Get current directory
  1330.         AH=48   "Dos48 Alloc mem"    [D]          ;  Allocate memory
  1331.         AH=49   "Dos49 Free mem"     [D]          ;  Free allocated memory
  1332.         AH=4A   "Dos4A Set block"    [D]          ;  Modify alloc memory block
  1333.         AH=4B   "Dos4B Load/Exec"    [D,A]        ;  Load or execute a program
  1334.           AL=00 "Dos4B Execute"      [D,A]        ;    Execute a program
  1335.           AL=03 "Dos4B Load ovly"    [D,A]        ;    Load a program
  1336.         AH=4C   "Dos4C Exit"         [D,O]        ;  Terminate a process (EXIT)
  1337.         AH=4E   "Dos4E Find 1st"     [D,F,A]      ;  Find first matching file
  1338.         AH=4F   "Dos4F Find next"    [D,F]        ;  Find next matching file
  1339.   ;
  1340.   ;   INT=60    "Int60 User"         [1]          These three
  1341.   ;   INT=61    "Int61 User"         [1]            interrupts are
  1342.   ;   INT=62    "Int62 User"         [1]              "commented out."
  1343.  
  1344.                                       25
  1345.  
  1346.    The PCWTBLB Command~
  1347.  
  1348.          PCWTBLB takes the definitions you have stored in your
  1349.          PCWATCH.TBL file and modifies PCWATCH.COM so it can use these
  1350.          definitions.
  1351.  
  1352.          PCWTBLB reads and compiles the information in the table file
  1353.          into a format suitable for insertion into the PCWATCH
  1354.          program.  If PCWTBLB detects any errors, it produces
  1355.          diagnostic messages to help you isolate and correct them and
  1356.          the PCWATCH program file is not updated.  If no errors are
  1357.          detected, PCWTBLB creates a backup of the old PCWATCH program
  1358.          file (named PCWATCH.BAK) and produces a new version of the
  1359.          program file (using the name you specified) with the updated
  1360.          table information.
  1361.  
  1362.          The syntax of the PCWTBLB command is:
  1363.  
  1364.             PCWTBLB table-filename program-filename
  1365.  
  1366.          or
  1367.  
  1368.             PCWTBLB table-filename,program-filename
  1369.  
  1370.          "Table-filename" is the name of the file containing all your
  1371.          definitions.  The table file included with the program is
  1372.          PCWATCH.TBL, but you can give your table files any names you
  1373.          want.  "Program-filename" is usually PCWATCH.COM, unless you
  1374.          have changed it for some reason.
  1375.  
  1376.          Either of these filenames can include a drive specification
  1377.          and, if you are using DOS 2.0 or later, a path specification.
  1378.          If you omit the operands, PCWTBLB prompts you for them.
  1379.  
  1380.          You will not be able to use the new generation of the PCWATCH
  1381.          program to recall any saved setup specifications created by a
  1382.          prior generation.  This is because PCWTBLB rebuilds the
  1383.          internal PCWATCH tables and invalidates specifications that
  1384.          refer to the former level.
  1385.  
  1386.          You should be aware that if you add additional entries to the
  1387.          PCWATCH tables, you will increase the size of the PCWATCH
  1388.          program, in turn increasing the minimum storage required to
  1389.          run PCWATCH.  Each additional INT, AH, or AL entry requires
  1390.          approximately 28 bytes.
  1391.  
  1392.                                       26
  1393.  
  1394.    The PCWATCH.SYS Device Driver~
  1395.    -----------------------------
  1396.  
  1397.          If you are using PCWATCH with DOS 2.0 or later, you can use
  1398.          the PCWATCH.SYS device driver in conjunction with the Start
  1399.          by Rebooting option to monitor the use of DOS services during
  1400.          system initialization.  System initialization includes the
  1401.          loading and initialization of device drivers and the DOS
  1402.          shell program COMMAND.COM.  Without PCWATCH.SYS, only BIOS
  1403.          services and external interrupts can be monitored during this
  1404.          period.
  1405.  
  1406.          To make use of this capability, supply the following
  1407.          statement as the first line in your CONFIG.SYS file:
  1408.  
  1409.             DEVICE=path\PCWATCH.SYS
  1410.  
  1411.          where "path\" is the path specification for the subdirectory
  1412.          where PCWATCH.SYS is located.  ("Path\" is optional if
  1413.          PCWATCH.SYS is in your root directory.)  Note that the
  1414.          CONFIG.SYS file is required to reside in the root directory
  1415.          on your boot device.  (See your DOS manual for more
  1416.          information about the CONFIG.SYS file and its uses.)
  1417.  
  1418.          In general, the DEVICE=PCWATCH.SYS statement should appear
  1419.          before any other DEVICE= statements.  No monitoring of DOS
  1420.          services during system initialization will occur until
  1421.          PCWATCH.SYS has been loaded.  There is one exception you
  1422.          should be aware of:  if you use the DOS ANSI.SYS device
  1423.          driver, you should place it first and PCWATCH.SYS second.
  1424.  
  1425.          To monitor DOS services during system initialization, run
  1426.          PCWATCH and select the Start by Rebooting option.  You can
  1427.          ask to see all DOS services by including the DOS category or
  1428.          by including specific DOS services.  Then press F4 and your
  1429.          system will reboot with PCWATCH keeping track of the
  1430.          requested activities.
  1431.  
  1432.                                       27
  1433.  
  1434.    Limitations~
  1435.    -----------
  1436.  
  1437.          PCWATCH is a powerful tool for discovering the inner workings
  1438.          of the IBM PC, but it is possible to misuse it.  This section
  1439.          discusses some of the areas where you should exercise care
  1440.          when using PCWATCH.  Some of these points are mentioned
  1441.          elsewhere, but are repeated here as a reminder.
  1442.  
  1443.          PCWATCH performs its monitoring functions by installing
  1444.          intercept routines for each of the interrupts that are
  1445.          defined in the PCWATCH.TBL file.  The intercept routines are
  1446.          installed only once (the first time you press the F4 key from
  1447.          the Specify PCWATCH Parameters screen).  Once installed,
  1448.          these intercepts can be activated or deactivated by
  1449.          suspending, resuming, terminating, or restarting PCWATCH, but
  1450.          they remain in place (unless overwritten by subsequent
  1451.          programs) until you reboot your computer.
  1452.  
  1453.          In general, you will have the most success watching
  1454.          interrupts that are handled by programs installed before
  1455.          PCWATCH.  Software in this category includes BIOS, DOS,
  1456.          device drivers, and numerous DOS extensions that provide the
  1457.          principal services used in most application programs.
  1458.  
  1459.          PCWATCH is not able to trap interrupts for programs that
  1460.          install their own temporary interrupt handlers after PCWATCH
  1461.          has been installed unless they "reflect" events to the normal
  1462.          interrupt handlers by branching to the normal handlers when
  1463.          they have completed their task.  Interrupts most likely to be
  1464.          handled by applications without reflection include the DOS
  1465.          Control Break and Critical Error interrupts (23H and 24H),
  1466.          interrupts with no assigned BIOS functions, and some external
  1467.          interrupts that have no direct BIOS support.  Application
  1468.          programs that install permanent interrupt handlers should be
  1469.          started before PCWATCH whenever possible.
  1470.  
  1471.          Remember that PCWATCH does not process interrupts on its own;
  1472.          it simply intercepts and displays them when appropriate.  If
  1473.          an error in a program causes your computer to lock up,
  1474.          PCWATCH does not prevent this from occurring.  Instead, it
  1475.          enables you to monitor the events that lead up to it while
  1476.          you recreate the condition.
  1477.  
  1478.          The main differences you will experience as a result of
  1479.          running PCWATCH are that you will have a bit less storage
  1480.          available and the computer will operate somewhat slower than
  1481.          normal.  This, in turn, may affect the operation of any
  1482.          program that is severely constrained by storage space or has
  1483.          critical dependencies on execution time.
  1484.  
  1485.                                       28
  1486.  
  1487.          If your system has two displays, you probably use the DOS
  1488.          MODE command to switch from one display to another.  While
  1489.          PCWATCH is active, your ability to do this successfully will
  1490.          be restricted.  The Specify PCWATCH Parameters panel has been
  1491.          designed to give you flexibility in selecting how your
  1492.          displays will be used.  If you need to switch displays after
  1493.          starting PCWATCH:  terminate PCWATCH, use the MODE command,
  1494.          restart PCWATCH, then respecify your display selection.
  1495.          Using the MODE command while PCWATCH is active can produce
  1496.          strange results.
  1497.  
  1498.          Don't try to watch everything all of the time.  Hundreds of
  1499.          interrupts occur every second, and it is possible to cause a
  1500.          condition called "overrun."  Overrun occurs when PCWATCH is
  1501.          so busy displaying output that it falls behind just trying to
  1502.          keep up.  When this happens, you may find that the keyboard
  1503.          does not respond and the only recourse you have is to switch
  1504.          off the machine.  Overrun is most likely to occur when you
  1505.          are using a printer or the IBM Color/Graphics Monitor Adapter
  1506.          because they are relatively slow output devices.  One step
  1507.          you can take toward avoiding overrun is to exclude events in
  1508.          the NOISE category whenever you are monitoring a large number
  1509.          of interrupts.
  1510.  
  1511.          For PCWATCH to intercept and display output registers or
  1512.          nested events, it must be able to correlate the exit from an
  1513.          interrupt routine with the state of the machine when the
  1514.          interrupt was entered.  The use of multitasking dispatchers
  1515.          or context switching software can interfere with the
  1516.          "natural" sequence of events to the extent that PCWATCH may
  1517.          not be able to perform its task reliably.  If you use such
  1518.          software in conjunction with PCWATCH, it is recommended that
  1519.          you not include the Output Registers or Nested Events
  1520.          options.
  1521.  
  1522.          Finally, remember that PCWATCH relies heavily on the accuracy
  1523.          of the information supplied in the PCWATCH.TBL file.  In
  1524.          particular, look for the following when adding entries:
  1525.  
  1526.          o  Do not define (except as comment lines) interrupt vectors
  1527.             that are used only as anchors for tables and control
  1528.             blocks.
  1529.  
  1530.          o  Be certain to include the Oneway attribute with any
  1531.             interrupt that may not return to its caller under all
  1532.             circumstances.
  1533.  
  1534.          o  Specify the Noise attribute for all services that are
  1535.             executed while the machine is idle (waiting for input).
  1536.  
  1537.          The PCWATCH Table Builder program checks for proper syntax on
  1538.          all entries, but it has no way to verify that the information
  1539.          you provide is correct.
  1540.  
  1541.                                       29
  1542.  
  1543.    Questions and Answers~
  1544.    ---------------------
  1545.  
  1546.          Q.  Can I redirect PCWATCH output to a file?
  1547.  
  1548.          A.  No.  Because PCWATCH produces its output without
  1549.              interfering with the state of the computer, it cannot use
  1550.              any of the DOS file services.  However, you can ask
  1551.              PCWATCH to direct its output to LPT1, LPT2, or LPT3 if
  1552.              you have a printer attached to a parallel adapter.
  1553.  
  1554.  
  1555.          Q.  Why is PCWATCH not able to protect its split screen
  1556.              partition when running some full-screen applications?
  1557.  
  1558.          A.  Because of the nature of PCWATCH (it runs while your
  1559.              program is also running), it cannot save and restore the
  1560.              contents of the display screen.  If you need to watch a
  1561.              full-screen application that writes directly into the
  1562.              display buffer, try one of the following approaches:
  1563.  
  1564.              o  For a two-display system, allow the application to
  1565.                 use one display while PCWATCH uses the other.
  1566.  
  1567.              o  For a system with an IBM Enhanced Graphics Adapter and
  1568.                 a monochrome or IBM Enhanced Color Display, use the
  1569.                 43-line mode with PCWATCH output on lines 26 through
  1570.                 43.
  1571.  
  1572.              o  Use a printer for PCWATCH output instead of a display.
  1573.  
  1574.              o  As a last resort, a careful selection of top or
  1575.                 bottom Split Screen modes may enable you to keep
  1576.                 PCWATCH output away from the most active portions of
  1577.                 the application's display screen and keep interference
  1578.                 to a minimum.
  1579.  
  1580.  
  1581.          Q.  How can I cause PCWATCH to exit to my debugger when the
  1582.              particular instance of the service I'm interested in
  1583.              occurs?
  1584.  
  1585.          A.  First, run PCWATCH using the Wait for Keystroke option.
  1586.              When the instance of the service that you want to trap
  1587.              occurs, you can determine its number using the PCWATCH
  1588.              event marker.  Then, rerun PCWATCH and specify this value
  1589.              as the Max Output [xxxx] parameter in conjunction with
  1590.              the Exit to Debugger option.  When you rerun your
  1591.              program, be careful to use the same sequence of commands
  1592.              you used the first time.
  1593.  
  1594.                                       30
  1595.  
  1596.          Q.  Why can I monitor only BIOS services and External events
  1597.              when watching a stand-alone program?
  1598.  
  1599.          A.  These are the only services available in the machine for
  1600.              the use of stand-alone programs.
  1601.  
  1602.          Q.  Why will some stand-alone programs not work with PCWATCH?
  1603.  
  1604.          A.  Certain copy protect schemes do not allow the coexistence
  1605.              of the PCWATCH Facility.
  1606.  
  1607.  
  1608.          Q.  Is it normal for the PC's time-of-day clock to run slow
  1609.              when PCWATCH is active?
  1610.  
  1611.          A.  Not if you have an IBM Personal Computer AT or if you are
  1612.              just watching a small number of services; otherwise, yes.
  1613.              The additional disabled path length imposed by PCWATCH in
  1614.              order to intercept system services will slow down your
  1615.              clock somewhat.  This is particularly dramatic if you are
  1616.              sending PCWATCH output to a printer.  In this case (and
  1617.              depending heavily on exactly which categories you have
  1618.              selected to watch), your whole system may run in such
  1619.              "slow motion" that long pauses may appear between each
  1620.              output character.
  1621.  
  1622.              Shutting off PCWATCH returns your system to normal
  1623.              operating speed, but you may need to correct the time of
  1624.              day by using the DOS TIME command.
  1625.  
  1626.  
  1627.          Q.  Is there a way to get the BASIC interpreter to cooperate
  1628.              with PCWATCH's Split Screen mode so it does not attempt
  1629.              to use the PCWATCH partition?
  1630.  
  1631.          A.  Yes, there is a very simple way.  Start PCWATCH normally
  1632.              (indicating a Split Screen mode) and remember the number
  1633.              of the line where you indicated the split should occur
  1634.              (13 or 26 is the default).  This value is represented as
  1635.              "n" in the commands shown below.  Then start BASIC or
  1636.              BASICA.  If necessary, use the Cursor Down key to move
  1637.              the cursor out of the PCWATCH partition into BASIC's
  1638.              portion of the screen.  Then do one of the following:
  1639.  
  1640.              o  If the PCWATCH partition is at the top of the screen,
  1641.                 enter:
  1642.  
  1643.                    DEF SEG:POKE 91,n+1
  1644.  
  1645.              o  If the PCWATCH partition is at the bottom of the
  1646.                 screen, enter:
  1647.  
  1648.                    DEF SEG:POKE 92,n-1
  1649.  
  1650.              BASIC now confines its operation to the portion of the
  1651.              screen not used by PCWATCH.
  1652.  
  1653.                                       31
  1654.  
  1655.          Q.  Is it possible to single step through an interrupt when
  1656.              using PCWATCH with RDT (IBM's Resident Debug Tool)?
  1657.  
  1658.          A.  Yes, if some care is exercised.  Because PCWATCH
  1659.              intercepts most interrupts and handles them serially
  1660.              while the computer is disabled, single stepping during
  1661.              this process could be disastrous if the use of interrupts
  1662.              by RDT itself caused an unexpected reentry into PCWATCH.
  1663.  
  1664.              If you think you may need to do this, edit the
  1665.              PCWATCH.TBL file and comment out the entries for
  1666.              interrupts 01, 03, 08, and 09.  Then run PCWTBLB to
  1667.              create an updated version of PCWATCH.  As a further
  1668.              precaution, when using RDT, issue the RDT command:
  1669.  
  1670.                  UM FD
  1671.  
  1672.              This sets the RDT user mask to prohibit external
  1673.              interrupts from occurring while the RDT display is
  1674.              active.  This will prevent background activity from
  1675.              reentering PCWATCH while you are stepping through it.
  1676.  
  1677.  
  1678.          Q.  Is there a way to watch programs that produce graphics
  1679.              output?
  1680.  
  1681.          A.  Since PCWATCH requires that any display you select for
  1682.              its output operate in text mode, you should take one of
  1683.              the following approaches when you plan to monitor a
  1684.              graphics program:
  1685.  
  1686.              o  If your system has both a graphics and monochrome
  1687.                 display, you can direct all PCWATCH output to the
  1688.                 monochrome display while your graphics program uses
  1689.                 the other display.
  1690.  
  1691.              o  If you have only a one-display system, you can
  1692.                 designate a printer as the PCWATCH output device so
  1693.                 PCWATCH will not interfere with the graphics display.
  1694.  
  1695.              o  If your program operates in graphics mode only part of
  1696.                 the time, PCWATCH can share the display, provided that
  1697.                 you suspend its output during the time that graphics
  1698.                 mode is needed.  When you revert to text mode, you can
  1699.                 resume the output from PCWATCH.
  1700.  
  1701.  
  1702.                                       32
  1703.  
  1704.    Using PCWATCH with TopView~
  1705.    --------------------------
  1706.  
  1707.          You can use PCWATCH with the IBM TopView program if you
  1708.          follow the guidelines described in this section.  Because the
  1709.          TopView Window Manager requires the use of a full 25-row by
  1710.          80-column display, you will need to use one of the following
  1711.          as a PCWATCH output device:
  1712.  
  1713.          o  A second display
  1714.  
  1715.          o  A parallel printer
  1716.  
  1717.          o  An IBM Monochrome or Enhanced Color Display attached to an
  1718.             EGA card
  1719.  
  1720.          Since TopView provides a local copy of interrupt vectors for
  1721.          most tasks, you must install PCWATCH (using F4 on the Specify
  1722.          PCWATCH Parameters screen) prior to starting TopView.  This
  1723.          ensures that TopView tasks will inherit the interrupt vectors
  1724.          that are modified by PCWATCH.
  1725.  
  1726.          If you are using a single EGA display for both TopView and
  1727.          PCWATCH output, you must use the F7 key to place the EGA
  1728.          adapter in 43-line mode, select the Bottom from [26] option,
  1729.          then start TopView while PCWATCH is still active.  Since you
  1730.          may later completely respecify the events to be included or
  1731.          excluded, your initial selection is essentially arbitrary.
  1732.  
  1733.          Once TopView is running, the PCWATCH command can be
  1734.          executed from a TopView window to select different events or
  1735.          output options.  Each time you use the PCWATCH F3 or F4 key,
  1736.          the PCWATCH command task will terminate (and release its
  1737.          window).  PCWATCH output, however, will appear at the
  1738.          appropriate time on the selected device.
  1739.  
  1740.  
  1741.    PCWATCH Program Information for TopView~
  1742.  
  1743.          Add PCWATCH to the TopView Start A Program menu as you would
  1744.          for any new program and then select "Change Program
  1745.          Information" to specify additional information about PCWATCH.
  1746.          Fill in the program information fields, as follows:
  1747.  
  1748.          o  Program Title:
  1749.  
  1750.             Whatever you like, but "PC Watch" is a good choice.
  1751.  
  1752.          o  Program Pathname:
  1753.  
  1754.             Type the name of the drive and directory where the file
  1755.             PCWATCH.COM can be found.
  1756.  
  1757.          o  Program Parameters:
  1758.  
  1759.             Leave this blank.  PCWATCH does not take any command line
  1760.             parameters.
  1761.  
  1762.                                       33
  1763.  
  1764.          o  Data Files Location:
  1765.  
  1766.             Type the name of the drive and directory that PCWATCH
  1767.             should use when saving or recalling setup information.
  1768.  
  1769.          o  Memory:
  1770.  
  1771.             Set both the minimum and maximum fields to the same value,
  1772.             which should be the size of the PCWATCH.COM file divided
  1773.             by 1024 and rounded up to the next integer.  Let the
  1774.             system field retain the default value assigned by TopView.
  1775.  
  1776.          o  Screen Type:
  1777.  
  1778.             This should be D, unless you want to designate that
  1779.             PCWATCH should run only in mode 2 (black and white), mode
  1780.             3 (color), or mode 7 (monochrome).  This value affects
  1781.             only the Specify PCWATCH Parameters screen, not the output
  1782.             generated by PCWATCH.
  1783.  
  1784.          o  Pages:  1
  1785.  
  1786.          o  Window Size:
  1787.  
  1788.             Twenty-five (25) rows by eighty (80) columns.
  1789.  
  1790.          o  Offsets:
  1791.  
  1792.             Both should be 0.
  1793.  
  1794.          o  Shared Program Pathname:
  1795.  
  1796.             Leave this field blank.
  1797.  
  1798.          o  Shared Program Data:
  1799.  
  1800.             Leave this field blank.
  1801.  
  1802.          o  Range of Software Interrupt Vectors Swapped:
  1803.  
  1804.             Erase the existing values in both the low and high fields.
  1805.  
  1806.          o  Program writes directly to screen:  N
  1807.  
  1808.          o  Program accesses system keyboard buffer:  N
  1809.  
  1810.          o  Program runs only in the foreground:  Y
  1811.  
  1812.          o  Program uses math coprocessor:  N
  1813.  
  1814.          If you supply the values given above, PCWATCH will run as a
  1815.          well-behaved TopView application.  You can both size and move
  1816.          the PCWATCH window, but remember that the window is used only
  1817.          for the Specify PCWATCH Parameters screen, not the actual
  1818.          PCWATCH output.
  1819.  
  1820.  
  1821.                                       34
  1822.  
  1823.    Restrictions on PCWATCH in the TopView Environment~
  1824.  
  1825.          Most of the PCWATCH options function in the TopView
  1826.          environment as they do for DOS.  However, there are some
  1827.          considerations:
  1828.  
  1829.          o  Output Registers option
  1830.  
  1831.             The Output Registers option should not be used with
  1832.             TopView.  PCWATCH must correlate conditions upon entry to
  1833.             an interrupt with those in effect when the corresponding
  1834.             exit finally occurs.  A context switch imposed by
  1835.             TopView's multitasking dispatcher can easily upset this
  1836.             process, leading to unpredictable results.
  1837.  
  1838.          o  Nested Events option
  1839.  
  1840.             The Nested Events option should not be used with TopView
  1841.             for the same reason given for the Output Registers option.
  1842.  
  1843.          o  Start by Rebooting option
  1844.  
  1845.             The Start by Rebooting option should be avoided as it
  1846.             requires you to increase the memory used for PCWATCH by an
  1847.             additional 48KB.  Also, since TopView loads programs into
  1848.             well-defined regions of memory, PCWATCH will be unable to
  1849.             relocate itself to the high end of your system's memory.
  1850.  
  1851.          o  Exit to Debugger
  1852.  
  1853.             If you select the Exit to Debugger option, remember that
  1854.             the only debugger recommended for use with TopView is the
  1855.             IBM Resident Debug Tool.
  1856.  
  1857.          o  Selecting your output device
  1858.  
  1859.             Choose the PCWATCH output device carefully.  If you have a
  1860.             two-display system, select the display not currently in
  1861.             use by TopView.  If TopView and PCWATCH are sharing an EGA
  1862.             in 43-line mode, always select Bottom from [26].
  1863.  
  1864.          o  The F7 (EGA xx Lines) key
  1865.  
  1866.             The PCWATCH F7 key is not supported by TopView.  If you
  1867.             press this key, TopView automatically suspends PCWATCH.
  1868.             However, if you have already established the EGA 43-line
  1869.             mode and PCWATCH is active, TopView operates with the
  1870.             upper 25 lines of the display, unaware of the lines below
  1871.             it.  If you suspend or terminate PCWATCH output, TopView
  1872.             or an application program will be at liberty to restore
  1873.             the display to 25-line mode.  As long as you intend for
  1874.             the 43-line mode to continue, only terminate PCWATCH while
  1875.             respecifying your choice of included or excluded events.
  1876.  
  1877.  
  1878.  
  1879.                                       35
  1880.  
  1881.    Messages~
  1882.    --------
  1883.  
  1884.    PCWATCH Messages~
  1885.  
  1886.          The messages listed here are produced by PCWATCH in response
  1887.          to inputs entered on the Specify PCWATCH Parameters screen.
  1888.          Messages always appear at the bottom of the screen.  Some
  1889.          messages are informational only; others indicate that you
  1890.          have made an error.  These are easy to distinguish between
  1891.          because PCWATCH produces two short beeps when it displays an
  1892.          error message.
  1893.  
  1894.  
  1895.          Current setup information saved
  1896.  
  1897.             This message appears at the bottom of the PCWATCH screen
  1898.             when you press the F5 key if a PCWATCH.PRO file was
  1899.             successfully created in the current directory of the
  1900.             default drive.
  1901.  
  1902.  
  1903.          EGA adapter not installed
  1904.  
  1905.             The F7 key will not work unless you have the IBM Enhanced
  1906.             Graphics Adapter installed.
  1907.  
  1908.  
  1909.          Enter a number or press <--'
  1910.  
  1911.             This message appears at the bottom of the PCWATCH screen
  1912.             if PCWATCH was expecting a number and you enter something
  1913.             else.  Either supply a number or press Enter to accept the
  1914.             currently displayed default.
  1915.  
  1916.  
  1917.         Inappropriate use of Include/Exclude
  1918.  
  1919.             You pressed either F1 (the Include key) or F2 (the Exclude
  1920.             key) when the cursor was not on a selectable item.  Only
  1921.             blank entries in the Specific Events window are not
  1922.             selectable.
  1923.  
  1924.  
  1925.          Insufficient memory for reboot option
  1926.  
  1927.             The Start by Rebooting option requires an additional 48KB
  1928.             of unused storage after DOS and all resident programs are
  1929.             loaded.
  1930.  
  1931.  
  1932.          No display selected
  1933.  
  1934.             The F7 key will not work if a printer has been selected
  1935.             for PCWATCH output.
  1936.  
  1937.                                       36
  1938.  
  1939.          No saved setup available
  1940.  
  1941.             PCWATCH could not find any of the following:
  1942.  
  1943.             o  A PCWATCH.PRO file in the current directory on the
  1944.                default drive
  1945.  
  1946.             o  A saved setup specification in memory
  1947.  
  1948.             o  The setup used the last time PCWATCH was started
  1949.  
  1950.             The last condition fails only if you have not yet started
  1951.             PCWATCH since you last switched on your machine or if you
  1952.             have just created a new level of PCWATCH using the PCWTBLB
  1953.             program.
  1954.  
  1955.  
  1956.          No saved setup; previous setup recalled
  1957.  
  1958.             PCWATCH could not find either PCWATCH.PRO in the current
  1959.             directory on the default drive or a saved setup
  1960.             specification in memory.  Instead, PCWATCH has recalled
  1961.             the setup information you specified the last time PCWATCH
  1962.             was started.
  1963.  
  1964.  
  1965.          No such printer attached
  1966.  
  1967.             The printer number you specified for PCWATCH output is not
  1968.             recognized by BIOS as a valid printer.  Enter a different
  1969.             number or deselect the printer option by pressing F2.
  1970.  
  1971.  
  1972.          Only 100 specific event includes/excludes allowed
  1973.  
  1974.             A limit of 100 specific events can be included or excluded
  1975.             and you have designated more than 100.  Events included or
  1976.             excluded as a result of selecting a category do not count
  1977.             against this limit.
  1978.  
  1979.  
  1980.          Reboot for new tables to take effect
  1981.  
  1982.             PCWATCH is already resident in your system because of
  1983.             earlier use, but there is not a sufficient amount of free
  1984.             storage set aside to hold the additions you have made to
  1985.             the PCWATCH tables.  Reboot your system and run PCWATCH
  1986.             again to set aside space for your new table entries.
  1987.  
  1988.  
  1989.          Reboot option is not available on this machine model
  1990.  
  1991.             The Start by Rebooting option is available only on an IBM
  1992.             PC, IBM PC XT, IBM Portable Personal Computer, or IBM
  1993.             Personal Computer AT.
  1994.  
  1995.                                       37
  1996.  
  1997.          Saved setup information recalled
  1998.  
  1999.             PCWATCH successfully recalled the setup information you
  2000.             saved in the PCWATCH.PRO file in the current directory on
  2001.             the default drive.
  2002.  
  2003.  
  2004.          Saved setup not recalled - tables have been changed
  2005.  
  2006.             The PCWATCH.PRO file found in the current directory on the
  2007.             default drive was saved by an older generation of the
  2008.             PCWATCH program and is not usable by the current
  2009.             generation.  To create a new setup specification file,
  2010.             indicate the setup manually using the F1 and F2 keys and
  2011.             save it again by pressing the F5 key.  Note that each time
  2012.             you create a new generation of PCWATCH using the PCWTBLB
  2013.             program, the formerly saved setup files are invalidated.
  2014.  
  2015.  
  2016.          Saved setup recalled from memory
  2017.  
  2018.             PCWATCH was not able to locate a PCWATCH.PRO file in the
  2019.             current directory on the default drive, but it did find
  2020.             saved setup information in memory.
  2021.  
  2022.  
  2023.          Selected display adapter not functioning
  2024.  
  2025.             The adapter for the display option you selected does not
  2026.             respond.  However, the currently highlighted output
  2027.             selections remain in effect until you change them.
  2028.  
  2029.  
  2030.          Selected display is not on an EGA
  2031.  
  2032.             The F7 key will not work unless the display you selected
  2033.             for PCWATCH output is attached to an IBM Enhanced Graphics
  2034.             Adapter.
  2035.  
  2036.  
  2037.          Specify Max Output before selecting this option
  2038.  
  2039.             The Exit to Debugger option works in conjunction with the
  2040.             Max Output [xxxx] option.  Specify a Max Output value to
  2041.             determine when the exit to your debugger should occur,
  2042.             then reselect the Exit to Debugger option.
  2043.  
  2044.  
  2045.          Supply new value or press <--' to accept default
  2046.  
  2047.             This message appears at the bottom of the PCWATCH screen
  2048.             when you include any of the options that take a numeric
  2049.             argument.  It is there to remind you that you can supply a
  2050.             new value if you want.  Either supply a new number or
  2051.             press Enter to accept the currently displayed default.
  2052.  
  2053.                                       38
  2054.  
  2055.          Unable to write setup file; setup saved in memory
  2056.  
  2057.             PCWATCH tried to create a PCWATCH.PRO file in the current
  2058.             directory on the default drive and failed.  The failure
  2059.             was probably due to a lack of available space, a
  2060.             write-protect tab on a diskette, or a drive not ready
  2061.             condition.  The current setup information was saved in
  2062.             memory instead.  It can be subsequently recalled from
  2063.             memory until another setup specification is saved or the
  2064.             computer is rebooted.
  2065.  
  2066.  
  2067.          Value may range from 3 through X
  2068.  
  2069.             Select a value between 3 and X as the line where the
  2070.             screen split should occur.  If you are using the 25-line
  2071.             mode, X will be 22.  If you have an EGA and are using the
  2072.             43-line mode, X will be 40.
  2073.  
  2074.  
  2075.          Value must be greater than 0
  2076.  
  2077.             You may not specify a Max Output [xxxx] value of zero.
  2078.             Either press F2 to deselect the option or enter a nonzero
  2079.             value.
  2080.  
  2081.  
  2082.          Wait for Keystroke option not available on this machine model
  2083.  
  2084.             The Wait for Keystroke option is available only on an IBM
  2085.             PC, IBM PC XT, IBM Portable Personal Computer, or IBM
  2086.             Personal Computer AT.
  2087.  
  2088.  
  2089.          Warning: Press F2 or F3 if your debugger is not already
  2090.           resident!
  2091.  
  2092.             The Exit to Debugger option requires that your debugger be
  2093.             resident in memory prior to the time that you start
  2094.             PCWATCH.  If this is not the case, press F2 to deselect
  2095.             this option or press F3 to quit PCWATCH so that you may
  2096.             start your debugger program.
  2097.  
  2098.  
  2099.          Warning: Setup saved in memory will be lost! Press F3 to quit
  2100.           anyway
  2101.  
  2102.             The current setup information was saved in memory the last
  2103.             time you pressed F5.  However, PCWATCH has not yet been
  2104.             installed and the saved specification will be lost unless
  2105.             you start PCWATCH using F4.  Press F3 again if you really
  2106.             want to quit PCWATCH (and lose the saved setup
  2107.             information).
  2108.  
  2109.                                       39
  2110.  
  2111.          Warning: PCWATCH does not support this machine model.
  2112.           Continue anyway? [Y or N]:
  2113.  
  2114.             PCWATCH is only supported on an IBM PC, IBM PC XT, IBM
  2115.             Portable Personal Computer, or IBM Personal Computer AT.
  2116.             This message appears if PCWATCH is run on any other model.
  2117.             If you type Y, PCWATCH attempts to run but may fail during
  2118.             execution.
  2119.  
  2120.  
  2121.          You must include at least 1 category or specific event
  2122.  
  2123.             This message appears if you press the F4 key without
  2124.             requesting any PCWATCH output.  Either select some
  2125.             category or specific event for inclusion using the F1 key
  2126.             (and then press F4) or press F3 to quit the PCWATCH
  2127.             program.
  2128.  
  2129.  
  2130.          43 lines requires monochrome or enhanced color display
  2131.  
  2132.             The F7 key cannot establish a 43-line mode unless you have
  2133.             a monochrome display or an IBM Enhanced Color Display
  2134.             attached to the IBM Enhanced Graphics Adapter.
  2135.  
  2136.                                       40
  2137.  
  2138.    PCWTBLB Messages~
  2139.  
  2140.          The messages PCWTBLB generates while processing entries in
  2141.          the table file frequently refer to a specific line number
  2142.          where the error was discovered.  Sometimes additional
  2143.          characters are shown in the message to help you determine
  2144.          what portion of a line was found to be in error.  In this
  2145.          section, X represents the line number and Y represents
  2146.          some part of text from the line that is incorrect.  Because
  2147.          PCWTBLB compresses each line before processing it, Y
  2148.          generally has all spaces, and sometimes punctuation
  2149.          characters, removed.
  2150.  
  2151.  
  2152.          AH without preceding INT while processing line X. 
  2153.  
  2154.             A line beginning with the keyword "AH =" was encountered
  2155.             in the table file before any interrupt definition line
  2156.             ("INT =") was processed.  The definition of a service
  2157.             based on AH values is only allowed for interrupts.
  2158.             Correct the table file and run PCWTBLB again.
  2159.  
  2160.  
  2161.          AL without preceding INT while processing line X. 
  2162.  
  2163.             A line beginning with the keyword "AL =" was encountered
  2164.             in the table file before any interrupt definition line
  2165.             ("INT =") was processed.  The definition of a service
  2166.             based on AL values is only allowed for interrupts.
  2167.             Correct the table file and run PCWTBLB again.
  2168.  
  2169.  
  2170.          Error in line X: expecting '[' for start of attribute list,
  2171.          found Y. 
  2172.  
  2173.             The only syntactic element allowed to follow the name of a
  2174.             service is an attribute list.  Attribute lists should
  2175.             always be enclosed in brackets ([]).  You may have
  2176.             intended Y to be a comment; if so, separate it from the
  2177.             rest of the line by preceding it with a semicolon (;)
  2178.             and run the PCWTBLB program again.
  2179.  
  2180.  
  2181.          Error in line X: expecting attribute, found Y.
  2182.  
  2183.             Only the attribute characters B, C, D, E, F, K, N, O, P,
  2184.             S, T, V, 1, 2, and 3, and the formatting options A, G, H,
  2185.             L, M, Q, U, W, X, Y, and Z, are allowed to appear inside
  2186.             an attribute list.  Make certain that you remembered to
  2187.             end the attribute list with a right bracket (]).  Correct
  2188.             the table file and run PCWTBLB again.
  2189.  
  2190.                                       41
  2191.  
  2192.          Error in line X: expecting end of literal service name, found Y.
  2193.  
  2194.             Service name literals must be enclosed in double quotation
  2195.             marks at each end.  For example:
  2196.  
  2197.                INT=14 "Int14 RS232"   [B,C] ;Serial communications
  2198.  
  2199.             Correct the entry and run the PCWTBLB program again.
  2200.  
  2201.  
  2202.          Error in line X: expecting hex value, found Y. 
  2203.  
  2204.             A one- or two-digit hexadecimal number is expected to
  2205.             follow the key words "INT =," "AH =," or "AL =."  Correct
  2206.             the table file and run PCWTBLB again.
  2207.  
  2208.  
  2209.          Error in line X: expecting name of resume key, found Y. 
  2210.  
  2211.             Y was not recognized as the name of a valid key to be
  2212.             assigned to the PCWATCH resume function.  You can choose
  2213.             from any of the keys named in "Names for PCWATCH Key
  2214.             Selections."  Correct the table file and run PCWTBLB
  2215.             again.
  2216.  
  2217.  
  2218.          Error in line X: expecting name of suspend key, found Y. 
  2219.  
  2220.             Y was not recognized as the name of a valid key to be
  2221.             assigned to the PCWATCH suspend function.  You can choose
  2222.             from any of the keys named in "Names for PCWATCH Key
  2223.             Selections."  Correct the table file and run PCWTBLB
  2224.             again.
  2225.  
  2226.  
  2227.          Error in line X: expecting name of terminate key, found Y. 
  2228.  
  2229.             Y was not recognized as the name of a valid key to be
  2230.             assigned to the PCWATCH terminate function.  You can choose
  2231.             from any of the keys named in "Names for PCWATCH Key
  2232.             Selections."  Correct the table file and run PCWTBLB
  2233.             again.
  2234.  
  2235.  
  2236.          Error in line X: expecting start of comment, found Y. 
  2237.  
  2238.             Remember to start any comments with a semicolon (;).
  2239.             Correct the entry and run PCWTBLB again.
  2240.  
  2241.  
  2242.          Error in line X:  expecting start of literal service name,
  2243.           found Y.  
  2244.  
  2245.             Service name literals must be enclosed in double quotation
  2246.             marks.  For example:
  2247.  
  2248.                INT=14 "Int14 RS232"   [B,C] ;Serial communications
  2249.  
  2250.             Correct the entry and run the PCWTBLB program again.
  2251.  
  2252.                                       42
  2253.  
  2254.          Error in line X: Multiple format options specified. 
  2255.  
  2256.             Only one formatting option may be specified to be applied
  2257.             at both input and output to a service.  Correct the entry
  2258.             and run PCWTBLB again.
  2259.  
  2260.  
  2261.          Error in line X: Multiple input format options specified. 
  2262.  
  2263.             Only one input formatting option may be specified for any
  2264.             particular service.  Correct the entry and run PCWTBLB
  2265.             again.
  2266.  
  2267.  
  2268.          Error in line X: Multiple output format options specified. 
  2269.  
  2270.             Only one output formatting option may be specified for any
  2271.             particular service.  Correct the entry and run PCWTBLB
  2272.             again.
  2273.  
  2274.  
  2275.          Error in line X: out of sequence. 
  2276.  
  2277.             All interrupts must be defined in ascending sequence by
  2278.             their hexadecimal numbers.  Within an interrupt
  2279.             definition, all AH or AL definitions of subservices must
  2280.             also appear in ascending order.  Correct the offending
  2281.             sequence and run PCWTBLB again.
  2282.  
  2283.  
  2284.          Improper signature in program file. 
  2285.  
  2286.             The file you designated as being the PCWATCH program file
  2287.             does not contain the proper internal identification.
  2288.             Rerun the PCWTBLB program specifying the correct name for
  2289.             the PCWATCH program.  (Unless you have renamed it, the
  2290.             file is called PCWATCH.COM.)
  2291.  
  2292.  
  2293.          Incompatible version of PCWATCH program file encountered. 
  2294.  
  2295.             The PCWATCH program file you specified is at a later
  2296.             release level than the PCWTBLB program.  Only use the new
  2297.             release of PCWTBLB to generate tables for the new release
  2298.             of PCWATCH.COM.
  2299.  
  2300.  
  2301.          Invalid line type while processing line X. 
  2302.  
  2303.             PCWTBLB encountered an unrecognized entry in the table
  2304.             file.  Valid entries start with the keywords "INT =",
  2305.             AH =", "AL =", "resume key =", "suspend key =", "terminate
  2306.             key =", "debug int =", or a semicolon (;).  Correct the
  2307.             table file and run PCWTBLB again.
  2308.  
  2309.                                       43
  2310.  
  2311.          Literal service name on line X truncated to 15 characters. 
  2312.  
  2313.             This message is for your information only.  No action is
  2314.             necessary unless you want to use a shorter service name.
  2315.             PCWTBLB has automatically truncated the name you supplied
  2316.             to 15 characters (its maximum length).
  2317.  
  2318.  
  2319.          New tables stored in Y. 
  2320.  
  2321.             This message is for your information only.  PCWTBLB has
  2322.             completed successfully and updated the table information
  2323.             in the program file Y.  If you execute Y, you will
  2324.             find that your new customizations are now in effect.
  2325.  
  2326.  
  2327.          Program filename [PCWATCH.COM]: 
  2328.  
  2329.             PCWTBLB prompts you to enter the name of the PCWATCH
  2330.             program file.  The default name is PCWATCH.COM.  If you
  2331.             have renamed the program, you may supply the new name
  2332.             instead.  If the program is not in the current directory
  2333.             or is on another drive, specify the fully qualified name.
  2334.             Otherwise, just press Enter to accept the default.
  2335.  
  2336.  
  2337.          Table filename [PCWATCH.TBL]: 
  2338.  
  2339.             PCWTBLB prompts you to enter the name of the PCWATCH table
  2340.             file.  The default name is PCWATCH.TBL.  If you have
  2341.             renamed the file, you may supply the new name instead.  If
  2342.             the file is not in the current directory or is on another
  2343.             drive, specify the fully qualified name.  Otherwise, just
  2344.             press Enter to accept the default.
  2345.  
  2346.  
  2347.          Table overflow while processing line X. 
  2348.  
  2349.             There was insufficient storage available for the operation
  2350.             of the PCWTBLB program.  If your system is memory
  2351.             constrained, try booting from your DOS master diskette and
  2352.             running PCWTBLB without the use of any DOS extension
  2353.             programs.  For DOS 2.0 or later versions, you may also be
  2354.             able to increase the amount of available storage by
  2355.             removing the "BUFFERS =" and "DEVICE =" entries from your
  2356.             DOS CONFIG.SYS file.
  2357.  
  2358.  
  2359.          Unable to create output file. 
  2360.  
  2361.             Probable causes for this failure are that the output file
  2362.             was directed to a write-protected diskette, or that there
  2363.             was insufficient space on the disk or in the directory to
  2364.             create another file.
  2365.  
  2366.                                       44
  2367.  
  2368.          Unable to open Y. 
  2369.  
  2370.             PCWTBLB is unable to open the filename (indicated by Y)
  2371.             that you supplied.  Make certain that you have provided
  2372.             the correct name and run the PCWTBLB program again.
  2373.  
  2374.  
  2375.          Usage: PCWTBLB table-filename,program-filename 
  2376.  
  2377.             If you supply too many arguments when running PCWTBLB, or
  2378.             if you type "PCWTBLB ?", this message is used to remind
  2379.             you of the correct syntax.  You may also run PCWTBLB by
  2380.             typing "PCWTBLB" and letting it prompt you for the
  2381.             arguments it requires.
  2382.  
  2383.  
  2384.          PCWATCH tables not updated due to errors. 
  2385.  
  2386.             Errors noted by earlier messages have prevented PCWTBLB
  2387.             from updating the tables in the PCWATCH.COM program file.
  2388.             Correct all of the errors and run PCWTBLB again.
  2389.  
  2390.                                       45
  2391.  
  2392.    Appendix A:  Control Block Descriptions~
  2393.    ---------------------------------------
  2394.  
  2395.          For some system services, PCWATCH will format prominent
  2396.          fields found in DOS or BIOS control blocks.  This section
  2397.          briefly describes these fields and points you to the
  2398.          principal sources for additional information.
  2399.  
  2400.  
  2401.    ASCIIZ Strings~
  2402.  
  2403.          An ASCIIZ string is one whose last byte is 00H.  Many DOS
  2404.          services relating to file system operations require or return
  2405.          the specification of a path or filename in this form.
  2406.          PCWATCH displays this information in uninterpreted form.
  2407.          ASCIIZ names are described in the DOS Technical Reference
  2408.          manual and Appendix D of the older DOS manuals.
  2409.  
  2410.  
  2411.    Diskette Parameters~
  2412.  
  2413.          Diskette parameters are used by BIOS to format diskettes and
  2414.          control the operation of the diskette adapter.  This block is
  2415.          described in the Technical Reference manual for your PC
  2416.          model.
  2417.  
  2418.          Offset       Shown as                  Description
  2419.          ------      -----------      -------------------------------
  2420.  
  2421.           0-2        XXXXXX           Used for adapter initialization
  2422.  
  2423.            3         size=XX          Bytes per sector
  2424.                                         00 = 128
  2425.                                         01 = 256
  2426.                                         02 = 512
  2427.                                         03 = 1024
  2428.  
  2429.            4         eot=XX           End of track (number of sectors
  2430.                                       per track)
  2431.  
  2432.            5         gapl=XX          Gap length
  2433.  
  2434.            6         dtl=XX           Data length
  2435.  
  2436.            7         gapf=XX          Gap 3 length (used with format
  2437.                                       operations)
  2438.  
  2439.            8         fill=XX          Fill byte
  2440.  
  2441.           9-10       delays=XXXX      Head settle time XX..
  2442.                                       Motor start time ..XX
  2443.  
  2444.                                       46
  2445.  
  2446.    Disk Status~
  2447.  
  2448.          Disk status information is returned from the diskette or
  2449.          fixed disk controller at the completion of each physical I/O
  2450.          operation handled by the adapter.  PCWATCH displays the seven
  2451.          status bytes as they are returned from the controller and
  2452.          kept at location 40:42 of the BIOS data area.  Consult the
  2453.          Technical Reference manual for your PC model and the
  2454.          appropriate sections of the Options and Adapters Technical
  2455.          Reference manual for additional information.
  2456.  
  2457.  
  2458.    FCB (File Control Block)~
  2459.  
  2460.          The File Control Block (FCB) is used for file operations with
  2461.          DOS services AH=0F through AH=29.  It is described in the DOS
  2462.          Technical Reference manual (or Appendix E of older DOS
  2463.          manuals).
  2464.  
  2465.          Offset       Shown as                  Description
  2466.          ------   -----------------   --------------------------------
  2467.  
  2468.           0-11    fn=X:XXXXXXXX.XXX   File drive, name, and extension
  2469.  
  2470.           (-1)    attr=XX             File attributes (shown only if
  2471.                                       an FCB extension is present)
  2472.  
  2473.          17-27    fn2=XXXXXXXX.XXX    New filename.  Present only in
  2474.                                       an FCB used for a rename
  2475.                                       operation
  2476.  
  2477.          12-13    blk=XXXX            Current block number
  2478.  
  2479.          14-15    rs=XXXX             Logical record size
  2480.  
  2481.            32     cr=XX               Current record number within the
  2482.                                       current block
  2483.  
  2484.          33-36    rrn=XXXXXXXX        Random record number
  2485.  
  2486.                                       47
  2487.  
  2488.    NCB (Network Control Block)~
  2489.  
  2490.          Network Control Blocks (NCB) are used by the IBM PC Network
  2491.          Adapter BIOS to control the flow of information to and from
  2492.          the PC Network.  These blocks are described in the IBM PC
  2493.          Network Technical Reference manual.
  2494.  
  2495.          Offset       Shown as               Description
  2496.          ------   ----------------    --------------------------
  2497.  
  2498.            0      XX                  Command code
  2499.  
  2500.            1      XX                  Return code
  2501.  
  2502.            2      XX                  Local session number
  2503.  
  2504.            3      XX                  NCB number
  2505.  
  2506.           4-7     XXXX:XXXX           Segment and offset address
  2507.                                       of message buffer
  2508.  
  2509.            8      XXXX                Buffer length
  2510.  
  2511.          10-25    XXXXXXXXXXXXXXXX    Destination adapter name
  2512.  
  2513.          26-41    XXXXXXXXXXXXXXXX    Source adapter name
  2514.  
  2515.            42     XX                  Receive time-out period
  2516.  
  2517.            43     XX                  Send time-out period
  2518.  
  2519.          44-47    XXXX:XXXX           Segment and offset address
  2520.                                       of POST routine
  2521.  
  2522.            48     XX                  Local adapter number
  2523.  
  2524.            49     XX                  Command status
  2525.  
  2526.                                       48
  2527.  
  2528.    Appendix B:  Changing Display Attributes~
  2529.    ----------------------------------------
  2530.  
  2531.          You can change the display attributes PCWATCH uses by
  2532.          modifying the attribute table near the beginning of the
  2533.          PCWATCH.COM file.  The table begins immediately following the
  2534.          phrase "Attribute Tables:".
  2535.  
  2536.          The attribute table consists of 3 rows of 12 entries each.
  2537.          Each row corresponds to a particular type of display mode
  2538.          that you can specify using the DOS MODE command.  The rows
  2539.          are assigned as follows:
  2540.  
  2541.          o  Row 1:  MODE MONO
  2542.  
  2543.          o  Row 2:  MODE CO80
  2544.  
  2545.          o  Row 3:  MODE BW80
  2546.  
  2547.          Within each row, there are 12 attribute bytes governing the
  2548.          appearance of a variety of elements.  The bytes and their
  2549.          uses are:
  2550.  
  2551.             Row Offset       Uses on Specify         Uses in Other
  2552.              in Table   PCWATCH Parameters Screen  Places in PCWATCH
  2553.             ----------  -------------------------  -----------------
  2554.                  0      Selectable categories,     Register data,
  2555.                         options, and events        event data
  2556.  
  2557.                  1      Non-selectable items       Register marker
  2558.  
  2559.                  2      Block cursor, function     Event marker
  2560.                         key labels
  2561.  
  2562.                  3      >>> <<< around messages    [not used]
  2563.  
  2564.                  4      [not used]                 Modified registers
  2565.  
  2566.                  5      <-- Exclude -->            [not used]
  2567.  
  2568.                  6      <-- Include -->            [not used]
  2569.  
  2570.                  7      Error message text         [not used]
  2571.  
  2572.                  8      Selected item when under   [not used]
  2573.                         block cursor
  2574.  
  2575.                  9      Excluded categories and    [not used]
  2576.                         events
  2577.  
  2578.                 10      Included categories and    [not used]
  2579.                         events, selected options
  2580.  
  2581.                 11      [not used]                 Text on logo
  2582.                                                    screen
  2583.  
  2584.          Refer to the reference manuals for your computer and/or
  2585.          display type for information on what values to use for
  2586.          different attributes.
  2587.  
  2588.                                       49
  2589.  
  2590.    Appendix C:  Specify PCWATCH Parameters Keys~
  2591.    --------------------------------------------
  2592.  
  2593.          A list of all of the keys that may be used while interacting
  2594.          with the PCWATCH program from the Specify PCWATCH Parameters
  2595.          screen follows:
  2596.  
  2597.          o  Cursor movement
  2598.  
  2599.             Up, Down, Left, Right
  2600.                        These keys move the block cursor in the
  2601.                        indicated direction.  The movement wraps around
  2602.                        to the other end when the cursor can go no
  2603.                        further in the indicated direction.
  2604.  
  2605.             Backspace  Equivalent to Left
  2606.  
  2607.             End        Moves the block cursor to the bottom of the
  2608.                        current box (Categories, Options, or Specific
  2609.                        Events).
  2610.  
  2611.             Home       Moves the block cursor to the top of the
  2612.                        current box (Categories, Options, or Specific
  2613.                        Events).
  2614.  
  2615.             Enter      Moves the block cursor to the left box
  2616.                        (Categories) and down one row.
  2617.  
  2618.             Shift-Tab  Equivalent to Left
  2619.  
  2620.             Tab        Equivalent to Right
  2621.  
  2622.          o  Data Entry
  2623.  
  2624.             Data entry keys function when an option requiring an
  2625.             additional input parameter has been selected using F1.
  2626.             The large block cursor narrows to focus on the particular
  2627.             input item.
  2628.  
  2629.             Backspace  Undoes the effect of the last data key.
  2630.  
  2631.             Enter      Ends data entry by restoring the large block
  2632.                        cursor and accepting the currently displayed
  2633.                        input value.
  2634.  
  2635.             Up, Down, Left, and Right
  2636.                        As a convenience these are equivalent to
  2637.                        Enter.
  2638.  
  2639.                                       50
  2640.  
  2641.          o  Function keys
  2642.  
  2643.             Ctrl-PgDn  Scrolls the items in the Specific Event box to
  2644.                        the last page.
  2645.  
  2646.             Ctrl-PgUp  Scrolls the items in the Specific Event box to
  2647.                        the first page.
  2648.  
  2649.             F1         Includes the Category or Specific Event under
  2650.                        the cursor, or selects the Option under the
  2651.                        cursor.
  2652.  
  2653.             F2         Excludes the Category or Specific Event under
  2654.                        the cursor, or deselects the Option under the
  2655.                        cursor.
  2656.  
  2657.             F3         Exits the PCWATCH program and returns to DOS
  2658.                        without starting PCWATCH.
  2659.  
  2660.             F4         Exits the PCWATCH program and returns to DOS
  2661.                        while starting PCWATCH.  The first time you
  2662.                        start PCWATCH, it installs itself as a resident
  2663.                        DOS extension.
  2664.  
  2665.             F5         Saves the current setup information.  This
  2666.                        includes all include/exclude specifications and
  2667.                        selected options.
  2668.  
  2669.             F6         Recalls saved setup information.  The screen is
  2670.                        updated to reflect the recalled conditions.
  2671.  
  2672.             F7         Toggles between the 25- and 43-line modes for
  2673.                        an IBM Enhanced Graphics Adapter with a
  2674.                        monochrome or IBM Enhanced Color Display.
  2675.  
  2676.             F8         Shows the current key assignments for the
  2677.                        PCWATCH suspend, resume, and terminate
  2678.                        functions.
  2679.  
  2680.             PgDn       Scrolls the items in the Specific Events box
  2681.                        one page forward.
  2682.  
  2683.             PgUp       Scrolls the items in the Specific Events box
  2684.                        one page backward.
  2685.  
  2686.  
  2687.