home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / programming / debug-utils / pv / readthisfirst < prev   
Encoding:
Text File  |  1992-11-03  |  44.5 KB  |  1,008 lines

  1.  
  2.  
  3.         ###     ##   #     # #### ###   #     # ###   ##    ##   ###
  4.         #  #   #  #  #     # #    #  #  #     #  #   #  #  #  #  #  #
  5.         #   # #    # #     # #    #   # #     #  #  #     #    # #   #
  6.         #   # #    # #     # #    #   # #     #  #  #     #    # #   #
  7.         #   # #/¯¯¯#¯#¯¯¯¯¯#¯#¯¯¯¯#¯¯¯#¯#¯¯¯¯¯#¯¯#¯¯#¯¯¯¯¯#¯¯¯\# #   #
  8.         #  #  #    # #     # #    #  #  #     #  #   #    #    # #  #
  9.         ###  /#    # #     # ###  ###   #     #  #    #   #    #\###
  10.         #   / #    # #     # #    #  #  #     #  #     #  #    # #  #
  11.         #  /  #    #  #   #  #    #   #  #   #   #      # #    # #\  #
  12.         # /   #    #  # # #  #    #   #  #   #   #      # #    # # \ #
  13.         #/    #    #  # # #  #    #   #  #   #   #      # #    # #  \#
  14.         #      #  #   ## ##  #    #   #   # #    #  #  #   #  #  #   #
  15.        /#       ##    #   #  #### #   #    #    ###  ##     ##   #   #\
  16.       /                                                                \
  17.      /                                                                  \
  18.     /                                                                    \
  19.    /                                                                      \
  20.   /                                                                        \
  21.  /                                                                          \
  22. |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
  23. | Introduction and general information              Tue Nov  3 17:03:38 1992 |
  24. |____________________________________________________________________________|
  25.  
  26.  
  27.  
  28. PowerVisor V1.42    CopyRight © Jorrit Tyberghein (Nov 92)
  29. ----------------
  30.  
  31.    PowerVisor is a powerful debugger designed to do almost everything
  32.    you can think of. Even if you can't think of it it will probably still be
  33.    possible :-)
  34.  
  35.    What I meant to say with the above is that PowerVisor is
  36.    rather complex to use. I recommend that you read the tutorial sections
  37.    even if you think you can cope. Once you have mastered the program
  38.    you will probably be able to debug your programs in a very short
  39.    time.
  40.  
  41.    Note that I TRY to make PowerVisor as user friendly as possible (look
  42.    at the emphasis on the word 'try').
  43.  
  44.    Read the tutor files and execute each command as mentioned
  45.    there. All lines you have to type are preceded by a '<'. Some special
  46.    keys are notated as <key>. <enter> is used for the return key.
  47.    All output from PowerVisor is preceded by a '>'.
  48.    If you must press two keys together there is a '+' between them:
  49.    <alt>+<enter>.
  50.  
  51.    If you have AmigaGuide or MultiView (© Commodore) it is best that you
  52.    use this program to read the PowerVisor manual.
  53.  
  54.    All input and output in this tutorial is for the AmigaDOS 2.0
  55.    version. In most cases this does not matter. If there are
  56.    differences between the two versions it is mentioned in the tutorial
  57.    in the following form: (1.3 : .......)
  58.    PowerVisor also works fine in AmigaDOS 3.0.
  59.  
  60.  
  61. Shareware and disclaimer
  62. ------------------------
  63.  
  64.    PowerVisor is shareware. This means that you can copy it and give
  65.    to everybody. If you like the program and/or use it, I'd appreciate
  66.    it if you send me a contribution. If you send $25 US or more
  67.    you automatically get the next major release when one is available
  68.    (I will also add you to the list of registered users).
  69.    PLEASE send money by international money order, EuroCheck (in Belgian
  70.    Francs (BEF) !) or cash, because it's very difficult for me to cash
  71.    in other checks !
  72.    If you want an update please state your current version.
  73.  
  74.    Note that PowerVisor may only be redestributed with ALL FILES
  75.    PRESENT (especially this file). Below follows a list of all files
  76.    in the PowerVisor distribution.
  77.  
  78.    NOTHING in the PowerVisor distribution may be redistributed seperately
  79.    or used in any commercial product without prior permission from
  80.    the author.
  81.  
  82.    Note that the quickhelp utilities ('MakeHelp', 'ArcFiles', 'Help',
  83.    'MakeHelp13', 'ArcFiles13' and 'Help13') are considered seperate
  84.    from PowerVisor. You may redistribute the quickhelp utilities
  85.    without the rest of PowerVisor if you really want to (read the
  86.    'Help.doc' file for possible restrictions).
  87.  
  88.    You can order the source of PowerVisor if you like. Simply read the
  89.    'HowToGetTheSource' file included in this archive.
  90.  
  91.    ReqTools is CopyRight © Nico François.
  92.  
  93.    PowerVisor is no longer in beta stage. I don't know if PowerVisor
  94.    already deserves this, but some people insisted that it was time
  95.    that I removed the beta label, so I did it. The fact that PowerVisor
  96.    is not beta does not mean that there are no bugs left :-)  But
  97.    I think that PowerVisor is stable enough (at least the AmigaDOS 2.0
  98.    version looks stable enough) to make it a really usable program
  99.    (I use it :-)
  100.  
  101.    I (THE AUTHOR) TAKE NO RESPONSIBILITY FOR DAMAGES INFLICTED BY
  102.    POWERVISOR AND THE OTHER PROGRAMS IN THIS DISTRIBUTION. YOU ARE
  103.    COMPLETELY RESPONSIBLE FOR ALL EFFECTS OF USING POWERVISOR
  104.    AND ANY OF THE OTHER PROGRAMS. USE AT YOUR OWN RISK !
  105.  
  106.  
  107. Short feature list
  108. ------------------
  109.  
  110.    o Fullscreen debugger
  111.  
  112.    o Full symbolic debugging
  113.  
  114.    o Very powerful tracing and breakpoint commands. You can trace until
  115.      a certain condition becomes true, or trace just before the next
  116.      branch, or trace until a certain register changes, ... PowerVisor has
  117.      profiler breakpoints, conditional breakpoints and a lot more
  118.  
  119.    o Primitive source level debugging (C, assembler, ...) In future
  120.      more will be possible
  121.  
  122.    o PowerVisor is compatible with the 68000, 68020 and 68030. The 68040
  123.      is also supported (in the disassembler for example) although some
  124.      features don't work on that processor (like memory protection) due
  125.      to lack of information
  126.  
  127.    o Memory protection system. With this system you can read or write
  128.      protect ranges of memory for all or some tasks
  129.  
  130.    o PowerVisor can show the MMU registers and special 68020/30 registers
  131.  
  132.    o Primitive floating point support (display and modify registers). In
  133.      future more will be possible (like expressions)
  134.  
  135.    o Powerful ARexx interface
  136.  
  137.    o Intuition menus and gadtools scrollbars (AmigaDOS 2.0 version only)
  138.  
  139.    o The PowerVisor screen is a public screen (only for AmigaDOS 2.0)
  140.  
  141.    o Powerful expression evaluator. Almost all C operators are supported
  142.      and some additional operators as well
  143.  
  144.    o Online help system with AmigaGuide or MultiView (for AmigaDOS 3.0)
  145.      or internal system
  146.  
  147.    o Very customizable: screen or window on WorkBench, fonts, colours,
  148.      menus, multiple windows, ...
  149.      You can add your own PowerVisor commands with aliases
  150.      All keys can be redefined and you can add macros or commands to
  151.      any key you want
  152.  
  153.    o You can call any library function you want from within PowerVisor.
  154.      With this feature you can test existing library functions or you
  155.      can test your own libraries
  156.  
  157.    o Powerful stack usage checker. With this command you can see how
  158.      much stack a program uses
  159.  
  160.    o Resource tracker. With this command you can see how much memory
  161.      a program allocates (and how much memory it doesn't deallocate),
  162.      all allocated signals, all locks and open files
  163.  
  164.    o Profiler. With this system you can see which routines use much
  165.      CPU time and are useful to optimize
  166.  
  167.    o Crash trapping
  168.  
  169.    o You can kill and freeze tasks
  170.  
  171.    o Powerful tag and structure system. With this system you can define
  172.      structures in PowerVisor. The disassembler will recognize these
  173.      structures if possible and it will use names for all offsets instead
  174.      of numbers. This makes debugging a lot easier
  175.  
  176.    o PowerVisor can list almost anything: tasks, libraries, devices, ports,
  177.      resident modules, autoconfig devices, dos devices, windows, screens,
  178.      fonts, ...
  179.      In addition PowerVisor can dump the internal structures of many
  180.      operating system elements like tasks, processes, CLI structures, ...
  181.  
  182.    o You can open any Exec device from within PowerVisor and send commands
  183.      to it. This is useful for debugging your own devices
  184.  
  185.    o You can monitor the usage of a library function. Each time the
  186.      library function is called PowerVisor will perform some action (like
  187.      printing a message, or storing the information from the call in a
  188.      buffer, or simply blinking the powerled)
  189.  
  190.    o PowerVisor can list the gadgets of a window
  191.  
  192.    o PowerVisor can remove a lot of things like tasks, resident modules,
  193.      input handlers, windows, screens, ...
  194.  
  195.  
  196. I'm sorry
  197. ---------
  198.  
  199.    I'm sorry for my bad English. I speak Dutch and English is
  200.    only my second language. The tutorial files as they are in
  201.    the current distribution are NOT corrected at all. I didn't
  202.    even reread everything. I'd very much appreciate corrections of the
  203.    online help and the tutorial files.
  204.  
  205.  
  206. Compatibility with PowerVisor V1.32
  207. -----------------------------------
  208.  
  209.       - Tag files are not compatible anymore (due to a bug fix). If you
  210.         want to convert the old pre-V1.40 tag files to the new format
  211.         you must change the last four bytes (00000000 in the old file
  212.         format) to FFFFFFFF (or -1)
  213.       - 'pvcall 65' is obsolete (it is not harmful to call this
  214.         routine, since it is replaced by an equivalent, but less
  215.         powerful and less useful, routine)
  216.       - Several changes everywhere (see 'TheWizCorner.guide') because
  217.         the 'mode' command was completely rewritten
  218.       - PowerVisor-config file has changed a little bit. It is
  219.         still possible to use the old config file, but it is better
  220.         that you delete this file and make a new one
  221.  
  222.  
  223. Compatibility with PowerVisor V1.31
  224. -----------------------------------
  225.  
  226.    Due to large internal changes (memory management) there have been
  227.    some changes. Here follow all things that have changed that
  228.    could cause compatibility problems for specialized scripts.
  229.    If you have made specialized ARexx programs, scripts or ML-scripts
  230.    you will probably have to change some things :
  231.  
  232.       - 'pvcall 59' is obsolete. This is because the complete
  233.         'PVQuickBlock' system has been removed. Note that you
  234.         can use 'pvcall 58' instead
  235.       - mbase_GlobalAutoClear is now a 'PVMemoryBlock' instead of
  236.         a 'PVQuickBlock'
  237.       - mbase_PVQuickTressHold is obsolete
  238.       - mbase_ResidentCode is now a 'PVMemoryBlock' instead of
  239.         a 'PVQuickBlock'
  240.       - The 'PVQuickBlocks' in the 'debug node' have also been changed
  241.         to 'PVMemoryBlocks'
  242.       - 'base_CliCmdLineLen' has been replaced by 'base_Detach'
  243.       - 'PVCallStub.lib' and 'PVCallStubNB.lib' have changed
  244.         (new PvCall functions)
  245.       - There is an extra field in the logical window structure
  246.       - There is an extra field in the debug structure
  247.       - There are some extra fields in the debug structure that were
  248.         previously used for other things
  249.  
  250.  
  251. Compatibility with PowerVisor V1.10ß to V1.12ß
  252. ----------------------------------------------
  253.  
  254.    PowerVisor was still in beta release. This means that big changes
  255.    were unavoidable :
  256.  
  257.       - The 'ScreenBase' structure (see 'TheWizardCorner') has changed.
  258.         You will probably have to change and recompile all scripts
  259.         using 'ScreenBase'
  260.       - The 'PowerVisor-config' file is not compatible
  261.  
  262.  
  263. Compatibility with PowerVisor V1.00ß and V1.01ß
  264. -----------------------------------------------
  265.  
  266.       - 'refresh' ALWAYS expects two arguments. The second
  267.         argument (command) is no longer optional
  268.       - New 'pvcall 17' and other pvcall commands
  269.       - New strong quote operator (·)
  270.       - The '#' operator is removed. Replace it with the '\' operator :
  271.                #<var>     ---->     \(<var>,%s)
  272.       - The 'eval' function expects a string pointer instead of a string
  273.       - The 'libfunc' command expects a negative argument instead of
  274.         a positive one
  275.       - The <maximum number of functions> argument is removed from
  276.         the 'loadfd' command
  277.       - 'memory', 'view' and 'unasm' work differently when another
  278.         number of bytes is used (see documentation)
  279.       - All error numbers have changed because the obsolete error
  280.         numbers are removed
  281.       - The 'PVSD' fileformat ('loadtags', 'savetags') has changed.
  282.         There is no way to convert. You need the original source
  283.         (.struct file)
  284.       - 'why' command is gone and is replaced with an alias in
  285.         the standard PowerVisor-startup file
  286.       - Many fields described in 'TheWizardCorner' have changed. Some
  287.         pvcall functions have become obsolete and DO NOT work anymore.
  288.         Some pvcall functions have been REPLACED with others
  289.       - The PowerVisor expression evaluator is more strict. You MUST
  290.         close ALL brackets (also {} brackets)
  291.       - PowerVisor commands called from ARexx are not interruptable anymore
  292.         with <esc>
  293.       - Important change in the logical window system. (See the changes
  294.         section for more details)
  295.       - Major change in the history buffer mechanics. The history
  296.         buffer list has changed (see 'TheWizardCorner')
  297.       - The File format of s:PowerVisor-config has changed !
  298.         Please delete this file first before you start the new version of
  299.         PowerVisor !!!
  300.       - Commandline options for PowerVisor are removed since they were
  301.         not very useful
  302.       - 'scan' works differently. You don't need to free the string
  303.         allocated with 'scan'. The pointer to the input string is
  304.         NOT returned in 'rc' but in the predefined constant 'INPUT'
  305.       - The number of pens in the pentable has changed from 16 to 24
  306.  
  307.  
  308. The development cycle
  309. ---------------------
  310.  
  311.    I started development of PowerVisor (February 1989) on an Amiga
  312.    500 with two diskdrives and one megabyte of memory. (except for
  313.    holidays, I only programmed in the weekends since I was at my
  314.    university for the rest of the week)
  315.    PowerVisor (at that time called 'PowerBase') was going to be a
  316.    structure viewer. The 'list' and 'info' commands are in fact the
  317.    most ancient commands in PowerVisor (except maybe the 'quit'
  318.    command :-)
  319.    At that time I did not think about writing a debugger. I could
  320.    not even write one if I wanted to. After all, PowerVisor was
  321.    only my second machinelanguage program on Amiga and I was still
  322.    learning machinelanguage.
  323.    (my first program in machinelanguage was a little program to
  324.    blink the powerled, I made this program together with someone
  325.    else :-)
  326.    (In fact PowerVisor is also my last machinelanguage program, I
  327.    normally program in C)
  328.  
  329.    I bought my first harddrive about five months later (30 megs).
  330.  
  331.    In September 1990 I bought my Amiga 3000/16/40! Needless to say
  332.    this was a great development boost. I almost immediately expanded
  333.    my Amiga to 4 megabytes of memory.
  334.  
  335.    In August 1991 I bought a second harddrive (52 megs) for my Amiga 3000.
  336.  
  337.    At this moment (Augustus 1992) the PowerVisor source is
  338.    approximately 47000 lines long and all other ascii files
  339.    (help files, scripts, ...) approach approximately 40000 lines.
  340.  
  341.    Conclusion : If I were to start all over again, I would not use
  342.    machinelanguage (or perhaps only for the exception handling and
  343.    other special code). It is too much work. At this moment I don't
  344.    regret my choice of machinelanguage, but this is only because I
  345.    already have programmed all support routines and making some new
  346.    PowerVisor command or other feature is simply a matter of calling
  347.    the right routines (more or less).
  348.  
  349.  
  350. Bugs
  351. ----
  352.  
  353.    PowerVisor was programmed on an Amiga 3000 with AmigaDOS 2.0.
  354.    I have tested the program on AmigaDOS 1.3 and everything seemed
  355.    to work. I have tested PowerVisor on the Amiga 500 and on the
  356.    Amiga 4000.
  357.  
  358.    I know that the MMU protection system will NOT work on a 68040.
  359.    As long as I don't know anyone personally with such a system I can't
  360.    solve the bugs in this area. I also don't have any documentation
  361.    on the 68040.
  362.  
  363.    PowerVisor is a big program. This means that bugs are unavoidable.
  364.    If you find some bugs, or have some suggestions please write.
  365.    I'd like PowerVisor to be as bug free as possible.
  366.    In this distribution there is a file 'pv.bugs' describing all bugs
  367.    in the current version. Consult this file if you discover some
  368.    weird behaviour.
  369.  
  370.    Give (at least) the following information when you report a bug :
  371.  
  372.       - Hardware configurations you have used (if a bug occurs
  373.         on one hardware configuration but not on another one, please
  374.         give both hardware configurations)
  375.         Hardware configurations includes :
  376.                Processor (68000, 68010, 68020, 68030, 68040, ...)
  377.                Coprocessor (68881, 68882, ...)
  378.                MMU (68851, ...)
  379.                Amiga model (500, 500+, 600, 600HD, 1000, 1200, 1500,
  380.                   2000, 2500/20, 2500/30, 3000/16, 3000/25, 3000UX, 3000T,
  381.                   4000, CDTV, ...)
  382.                Available memory (chip ram, fast ram, other, ...)
  383.                Harddisk information (SCSI, IDE, MFM, RLL, ...)
  384.                Other hardware expansions (graphics card, sound card, ...)
  385.       - Software configuration you used
  386.         Software configuration includes :
  387.                Operating system (AmigaDOS 1.2, 1.3, 2.0, 2.1, 3.0, ...)
  388.                   If you can run more than one operating system on
  389.                   your Amiga, test the bug in the different versions
  390.                Version of KickStart and WorkBench (in Workbench
  391.                   about menu or with 'version' cli command)
  392.                Other programs running while the bug occurs (screen
  393.                   blankers, popup programs, ...)
  394.       - Describe the bug and the sequence of commands needed to
  395.         get the bug
  396.         Describe all output (including flashing lights, strange sounds,
  397.         noises, ...)
  398.  
  399.  
  400. All files
  401. ---------
  402.  
  403.      PowerVisorLib (dir)      This subdirectory contains files needed
  404.                               to use to powervisor.library in your programs
  405.  
  406.        pv_lib.fd              fd-file containing function definitions for
  407.                               the powervisor.library functions
  408.        pv_lib.h               C header file containing pragmas for the
  409.                               powervisor.library functions. This file
  410.                               is written for SAS C 5.0. If you use
  411.                               another compiler (like Aztec) you may
  412.                               need to rewrite this file. If you use a
  413.                               C compiler with no support for pragmas you
  414.                               must make stubs to call the library functions
  415.        pv_lib.i               Machinelanguage header file.
  416.  
  417.      c (dir)                  This subdirectory contains all executable
  418.                               files. All files ending with '13' are for
  419.                               AmigaDOS 1.3.
  420.  
  421.        dc                     Utility needed by the installation script
  422.                               to decompress the PowerVisor-help.qq file
  423.                               to PowerVisor-help (and all other files
  424.                               ending with '.qq')
  425.  
  426.        ArcFiles               The QuickHelp utilities for AmigaDOS 2.0
  427.        Help                   Read docs/help.doc for more info
  428.        MakeHelp
  429.  
  430.        ArcFiles13             The QuickHelp utilities for AmigaDOS 1.3
  431.        Help13                 Read docs/help.doc for more info
  432.        MakeHelp13
  433.  
  434.        MStruct                Program to convert pseudo include files to pvsd
  435.                               files.
  436.                               This program will be enhanced in future
  437.                               to support full include files.
  438.        MStruct13              AmigaDOS 1.3 version of MStruct
  439.        pv                     AmigaDOS 2.0 version of PowerVisor
  440.        pv13                   AmigaDOS 1.3 version of PowerVisor
  441.  
  442.      libs (dir)               All libraries needed by PowerVisor
  443.  
  444.        powervisor.library     This library is needed by PowerVisor
  445.        reqtools.library       This library is not strictly necessary but
  446.                               it is a very useful library anyway
  447.                               (currently version 2.0c is included)
  448.  
  449.      libs13 (dir)
  450.  
  451.        reqtools.library       AmigaDOS 1.3 version of the reqtools.library
  452.  
  453.      docs (dir)               All documents for PowerVisor
  454.                               Use AmigaGuide or MultiView to read these
  455.                               documents if you have this program. However,
  456.                               the files are quiet readable with a normal
  457.                               text viewer and they can be converted to be
  458.                               even more readable (see ConvertGuide2Doc).
  459.  
  460.        PowerVisor.guide       The main menu of the hypertext manual. Use
  461.                               this file with AmigaGuide or MultiView or
  462.                               double click on this file in the Workbench
  463.                               to start reading the manual.
  464.  
  465.        GettingStarted.guide   Read this file if you are a first-time user
  466.        Expressions.guide      All about expression evaluation in PowerVisor
  467.        Screen.guide           Everything about screens and windows
  468.        InstallingPV.guide     How to install PowerVisor
  469.        LookingAtThings.guide  How to look at memory, disassemble, ...
  470.        Debug.guide            How to debug programs
  471.        Scripts.guide          Everything about scripts (ARexx, ...)
  472.  
  473.        CommandRef.guide       All PowerVisor commands explained
  474.        Functions.guide        All PowerVisor functions explained
  475.        Lists.guide            All lists
  476.        Aliases.guide          This file explains everything about the
  477.                               aliases defined in s/PowerVisor-startup
  478.                               and s/pv/ExtraAliases
  479.  
  480.        Glossary.guide         The PowerVisor glossary, reading this file is
  481.                               a very good way to learn all (or most)
  482.                               PowerVisor terminology
  483.  
  484.        HowDoYou.guide         Common questions and answers
  485.        TechnicalInfo.guide    Some technical information
  486.        TheWizCorner.guide     Only for VERY experienced users. Using this
  487.                               file you can customize PowerVisor to enormous
  488.                               degrees. Look in the 'Source' directory for
  489.                               examples using information from this file.
  490.                               Also look at the 'PVDevelop' directory useful
  491.                               for making your own powerful scripts (and
  492.                               ML-scripts)
  493.  
  494.        Help.doc               Manual for QuickHelp
  495.  
  496.        SearchIt               Utility to search keyword in PowerVisor
  497.                               hypertext manual. This utility is used by
  498.                               the 'searchkeyword.pv' ARexx script.
  499.                               By default this is the SAS/C version
  500.        SearchIt.lc            The SAS/C version (slow and large) of the
  501.                               above utility
  502.        SearchIt.gcc           The GNU C version (fast and small, but you
  503.                               need the ixemul.library) of the above
  504.                               utility
  505.        SearchIt.c             The source
  506.        ConvertGuide2Doc       Utility to convert an AmigaGuide file (with
  507.                               '.guide' extension) to a normal document file.
  508.                               This utility removes all special AmigaGuide
  509.                               commands and makes the file somewhat more
  510.                               readable with a normal textviewer.
  511.                               Use this utility if you don't have MultiView
  512.                               or AmigaGuide
  513.        ConvertGuide2Doc.c     Source of the above utility
  514.        doc.info               Info file needed by 'InstallPV' script to
  515.                               change the icons of the PowerVisor manual when
  516.                               this manual is converted to normal document
  517.                               files
  518.        ConvertDoc.script      Script needed by the 'InstallPV' script to
  519.                               convert an AmigaGuide document to a normal
  520.                               document file
  521.  
  522.      Source (dir)             This subdirectory contains sources for
  523.                               various scripts and example programs
  524.                               included with PowerVisor
  525.  
  526.        FreeError.asm          These two programs crash your Amiga,
  527.        stackovf.asm           except when PowerVisor is running (I hope)
  528.                               Executables for these files are in the
  529.                               'Examples' subdirectory
  530.  
  531.        BuggyProgram.asm       Example programs used in the 'debug' tutorial
  532.        BuggyProgram2.asm      file. Executables for these files are in the
  533.                               'Examples' subdirectory
  534.  
  535.        CheckBrackets.c        Program to check brackets. Executable file
  536.                               is in 's/pv'. Source is for Lattice C 5.0
  537.                               only
  538.        GetCode.c              Program to compute the keycode for a named
  539.                               key. Executable file is in 's/pv'. Source is
  540.                               for Lattice C 5.0 only
  541.        GetQual.c              Program to compute the keyqualifier for a
  542.                               named qualifier. Executable file is in 's/pv'.
  543.                               Source is for Lattice C 5.0 only
  544.  
  545.        Exec.struct            PowerVisor source for 'Exec' structure
  546.                               definitions.
  547.                               pvsd file is in 's/pv'
  548.        intuition.struct       PowerVisor source for 'Intuition' window
  549.                               structure definition.
  550.                               pvsd file is in 's/pv'
  551.  
  552.        mkeys.explained        Same script file as 's/pv/mkeys' but with
  553.                               a lot of comments
  554.  
  555.        pptest.asm             Program to test the powervisor.library.
  556.                               Use as an example. Executable file is in
  557.                               the 'Examples' subdirectory
  558.        takeme.asm             Program to test 'debug t'
  559.                               Executable file is in the 'Examples'
  560.                               subdirectory
  561.        SearchHist.asm         Source for history search program. Executable
  562.                               file is in 's/pv'
  563.  
  564.  
  565.      PVDevelop (dir)          This subdirectory contains include files and
  566.                               libraries useful for PowerVisor Wizards. There
  567.                               are include files for C and machinelanguage
  568.  
  569.        include (dir)          Subdirectory containing all include files
  570.                               for PowerVisor (except for the
  571.                               powervisor.library include files because these
  572.                               are in another subdirectory)
  573.  
  574.           PV (dir)            The recomended place for the include files
  575.  
  576.             ARexxBase.h       The ARexx Base structures
  577.             ARexxBase.i
  578.             DebugBase.h       The Debug Base structures
  579.             DebugBase.i
  580.             EvalBase.h        The Eval Base structures
  581.             EvalBase.i
  582.             FileBase.h        The File Base structures
  583.             FileBase.i
  584.             GeneralBase.h     The General Base structures
  585.             GeneralBase.i
  586.             ListBase.h        The List Base structures
  587.             ListBase.i
  588.             MainBase.h        The Main Base structures
  589.             MainBase.i
  590.             MemoryBase.h      The Memory Base structures
  591.             MemoryBase.i
  592.             ScreenBase.h      The Screen Base structures
  593.             ScreenBase.i
  594.             PVCallRoutines.h  Protos for the PVCall routines
  595.             PVCallTable.h     Table with PVCall routine numbers
  596.             PVCallTable.i
  597.             PVMemory.h        PowerVisor memory allocation structures
  598.             PVMemory.i
  599.  
  600.           Lib (dir)           All the C libraries (for SAS/C) to make
  601.                               calling PVCall functions from C easier
  602.  
  603.             PVCallStub.lib    The library for small code
  604.             PVCallStubNB.lib  The library for large code
  605.  
  606.             Source (dir)      The source for these libraries
  607.  
  608.               README          A README explaining some things. If you
  609.                               'execute' this file, the two libraries
  610.                               will be build again
  611.  
  612.               PVCallStub.i    Include file needed for all functions
  613.  
  614.               makefile        makefile used by 'README'
  615.  
  616.               PVCBeep.asm     All sources for all PVCall functions
  617.               PVCError.asm
  618.               PVCAddAutoClear.asm
  619.               PVCAddGlobalAutoClear.asm
  620.               PVCAddStringToHist.asm
  621.               PVCAdvanceHistory.asm
  622.               PVCAllocPVBlock.asm
  623.               PVCAppendString.asm
  624.               PVCCallMLScript.asm
  625.               PVCClosePVHandle.asm
  626.               PVCCompareStrings.asm
  627.               PVCComputeGadgetSignal.asm
  628.               PVCConvertAlias.asm
  629.               PVCCopyString.asm
  630.               PVCCreateConstant.asm
  631.               PVCCreateFunction.asm
  632.               PVCErrorHandler.asm
  633.               PVCEvaluate.asm
  634.               PVCFreePVBlock.asm
  635.               PVCGetARexxBase.asm
  636.               PVCGetDebugBase.asm
  637.               PVCGetEvalBase.asm
  638.               PVCGetExecLevel.asm
  639.               PVCGetFileBase.asm
  640.               PVCGetGeneralBase.asm
  641.               PVCGetHistoryLine.asm
  642.               PVCGetListBase.asm
  643.               PVCGetMainBase.asm
  644.               PVCGetMemoryBase.asm
  645.               PVCGetModeRoutines.asm
  646.               PVCGetRexxList.asm
  647.               PVCGetRoutines.asm
  648.               PVCGetScreenBase.asm
  649.               PVCGetSnapBuffer.asm
  650.               PVCGetStringGadget.asm
  651.               PVCGetStringGBuf.asm
  652.               PVCGetStringInfo.asm
  653.               PVCGetVarAddress.asm
  654.               PVCInstallPostCmd.asm
  655.               PVCInstallPreCmd.asm
  656.               PVCInstallQuitCmd.asm
  657.               PVCInstallSnapCmd.asm
  658.               PVCLowerHistory.asm
  659.               PVCParseString.asm
  660.               PVCPrint.asm
  661.               PVCPrintNum.asm
  662.               PVCReAllocPVMemoryBlock.asm
  663.               PVCRefreshLogWin.asm
  664.               PVCRefreshStringG.asm
  665.               PVCRemoveGlobalAutoClear.asm
  666.               PVCRemVar.asm
  667.               PVCSetCursorPos.asm
  668.               PVCSetDebugMode.asm
  669.               PVCSkipSpaces.asm
  670.               PVCSnapWord.asm
  671.               PVCDisassemble.asm
  672.               PVCCmdDisassemble.asm
  673.               PVCPutChar.asm
  674.               PVCAllocMem.asm
  675.               PVCFreeMem.asm
  676.               PVCReAlloc.asm
  677.  
  678.      s (dir)                  Online help and scripts
  679.  
  680.        PowerVisor-menus       Only for the AmigaDOS 2.0 version. This
  681.                               file contains the description of the menus
  682.                               used in PowerVisor. The format is not
  683.                               difficult. You can change this file if
  684.                               you'd like other menus
  685.        PowerVisor-help        Online help file. This file contains all
  686.                               online help and the templates. You can't
  687.                               use 'help' and 'why' when this file is
  688.                               not present. Note that the online help
  689.                               file is not the good place to start learning
  690.                               PowerVisor. Use the tutorial files in the
  691.                               'docs' subdirectory for that purpose.
  692.        PowerVisor-ctrl        Online help control file. Use the QuickHelp
  693.                               utilities to update this file when you
  694.                               have changed something in the PowerVisor-help
  695.                               file. You need this file if you want
  696.                               online help
  697.        PowerVisor-errors      All error messages for PowerVisor. You need
  698.                               this file if you want to make errors :-)
  699.                               No, you need this file if you want to see
  700.                               a sensible error message.
  701.                               Each line in this file must be 70 bytes
  702.        PowerVisor-startup     The startup script for PowerVisor. This
  703.                               script installs various new commands and
  704.                               keys
  705.  
  706.           pv (dir)            This subdirectory contains all scripts you
  707.                               can use
  708.  
  709.             db                PowerVisor script to install the fullscreen
  710.                               debugger. This script also assigns some
  711.                               keys to useful debugging commands
  712.             ExampleSetting    PowerVisor script to show an other window
  713.                               configuration posibility. Use as an example
  714.                               for more useful settings
  715.             ExtraAliases      This file contains some extra useful
  716.                               aliases not defined in the s/PowerVisor-startup
  717.                               file
  718.             icopy             PowerVisor script to install a logical window
  719.                               copy feature. Press 'Shift-PrtSc' to store
  720.                               the active logical window in an internal
  721.                               buffer. Press 'PrtSc' to retrieve this buffer
  722.                               into another active logical window.
  723.                               This script uses 'GetLogWin' and 'CopyLogWin'
  724.             CheckBrackets     ML script to check for brackets in the
  725.                               commandline. Source is in the 'Source'
  726.                               subdirectory. See the 's/Powervisor-startup'
  727.                               file for an example of how to install this
  728.                               feature
  729.             GetCode           ML script to compute the code of a named
  730.                               key. Source is in the 'Source' subdirectory.
  731.                               Note that if you have AmigaDOS 1.3 you can
  732.                               only use this script to compute the code
  733.                               of special keys (like 'enter' and 'esc')
  734.                               and not of normal keys (like 'a', '3', ...).
  735.                               This script is installed as a function in the
  736.                               's/PowerVisor-startup' file
  737.             CopyLogWin        ML script to copy the active logical window
  738.                               to a buffer. This script is used by 'icopy'.
  739.                               Source is in the 'Source' directory
  740.             GetLogWin         ML script to copy a buffer to the active
  741.                               logical window. This script is used by 'icopy'.
  742.                               Source is in the 'Source' directory
  743.             GetQual           ML script to compute the qualifier of a named
  744.                               qualifier. Source is in the 'Source'
  745.                               subdirectory. This script is installed as a
  746.                               function in the 's/PowerVisor-startup' file
  747.             SearchHist        ML script to search in the history buffer.
  748.                               Source is in the 'Source' subdirectory. This
  749.                               script is installed on a key in the
  750.                               's/PowerVisor-startup' file
  751.             ikey              This PowerVisor script installs various
  752.                               special features
  753.             mkeys             PowerVisor script for a memory display
  754.                               utility
  755.             TypeMemory        Add structure definitions (tags) for some
  756.                               standard structures (like ExecBase and tasks)
  757.             ProtectRCustom    Protect all read only variables in the
  758.                               custom chips. Only use after you have
  759.                               used the 'watch' command
  760.             ProtectWCustom    Protect all write only variables in the
  761.                               custom chips. Only use after you have
  762.                               used the 'watch' command
  763.             StopCustom        Stop the protection set up by the previous
  764.                               scripts. Only use if you have used the
  765.                               'watch' command
  766.             cmd.pv            ARexx script to execute a CLI command from
  767.                               within PowerVisor. The output from the CLI
  768.                               command appears on the PowerVisor window.
  769.                               Use the 'cmd' alias to start this script.
  770.                               You can interrupt the output with <ctrl>+<c>
  771.             cmdline.pv        ARexx script to be started from a shell (not
  772.                               from within PowerVisor). This script emulates
  773.                               a PowerVisor commandline on the shell
  774.             PrintHist.pv      ARexx script to print the contents of the
  775.                               current history buffer
  776.             PrintMode.pv      ARexx script to print the current mode
  777.                               setting in a readable format
  778.             ShowAscii.pv      ARexx script to show all ascii chars on the
  779.                               PowerVisor window
  780.             Assem.pv          Little ARexx assembler. Use the 'asm' alias
  781.                               defined in s:PowerVisor-startup to call this
  782.                               script. See the script for more info about
  783.                               the script
  784.             DispMemList.pv    Display the free memory in a graphical way.
  785.                               Give the start of the memory you want
  786.                               to view as an argument to this script (after
  787.                               'rx')
  788.             SearchKeyWord.pv  ARexx script to seach a keyword in the
  789.                               PowerVisor hypertext manual. Use the
  790.                               'index' alias to start this script
  791.             ListEnv.pv        Specialized ARexx script to get a list
  792.                               environment where you can select a list
  793.                               element with a cursor. Pressing enter will
  794.                               give you information for that element.
  795.                               This script is a good example for some
  796.                               rather specialized ARexx <-> PowerVisor
  797.                               constructions. This script needs the 'co'
  798.                               and 'qu' functions defined in the standard
  799.                               s:PowerVisor-startup file and the
  800.                               'CopyLogWin' and 'GetLogWin' ML-scripts in
  801.                               this subdirectory
  802.             intuition.pvsd    pvsd file for the Window structure.
  803.                               Source is in the 'Source' subdirectory
  804.             Exec.pvsd         pvsd file for all Exec structures
  805.                               Source is in the 'Source' subdirectory
  806.  
  807.      Examples (dir)           This subdirectory contains some example
  808.                               programs. Sources for most of these programs
  809.                               can be found in the 'Source' subdirectory
  810.  
  811.        BuggyProgram           Programs used in the 'Debug' tutor file
  812.        BuggyProgram2
  813.  
  814.        crash3                 Some crash programs
  815.        crash4
  816.        crash5
  817.        crash8
  818.        crasha
  819.        freeerror
  820.        stackovf
  821.  
  822.        pptest                 powervisor.library test program
  823.        takeme                 'debug t' test program
  824.  
  825.   ReadThisFirst               This file
  826.   History                     Consult this file to see what's new in
  827.                               the current version of PowerVisor
  828.   HowToInstall                File explaining how to install PowerVisor
  829.   HowToGetTheSource           File explaining what you have to do to get
  830.                               the source of PowerVisor
  831.   pv.bugs                     All known bugs in the current version of
  832.                               Powervisor
  833.   InstallPV                   Install script for AmigaDOS 2.0 (uses the
  834.                               'Installer' program). Double click from
  835.                               the Workbench to use
  836.  
  837.  
  838.  
  839.  
  840.    WARNING! Some of these files may be compressed. Each file with
  841.    extension '.qq' must be decompressed with the 'dc' utility (note
  842.    that the install script does this automatically) like this (for
  843.    example for the 'PowerVisor-help' file) (don't use wildcards) :
  844.  
  845.        dc PowerVisor-help.qq PowerVisor-help 4
  846.        delete PowerVisor-help.qq
  847.  
  848.  
  849. Environment
  850. -----------
  851.  
  852.    PowerVisor normally does not expect special assignments or such.
  853.    s/PowerVisor-startup however does expect 'fd' to be assigned to
  854.    the subdirectory containing fd-files (at least exec_lib.fd,
  855.    dos_lib.fd, graphics_lib.fd and intuition_lib.fd). If you do not
  856.    have these fd-files (note that you can find them on the AmigaDOS
  857.    1.3 Extras disk) you must remove four lines in s/PowerVisor-startup
  858.    starting with '-lfd'. You will not be able to use the library
  859.    functions defined in the fd-files if you do this (Note that
  860.    PowerVisor makes very good use of these fd-files, so I recommend
  861.    that you install them if you have a harddisk).
  862.  
  863.    If you want to use AmigaGuide or MultiView to read the PowerVisor
  864.    documentation you also need to assign 'pv:' to the root of the
  865.    PowerVisor subdirectory (so that MultiView can find the documentation
  866.    in 'pv:docs'). The installation script automatically changes your
  867.    startup-sequence (it will ask first!) to include this and the 'fd:'
  868.    assign.
  869.  
  870.    s/PowerVisor-startup and all the aliases defined in this script also
  871.    expects the following files in the s:pv directory : db, CheckBrackets,
  872.    GetCode, GetQual, SearchHist, assem.pv, cmd.pv and searchkeyword.pv.
  873.  
  874.    You can of course adapt s:PowerVisor-startup to your own wishes.
  875.  
  876.  
  877.    If you have reqtools.library (by Nico François) PowerVisor will use
  878.    it for requesters.
  879.  
  880.  
  881.    If you use AmigaDOS 1.2 or 1.3 I recommend that you use
  882.    'FastFonts' (FF) by C.Heath. This program greatly speeds up the
  883.    PowerVisor display. This is not necessary in AmigaDOS 2.0 since
  884.    Commodore did a good optimizing job.
  885.  
  886.    If you use AmigaDOS 1.2, 1.3, 2.0 or 3.0 and you have a fast processor
  887.    (68020 or higher) I recommend that you use 'CpuBlit' by Eddy Carroll.
  888.    This program gives an even greater speed increase.
  889.  
  890.  
  891. Installation
  892. ------------
  893.  
  894.    Look at the 'HowToInstall' file for a very detailed description of
  895.    the installation of PowerVisor.
  896.  
  897.  
  898. Tutor files
  899. -----------
  900.  
  901. Here are all the files in the prefered order to read them.
  902. It is best to read these files with AmigaGuide or MultiView (if you have
  903. one of these programs).
  904.  
  905. tutor files :
  906.  
  907.    PowerVisor.guide           Main file
  908.    GettingStarted.guide       For the first time user
  909.    Expressions.guide          Very important to read
  910.    Screen.guide
  911.    InstallingPV.guide         How to install PowerVisor
  912.    LookingAtThings.guide
  913.    Debug.guide
  914.    Scripts.guide
  915.  
  916. reference files :
  917.  
  918.    CommandRef.guide           Very useful file explaining all commands
  919.    Functions.guide
  920.    Aliases.guide
  921.    Lists.guide
  922.    TechnicalInfo.guide
  923.  
  924. for additional information :
  925.  
  926.    Glossary.guide
  927.    HowDoYou.guide
  928.  
  929. for very experienced users :
  930.  
  931.    TheWizCorner.guide         Only read if you are a PowerVisor wizard !!!!!
  932.  
  933.  
  934.  
  935. Authors
  936. -------
  937.  
  938.    André Pelckmans for the disassembler
  939.    Adriaan vd Brand for the floating point conversion routines
  940.    Jorrit Tyberghein for the rest
  941.  
  942.  
  943. Address
  944. -------
  945.  
  946.    Jorrit Tyberghein
  947.    Hepmansbossen 31
  948.    B-2450 Meerhout
  949.    BELGIUM
  950.  
  951.  
  952. E-Mail address
  953. --------------
  954.  
  955.    (Warning! Do NOT use this address after 2 Dec 1993)
  956.  
  957.    jorrit@uz.kuleuven.ac.be
  958.  
  959.  
  960. Thanks to
  961. ---------
  962.  
  963.    André Pelckmans for his disassembler and for giving me all
  964.    the programming help I need.
  965.    Without him I wouldn't have a computer in the first place (I think).
  966.    I also got my 68030 manual from him.
  967.  
  968.    Nico François for his debugging, his numerous remarks and suggestions.
  969.    Without him PowerVisor would have looked COMPLETELY different :-)
  970.    (and without him I would have to use two disks to backup the source
  971.    of PowerVisor)
  972.  
  973.    Nico François for his WONDERFUL reqtools.library. If you want to use
  974.    well designed, flexible and powerful requesters there is no better choice
  975.  
  976.    Ives Aerts for his useful suggestions and criticism.
  977.  
  978.    Adam Hill, Christian Weber, Steven Reiz and Dominic Giampaolo
  979.    for their bug reports and suggestions.
  980.  
  981.    Some extra thanks to Adam Hill for his efforts to arouse
  982.    interrest in PowerVisor (in BIX for example).
  983.  
  984.    Adriaan van den Brand for his good suggestions and information.
  985.    For the fixing of the MMU bug for an 68020 (see V1.31)
  986.    And for the floating point routines.
  987.  
  988.    John Harper for his bug fix for address errors on the 68000.
  989.  
  990.    The software people at Commodore for their VERY USEFUL debugging
  991.    tools (like 'Enforcer', 'MungWall', ...).
  992.    And also for their presence on usenet.
  993.  
  994.    To my parents of course.
  995.  
  996.    Also thanks to the Amiga computer for being an Amiga.
  997.  
  998.                __
  999.               ///
  1000.              ///
  1001.             ///
  1002.    __      ///
  1003.    \\\    ///       Amiga, the computer for the creative mind
  1004.     \\\  ///
  1005.      \\\///
  1006.       \XX/
  1007.  
  1008.