home *** CD-ROM | disk | FTP | other *** search
- ********************************************************************************
- * *
- * PEACEBUG, Releasenotes *
- * ---------------------- *
- * *
- * written by: Emanuel Möcklin *
- * Zschokkestrasse 7 *
- * CH-8037 Zürich *
- * FREDDY@ezrz1.vmsmail.ethz.ch *
- * *
- * written with: Turboassembler 1.xx *
- * *
- ********************************************************************************
-
-
- 10.10.92, 1.00
- --------------
-
- - PEACEBUG V1.00 is released
-
-
- 26.10.92, 1.01
- --------------
-
- - The reset handling has changed totally. If the debugger is active, a reset is
- always catched. If it's not active, it depends on the flags whether it catches
- the reset or not (use PBUGCONF to set the flags).
- - The command Reset is replaced by two new commands: Cold and Warm, which cause
- a cold- or warmboot.
- - A bug in the disassembler was fixed. Opcodes without operands always produced
- an eight byte String (filled with spaces). If you searched for these opcodes
- with "ascfind", you always had to add *, otherwise the opcode was not found.
- - Some people did not like the Debugger to show an alertbox when it was started
- from the desktop. From now on, it always prints its message to the console.
- - An unknown command caused the debugger to print "Befehl nicht gefunden". From
- now on, only a new prompt will be printed.
- - Help shows you now the significant chars of a command in big letters, the rest
- of it in small letters. Significant means, the minimum of chars you have to
- type (e.g. WRitesector --> WR are significant).
- - XBRA is a good idea, but even with XBRA you can't hang out a routine from the
- resvector, because of resvalid, which is perhaps not magic (especially for the
- first program hanging in this vector).
- My solution is quite easy: the reset routine checks if there's still another
- program hanging in the vector or if it's the last one. In the first case it
- writes $31415926 to resvalid (the magic), otherwise it clears resvalid.
- This guarantees that TOS jumps to all routines hanging in this vector till the
- last one stops this procedure (by clearing resvalid).
- - If you had Uwe Seimet's HDDRIVER installed and is was hanging in the resvec-
- tor, PEACEBUG crashed if it tried to terminate after a reset. This was my
- fault!
- - Thanks to Diskus, which executes a move sr,-(sp) in usermode, I found a bug in
- my "privileg violation" exception handler. This is fixed now. I hope, further
- versions of Diskus will not do the move in usermode any more.
- - As there is a bug in a well known hardware accelerator, I had to remove all
- tas opcodes in all programs released together with PEACEBUG.
- - Nasty bug fixed. It prevented the Debugger from recognizing the CPU automati-
- cally when no _CPU Cookie was found.
-
-
- 07.01.93, 1.02
- --------------
-
- - Bugs in the editor, which appeared only on high resolutions, are fixed
- - When leaving the debugger, a cache entry was not always created, e.g. with
- DoPC. This is fixed now.
- - The command XBRA gives you a warning if the VBR (68010-68040/60) is not zero.
- Nevertheless it gives you the xbra list without adding VBRA.
- - PEACEBUG sometimes "creates" exception of its own. Now it also adds the VBR
- when doing this.
- - The keyboardhandler is now prepared for Remote Debugging. This can be tested
- with the programs in \PEACEBUG\REMOTE\.
-
-
- 14.01.93, 1.03
- --------------
-
- - Fetching internal bus- and addressexceptions has changed totally. Even if you
- unchain the two exceptionroutines of PEACEBUG, it fetches them.
- - The routine "Vektor" was called when entering PEACEBUG up to now. From now on,
- it's also called if u press Return/Enter or F1-F10. This allows still a better
- working with two debuggers at the same time. If a program patches vectors in
- an interrupt, PEACEBUG works also better because of that.
- - Because of this change the value -3 (see readme) of the upper byte which was
- used by the routine "Vektor", does not exist any more.
- - The command Xbra now automatically takes the next correct adress, that means
- it recognizes if it has to increment the adress by 1, 2, 3 or 4. X 5,9 gives
- you the XBRA list of 5 and 8 (5, 6 and 8 before).
- - Big parts of WINDOW have been rewritten. It switches now also to the window if
- the window is not topped but the workspace is not covered by another window.
- It works now fine under Multitos. The Full Button of the window works now cor-
- rectly, resizing the window is possible now.
-
-
- 21.01.93, 1.04
- --------------
-
- - PBUGCONF is totally rewritten, any dialog appears now in a window and is non
- modal
- - Bug in PEACEBUG removed, which occured when you tried to trace a trap with F1
-
-
- 01.03.93, 1.05
- --------------
-
- - A bug, which prevented the debugger from loading the symbol table if it was
- started from the desktop, is removed.
- - Loading a symbol tables has become faster.
- - PEACEBUG tells you now, if it was able to load a symbol table when it's star-
- ted.
- - PEACEBUG supported up to now two different formats for the symbol table (PEA-
- CEBUG.SYM). From now on, only a third format (ASCII) is supported, please look
- up the readme for PEACEBUG.
- - PBUGCONF evaluates now also WM_TOP and WM_UNTOPPED. Before it could happen,
- that the cursor wasn't visible even if the window was the top one.
- - PEACEBUG sometimes called MALLOC/MXALLOC with negative values. This is defini-
- tely not allowed and fixed.
- - Find [begin][,end] now searches only till end-1 as it was documented. The same
- for Compare.
- - The memory protection modes are shown now correctly when loading a file. Addi-
- tionally it also shows when the program has shared memory.
- - The messages of PEACEBUG are in English now.
- - PBUGCONF supports now the FSEL cookie --> fsel_exinput is called instead of
- fsel_input.
- - In the reset routine the debugger checks now whether it is damaged or not. In
- the first case it selfterminates.
- - When PEACEBUG was called by CALLBPUG, no cacheentry was set. Because of that,
- the register values could get lost and it was not possible to leave the debug-
- ger.
-
-
- 07.04.93, 1.10
- --------------
-
- Why this increase from 1.05 to 1.10? - That's why:
- 1. PEACEBUG was written as a background debugger. As it supports symbols and is
- able to load executables, I decided to let it run as "normal" program if it's
- started from desktop. That means, you can start and terminate it like other
- programs.
- If it is started from the auto folder, it's still a TSR, but if it is started
- from the desktop, it pops up immediately and can be terminated with QUIT.
- If you want to install it as a TSR from the desktop, you have to press Cont-
- rol after you started it.
- Differences between the two versions:
- - Program version: no cookie and double page are installed, it can be termi-
- nated, two additional commands: Resident and Lexecute.
- - Resident version: installs a cookie and a double page, can't be terminated,
- The commands Resident and Lexecute are not available.
- The command Resident allows you to terminate and keep the debugger resident.
- 2. The disassembler recognizes now all FPU opcodes (MC6888x/MC68040).
- The assembler still does not recognize them apart from fnop, frestore and
- fsave.
- 3. Finally I decided to document the so-called cheatmode, which has been imple-
- mented for a long time already. This mode is differerent to the "normal" mode
- in the following points:
- - There is the command MOve Address: it moves the code of the debugger to an-
- other address... very dangerous.
- - Internally the debugger runs with interrupt level 7. The consequence is,
- that no interrupt can occur, even no keyboard interrupt. Nevertheless the
- keyboard works naturally, but without keydelay and keyrepeat. Also not all
- chars can be reached, because the debugger cannot find out the asciicode of
- the pressed key (normally it gets the asciicode from the OS).
- - A reset is always catched, even if it's configured not to catch it.
- - The routine VEKTOR installs always any routine if the flag isn't set to
- zero (untrap routine). The routines are also untrapped and reinstalled, if
- they are not in the first position.
- How to toggle between "normal" and cheat mode?
- By pressing Control+Alternate+Shiftleft+Shiftright+Escape!
-
- And some smaller changes:
- - There are opcodes which are actually allowed but not very useful:
- e.g. branches to odd addresses (jmp/jsr/bsr/bcc/dbcc/fbcc/fdbcc).
- PEACEBUG tells you this by writting ??? to the end of the string.
- - And there are opcodes which are not allowed (Motorola says so), but work
- nevertheless:
- e.g. FABS.X FPm,FPn with effective address field unequal zero (also any other
- monadic operations of that form).
- PEACEBUG tells you this by writting ⇨?⇦ to the end of the string.
- - PBUGCONF calls FORM_BUTTON now only if the window found by WIND_FIND is the
- top one (sorry no dialogs in inactive windows.). Some small "bugs" fixed.
- - Showmemory [Term[,List]]: Term can have any length from now on (40 chars was
- the maximum in previous versions).
- - Ascii, Disassemble, Dump and List have a new parameter:
- Command [Von][[,Bis]|[[,]#Zeilen]|[,][Bytes]|[.]]
- ^^^^
- . means, that it lists from the startaddress endlessly.
- - ? Term{,Term} prints now the value of Term also as a string.
- ? $50425547 outputs:
- $50425547 .1346524487 %01010000010000100101010101000111 o12020452507 "PBUG"
- - Sometimes the formula interpreter didn't handle strings correctly.
- - If the output of a command didn't go to the screen, it was always shortened to
- 80 chars. From now on, the string is going to any device unshortened (apart
- from the screen device).
- - If a string is going to the screen and is too long, then the debugger marks
- this line with an ⇨ at the end.
- - Tnosubs (F12) did work only with jsr but not with bsr. This was a bug of the
- disassembler.
- - Xbra has a new parameter:
- Xbra FirstVector[,LastVector[,ID]]
- ^^^^^^
- If Xbra is called with an ID, it prints only the XBRA lists, that contain this
- ID. The routine with this ID is marked with ⇦.
- This allows you easily to test whether a program installs into some vectors or
- not.
- - Every function of PEACEBUG can now be interrupted by pressing escape any time
- you want.
- - PEACEBUG uses now SETEXC to install into vectors when it's started. The rou-
- tine VEKTOR still changes XBRA links if necessary.
- - New function in PEACEBUG: control Q. It corresponds to the command Quit.
- - New functions in PBUGCONF: control Q. It corresponds to the close buttons of a
- window. UNDO selects the "Abbruch" Button.
- - It's now possible to call PEACEBUG only by pressing shift keys.
-
-
- 24.05.93, 1.11
- --------------
-
- - "Ascii/Disassemble/List/Dump (" caused an address error.
- - PEACEBUG checks now the command line when it's started and tries to lexecute
- the file.
- - XBRA without any parameter gives you now a complete list of all XBRA-ID's and
- where they where found. The correct syntax of this command is now:
- Xbra [FirstVector[,LastVector[,ID]]]
- ^ ^
- Besides, the routine has become faster.
- - Find/Hunt and Compare mark now every address with * if it's inside PEACEBUG'S
- code or inside other address spaces allocated by the debugger.
- - If an internal bus-/addresserror occured and the isp was zero, the debugger
- crashed. This is fixed now. Zero stores will not be corrected automatically,
- as I don't want to forbid anyone to do such things, especially as the debugger
- can recover by a reset.
- - PEACEBUG is now able to switch the screen also on F030. Neverthless there are
- some restriction on these machines: the command Switch does not work and it's
- probably? not reset proof.
- - PEACEBUG supports now the resident symbol driver of Robert Federle. It doesn't
- matter in which order they are started. The debugger uses it's own symbols to-
- gether with the ones of the driver. As the driver does not search the symbols
- exactly like PEACEBUG does, the output can be different (PEACEBUG shows less
- symbols). Also there are problems with the parser: e.g. you type "l .flock+1",
- which would work with the debugger's search routine, but not with the driver's
- one, because this one searches for .flock+1, a symbol that doesn't exist.
- Another problem is the command Symbol, which can print all symbols within cer-
- tain borders, which is impossible with the symbol driver (there is no such
- function). But it does naturally print the debugger's symbols.
-
-
- 26.05.93, 1.12
- --------------
-
- - The debugger could crash when it installed its routines with SETEXC, because
- it did not set the interrupt mask to 7 --> an interrupt could occur before the
- routines were properly linked. This happended e.g. if sysmon was active, as
- sysmon does delay OS calls.
- - The debugger sometimes called MFREE with Blockadress 0. As this seems to be a
- problem for the resident symbol driver (it did not find the symbols any more),
- I will not do this any more.
- - With F17 you could tell the debugger to use or not to use symbols. Now you can
- also tell it to use its own symbol table but not the one of the resident sym-
- bol driver. As a consequence the variable SYMBOL_FLAG can have a third value.
- Symbol-, SYMBOL_FLAG=0: no symbols are used
- Symbol+, SYMBOL_FLAG=-1: all symbols are used
- Symbol*, SYMBOL_FLAG=1: only the debugger's symbols are used.
- - If PEACEBUG catched a reset, that occured not within the debugger, it happened
- that it lost the program's screen registers. This is fixed.
- - There is the new command Programs, which gives you a list of all started prog-
- rams and some additional stuff. It is only available if the resident symbol
- driver is installed.
- - The key help has now the same effect as the command Help without parameters.
- To toggle between the two screens (as help did before), you have to use Shift.
- - If the debugger catches an ETV_CRITIC (not inside the debugger), it probably
- shows the PC correctly now. Probably? Probably, because it's not documented
- where the PC is on the stack.
- - WINDOW shows now the height and width of the work area in its title bar. Also
- a bug is removed which occured if the screenbase address of the debugger had
- changed. And it considers now, which fonts is used by the debugger, to calcu-
- late the minimum size of the window.
- - PBUGCONF: quite a lot changes has been made and many bugs have been removed.
- Most of the dialogs have now the button "Setzen", which works like "OK", but
- does not close the dialog. It's now possible to change SYMBOL_FLAG (dialog
- "Diverses"). It handles now the semaphore SCREEN_LOCK correctly. Errors while
- loading a font cause it now to dismiss the font. It wasn't possible any more
- NOT to double click a button, this is fixed.
-
-
- 07.10.93, 1.13
- --------------
-
- - PEACEBUG turns now the caches and burstmode on, if a reset occurs within the
- the debugger and if a MC68030 is inside.
- - I had to add an $ to each number in PEACEBUG.SYM, because the debugger can
- have another default base for numbers than 16. Up to now you could choose this
- base from 2 to 16. From now on it's 2 to 36 (because 0-9,A-Z are 36 chars).
- - Cheatmode could be toggled also when the debugger was not active.
- - The slowmotion function is much better now. The delay is now quite constant
- for most of the activities. Just try it...
- - Opcodes with Condition Code lo (=cs) could not be translated.
- - PBUGCONF is now able to configure 10 debuggers at the same time. Up to now you
- could switch between config- and patchmode in the main menue. Now you switch
- from patchmode to PEACEBUG 0 till PEACEBUG 9 and back to patchmode. The order
- of the debuggers found, is the same order, they are installed in the cookie
- jar.
- - PBUGCONF calls now any debugger routine in supervisor mode.
- - PBUGCONF didn't handle objects f_text correctly if they contained 0.
- - PBUGCONF tested the coordinates of a window if they fit into the desktop, but
- it forgot to adapt the coordinates of the dialog then.
- - Slave is now a TSR.
-
-
- 25.01.94, 1.19
- --------------
-
- - Now there are English versions of WINDOW and PBUGCONF, including English
- manuals. V1.22 will also include an English manual for PEACEBUG.
- - If the Resident Symbol Driver is installed, PEACEBUG adds the name of the
- program to the listing if the line address is inside the program (BASEPAGE
- included):
- $01057536>! [GEMRAM] RTS ; 4E75
- As you can see the name is printed without extension. If there is a label,
- then the label is printed instead of the name.
- This is only suppressed if SYMBOL_FLAG is zero (see readme PEACEBUG, chapter
- "Interface, Parameter").
- - The symbol handling has changed totally. PEACEBUG searches now in all symbol
- tables (PEACEBUG.SYM, program symbol tabel, RSD). Opcodes: it searches now
- symbols only for all branches (bra, jmp, dbcc, fbcc...) and absolute short and
- absolute long addressing modes. One of the effects is that you don't need
- SYMBOL.SMB (RSD) any more.
- - Within the debugger fetching a reset can now be turned off. You can choose
- between fetching always, once a second and never. Once a second means, that if
- you reset twice within a second then the computer is reseted otherwise not.
- PBUGCONF is already adapted to this feature, you can configure this in the
- dialog "Flags", vector "Reset".
- - Info did print some wrong stuff (program length, text length debugger).
- - Up to now the assembler did not translate lines inside the debugger if there
- was a * before the opcode. Now it accepts this.
- - Since V1.10 PEACEBUG could be called by pressing only shift keys. This was
- also supported by PBUGCONF up to the moment I deleted 4 lines source code,
- because I did not see any sense in them...
- - The whole output of the command Help is in English now.
- - When PEACEBUG is called, it resets now the keyboard acia.
- - The possibility to move the cursor freely on the screen is removed now. F18
- is now the key to toggle between insert- and overwritemode. F19 and F20 have
- the same function --> Go PC.
- The flag "cursor_bound" of the cookie interface has no effect any more.
- - As F20 is free now (but has nevertheless the same function as before), I
- implemented a clock. Depending on the computer it runs on, it shows the time
- taken directly from the keyboard processor or from the real time clock (Mega
- ST and TT).
- - The PC at the beginning of a line is now highlighted.
- - On some TOS versions Alternate+Num did not work to enter the asciicode of a
- char.
- - I implemented a new command: Observe [[Address][,Bytes]|-|+]. It gives you the
- possibillity to observe memory. If the content of the observed memory has
- changed PEACEBUG will pop up and tell you this. It uses the 200HZ timer to
- check the memory.
- - PEACEBUG does not check the _CPU and _FPU Cookie any more but uses always its
- own test routine.
- - The routine to test the FPU did only recognize a SFP004 FPU, this is fixed.
- - FNOP wasn't translated correctly by the disassembler as well as by the
- assembler.
- - PTEST is again translated correctly by the disassembler and the assembler.
- - If PEACEBUG catches a reset and if the program segment is damaged then it does
- not selfterminate any more, but just declares that it is damaged.
- - If you trace with F11-Tnosubs, then the debugger will not set a breakpoint
- after a jsr/bsr any more to skip the subroutine. Also if you trace with F2-Do
- PC and the opcode is a jsr/bsr it won't set a breakpoint any more.
- - Double clicking with the left mouse button on an address lists from this
- address.
- - Up to now the division, the multiplication and the modulo functions were
- unsigned. E.g. .10/-2 did not even give the correct result but zero. From now
- on this is -5. The modulo function works exactly like the one of the CPU:
- "The sign of the remainder is the same as the sign of the dividend."
- [Motorola: M68000 FAMILY PROGRAMMER'S REFERENCE MANUAL].
- - The command ? shortens now the printed numbers, e.g. instead of $0000FFFF it
- prints $FFFF. If the number is negative then it prints additionally the
- negative value, e.g. ? -1:
- $FFFFFFFF .4294967295 %11111111111111111111111111111111 o37777777777 "...."
- -$1 -.1
- - If a file is loaded then it is listed from the first address but the PC is not
- set to this address.
- - PBUGCONF: the main menu has now shortcuts.
- - PBUGCONF: control u closes now the top window.
- - PBUGCONF: control q closes now all windows and quits the program. Before it
- closed only the top window.
- - WINDOW: cannot be moved out of the screen any more with Winx 2.1.
-
-
- 25.05.94, 1.21
- --------------
-
- - PEACEBUG is now supported by SYSMON:
- - They share the screen in TT-High, that means, they need 153600 Bytes less
- memory.
- - The debug modes I (IN) and O (OUT) are supported by the two programs (see
- the manual of SYSMON).
- - PEACEBUG can be called by shift-left help directly from SYSMON.
- Note: You need SYSMON Version 1.0.9, 24.04.1994 and it has to be started after
- PEACEBUG.
- There seem to be still some problems, if PEACEBUG, TEMPLMON and SYSMON are
- installed all together and you try to call PEACEBUG by shift-left help. In
- this case, TEMPLMON seems do some strange things. I hope in newer versions
- this will be fixed.
- - The command Xbra has again a new syntax:
- Xbra [FirstVector][,Lastvector][,ID]
- For further information please consult the PEACEBUG manual.
- - PEACEBUG is now adapted to the Falcon video hardware apart from the 4 colour
- falcon mode. Thanks a lot to SPIFF.
- - The default configuration considering the vectors has changes. Some vectors
- are not installed any more (this can be changed naturally).
- - F4-GoTraps: This function has now been implemented totally different. The
- consequence is, that it works now also under any multitasking OS.
- - CALL_DEBUGGER is now called CALL_DEBUGGER_1, because there is a new routine
- CALL_DEBUGGER_2. The first one does set all 2 or 3 stackpointers to own memory
- areas, the second one does not touch any of the registers. More details are to
- be found in the PEACEBUG manual, chapter "Interface".
- - There is a new parameter _PLANES (screen interface). It's already supported by
- PBUGCONF. For further information consult the PEACEBUG manual, chapter
- "Interface".
- - PBUGCONF: Control w and Control u have changed their functionality (according
- to the Atari guidelines). The closer of the window does not discard the
- changes any more but accepts them.
- - When loading or lexecuting a file, not the whole screen is overwritten any
- more but only 16 lines.
- - There is now a special PEACEBUG version for coders. This version runs now by
- default in the so-called cheat mode. This mode has been documented since
- V1.10. Further details can be found in this file some lines above. You can
- naturally turn of cheat mode as the versions are actually identical apart from
- the default for he cheat flag.