84560 packages online


No screenshot available
Short:Low Level Debugger
Author:thomas.richter at (Thomas Richter)
Uploader:thomas richter alumni tu-berlin de (Thomas Richter)
Requires:An Amiga or even better two. The OS version doesn't matter.
Download: - View contents

**                                                                         **
** ___________                                                             **
** \        */                                                             **
**  /-----------     #######     #######    ########                       **
**  |    ^ |        ##      ##  ##     ##   ##     ##                      **
**  |      _\       ##          ##     ##   ##     ##  Version 1.107       **
**  |      |        ##          ##     ##   ########                       **
**  |    --|        ##          ##     ##   ##                             **
**  +-----/         ##      ##  ##     ##   ##                             **
**   |   |           #######     #######    ## (c) 1993-2023 THOR-Software **
**                                                                         **
**                                                                         **
**              A Low Level Debugger for all Amiga Systems                 **
**                                                                         **


     _______         _____  _____           __     _
        /    /    / /    / /    /         \/_/    //_/_
       /    /____/ /    / /____/   ___    /  ____// /        _      __
      /    /    / /    / /   \           /  /|/ /  /  /   /_/ / /\_/_/
     /    /    / /____/ /    /         _/__/_/ /__/|_/_/_/ /_/_/  /_


			About COP

COP is a low level debugger for all amiga systems. "Low Level" means it
directly plays with the hardware, does not have GUI, but is unbeatable
stable. Its main purpose is to debug programs not debugable with the usual
"source level" debugger, like hardware device drivers, DOS handlers in action
and much more. It supports debugging by the serial port, thru a standard
tty terminal (also a COP type 5 terminal is better. A terminal program
for amigas is included), and a build-in terminal emulation in case no 
second computer is available.

In case you want to use COP, make sure:

-that you really want it. COP is not easy to use!
-that you know assembly language. It won't work without!
-that you have a lot of good will!

EMail:  thomas.richter at

By the way: You should read the documentation first (before trying to get
COP running)!

This is even more important if you own a '060 or '040 system. Special hints
can be found at the end of the COP.doc file.


Changes made in 1.107

- Added support for SegTracker 47.1, that is, COP now also prints symbol
  and source code/line number information on stack tracebacks and with 
  the SEGM command if available.

Changes made in 1.106

- The ftrapcc instructions were not disassembled correctly if they included
  a data field.
- If segment information was printed during a stack traceback, the lines
  including the information did not accumulate for the pager.

Changes made in 1.105

- The fssqrt and fdsqrt instructions were not disassembled correctly, fixed.
- Added NOFPUEMU command line option and the ENVI.S option to bypass LineF
  emulator traps that could be handled by software based FPU emulators 
  such as SoftIEEE. SoftIEEE users should instruct COP to bypass such 
  exceptions to SoftIEEE with the NOFPUEMU command line option.


Changes made in 1.104

- The disassembly of fdbcc, pdbcc, cpdbcc (co-processor loop instructions)
  was not correct and expected a 32-bit displacement where a 16-bit
  displacement would apply.
- The disassembly of the k-factor of fmovem packed decimal to memory was
  wrong. The data register was not disassembled correctly, and an
  immediate negative k-factor was not shown correctly.
- The disassembly showed a k-factor when reading from packed-decimal, but
  it has no meaning there.


Changes made in 1.103

- The division operator could have reported an overflow even though there
  was nothing to report.
- Searching with memory management disabled (ENVI.M command) could not be

Changes made in 1.102

- In case more than one RTG board was installed, COP did not manipulate
  the display switches on the boards correctly to get its screen frontmost.
- Boards with a software-driven flicker fixer such as the Picasso IV can
  still not be disabled to show the COP screen since activating the on-board
  flicker fixer cannot be done without operating system support, but COP
  should now at least properly ignore such RTG boards. In such cases, please
  debug over a null-modem cable (which is recommended anyhow).

Changes made in 1.101

- The multiplication operator * did not correctly handled signed input
  and returned nonsense if one of the two factors were negative.

Changes made in 1.100

- The FILL command no longer fills across sections and aborts on section
  boundaries. In particular, it no longer wraps around, and warns if its
  start position is not in a section - unless memory management is turned
  off. This idiocracy of former FILL commands could have had desasterous
  side effects.


Changes made in 1.99

- The 68060 processor cannot restore the state when entering the
  unimplemented FPU exception vector with a NULL state. In such a case,
  COP restored the NULL state, which trashed the FPIAR (and other status
  registers). Now COP restores the status registers, though leaves the FPU
  in the IDLE state. This is neither perfect, but allows to step through
  FPU exception handlers.

Changes made in 1.98

- The disassembly of fmovem of multiple control registers using the
  immediate addressing mode as source was not correct - fixed.

Changes made in 1.97

- COP now also prints DOS volumes, devices and assigns with the new "LIST.V"
- The NODE command was extended to print Dos devices briefly with NODE.V,
  or verbosely, with NODE.D.


Changes made in 1.96

- The memory setup marked the zero page (the first 4K or 1K) as part of
  the available memory, potentially causing hits (or COP capturing itself)
  when a FIND reaches this area.
- FIND did not respect the "memory management disable" switch "ENVI.M" and
  hence could not scan non-memory parts of the system map.

Changes made in 1.95

- The P96 monitor switch function was a bit uncareful and crashed
  the machine with the "Native" video driver loaded. This should
  be fixed now.

Changes made in 1.94

- The previous fix wasn't one.... here is the second attempt
  for getting the bit instructions disassembled correctly.

Changes made in 1.93:

- The disassembler incorrectly identified the btst opcodes with
  PC-relative addressing as "illegal". This has been fixed.


Changes made in 1.92:

- The LIST and NODE commands now also now resident modules and the
  resident structure. In particular, LIST.E lists the installed
  resident modules, both in ROM and those added by the KickTags, and
  LIST.F lists the kicktags installed in exec.
- Memory management was less than ideal if fast memory was fragmented.
  COP 1.91 and before was only able to identify one big block of
  FAST_MEM. This release can now handle up to four disjoined blocks.

Changes made in 1.91:

- When stepping through programs with the "N" command, the debugger
  now automatically reverts to tracing for instructions that return
  from subroutines or exceptions (RTS,RTD,RTR and RTE). Note that for
  branches, "N" still sets a breakpoint because they might be part of
  a loop.

Changes made in 1.90:

- This release fixes a race condition in the "region clear" VT102
  terminal handler that could have caused an infinite loop when
  debugging over a serial connection.

Changes made in 1.89:

- COPs internal crash handling had a bug and failed to restore
  the interrupt settings when recovering from a COP-crash,
  leaving the system unusable.
- COPs memory testing did not check properly for AbsExecBase
  accesses and crashed (correctly) on byte- or word-accesses.
- COP supports now standard VT-102 terminals (yeah!) as external
  serial terminals. It auto-detects the terminal-type, so type-3
  terminals continue to work.

Changes made in 1.87:	

- MMU handling is now much better. COP tries now to be very conservative
  when reading MMU descriptors and pushes them out of cache as soon as
  possible. Further, COP checks now for the availibility of pages from
  user and supervisor page before attempting to access them.
- Exception handling was improved substancially. The new "env.h" command
  can now be used to re-direct high-memory access errors to the default
  exception handling, typically the mmu.library.
- COP provides now a "high-speed" serial transfer mode using a baud rate
  of 115200. This rate requires a "type-5" terminal, for example the
  terminal program within this archive; simple TTYs operate still at 9600.
  COP is able to auto-detect the terminal baud rate, just set the terminal
  to 115200 baud and let it go.


Changes made in 1.86:	

- Fixed the "capture" command for the 060 in the early bootstrap phase.
  COP used its own internal version of the "AttnFlags" to determine the
  format of the exec stack frame, but what is important here is what
  exec "believes" about the processor and not what "COP knows". 
- Renamed QUAT to QUAD and UQUAT to UQUAD (typo fix).


Changes made in 1.85:	

- Fixed several 060 related bugs:
	- an unnecessary "fnop" trashed the fpiar register and hence
	  made it impossible to debug floating point exception handlers.
	- the bootstrap code of various boards let exec identify the
	  68060 as 68010 and hence trashed the CPU check of the resident
	  code of COP. COP runs now the CPU test itself.
	- since the 68060.library has to replace AddTask(), COPs 
	  AddTask() patch was overwritten in case it was made resident
	  before. "RestoreVBR" will now re-install the patch to make
	  sure the proper exception handler is called on a crash. This
	  is a bit touchy and requires the creation of a temporary


Changes made in 1.83:	

- Fixed the fmovem <dynamic register list> disassembly.
- Fixed incorrect FPU exception handling for the 040 and the 060.
- Fixed a spurious Bus error which occured on some 040 systems at times
  the MMU wasn't active (Early bootup)
- Fixed many bugs in the "Terminal" program: 
	- Hangs on menu pop-open are history, I hope. (Semaphore deadlocks)
	- ATR transfer became more stable (but still leaves a lot to be 
	- ATR "autodetection" mode has been added.

Changes made in 1.82:

- Fixed the (d.32,PC) EA disassembly which was wrong by two bytes.
- Added the comment character ";" to the command interpreter.

Changes made in 1.81:

- Added some workarounds in the terminal driver against a 68030 firmware bug.
- Fixed the "find.i" command which was broken.
- Fixed printer support. In case of printer trouble, it did not disable
printing correctly.
- The long mulitplication and division opcodes are now correctly disassembled
as "extended".
- Fixed a bug in the setup logic which caused the program to report that
interrupts have been overwritten on plain 68000 systems.  

Changes made in 1.80:

- COP disables now the caches if the MMU is disabled. This helps preventing
some cache related problems on boards with Z-II memory which might not allow
burst accesses.
- COP autodetects now a 68060 CPU even if the correspoding 060 flag in 
ExecBase->AttnFlags is not set correctly. The SET060 option is no longer
required to correct this manually.
- Fixed a bug in the disassembler, did not disassemble 64 bit arithmetics
- Updated the MuForce compatibility hints slightly. Mainly, specify


Changes made in 1.79:

- Fixed the terminal program a lot. The I/O mechanism was very unstable.
- Updated the ATerm download protocol.
- Partially fixed '060 support of the 1.77 release. This might be still
  broken, but there's currently nothing I can do about it.
- Rewrote the vector setup logic and the autovector monitor.
- Updated the disassembler: tst.l ax was disassembled as illegal 
  instead of extended.
- Disassembler is now really MMU aware, removed an old cludge.

Changes made in 1.77:

- Rewrote the IRQ table setup for MC68010 or better. It used to be a mess.
- Fixed the cache control commands for the 68040 and 68060.
- Added SegTracker support for stack traceback.
- Fixed memory manager MMU support. It used to use the SRP instead of the
  URP for checking table accesses and therefore caused problems with

This release seems still to have problems on some 030 machines if it is 
installed with SetCPU FASTROM active. I don't know why as I can't reproduce
it on my 030 A2000. MuFastROM is recommended anyways.

Changes made in 1.76:

- Internal release, unpublished.


Changes made in 1.75:

- Modified the exception handler routines a bit, they no longer block
  interrupts completely.
- Added the DARKEN command line option to blank the screen.
- Fixed the memory list scan that failed with remapped low-memory areas.

Changes made in 1.73:

- The "restorevbr" option did not work correctly and could cause problems
  on 040 and 060 based machines.
- The MMU could have been disabled on startup, forgot to saveback a 
- 030 bus error processing can now handle MuForce instruction emulation
  in the zero-page.


Changes made in 1.72:

- Fixed a stupid bug in the 060 support code. COP did not test correctly
  whether a memory address is really available due to a broken MMU table

Changes made in 1.71:

- The 1.69 version disabled the MMU on 030 systems completely. Fixed.
- COP can now be made resident even on systems without autoconfig fast
- The COP initializer was a bit too picky about the FPU bits and therefore
  refused to keep resident on 040 and 060 systems.
- Fixed 040 FPU related bugs.
- Partial RTG support implemented, yeah!


Changes made in 1.69:

- Fixed the disassembly of some 040 specific instructions, cpushp and others.
- Fixed the startup code.
- Fixed the documentation, COP was never Enforcer compatible when run on
  a 040 and 060, unfortunately. It is compatible to "MuForce", which does
  the same.
- The bus error handler tries now to complete missing writebacks of the 040


Changes made in 1.68:

- Added 040 and 060 FPU instructions for single and double precision in the
- Added PLPAR/W instructions.
- Overflow handling in the expression evaluation was buggy.
- MMU table lookup for 68060 was buggy, worked only for complete 4K tables.
- MMU management included, the MMU registers are now written back.
  (Let's hope this works for the 040 and 060, I haven't tested this)
- The MMU URP/SRP registers can now be set by the user. However, be careful
  with it, this may easely trash the system.
- FPU emulator traps haven't been filtered out for the 040.

Changes made in 1.67:

- Due to a silly mistake, the Enforcer was disabled completely for the
  68030 processor.... Argh!


Changes made in 1.66:

- Fixed a horror bug in the MMU control section. After disabling the MMU,
  I forgot to flush the ATC and the cache of the 68030. Since the cache
  of the '020 and the '030 is BEHIND the MMU, it could still contain
  addresses marked as INVALID and might create an enforcer hit on some
  systems. This happens most likely in systems with the supervisor stack
  in chip ram. Fixed.
- General cleanup of the vector base register installation routine.
- Included the SSPToFast program which *should* be run in the startup 
  sequence for systems without autoconfig fast ram. Moving the SSP to
  fast ram will increase the performance of the system.

This release is mainly to due to Jörg Riemer. Thanks for letting me debug
COP on his A1200, and thanks for the hospitality.

Changes made in 1.65:

- Fixed a bug in the 68851 detection routine. This thing is now getting
  "metamagical", too. As the rest of the kernal code...
  Thanks, Dennis, for letting me know.
- COP RESTOREVBR restores now, too ,the Alert entry that might have been
  reset by the Enforcer.
- Removed a bug from the symbol hunk parser that didn't respect HUNK_DEBUGs
  as it should.

Changes made in 1.64:

- Fixed another set of bugs in the disassembler. The "pmove bad/bac" opcoded
  did not work.
- The disassembler knows now the "fnop" command.
- The register saveback routine was faulty for the '020 - it tried to save
  the non-existing tt0,tt1 registers.

Changes made in 1.63:

- Fixed a bug in the disassembler. The 0x7100 opcode was not detected as
- Fixed memory addressing bugs in the disassembler. Did not check for
  validity of addresses. 
- Fixed an addressing bug in the label manager. Did not check whether an
  address is valid or not.
- COP does no longer run the ROM code for the '060 in case no Enforcer/060
  library is installed.
- Added support code for the 68851 PMMU coprocessor. Should be detected
  correctly now.

Changes made in 1.62:

- Neither the NOMMU nor the NOEMU command line options worked in 1.61.
- Added MMU and EMU keywords for symmetry.
- Fixed just another bug in the '060 support code, thanks to Mark for
  the hints and the testing. (I guess we're at 4% now).
- Added the MMU support for MOVE, FIND and FILL commands.
- Improved FIND command, displays the found instructions or bytes.
- Made RESTOREVBR a bit smarter.
- Updated the included DDT file to contain '060 specific gurus. Thanks, 

Changes made in 1.61:

- Fixed a lot of bugs in the '060 support code. Thus, the chance that
  this release operates properly on a '060 has about doubled (from 1% to
  2%, to be precise...).
- Added NOEMU command line switch to bypass emulator traps.
- Added proper support for the '060 '040 MMU and cache.
- Debugged the AbsExecBase move.l emulator for the '060. Might actually work
  by now, but is untested.
- Changed some details in MMU handling.
- Changed minor details for COP capturing its own bugs.
- Added another function to the label manager, showing the label given an
  address - LABL.F command.
- Fixed a bug in the memory manager that did not handle non-writable memory
  in the correct way.
- Fixed a bug in the set-breakpoint logic.
- Enhanced the stack traceback with the new label manager. It tries to find
  out the label names.

Changes made in 1.60:

- Removed bugs in the breakpoint logic.
- Added SegTracker support for the REGS.G and (new) SEGM commands.
- Updated MMU/Enforcer support since I finally bought a real 68030.
- Added the NOMMU command line switch to disable the MMU bypass.
- Added the ability to pre-compile the DDT files for faster parsing
  with the "PRE" command line option.
- Updated the Terminal program a bit.

Changes made in 1.59:

- Removed a bug in the expression evaluator that made the indirection 
  operator [] unuseable.
- Removed a bug in the conditional break points.
- Rewrote parts of the system segment.
- Added support for the CyberGuard. That's not yet tested, however!
- Added more '040 instructions I forgot.
- Fixed a bug in the disassembler.
- The previous fix of the "NODE" command broke it even more, fixed!
- Fixed plain MC68000 support that was broken since 1.56.

Changes made in 1.58:

-Added two '040 instructions I wasn't aware of.
-Rewrote the complete math support, an FPU is no longer required.
-Enhanced the "NODE" command, it displays now all additional information
 it can hold of.
-Removed a stupid bug from the "NODE" command.
-Added the "LABS" command to view the defined labels. Study the doc file for


Changes made in 1.57:

-Added PAL/NTSC switch.
-Added a check for many command that won't work in a splitted display.


Changes made in 1.56:

-Removed a bug in the printer hardware driver that caused one additional
 character to be printed.
-Added command to eject paper.
-Added Enforcer support for the MC68020 and MC68030 CPUs.
-Added partial MMU support, however no MMU related commands are available.
 Enforcer must be run for this purpose.
-Added IRQ CopyBack mode.
-Fixed several final bugs in the 1.55 release, esp. some MC68060 related,
 although the support isn't complete yet ('60 FPU support is still somewhat
 broken, as the FPU part must be re-written anyways).

	March 2023

Contents of dev/debug/COP.lha
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[unknown]                  257     628  40.9% -lh5- bf0e Apr  7  2002
[unknown]                60192  103824  58.0% -lh5- 2a59 Mar 18 17:55 cop/cop
[unknown]                47259  145884  32.4% -lh5- dd69 Mar 18 17:58 COP/COP.doc
[unknown]                  214     476  45.0% -lh5- a7dc Oct 22  1997 COP/
[unknown]                  285     631  45.2% -lh5- 6eab Oct 22  1997 COP/
[unknown]                 8052   24324  33.1% -lh5- f98e Mar 26 21:03 COP/COP.readme
[unknown]                  268     628  42.7% -lh5- 949f Oct 22  1997 COP/
[unknown]                 1776    3448  51.5% -lh5- 43d4 Jun 22  1997 COP/DASB_German/About_DASB
[unknown]                  184    1076  17.1% -lh5- dd85 Dec 30  1996 COP/DASB_German/
[unknown]                 3137    6168  50.9% -lh5- 4c5a Dec 30  1996 COP/DASB_German/Autorun.sys
[unknown]                  128     128 100.0% -lh0- 5156 Dec 30  1996 COP/DASB_German/Handlers.sys
[unknown]                 1625    2060  78.9% -lh5- e267 Dec 30  1996 COP/DASB_German/
[unknown]                 1348    3980  33.9% -lh5- cfc1 Dec 30  1996 COP/DASB_German/Term.dat
[unknown]                  269     628  42.8% -lh5- 542d Oct 22  1997 COP/
[unknown]                  630    1133  55.6% -lh5- 0937 Dec 30  1996 COP/DDTs/About.DDTs
[unknown]                  215     476  45.2% -lh5- 8053 Dec 30  1996 COP/DDTs/
[unknown]                19479   69145  28.2% -lh5- 5f95 Dec 30  1996 COP/DDTs/Mac.DDT
[unknown]                 3465   11825  29.3% -lh5- 9c41 Feb 14  1999 COP/DDTs/Startup.DDT
[unknown]                 2069    4473  46.3% -lh5- 23fd Dec 15 17:49 COP/ReadME
[unknown]                  213     476  44.7% -lh5- f7ba Oct 22  1997 COP/
[unknown]                  268     628  42.7% -lh5- 0142 Oct 22  1997 COP/
[unknown]                   41      41 100.0% -lh0- da74 Dec 30  1996 COP/Scripts/Calc
[unknown]                  105     168  62.5% -lh5- ac0e Dec 30  1996 COP/Scripts/Debug
[unknown]                   72      72 100.0% -lh0- fe0e Dec 30  1996 COP/Scripts/WBDebug
[unknown]                13290   22984  57.8% -lh5- 9638 Nov 25  2001 COP/Terminal
[unknown]                 3861   14562  26.5% -lh5- bf77 Jan 17  2019 COP/Terminal.doc
[unknown]                  211     476  44.3% -lh5- 0788 Oct 22  1997 COP/
[unknown]                  321     617  52.0% -lh5- 8192 Dec 30  1998 COP/
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        28 files  169234  420959  40.2%            Mar 27 03:26

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>