home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-11-03 | 58.1 KB | 1,006 lines |
-
- |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
- | 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 François) 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
-
-