home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / compiler / pbug1_21 / whatsnew < prev   
Text File  |  1994-05-24  |  24KB  |  426 lines

  1. ********************************************************************************
  2. *                                                                              *
  3. *                 PEACEBUG, Releasenotes                                       *
  4. *                 ----------------------                                       *
  5. *                                                                              *
  6. * written by:     Emanuel Möcklin                                              *
  7. *                 Zschokkestrasse 7                                            *
  8. *                 CH-8037 Zürich                                               *
  9. *                 FREDDY@ezrz1.vmsmail.ethz.ch                                 *
  10. *                                                                              *
  11. * written with:   Turboassembler 1.xx                                          *
  12. *                                                                              *
  13. ********************************************************************************
  14.  
  15.  
  16. 10.10.92, 1.00
  17. --------------
  18.  
  19. - PEACEBUG V1.00 is released
  20.  
  21.  
  22. 26.10.92, 1.01
  23. --------------
  24.  
  25. - The reset handling has changed totally. If the debugger is active, a reset is
  26.   always catched. If it's not active, it depends on the flags whether it catches
  27.   the reset or not (use PBUGCONF to set the flags).
  28. - The command Reset is replaced by two new commands: Cold and Warm, which cause
  29.   a cold- or warmboot.
  30. - A bug in the disassembler was fixed. Opcodes without operands always produced
  31.   an eight byte String (filled with spaces). If you searched for these opcodes
  32.   with "ascfind", you always had to add *, otherwise the opcode was not found.
  33. - Some people did not like the Debugger to show an alertbox when it was started
  34.   from the desktop. From now on, it always prints its message to the console.
  35. - An unknown command caused the debugger to print "Befehl nicht gefunden". From
  36.   now on, only a new prompt will be printed.
  37. - Help shows you now the significant chars of a command in big letters, the rest
  38.   of it in small letters. Significant means, the minimum of chars you have to
  39.   type (e.g. WRitesector --> WR are significant).
  40. - XBRA is a good idea, but even with XBRA you can't hang out a routine from the
  41.   resvector, because of resvalid, which is perhaps not magic (especially for the
  42.   first program hanging in this vector).
  43.   My solution is quite easy: the reset routine checks if there's still another
  44.   program hanging in the vector or if it's the last one. In the first case it
  45.   writes $31415926 to resvalid (the magic), otherwise it clears resvalid.
  46.   This guarantees that TOS jumps to all routines hanging in this vector till the
  47.   last one stops this procedure (by clearing resvalid).
  48. - If you had Uwe Seimet's HDDRIVER installed and is was hanging in the resvec-
  49.   tor, PEACEBUG crashed if it tried to terminate after a reset. This was my
  50.   fault!
  51. - Thanks to Diskus, which executes a move sr,-(sp) in usermode, I found a bug in
  52.   my "privileg violation" exception handler. This is fixed now. I hope, further
  53.   versions of Diskus will not do the move in usermode any more.
  54. - As there is a bug in a well known hardware accelerator, I had to remove all
  55.   tas opcodes in all programs released together with PEACEBUG.
  56. - Nasty bug fixed. It prevented the Debugger from recognizing the CPU automati-
  57.   cally when no _CPU Cookie was found.
  58.  
  59.  
  60. 07.01.93, 1.02
  61. --------------
  62.  
  63. - Bugs in the editor, which appeared only on high resolutions, are fixed
  64. - When leaving the debugger, a cache entry was not always created, e.g. with
  65.   DoPC. This is fixed now.
  66. - The command XBRA gives you a warning if the VBR (68010-68040/60) is not zero.
  67.   Nevertheless it gives you the xbra list without adding VBRA.
  68. - PEACEBUG sometimes "creates" exception of its own. Now it also adds the VBR
  69.   when doing this.
  70. - The keyboardhandler is now prepared for Remote Debugging. This can be tested
  71.   with the programs in \PEACEBUG\REMOTE\.
  72.  
  73.  
  74. 14.01.93, 1.03
  75. --------------
  76.  
  77. - Fetching internal bus- and addressexceptions has changed totally. Even if you
  78.   unchain the two exceptionroutines of PEACEBUG, it fetches them.
  79. - The routine "Vektor" was called when entering PEACEBUG up to now. From now on,
  80.   it's also called if u press Return/Enter or F1-F10. This allows still a better
  81.   working with two debuggers at the same time. If a program patches vectors in
  82.   an interrupt, PEACEBUG works also better because of that.
  83. - Because of this change the value -3 (see readme) of the upper byte which was
  84.   used by the routine "Vektor", does not exist any more.
  85. - The command Xbra now automatically takes the next correct adress, that means
  86.   it recognizes if it has to increment the adress by 1, 2, 3 or 4. X 5,9 gives
  87.   you the XBRA list of 5 and 8 (5, 6 and 8 before).
  88. - Big parts of WINDOW have been rewritten. It switches now also to the window if
  89.   the window is not topped but the workspace is not covered by another window.
  90.   It works now fine under Multitos. The Full Button of the window works now cor-
  91.   rectly, resizing the window is possible now.
  92.  
  93.  
  94. 21.01.93, 1.04
  95. --------------
  96.  
  97. - PBUGCONF is totally rewritten, any dialog appears now in a window and is non
  98.   modal
  99. - Bug in PEACEBUG removed, which occured when you tried to trace a trap with F1
  100.  
  101.  
  102. 01.03.93, 1.05
  103. --------------
  104.  
  105. - A bug, which prevented the debugger from loading the symbol table if it was
  106.   started from the desktop, is removed.
  107. - Loading a symbol tables has become faster.
  108. - PEACEBUG tells you now, if it was able to load a symbol table when it's star-
  109.   ted.
  110. - PEACEBUG supported up to now two different formats for the symbol table (PEA-
  111.   CEBUG.SYM). From now on, only a third format (ASCII) is supported, please look
  112.   up the readme for PEACEBUG.
  113. - PBUGCONF evaluates now also WM_TOP and WM_UNTOPPED. Before it could happen,
  114.   that the cursor wasn't visible even if the window was the top one.
  115. - PEACEBUG sometimes called MALLOC/MXALLOC with negative values. This is defini-
  116.   tely not allowed and fixed.
  117. - Find [begin][,end] now searches only till end-1 as it was documented. The same
  118.   for Compare.
  119. - The memory protection modes are shown now correctly when loading a file. Addi-
  120.   tionally it also shows when the program has shared memory.
  121. - The messages of PEACEBUG are in English now.
  122. - PBUGCONF supports now the FSEL cookie --> fsel_exinput is called instead of
  123.   fsel_input.
  124. - In the reset routine the debugger checks now whether it is damaged or not. In
  125.   the first case it selfterminates.
  126. - When PEACEBUG was called by CALLBPUG, no cacheentry was set. Because of that,
  127.   the register values could get lost and it was not possible to leave the debug-
  128.   ger.
  129.  
  130.  
  131. 07.04.93, 1.10
  132. --------------
  133.  
  134. Why this increase from 1.05 to 1.10? - That's why:
  135. 1. PEACEBUG was written as a background debugger. As it supports symbols and is
  136.    able to load executables, I decided to let it run as "normal" program if it's
  137.    started from desktop. That means, you can start and terminate it like other
  138.    programs.
  139.    If it is started from the auto folder, it's still a TSR, but if it is started
  140.    from the desktop, it pops up immediately and can be terminated with QUIT.
  141.    If you want to install it as a TSR from the desktop, you have to press Cont-
  142.    rol after you started it.
  143.    Differences between the two versions:
  144.    - Program version: no cookie and double page are installed, it can be termi-
  145.      nated, two additional commands: Resident and Lexecute.
  146.    - Resident version: installs a cookie and a double page, can't be terminated,
  147.      The commands Resident and Lexecute are not available.
  148.    The command Resident allows you to terminate and keep the debugger resident.
  149. 2. The disassembler recognizes now all FPU opcodes (MC6888x/MC68040).
  150.    The assembler still does not recognize them apart from fnop, frestore and
  151.    fsave.
  152. 3. Finally I decided to document the so-called cheatmode, which has been imple-
  153.    mented for a long time already. This mode is differerent to the "normal" mode
  154.    in the following points:
  155.    - There is the command MOve Address: it moves the code of the debugger to an-
  156.     other address... very dangerous.
  157.    - Internally the debugger runs with interrupt level 7. The consequence is,
  158.     that no interrupt can occur, even no keyboard interrupt. Nevertheless the
  159.     keyboard works naturally, but without keydelay and keyrepeat. Also not all
  160.     chars can be reached, because the debugger cannot find out the asciicode of
  161.     the pressed key (normally it gets the asciicode from the OS).
  162.    - A reset is always catched, even if it's configured not to catch it.
  163.    - The routine VEKTOR installs always any routine if the flag isn't set to
  164.     zero (untrap routine). The routines are also untrapped and reinstalled, if
  165.     they are not in the first position.
  166.    How to toggle between "normal" and cheat mode?
  167.    By pressing Control+Alternate+Shiftleft+Shiftright+Escape!
  168.  
  169. And some smaller changes:
  170. - There are opcodes which are actually allowed but not very useful:
  171.   e.g. branches to odd addresses (jmp/jsr/bsr/bcc/dbcc/fbcc/fdbcc).
  172.   PEACEBUG tells you this by writting ??? to the end of the string.
  173. - And there are opcodes which are not allowed (Motorola says so), but work
  174.   nevertheless:
  175.   e.g. FABS.X FPm,FPn with effective address field unequal zero (also any other
  176.   monadic operations of that form).
  177.   PEACEBUG tells you this by writting ⇨?⇦ to the end of the string.
  178. - PBUGCONF calls FORM_BUTTON now only if the window found by WIND_FIND is the
  179.   top one (sorry no dialogs in inactive windows.). Some small "bugs" fixed.
  180. - Showmemory [Term[,List]]: Term can have any length from now on (40 chars was
  181.   the maximum in previous versions).
  182. - Ascii, Disassemble, Dump and List have a new parameter:
  183.   Command [Von][[,Bis]|[[,]#Zeilen]|[,][Bytes]|[.]]
  184.                                                ^^^^
  185.   . means, that it lists from the startaddress endlessly.
  186. - ? Term{,Term} prints now the value of Term also as a string.
  187.   ? $50425547 outputs:
  188.   $50425547 .1346524487 %01010000010000100101010101000111 o12020452507 "PBUG"
  189. - Sometimes the formula interpreter didn't handle strings correctly.
  190. - If the output of a command didn't go to the screen, it was always shortened to
  191.   80 chars. From now on, the string is going to any device unshortened (apart
  192.   from the screen device).
  193. - If a string is going to the screen and is too long, then the debugger marks
  194.   this line with an ⇨ at the end.
  195. - Tnosubs (F12) did work only with jsr but not with bsr. This was a bug of the
  196.   disassembler.
  197. - Xbra has a new parameter:
  198.   Xbra FirstVector[,LastVector[,ID]]
  199.                               ^^^^^^
  200.   If Xbra is called with an ID, it prints only the XBRA lists, that contain this
  201.   ID. The routine with this ID is marked with ⇦.
  202.   This allows you easily to test whether a program installs into some vectors or
  203.   not.
  204. - Every function of PEACEBUG can now be interrupted by pressing escape any time
  205.   you want.
  206. - PEACEBUG uses now SETEXC to install into vectors when it's started. The rou-
  207.   tine VEKTOR still changes XBRA links if necessary.
  208. - New function in PEACEBUG: control Q. It corresponds to the command Quit.
  209. - New functions in PBUGCONF: control Q. It corresponds to the close buttons of a
  210.   window. UNDO selects the "Abbruch" Button.
  211. - It's now possible to call PEACEBUG only by pressing shift keys.
  212.  
  213.  
  214. 24.05.93, 1.11
  215. --------------
  216.  
  217. - "Ascii/Disassemble/List/Dump (" caused an address error.
  218. - PEACEBUG checks now the command line when it's started and tries to lexecute
  219.   the file.
  220. - XBRA without any parameter gives you now a complete list of all XBRA-ID's and
  221.   where they where found. The correct syntax of this command is now:
  222.   Xbra [FirstVector[,LastVector[,ID]]]
  223.        ^                             ^
  224.   Besides, the routine has become faster.
  225. - Find/Hunt and Compare mark now every address with * if it's inside PEACEBUG'S
  226.   code or inside other address spaces allocated by the debugger.
  227. - If an internal bus-/addresserror occured and the isp was zero, the debugger
  228.   crashed. This is fixed now. Zero stores will not be corrected automatically,
  229.   as I don't want to forbid anyone to do such things, especially as the debugger
  230.   can recover by a reset.
  231. - PEACEBUG is now able to switch the screen also on F030. Neverthless there are
  232.   some restriction on these machines: the command Switch does not work and it's
  233.   probably? not reset proof.
  234. - PEACEBUG supports now the resident symbol driver of Robert Federle. It doesn't
  235.   matter in which order they are started. The debugger uses it's own symbols to-
  236.   gether with the ones of the driver. As the driver does not search the symbols
  237.   exactly like PEACEBUG does, the output can be different (PEACEBUG shows less
  238.   symbols). Also there are problems with the parser: e.g. you type "l .flock+1",
  239.   which would work with the debugger's search routine, but not with the driver's
  240.   one, because this one searches for .flock+1, a symbol that doesn't exist.
  241.   Another problem is the command Symbol, which can print all symbols within cer-
  242.   tain borders, which is impossible with the symbol driver (there is no such
  243.   function). But it does naturally print the debugger's symbols.
  244.  
  245.  
  246. 26.05.93, 1.12
  247. --------------
  248.  
  249. - The debugger could crash when it installed its routines with SETEXC, because
  250.   it did not set the interrupt mask to 7 --> an interrupt could occur before the
  251.   routines were properly linked. This happended e.g. if sysmon was active, as
  252.   sysmon does delay OS calls.
  253. - The debugger sometimes called MFREE with Blockadress 0. As this seems to be a
  254.   problem for the resident symbol driver (it did not find the symbols any more),
  255.   I will not do this any more.
  256. - With F17 you could tell the debugger to use or not to use symbols. Now you can
  257.   also tell it to use its own symbol table but not the one of the resident sym-
  258.   bol driver. As a consequence the variable SYMBOL_FLAG can have a third value.
  259.   Symbol-, SYMBOL_FLAG=0: no symbols are used
  260.   Symbol+, SYMBOL_FLAG=-1: all symbols are used
  261.   Symbol*, SYMBOL_FLAG=1: only the debugger's symbols are used.
  262. - If PEACEBUG catched a reset, that occured not within the debugger, it happened
  263.   that it lost the program's screen registers. This is fixed.
  264. - There is the new command Programs, which gives you a list of all started prog-
  265.   rams and some additional stuff. It is only available if the resident symbol
  266.   driver is installed.
  267. - The key help has now the same effect as the command Help without parameters.
  268.   To toggle between the two screens (as help did before), you have to use Shift.
  269. - If the debugger catches an ETV_CRITIC (not inside the debugger), it probably
  270.   shows the PC correctly now. Probably? Probably, because it's not documented
  271.   where the PC is on the stack.
  272. - WINDOW shows now the height and width of the work area in its title bar. Also
  273.   a bug is removed which occured if the screenbase address of the debugger had
  274.   changed. And it considers now, which fonts is used by the debugger, to calcu-
  275.   late the minimum size of the window.
  276. - PBUGCONF: quite a lot changes has been made and many bugs have been removed.
  277.   Most of the dialogs have now the button "Setzen", which works like "OK", but
  278.   does not close the dialog. It's now possible to change SYMBOL_FLAG (dialog
  279.   "Diverses"). It handles now the semaphore SCREEN_LOCK correctly. Errors while
  280.   loading a font cause it now to dismiss the font. It wasn't possible any more
  281.   NOT to double click a button, this is fixed.
  282.  
  283.  
  284. 07.10.93, 1.13
  285. --------------
  286.  
  287. - PEACEBUG turns now the caches and burstmode on, if a reset occurs within the
  288.   the debugger and if a MC68030 is inside.
  289. - I had to add an $ to each number in PEACEBUG.SYM, because the debugger can
  290.   have another default base for numbers than 16. Up to now you could choose this
  291.   base from 2 to 16. From now on it's 2 to 36 (because 0-9,A-Z are 36 chars).
  292. - Cheatmode could be toggled also when the debugger was not active.
  293. - The slowmotion function is much better now. The delay is now quite constant
  294.   for most of the activities. Just try it...
  295. - Opcodes with Condition Code lo (=cs) could not be translated.
  296. - PBUGCONF is now able to configure 10 debuggers at the same time. Up to now you
  297.   could switch between config- and patchmode in the main menue. Now you switch
  298.   from patchmode to PEACEBUG 0 till PEACEBUG 9 and back to patchmode. The order
  299.   of the debuggers found, is the same order, they are installed in the cookie
  300.   jar.
  301. - PBUGCONF calls now any debugger routine in supervisor mode.
  302. - PBUGCONF didn't handle objects f_text correctly if they contained 0.
  303. - PBUGCONF tested the coordinates of a window if they fit into the desktop, but
  304.   it forgot to adapt the coordinates of the dialog then.
  305. - Slave is now a TSR.
  306.  
  307.  
  308. 25.01.94, 1.19
  309. --------------
  310.  
  311. - Now there are English versions of WINDOW and PBUGCONF, including English
  312.   manuals. V1.22 will also include an English manual for PEACEBUG.
  313. - If the Resident Symbol Driver is installed, PEACEBUG adds the name of the
  314.   program to the listing if the line address is inside the program (BASEPAGE
  315.   included):
  316.   $01057536>! [GEMRAM]   RTS                                         ; 4E75
  317.   As you can see the name is printed without extension. If there is a label,
  318.   then the label is printed instead of the name.
  319.   This is only suppressed if SYMBOL_FLAG is zero (see readme PEACEBUG, chapter
  320.   "Interface, Parameter").
  321. - The symbol handling has changed totally. PEACEBUG searches now in all symbol
  322.   tables (PEACEBUG.SYM, program symbol tabel, RSD). Opcodes: it searches now
  323.   symbols only for all branches (bra, jmp, dbcc, fbcc...) and absolute short and
  324.   absolute long addressing modes. One of the effects is that you don't need
  325.   SYMBOL.SMB (RSD) any more.
  326. - Within the debugger fetching a reset can now be turned off. You can choose
  327.   between fetching always, once a second and never. Once a second means, that if
  328.   you reset twice within a second then the computer is reseted otherwise not.
  329.   PBUGCONF is already adapted to this feature, you can configure this in the
  330.   dialog "Flags", vector "Reset".
  331. - Info did print some wrong stuff (program length, text length debugger). 
  332. - Up to now the assembler did not translate lines inside the debugger if there
  333.   was a * before the opcode. Now it accepts this.
  334. - Since V1.10 PEACEBUG could be called by pressing only shift keys. This was
  335.   also supported by PBUGCONF up to the moment I deleted 4 lines source code,
  336.   because I did not see any sense in them...
  337. - The whole output of the command Help is in English now.
  338. - When PEACEBUG is called, it resets now the keyboard acia.
  339. - The possibility to move the cursor freely on the screen is removed now. F18
  340.   is now the key to toggle between insert- and overwritemode. F19 and F20 have
  341.   the same function --> Go PC.
  342.   The flag "cursor_bound" of the cookie interface has no effect any more.
  343. - As F20 is free now (but has nevertheless the same function as before), I
  344.   implemented a clock. Depending on the computer it runs on, it shows the time
  345.   taken directly from the keyboard processor or from the real time clock (Mega
  346.   ST and TT).
  347. - The PC at the beginning of a line is now highlighted.
  348. - On some TOS versions Alternate+Num did not work to enter the asciicode of a
  349.   char.
  350. - I implemented a new command: Observe [[Address][,Bytes]|-|+]. It gives you the
  351.   possibillity to observe memory. If the content of the observed memory has
  352.   changed PEACEBUG will pop up and tell you this. It uses the 200HZ timer to
  353.   check the memory.
  354. - PEACEBUG does not check the _CPU and _FPU Cookie any more but uses always its
  355.   own test routine.
  356. - The routine to test the FPU did only recognize a SFP004 FPU, this is fixed.
  357. - FNOP wasn't translated correctly by the disassembler as well as by the
  358.   assembler.
  359. - PTEST is again translated correctly by the disassembler and the assembler.
  360. - If PEACEBUG catches a reset and if the program segment is damaged then it does
  361.   not selfterminate any more, but just declares that it is damaged.
  362. - If you trace with F11-Tnosubs, then the debugger will not set a breakpoint
  363.   after a jsr/bsr any more to skip the subroutine. Also if you trace with F2-Do
  364.   PC and the opcode is a jsr/bsr it won't set a breakpoint any more.
  365. - Double clicking with the left mouse button on an address lists from this
  366.   address.
  367. - Up to now the division, the multiplication and the modulo functions were
  368.   unsigned. E.g. .10/-2 did not even give the correct result but zero. From now
  369.   on this is -5. The modulo function works exactly like the one of the CPU:
  370.   "The sign of the remainder is the same as the sign of the dividend."
  371.   [Motorola: M68000 FAMILY PROGRAMMER'S REFERENCE MANUAL].
  372. - The command ? shortens now the printed numbers, e.g. instead of $0000FFFF it
  373.   prints $FFFF. If the number is negative then it prints additionally the
  374.   negative value, e.g. ? -1:
  375.   $FFFFFFFF .4294967295 %11111111111111111111111111111111 o37777777777 "...."
  376.   -$1 -.1
  377. - If a file is loaded then it is listed from the first address but the PC is not
  378.   set to this address.
  379. - PBUGCONF: the main menu has now shortcuts.
  380. - PBUGCONF: control u closes now the top window.
  381. - PBUGCONF: control q closes now all windows and quits the program. Before it
  382.   closed only the top window.
  383. - WINDOW: cannot be moved out of the screen any more with Winx 2.1.
  384.  
  385.  
  386. 25.05.94, 1.21
  387. --------------
  388.  
  389. - PEACEBUG is now supported by SYSMON:
  390.   - They share the screen in TT-High, that means, they need 153600 Bytes less
  391.     memory.
  392.   - The debug modes I (IN) and O (OUT) are supported by the two programs (see
  393.     the manual of SYSMON).
  394.   - PEACEBUG can be called by shift-left help directly from SYSMON.
  395.   Note: You need SYSMON Version 1.0.9, 24.04.1994 and it has to be started after
  396.   PEACEBUG.
  397.   There seem to be still some problems, if PEACEBUG, TEMPLMON and SYSMON are
  398.   installed all together and you try to call PEACEBUG by shift-left help. In
  399.   this case, TEMPLMON seems do some strange things. I hope in newer versions
  400.   this will be fixed. 
  401. - The command Xbra has again a new syntax:
  402.   Xbra [FirstVector][,Lastvector][,ID]
  403.   For further information please consult the PEACEBUG manual.
  404. - PEACEBUG is now adapted to the Falcon video hardware apart from the 4 colour
  405.   falcon mode. Thanks a lot to SPIFF.
  406. - The default configuration considering the vectors has changes. Some vectors
  407.   are not installed any more (this can be changed naturally).
  408. - F4-GoTraps: This function has now been implemented totally different. The
  409.   consequence is, that it works now also under any multitasking OS.
  410. - CALL_DEBUGGER is now called CALL_DEBUGGER_1, because there is a new routine
  411.   CALL_DEBUGGER_2. The first one does set all 2 or 3 stackpointers to own memory
  412.   areas, the second one does not touch any of the registers. More details are to
  413.   be found in the PEACEBUG manual, chapter "Interface".
  414. - There is a new parameter _PLANES (screen interface). It's already supported by
  415.   PBUGCONF. For further information consult the PEACEBUG manual, chapter
  416.   "Interface".
  417. - PBUGCONF: Control w and Control u have changed their functionality (according
  418.   to the Atari guidelines). The closer of the window does not discard the
  419.   changes any more but accepts them.
  420. - When loading or lexecuting a file, not the whole screen is overwritten any
  421.   more but only 16 lines.
  422. - There is now a special PEACEBUG version for coders. This version runs now by
  423.   default in the so-called cheat mode. This mode has been documented since
  424.   V1.10. Further details can be found in this file some lines above. You can
  425.   naturally turn of cheat mode as the versions are actually identical apart from
  426.   the default for he cheat flag.