
||
| PowerVisor History                               Tue Nov  3 15:34:45 1992 |
|___________________________________________________________________________|


For each released version there is a line with the following format :

   Vx.yy (<date>, V37.zzz) :

Vx.yy is the version number (x = major version number and yy = minor
version number). <date> is the last compilation date for that version.
V37.zzz is the internal version. zzz is the number of compilations since
I started using the internal version format (About August 1991 I think).

After this line follow all the changes that distinguish this version
from the previous.


-----------------------------------------------------------------------------



   V1.00 (1 Sep 91, V37.276) :
      - first release (on tapserv and ab20.larc.nasa.gov)

   V1.01 (9 Sep 91, V37.324) :
      - Bug fix : when 'mode fancy', 'mode nofancy', 'mode lace'
        or 'mode nolace' failed (for example, because there is
        a visitor window open on the PowerVisor screen) we didn't
        restore the current mode. This means that when you
        tried again later (after closing the visitor window) PowerVisor
        would ignore the command
      - Bug fix : when the 'mode' command failes because there is
        not enough memory, we first try again with the old mode
        settings before quitting PowerVisor
      - New feature : new 'stack' command and 'getstack' function to
        monitor stack usage for a specific task. 'stack' uses the
        timer.device for very fast respons
      - We removed an obsolete feature from 'refresh'. The optional
        command argument is no longer optional
      - The standard logical window commands have an extra optional
        argument. With this you can specify the number of lines for a
        logical window
      - The previous new feature is also included in the 'openlw' command
      - Bug fix :Logical windows are much more stable with big fonts and
        small visible sizes. No more crashes when the logical window is
        too small
      - Bug fix : parsing of [<x>] operator in alias strings was not
        completely correct. Because we did not ignore the operator
        if <x> was no digit we could not quote the operator. This is
        solved
      - New PowerVisor debug mode accessible with 'pvcall 17'. This
        debug mode is useful if you want to debug aliases, scripts,
        key attachements or other special things in PowerVisor. Every
        command is printed on the screen before it is executed
      - Bug fix : 'if' function now always correctly parses the
        arguments. Because of some very obscure bug it could happen
        that the 'if' function parsed to much characters from the
        string
      - Added strong quote operator in strings because I needed it
        in the 'salias' alias
      - The '#' operator is removed because the same functionality
        is already present in the quote operator '\'. Just use
        \(<x>,%s) instead of #<x>
      - Behaviour of the 'eval' function has changed ! 'eval' now
        expects a string pointer (or normal pointer) instead of
        a string. This turned out to be more useful
      - Limitation removed in 'colrow' and 'fit' commands. It is
        now possible to size the 'debug' logical window
      - Bug fix : The 'colrow' and 'fit' commands are now very stable.
        When an out of memory error occurs, they simply try again for
        the old values. If this also fails PowerVisor will quit
        (in the previous version a command like 'colrow 30000 30000'
        would crash your amiga)
      - Behaviour changed for 'libfunc' command : the offset argument
        must be negative and only the 16 least significant bits
        are used. Thus something like $ff30 is a valid offset (this
        is also the format given by the disassembler)
      - Bug fix : The 'loadfd' command now handles multiple ##bias
        statements in fd-files correctly. In V1.00 all functions
        where correctly loaded but not correctly counted. The effect
        of this was that 'info <fd node>' did not show all functions
        in the fd-file
      - Removed a completely useles feature from 'loadfd' : it is
        no longer possible to specify the maximum number of functions
        to load. 'loadfd' always loads the complete fd-file
      - Added workbench startup
      - Startup is cleaner. We don't crash anymore if the wrong
        PowerVisor is used on the wrong operating system.
        We are also a lot more stable in low memory conditions and
        other wierd environments
      - We didn't close dos.library
      - New 'Aliases' reference file explaining all aliases defined
        in s/PowerVisor-startup and s/pv/ExtraAliases
      - New aliases in s/PowerVisor-startup (salias and fdebug)
      - The 'db' script is better. Opens a fixed size logical window
        so you don't need to size it everytime you use the fullscreen
        debugger. 'db' also redefines 'fdebug' to clean up the
        fullscreen debugger
      - New 'ExtraAliases' script to define some extra aliases
      - Created flexible install script

   V1.10 (30 Sep 91, V37.600) :
      - Bug fix : PowerVisor no longer crashes when a logical window
        is made too small
      - Removed incorrect statement in 'CommandReference' about 'fit'
        and 'colrow' not suitable for the 'debug' logical window
      - Incorrect statement in 'Screen' removed. The 'debug' logical
        window is 90 columns instead of 82
      - New function 'lastbytes'. This function returns the last number
        of bytes used with the 'memory' or 'view' command
      - New function 'lastlines'. This function returns the last number
        of lines used with the 'unasm' command
      - 'memory', 'view' and 'unasm' remember the number of bytes or lines
        viewed (see the previous functions) and will continue with this
        number at a later time
      - New aliases 'cm', 'cv' and 'cu' to continue 'memory', 'view'
        and 'unasm' respectively without setting a new address. You
        can set the number of bytes or lines though
      - Bug fix : we don't allow illegal variable names any more
      - Finally all obsolete errors are removed
      - Bug fix : 'LoadTags' and 'SaveTags' correctly handle structures.
        When you try to load previously saved tags, PowerVisor will check
        if the structure exists and will use this pointer instead of
        the old one. If the structure does not exist, PowerVisor will
        change the type of the tag to Long/Ascii and give a warning
        at the end of the loading
      - Behaviour changed : 'LoadTags' no longer clears the current tag
        list but adds the tags from the file to the current tag list
      - Note that the PVSD file format has changed (used for 'LoadTags'
        and 'SaveTags'). PowerVisor does NOT understand the format
        used by PowerVisor V1.00 and V1.01
      - Install script is better. We check if the files exist before
        we try to copy them. If a file doesn't exist we ask another
        pathname to the user. This means that you can distribute
        PowerVisor on different disks (in fact you will have to
        distribute PowerVisor on different disks if you don't compress
        the files). The installation script won't give errors because
        of non existant files. Simply put the other disk in the drive
      - We print more information in the cli structure (with the 'info'
        command)
      - New glossary file for explaining some specific PowerVisor
        terminology
      - 'Why' command is gone. It is more efficient to define an
        alias for 'why' in s/PowerVisor-startup
      - Some optimizations, PowerVisor is a bit shorter. This has
        some effect on some internal fields. See the
        'TheWizardCorner' file for more info about the format of
        the commands in the routine table
      - Because of the previous optimization there are no more commands
        working in ARexx but not in PowerVisor and vice versa. You can
        now use the 'front', 'hide', 'sync', ... commands in PowerVisor
        too. And the 'clip' and 'remclip' commands work in ARexx
      - Some new 'pvcall' functions for logical windows
      - Bug solved in 'salias' alias. This alias loosed memory everytime
        we runned it
      - The 'co' function (or 'GetCode' ML-script) will not crash anymore
        if used in AmigaDOS 1.3 with a non special key. The function will
        return 0 instead
      - A complete new directory 'PVDevelop' for the PowerVisor Wizards.
        This subdirectory contains include files and libraries useful
        to make ML-scripts in C or machinelanguage
      - New assign : 'pv' to the root of the PowerVisor subdirectory.
        This assign is only used by the develop files
      - 'openlw', 'openpw', 'xwin', 'rwin', 'owin', 'awin' and 'dwin'
        give an error when there is not enough memory. In the previous
        version, the memory failure was simply ignored
      - No more ugly flickering of the BUSY prompt when executing
        ARexx scripts
      - Bug solved in 'unasm' with very long instructions. The hexadecimal
        words would overwrite the instruction
      - New 'bin' alias in s/PowerVisor-startup to show the binary
        representation of a number
      - New 'asm' alias and s:pv/assem.pv ARexx program for a simple
        assembler. See s:pv/assem.pv for more info about the assembler
      - Two new 'pvcall' functions to disassemble one line of memory
        in a string (s:pv/assem.pv uses this)
      - The PowerVisor expression evaluator is more strict. You
        MUST always close all brackets. I have done this because there were
        some problems (especially in 'alias') if badly formed expressions
        are used
      - The same is true for the group operator
      - New 'cmd' alias and ARexx script to execute Cli commands from
        within PowerVisor
      - Bug solved in strong quote parsing
      - PowerVisor commands called from ARexx are not interruptable anymore
        with <esc>
      - Important change in the logical window system. Input is now local
        to a logical window. This means that when a command waits for
        input (either a line of input or a key (-MORE- for example)) all
        other logical windows will be locked. This means that accidently
        hitting a key will not have undesirable results. All input is
        redirected to the active logical window (the one with the full
        (blue) titlebar)
      - <esc> and <ralt>-<help only work for the output appearing on the
        'ACTIVE' logical window, so you have to use <tab> to interrupt a
        command running on another logical window (also see the previous
        item)
      - Note that the stringgadget still behaves weird in AmigaDOS 1.3
        If anyone out there knows a legal way to UNSELECT (UnActivate)
        a stringgadget I would appreciate it very much. In AmigaDOS 2.0
        simply removing the gadget and adding it again is enough to
        unselect the gadget, but this does not seem true in AmigaDOS 1.3.
      - New 'event' command to add an input event to the main handler.
        This is useful for macros (key attachements)
      - The AmigaDOS 1.2/1.3 version of PowerVisor doesn't need arp.library
        anymore (I needed it only for the 32 bit multiply and divide. I
        have now put these two routines in pv13)
      - Fixed yet another bug in the structure viewing and the 'info'
        command. If the list item in a structure was a string, there would
        be some strange characters after the string
      - Many bugs and errors are corrected in the online help and tutor
        files
      - AT LAST ! Mstruct is converted to AmigaDOS 1.2/1.3 ! Now you can
        make your own structures and use them in PowerVisor even if you
        don't use AmigaDOS 2.0
      - Major change in the history buffer mechanics. The history buffer
        now works like in the AmigaDOS 2.0 shell. It is no longer a
        circular list (how coud I ever have such a bad idea :-)
        This means of course that s:pv/PrintHist.pv, s:pv/SearchHist
        and Source/SearchHist.asm have changed a bit. I hope you had not
        written anything using the internal structure of the history
        buffer, because you will have to change your programs if you did
      - At last ! The autorepeat bug in the AmigaDOS 1.2/1.3 version of
        PowerVisor is solved. You can now scroll in the history buffer and
        in the logical windows with autorepeat
      - Although it was already possible to set a font for a logical window,
        this could not be done automatically and the stringgadget and
        logical window size bars remained in topaz 8. Now it is possible to
        set the default font for PowerVisor (with 'prefs font'). This font
        is used for all new logical windows (you can of course still change
        this font when the logical window is already open), for the
        stringgadget, for the logical window size bars and for the screen.
      - WARNING !!! The File format of s:PowerVisor-config has changed !
        Please delete this file first before you start the new version of
        PowerVisor !!!
      - Commandline options for PowerVisor are removed since they were
        not very useful
      - All the 'prefs' commands have a more readable output. I use decimal
        output when decimal is more appropriate than hexadecimal
      - Some pvcall functions are removed because they were obsolete (Signal
        command and IDCMP command)
      - MAJOR ! The AmigaDOS 2.0 version of PowerVisor finally supports
        menus. You can make your own menus with your favorite commands in
        it. I'm very sorry, but this is only for the AmigaDOS 2.0 version
      - When 'reqtools.library' ( Nico Franois) is available, PowerVisor
        will use this library for requesters with the new commands :
            'reqload', 'reqsave', 'request' and 'getstring'
        Otherwise, simple PowerVisor constructions are automatically used :
            'scan', 'key()'
      - There is a new predefined constant 'input'. This constant contains
        the pointer to the last input string (with 'scan', 'getstring',
        'reqload' and 'reqsave'). You don't have to worry anymore about
        freeing all the strings allocated with 'scan'
      - Bug fix in 'debug l' and 'debug n'. We did loose some memory when
        the loading failed or when 'debug n' was interrupted by the user
      - More predefined pens (24 instead of 16), 19 of these pens are used
      - Four new pens for the colours of the stringgadget (only AmigaDOS 2.0)
      - Bug fixed in 'symbol' command. PowerVisor sometimes said there were
        no symbols even if it previously loaded them. This bug was harmless
        but I fixed it anyway :-)

   V1.11 (16 Oct 91, V37.672) :
      - We look at PROGDIR: in AmigaDOS 2.0 to see where our files are
        This means that the following path is used for the
        PowerVisor-startup, PowerVisor-menus, PowerVisor-help,
        PowerVisor-ctrl and PowerVisor-errors files :
            First check PROGDIR: (only AmigaDOS 2.0)
            Check S:
            Check current directory
        In practice this means that you can keep this files together
        with PowerVisor
      - PowerVisor1.0.task is renamed to PowerVisor.task
      - intuition.struct is expanded to handle almost all Intuition
        structures
      - Bug fix in 'trace c' (conditional trace) command. This command only
        occasionally worked. In most cases this command would return an
        error. This is fixed
      - 'break c' is also fixed (the same bug as in 'trace c')

   V1.12 (31 Oct 91, V37.717) :
      - Some errors fixed in the include files. dbn_LoadedSegment is
        a BPTR and not an APTR
      - Bug in 'tags' command solved. This command was broken in V1.11 (and
        maybe earlier)
      - Bug in include files solved. We don't use absolute pathname anymore
        in the .i include files for the PVMemory.i include file. If you have
        any problems with this you should include this file first in your
        source before you include any of the other include files. This should
        solve all possible problems
      - ScreenBase.i and ScreenBase.h contained a double declaration of
        'LockPrompt'. The second 'LockPrompt' has been changed to
        'PtrLockPrompt'
      - Floating point debugging is fixed for AmigaDOS 2.04 (V37.175)
      - Primitive support for floating point debugging with the 'fregs'
        command. This command displays the 8 floating point registers for
        a task (only if the task uses floating point) in the internal
        format (the format used on the Exec stackframe). Wait for future
        releases for more and better floating point support
      - New 'debug u' command. Use this command instead of 'debug r' when
        you have used 'debug l'. If you have used 'debug n' it is often
        better to use the old 'debug r'
      - Little change in assembler (assem.pv). Addressing mode (4) will
        default to (4).l (for example)
      - PowerVisor uses the Exec CacheClearU function to clear the cache
        (after setting breakpoints for example) instead of own routines
        if AmigaDOS 2.0 is used

   V1.13 (14 Feb 92, V37.873) :
      - Bug solved in 'GeneralBase.h'
      - Bug solved in 'debug', 'break' and 'symbol' if no arguments were
        given to the command
      - You can now use the '@sr' register in register assignment and
        you can also use the value of '@sr'
      - '@a7' is now equivalent to '@sp'
      - Bug solved in the changing of the stackpointer '@sp=xxx'
      - New 'scratch' option for the 'addfunc' command. This option makes
        the scratch registers ('d1', 'a0' and 'a1') illegal
      - The 'mmuregs' command should work with an 68020/68851 (I hope)
      - New option added to the 'debug' command ('c'). With this option
        you can catch the next task in the system (not the next process
        like 'debug n')
      - Powerful new command to track the usage of resources for a
        task or process ('track'). Note that this command is not
        completely ready. In future I plan more extensive checking.
        There should also be a easy way to let a program run and
        stop it before it quits. That way you can better examine
        what went wrong
      - Symbols are correctly loaded in all cases (I hope). Previously
        PowerVisor would load incorrect symbols if there were hunks
        without symbols in the file. This is solved
      - Bug in the window system solved. Autoscale (-1,-1) did not
        work as described in the manual
      - Bug solved in 'prefs pens' command. It was not possible to set
        a pen number greater than 32
      - Two new pens defined for hilighting. There is also support
        for hilighted text
      - Source level debugging implemented for 'Macro68'. New 'source'
        command. This source level debugging is still rather primitive.
        In future more features and easier ways to scroll will be added
      - Source level debugging implemented for SAS/C. Compile C program
        with '-d1' option (must be 1 !) to use
      - The fullscreen debugger also uses hilighting instead of the '|'
        character to indicate the program counter
      - The 'refresh' command does not require the 'Refresh' logical window
        to be open. If this window is not open, the output will be send to
        the current logical window
      - New 'Source' logical window (with corresponding 'swin' command) for
        the source level debugger. Note that this means that you have
        to delete the old 'PowerVisor-config' file before you run the new
        PowerVisor
      - There are more menus in the PowerVisor-menus file
      - The 'icopy' script and the 'CopyLogWin' and 'GetLogWin' programs have
        been recompiled because the internal 'ScreenBase' structure has
        changed
      - New arguments for 'mode' command: 'intui' and 'nointui'. When 'intui'
        is set all standard window command ('xwin', 'awin', 'dwin', ...) will
        open a new physical window (Intuition window) that contains the
        standard logical window
      - When a physical window opens, PowerVisor no longer activates this
        window
      - 's:pv/PrintMode.pv' has been changed to incorporate the new 'mode'
        variables
      - Bug solved in the handling of requesters with ReqTools. When you
        changed the PowerVisor screen, PowerVisor would sometimes prevent
        requesters from appearing. This is now solved
      - 'prefs startup' and 'prefs window' have been removed. 'SaveConfig'
        will automatically look at the current window size and position
        and use the information from that. This approach is much more
        userfriendly
      - You can scroll in the source with the mouse (source level debugging)
      - Source level debugging seems to work for Devpac3 too
      - Bug solved in the scroll routine (bug was not visible)
      - The MMU commands should work on a 68020/68851. Previously this was
        not the case
      - The 'mmuregs' command shows a 68851 only register: 'DRP' if you
        have a 68851. I have not been able to test this feature (I have
        a 68030)
      - 'mmuregs' will print '(na)' (not available) for all registers
        not available on your Amiga
      - The 'debug' command is MUCH better if you have AmigaDOS 2.0 (I'm
        sorry for all the 1.3 users). 'debug' does not loose any memory
        (as far as I have been able to test) and you can use 'debug u'
        with a program loaded with 'debug n'.
        I used the new 'CreateNewProc' function in AmigaDOS 2.0 to achieve
        these results
      - If you have AmigaDOS 2.0, 'debug l' will create a CLI structure
        for the process. Previously this was not the case, making it almost
        impossible to use 'debug l' on programs supporting the Workbench
        (The startup code would assume the program was started from
        Workbench because there was no CLI, and would wait in vain for the
        Workbench message)

   V1.14 (25 Mar 92, V37.890) :
      - Bug solved in the standard logical window commands ('dwin', 'xwin',
        'swin', 'rwin', ...) in combination with the 'mode intui' command.
        The following sequence would give a spectacular crash :
            mode nointui
            dwin (open window)
            mode intui
            dwin (close it) ---> FIREWORKS ALL OVER THE PLACE
      - Serious bug solved in the restoring of the correct task priority
        when PowerVisor quits. This not only resulted in the incorrect
        priority for the calling cli (priority 4) but could in some
        cases even lead to crashes when PowerVisor quits (or later)
      - Some people complained that they had problems running PowerVisor
        because they have an incorrect 68020/30 board. These boards
        do not have the correct behaviour when asked if there is a MMU
        on board. To help these people I have added a commandline option
        '-m'. With this commandline option you can force a certain MMU
        or no MMU. When you use this option PowerVisor will not use
        the internal MMU test routine.
        For example:
            use -m0 if you have a 68020 but NO MMU.
            use -m68851 if you have a 68020 WITH a MMU (68851)
            use -m68030 or -m68040 if you have these processors
        You should not use this commandline option unless you have a
        faulty board (like some CSA 68020 boards and maybe others)
      - New 'crash' command. This command patches the TrapCode in
        all tasks currently in the system (or only one task if required)
        to point to the trapcode for PowerVisor. This means that crashes
        are trapped better for those tasks. This command is useful in
        combination with 'mode patch'. 'mode patch' patches all new
        tasks (by patching AddTask) while 'crash' patches all existing
        tasks. You should use this command if you want to debug using
        resident breakpoints or if you want to be able to debug a task
        after it crashes
      - New '#' operator to get the address for a linenumber in the
        currently loaded source

   V1.15 (18 Jul 92, V37.939) :
      - When the 'to' command was used from within an ARexx script and the
        command after the 'to' (the argument to the 'to' command) caused
        an error, PowerVisor would crash after a while. This bug is solved
      - Little bug solved in the command parser. In version 1.14 all
        lines starting with a non digit or non letter would execute
        the 'active' logical window command (except for the prefix
        operators like '-', '~', ...). Now you get a 'Syntax Error'
      - It is now possible to issue ARexx commands to PowerVisor even when
        PowerVisor is in hold mode (however, there are still some problems
        when PowerVisor is on its own screen) so only use this feature when
        you previously opened PowerVisor on the Workbench screen
      - The speed of PowerVisor output has been greatly enhanced. I don't
        use RawDoFmt anymore for the conversion of an integer to a
        hexadecimal string. The speed difference is very large with
        the 'memory' command
      - Assigning a value to the 'mode' variable will not always cause the
        physical windows to close and reopen. This was not really a bug, but
        it nicer if you can simply change the 'mode' variable without
        the slowdown of all the reopening
      - Better error message when you try to load the source for a debug
        task (with 'source l') and you give the name of the source file
        instead of the executable file ('source l' needs the name of
        the executable file). This has caused some confusion
      - 'source l' will now refresh the source logical window (if there
        is any) so that after loading the source you will immediately
        see it (if the program counter is in the source of course)
      - 'fregs' shows the value of each floating point register in a
        primitive way (without exponent and only nine digits before
        the decimal point and nine after)
      - New 'float' command to change the value of a floating point
        register (also in a primitive way, without exponent. Future
        versions of PowerVisor will support full floating point format)
      - Bug solved in 'reqload' and 'reqsave'. These two commands no
        longer append a '/' to an empty pathname (this fix was needed
        because the behaviour of reqtools changed a little bit)
      - The complete documentation has been converted to AmigaGuide
        ( Commodore) format. There are four new standard alias commands
        provided for easy access to the documentation from within
        PowerVisor. With 'ahelp' you simply go to the main screen, with
        'cmdhelp' you can ask help about any command, with 'funhelp' you
        can ask help about any function and with 'index' you can search
        any topic you want in the complete PowerVisor hypertext manual.
        Note that you need AmigaGuide to be able to use these four new
        aliases
      - As a consequence of the previous documentation enhancements, there
        are no longer '.idx' and '.contents' files since these are no longer
        needed. If you don't have AmigaGuide, you can adapt the
        'SearchKeyWord.pv' ARexx script so that you can still use the
        'index' alias
      - New install script for AmigaDOS 2.0 which makes use of the
        wonderful 'Installer' program ( Commodore). It is highly
        recommended that you install PowerVisor with this script
        (if you have AmigaDOS 2.0 of course)

   V1.20 (18 Jul 92, V37.940) :
      - Removed beta :-)

   V1.21 (22 Jul 92, V37.981) :
      - To my big surprise I discovered that I did no checking at all
        in the 'MStruct' program. This utility would simply crash if
        it could not open the input file. How could I ever write such
        evil code!!!
      - Added documentation for the 'MStruct' utility in
        'LookingAtThings.guide'
      - 'PowerVisor.guide' is a bit better
      - Instead of \0a it is now possible to use \n. This is more
        intuitive
      - Enhanced 'SearchKeyWord.pv' script (and thus enhanced 'index'
        alias)
      - Updated some parts of the manual (CommandRef.guide) so that
        the references to the old use of the '#' operator are gone
        (in fact this operator was gone since V1.01) (Don't confuse
        this with the new '#' operator which is something completely
        different)
      - Solved pretty serious bug with parsing in ARexx. The 'clearstruct',
        'cleartags', 'loadtags' and 'loadfd' commands simply were not
        accessible from within ARexx ('clearstruct' and 'cleartags' were
        replaced by 'clear'. 'loadfd' and 'loadtags' were replaced by
        'load')
      - New 'DispMemList.pv' ARexx script. This ARexx script displays
        the free memory in a graphical way
      - New 'appendto' command to append the output of a command to
        a file. This new command is completely equivalent to the 'to'
        command except that the output is appended to a (possibly)
        existing file
      - Bug in 'Aliases.guide'. The 'cv' aliases was called 'vu' which
        is of course wrong
      - Four new aliases in 's:pv/ExtraAliases': 'm0', 'm1', 'v0' and 'v1'.
        With these aliases you can go back with 'memory' and 'view'
      - The restriction that there can only be one PowerVisor in memory
        at the same time is removed. You can now run as many instances
        of PowerVisor as you wish (and as memory permits). However, only
        the first (the master) PowerVisor traps crashes and allows
        debugging. The name of the ARexx port, the PowerVisor port, the
        input handler and the public screen are extended with a dot ('.')
        and the number of the slave (starting with 1). The master instance
        does not have this extension
      - New 'pv' constant to ask the number of the PowerVisor instance
        (0 = master, 1 = first slave, ...)
      - New 'pubscreen' function to get the name of the public screen
        for this instance. Very useful for ARexx scripts
      - New 'arexxport' function to get the name of the ARexx port
        for this instance. Very useful for ARexx scripts
      - 'account', 'addfunc', 'crash', 'debug' and 'track' are not
        allowed for slave instances
      - 'assem.pv' and 'cmd.pv' scripts are better and use ARexx arguments
        instead of the 'rc' variable to get the parameter
        'cmd.pv' works better in most cases (less errors) and it is
        now possible to interrupt the output from within PowerVisor with
        <ctrl>+<c>
      - New '-c' commandline option to skip the reading of the
        PowerVisor-config file. PowerVisor uses all the default values
      - New '-s' commandline option to skip the reading of the
        PowerVisor-startup script
      - New 'a' option for 'attach' so that a command is always executed
        (invisible) even if PowerVisor is busy doing something else
      - The 'string' command has a new optional argument for the maximum
        length of the returned string
      - New 'getline' function to get the pointer to the line on the
        current position
      - Added new hilighting technique to the window system: inverse video
      - New 'ListEnv.pv' script for a specialized list environment (see
        the script for more information)
      - New \01, \02, \03 and \04 characters useful for hilighting text
        on the PowerVisor window
      - New optional argument for 'debug n' and 'debug c'. Normally those
        two commands waited for the next process or task. With this
        optional argument you can wait for the n'th process or task with
        n greater than 1. This is useful if you want to debug a task
        that is started immediately after a certain program runs (for
        example)
      - Added 'HowToInstall' file giving a detailed description of the
        installation process for PowerVisor

   V1.30 (30 Jul 92, V37.1116) :
      - The 'stru' list (the list containing all structure definitions)
        now always contains some structures that were already present in
        PowerVisor but not accessible until now. You can now use 'peek'
        and 'apeek' to read or write values in the standard structures
        (like 'task', 'proc', 'cli', 'wins', ...)
      - Solved bug in 'exec.struct' and 'exec.pvsd'. 'FPTR' type is
        not recognized by 'MStruct'
      - Little bug solved in 'debug c 2' (for example). The 'a2' register
        was not correctly restored to the original value
      - Very little bug solved in the displaying of the page size (with
        the 'mmuregs' command). If this size was equal to 08000 it was
        sign extended to 0ffff8000. This does not happen anymore
      - The output of 'mmuregs' and 'specregs' has changed a bit. I
        think it is more clear this way
      - New feature in powervisor.library: replyport may be null (only
        for some function calls)
      - MAJOR MAJOR MAJOR MAJOR!!!!!!!!!!!!!!!!!!!!!!!
        AT LAST! The MMU memory protection system is here and it even
        works! All you need is a 68020 with a 68851 or a 68030 (at this
        moment the 68040 is not supported) and you can use this extremely
        powerful feature. You can protect any region of memory for write
        access or for read access
      - The new MMU memory protection system uses the already existing
        tag system to describe the protected regions. The 'addtag' command
        has been extended to allow for extra protection flags for a region
        of memory. The 'tags' command has been extended to show these
        extra flags
      - New 'watch' command to enable the new memory protection system.
        This command also moves the VBR to another position so that writing
        in low memory is not as harmful anymore
      - New 'protect' command to protect memory according to the current
        tag list. Use this command in combination with 'watch'
      - New 'getmmuentry' function for some specialized control over the
        new MMU features
      - 'speek', 'spoke' and 'mmureset' will now work on a 68020 with
        a 68851
      - It is now impossible to freeze PowerVisor with PowerVisor.
        Previously the 'freeze' command did not check for this
      - New PP_SignalPowerVisor function (internal) in the
        powervisor.library
      - Fixed two errors in the error-file :-) I used 'freezed' instead
        of 'frozen' (how could I!)
      - Three new scripts ('ProtectRCustom', 'ProtectWCustom' and
        'StopCustom') to protect illegal custom chip access. These scripts
        make use of the new memory protection system
      - Internal tag structure has changed a bit. See the PVDevelop files
        for more info (and 'TheWizCorner.guide')
      - New 'tagtype' command. With this command you can assign a certain
        tag list for the protection of one task only. In this manner you
        can protect regions for one task but not for the others, or you
        can have other protection characteristics for each task. For
        example: task 1 may write on some region but can't read while
        another task can read but not write on the same region (or part
        of it)

   V1.31 (21 Aug 92, V37.1219) :
      - Bug solved in the memory protection system. I discovered that
        read protection did not work in FAST ram on my Amiga 3000. After
        some searching I found that the TTx registers were set to override
        the MMU protection for that region. The 'watch' command now clears
        these two registers (only if you have a 68030 since these two
        registers don't exist on a 68851) so that the MMU tree is always
        used
      - It is now possible to stop the task that caused the memory
        protection error (although not exactly at the place the error
        occured) with the 'f' option for 'addtag'
      - Memory protection did not work on a 68020 either because I optimized
        a routine that could not be optimized without modifying some other
        routine. This bug caused all MMU commands to fail on a 68020 with
        a 68851. Thanks to Adriaan vd Brand for finding and solving this
        bug
      - Disassembler is a bit faster (10000 instructions disassemble in
        35 seconds instead of 46 (still no blazing speed however))
      - Serious bug solved. If you used 'addtag' twice on the same
        memory range with type 'st' (structure) nasty things could happen
      - MAJOR: Disassembler understands tags and structures when you are
        debugging (in the debug display). An example: If a1 contains a
        pointer to a structure in memory and there is a tag for this
        memory that defines the structure, then the instruction:
               MOVE.L  (<offset>,A1),D0
        will automatically be disassembled as:
               MOVE.L  (<name of offset>,A1),D0
        The only thing you need to do to get this feature is to load
        all needed structures with 'addstruct' and define your memory
        regions with 'addtag'
      - There is also a new 'TypeMemory' script that defines tags
        for some standard structures
      - New 'struct' command. With this command you can make and change
        structures in an interactive way. This is VERY useful in combination
        with the tag system and the structure offset disassembly mentioned
        above. You can also save the newly made structures. So you don't
        have to use 'mstruct' (external utility) anymore to make a simple
        structure you were only going to use once anyway
      - The loading of symbols is a LOT faster. Loading 1850 symbols used
        to take about 34 seconds. Now it only takes 3 seconds!
      - Bug fixed in 'peek' function. If the type of the field you were
        peeking was a BCPL pointer or a BCPL string (BSTR), this function
        would always return 0 regardless of the real contents of the
        field in the structure

   V1.32 (2 Sep 92, V37.1325) :
      - All PowerVisor windows now share the same port. This means that you
        can open as many windows as memory permits. There is no longer a
        limit of five windows
      - Added '_node' standard structure to the 'stru' list
      - New 'fd6' alias in 's:pv/ExtraAliases' to load the fd-file
        corresponding to the library currently in @a6 (while debugging)
      - All include files in the 'Develop' subdirectory are updated
      - Bug solved in disassembler. FMOVE.X #imm,FPx is now correctly
        disassembled
      - Totally new internal memory mamagement system.
        advantages :
           o No more MungWall hits
           o Slightly faster
           o Compatible with all possible future operating systems (this
             was not completely the case for the previous memory management
             system)
        disadvantages
           o PowerVisor uses somewhat more memory
      - New 'pvmem' command to see how PowerVisor uses memory (only useful
        for PowerVisor debugging purposes)
      - PowerVisor detaches from the CLI (only if you have AmigaDOS 2.0
        or higher)
      - New commandline option '-d' to disable detaching
      - Bug solved in name of PowerVisor.task for slave instances of
        PowerVisor
      - New 'a' option in 'source' command. With this option you can show
        the source starting with another label
      - New 'h' option in 'source' command. With this option you can lock
        the source logical window. When this is done, the source will no
        longer follow the program counter
      - Bug fixed in source display (source logical window). The last line
        of the source is now correctly displayed
      - Bug fixed in 'debug l' command for AmigaDOS 1.3 version of
        PowerVisor. This command simply didn't work (bug was introduced
        in 1.31 version and does not exist in versions earlier than that)

   V1.40 (27 Sep 92, V37.1751) :
      - Bug solved in 'screen' command (only AmigaDOS 2.0 version, bug is
        not relevant in AmigaDOS 1.3 or lower). The 'VisualInfo' and the
        layout of the menus were not correctly recalculated after a move
        to another screen
      - In order to make things easier (for me) I have removed the feature
        which disabled 'snapping' right after the PowerVisor window is first
        activated. Anyway, this is not so bad since there is a hotkey with
        which you can activate the PowerVisor window
      - 'refresh' (with the 'refresh' command) will from now on also work
        when you have activated another PowerVisor (or physical) window.
        You need not activate the 'Main' physical window anymore (Note!
        This is only true while another POWERVISOR window is active)
      - Bug solved in the PowerVisor window system. When you opened a
        physical window with no logical windows (with 'openpw' for example),
        you could crash your Amiga by clicking on that window some times
      - New support for scrollbars (with GadTools, so this feature only
        works for the AmigaDOS 2.0 version) in logical windows so that you
        can scroll in the window with the mouse. This feature is disabled
        by default. Use 'mode sbar' to enable it (and 'mode nosbar' to
        disable it again)
      - New flags in logical window for scrollbars
      - The 'Source' logical window has seperate scrollbar handling
        routines. Instead of scrolling the logical window, the scrollbar
        in the 'Source' logical window scrolls in the loaded file
      - The 'Source' logical window always has a scrollbar (note that
        you can change this with the 'prefs' command). NOTE! This feature
        is NOT true if you still work with an old 'PowerVisor-config'
        file. Delete this file (or use 'prefs logwin ...' and 'saveconfig'
        manually if you have an old (pre-V1.40) configuration file
      - The 'Debug' and 'Source' logical windows now refresh correctly in
        all circumstances
      - 'pvcall 65' is obsolete and is replaced by an equivalent, but
        less powerful, routine (so scripts using 'pvcall 65' will not
        crash)
      - New powerful 'prof' command for profiling. With this command you
        can monitor a task you are debugging. Using this feature you can
        choose which routines are candidates for optimization
      - New 'debug q' option to prevent a debug task from quiting. This
        is useful in combination with the profiler. Normally when a debug
        tasks quits, all symbols are removed. All information in the
        profiler table would loose its meaning. To prevent this you can
        use 'debug q'
      - New 'AllocSignal', 'CreateMsgPort', 'CreateIORequest', 'Lock',
        'UnLock', 'Open', 'Close', 'OpenFromLock', 'DupLock',
        'DupLockFromFH', 'AllocRaster' and 'FreeRaster' patches in 'track'
        command (resource tracker)
      - Bug fix: it was not possible any more to run more than two instances
        of PowerVisor at the same time
      - Bug solved in the AmigaDOS 1.3 version of PowerVisor: the 'stack'
        and 'prof' commands probably never worked at all! I never tested
        these two commands in AmigaDOS 1.3. The bug is now fixed
      - Menu file has been enhanced a little bit
      - New 'mode dirty' and 'mode nodirty' options to allow debugging
        programs that use 'trap' instructions. When 'mode dirty' is on
        PowerVisor will correctly execute the trap handler the program
        installed, but this option is not on by default because it is
        not very system friendly (it patches some exception vectors which
        are considered private) and it makes debugging a little bit slower
        (especially conditional tracing and such). When 'mode nodirty'
        is on your Amiga will crash when you try to debug programs that
        use 'trap' instructions. You are warned!
      - The 'quit' command did not work on 68000 Amiga's (Why does one
        need this command anyway :-)
      - 'trace c' (conditional tracing) is a little bit faster
      - 'trace r' (register tracing) is a little bit faster
      - New 'trace q' (quick conditional tracing) for faster conditional
        tracing. The advantage of this new command is that it is a lot
        faster (compared with 'trace c'). The disadvantage is that it only
        works with very primitive expressions (it uses a simple expression
        compiler)
      - 'mmurtest' and 'mmuwtest' are removed since they didn't seem to
        give any useful information and I was hunting for routines to
        optimize (removing a complete routine is one of the best possible
        optimization methods :-)
      - Solved little bug in floatingpoint debugging in combination with
        AmigaDOS 3.0
      - PowerVisor uses NewLook menus if you have AmigaDOS 3.0
      - New 'trace gf', 'trace qf', 'trace cf' and 'trace rf' commands.
        These commands are equivalent to 'trace g', 'trace q', 'trace c'
        and 'trace r' respectivelly. The difference is that the conditional
        test to stop tracing is only done when a change of programflow
        occurs. This is a lot faster but somewhat less accurate. These
        four new commands only work if you have a 68020 or higher in your
        Amiga
      - I finally located and solved the bug that haunted the AmigaDOS 1.3
        version of PowerVisor. I THINK that debugging works perfectly
        now in AmigaDOS 1.3 with a 68000 (or any other) processor
      - Stacksize for programs to debug is set to 20000 instead of 10000
        (in future it will be possible to change this number without
        having to reassemble PowerVisor :-)
      - From now on it is also allowed to type 'a    =    3' instead of
        'a=3'. In other words, you may put spaces round the '=' in an
        assignment. Note that it is still not possible to use spaces
        in expressions. Thus 'a=a + 1' is still not valid
      - PowerVisor no longer crashes when it can't find a source file
        for the sourcelevel debugger
      - s:pv/PrintMode.pv is updated for the new 'mode' arguments
      - Little bug fixed in 'info', 'list exec', 'interprete', ... when
        the PowerVisor window only has 80 columns. In that case, each
        output line would not fit on one line. This is now fixed
      - 'duse' correctly refreshes the source logical window
      - Refreshing of the 'debug' and 'source' logical windows is
        better. The windows are correctly refreshed in combination with
        the 'duse', 'dwin' and 'swin' commands. This was not the case
        in earlier versions of PowerVisor
      - The 'with', 'tg', 'on', 'appendto' and 'to' commands remember the
        result from the command that is executed.
        Using this feature you can, for example, transfer register values
        from one debug task to another
      - 'with' works better in combination with the fullscreen debugger.
        The fullscreen debug display is not refreshed with the 'with'
        command
      - New floating point routines (Adriaan vd Brand). The 'fregs' and
        'float' commands are now fully functional
      - Bug solved in 'mode' command. Some arguments prevented the
        proper execution of the other arguments. This could even
        cause crashes in some weird cases (this probably solved the bug
        that caused some strange crashes about once in a month)
      - 'mode' command is a lot better. Less flashing, less buggy and
        the 'mode' settings are restored when there is an error. It is
        also possible to type 'mode no lace' instead of 'mode nolace'
        (the old format is still supported). In other words, the 'no'
        keyword is considered seperate. This keyword also works for
        flags which are not toggles, but the meaning of this is not
        always very useful (for example, you can do 'mode no pal'. The
        result will be that PowerVisor switches to the default monitor)
      - 'mode patch' now works from the beginning. This should solve some
        debugging problems on some Amiga's
      - 'mode viking' is renamed to 'mode a2024'
      - New 'default', 'euro36', 'euro72', 'sup72' and 'super' arguments
        for 'mode' command (support for extra ECS screen modes)
      - All signals are freed on exit
      - New 'dprevi' and 'dnexti' commands to scroll in the fullscreen
        debugger instruction by instruction. The 'dnexti' command works
        perfectly in all cases but the 'dprevi' command can fail and go
        back to the wrong instruction. If that is the case, simply
        run 'dprevi' again, and chances are that everything will be ok
        again
      - The new 'dprevi' and 'dnexti' commands are attached to the
        <ctrl>-<up> and <ctrl>-<down> keys. You can still use <ctrl>-<left>
        and <ctrl>-<right> to scroll in multiples of 2 bytes
      - 'StackPtr' is replaced by 'StackU' in task listing (stack usage
        is more useful than the stackpointer which you can see with the
        'info' command anyway)
      - The 'getstack' function will compute the REAL maximum used stack
        size instead of an estimate
      - The output for commands like 'list', 'vars', 'alias', ... is a LOT
        faster. This is significant if you want to use the 'refresh'
        command
      - 'info' did not seem to work for function monitor nodes (made with
        'addfunc') with type 'fullled'. The display for the first task was
        correct, but not for all following tasks
      - 'pathname' and 'unlock' were to critical in their test to see if
        the argument is really a lock
      - Interrupting the 'lock' listing will (at last!) give a 'Break...'
        message. This bug was harmless but I fixed it anyway :-)
      - Bug solved in 'to' command. If the 'to' command failed because
        you didn't specify the second argument (the 'command' to execute)
        the file would not be closed
      - Similar bug fixed in 'tg' command. If you didn't specify the
        'command' argument, the current tag list would not be restored
        to the original value. This is of course less harmful than the
        previous bug
      - New fields in task structure ('_task' in 'stru' list and 'info'
        command) : 'TC_FLAGS', 'TC_LAUNCH' and 'TC_SWITCH'
      - Some fields have changed their name (because they wouldn't fit
        in the available space). Especially in the ExecBase and
        GraphicsBase structures ('exec' and 'graf' lists)
      - Bug fixed in the execution of macros (with 'attach' command) and
        the output for ARexx macros (with 'rx'), Refresh (with 'refresh')
        and PortPrint (with an external program using the 'PowerVisor'
        library). Sometimes the output of the macro would not appear
        on the current logical window, but on the special current logical
        window for the previously mentioned type of output ('Rexx',
        'Refresh' or 'PPrint' logical windows)
      - New 'p' and 'pf' options for the 'trace' command ('pf' is only
        for 68020 or higher) for 'profile tracing'. With this feature
        you can get the exact amount of times each symbol in your
        program is called (with the 'pf' option) or simply passed
        (with the 'p' option). This command makes use of the profiler
        system that was already present with the 'prof' command. It may
        seem unbelievable, but this new command is implemented with only
        12 extra machinelanguage instructions (no macros!), one extra
        byte in a string and one extra longword in a table!
      - New 'getsymstr' function to get the name of the symbol on an
        address (not for general use)
      - 'quit' will ask for confirmation if the user wants to quit
        while there are still some debug nodes in memory
      - New 'symbol t' command to remove all temporary symbols from the
        symbol table. Temporary symbols are symbols that start with a
        dot '.' or end with a '$' and only contain digits
      - The 'refresh command' (the command that is executed once in a
        while by the refresh handler (see 'refresh')) starts a new page
        at each tick (a new logical page). This means that there will be
        no more wrong -MORE- messages when the 'refresh' logical
        window is not open
      - Bug fixed in 'colrow' and 'setfont'. These two commands would
        ignore the settings set with 'colrow' (yes, 'colrow' ignored
        the settings set by 'colrow' :-) for standard logical windows.
        For all other logical windows (opened with 'openlw') the
        'colrow' command worked fine
      - Most commands which have a logical window as an argument check
        if the argument is really a logical window (a simple consistency
        check)
      - When you used 'screen 0' or 'screen <other screen>' (so that
        the PowerVisor 'main' window is no backdrop window) PowerVisor
        would not activate this window automatically
      - Bug solved in 'rblock' command. When this command failed (because
        there was no disk in the drive for example), the allocated memory
        would not be freed correctly. This could cause crashes
      - Bug solved in 'loadtags' and 'savetags'. 'loadtags' would not work
        if there was a tag definition for address 0 in the file. The
        disadvantage of the fix is that tag files are NOT compatible
        anymore!!! If you have important tag files you can fix them by
        changing the last four bytes of the file (this should be 00000000)
        to FFFFFFFF (-1)
      - I FINALLY solved the bug that's been haunting me for years
        (literally)! This bug involved the 'front', 'hold', 'screen' and
        'mode' commands. Whenever PowerVisor temporarily closes its
        screen there was a potential problem. This problem was almost
        always noticable when you issued a 'front' command from within
        ARexx when PowerVisor was in hold mode. This would cause an
        almost certain crash. If you had unexpected crashes using 'mode',
        'screen' or 'hold', these would probably be caused by this bug.
        But don't despair! The bug has been fixed!!! I checked my private
        history file and I think that this bug must have been made on 5
        January 1991 (the introduction of the current window system for
        PowerVisor)
      - It is now possible to execute ARexx commands with output while
        PowerVisor is in hold mode without crashing the system (for one
        thing because of the bug fix mentioned above and also because of
        yet another bug fix)
      - Commands like 'scan' and functions like 'key' are now safe to
        use when PowerVisor is in hold mode (This means that '-MORE-'
        also works). These commands and functions are simply ignored
        while in hold mode. Also commands like all the logical window
        commands, the physical window commands, 'mode' for screen
        arguments (like 'fancy', 'lace', ...) and 'screen' are also
        safe to use from within hold mode. 'screen' is ignored but all
        other commands are performed invisible. When the screen is
        open again everything will have happened as if the screen
        was never closed
      - New flags for 'gadgets' command: 'TABCYCLE' and 'STRINGEXT'
      - In spite of all the previous improvements the new PowerVisor is
        still smaller than version 1.31!

   V1.41 (30 Sep 92, V37.1765) :
      - I REALLY solved the bug in 'quit' and 'debug' for 68000 processors.
        From now on, debugging should work on the 'little' Amiga's :-)
        This is the main reason that I release this new version so soon
        without waiting for more new features to emerge (I still have a
        lot of new features to implement)
      - Bug solved in CLI commandline parsing. Using the '-d' option at the
        end of all other options would discard the previous options. This
        is solved
      - The PowerVisor parser is a little bit extended to allow calling
        library functions with conflicting names (with variables). You
        can now use quotes for library functions (and you can't use
        quotes for variables) so if you want to call the Input dos.library
        function (for example), you can use 'input'()
      - Bug solved for dummy debug nodes (created with 'debug d') and
        the source level debugging. This bug was also visible with the
        'duse' command even if you didn't use the source level debugger
      - Little bug solved in 'assem.pv' (see 'asm' alias for assembler)
      - Bug solved in 'fit' command (bug was introduced in the previous
        version 1.40). This command simply didn't work
      - 'cmdline.pv' ARexx script (a primitive way to support debugging
        on a normal shell (maybe even remote debugging)) is a little
        better

   V1.42 (3 Nov 92, V37.1770) :
      - Fixed bug for 68040 processors (Amiga 4000). You needed the '-m0'
        option for PowerVisor to run on an 68040 processor. This is not
        needed anymore
      - Address errors are fully recoverable on the 68000 processor. Thanks
        to John Harper for making the necessary adjustments to my source
      - PowerVisor uses 'MultiView' (AmigaDOS 3.0) instead of 'AmigaGuide'
        for the hypertext documentation. You have to change the alias
        defined in the PowerVisor-startup file to use 'AmigaGuide' again
      - New 'mhelp' alias to use 'MultiView' instead of 'AmigaGuide'
        ('MultiView' is new in AmigaDOS 3.0)
      - You can also use the 'f' (flow) option after the 'n' trace option
        (instead of tracing multiple instructions, this traces multiple
        branches)
      - You can also use the 'f' (flow) option after the 'j' trace option.
        This option is recommended for 'trace j' if you have an 68020
        or higher
      - New 'r' option after 'trace n', 'trace g', 'trace p', 'trace r',
        'trace q', 'trace c' and 'trace j'. With this option PowerVisor
        will singlestep the current routine and will execute all
        subroutines called from within this routine at full speed. Using
        this feature you can limit your singlestep condition to the
        current routine
      - The documentation for 'trace' is better (in 'CommandRef.guide')
      - New 'while' command to repeat actions
      - New 'checksum' function to compute the checksum for a region of
        memory
      - New 'trace z' (with optional 'f' and 'r') to trace until the
        checksum for a given memory range changes

