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