home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / Programming / COP / COP.readme < prev    next >
Text File  |  1999-12-23  |  15KB  |  362 lines

  1. Short:    Low Level Debugger
  2. Uploader: thor@einstein.math.tu-berlin.de (Thomas Richter)
  3. Author:   thor@einstein.math.tu-berlin.de (Thomas Richter)
  4. Type:     dev/debug
  5. Version:  1.83
  6. Requires: An Amiga or even better two. The OS version doesn't matter.
  7.  
  8. *****************************************************************************
  9. **                                                                         **
  10. ** ___________                                                             **
  11. ** \        */                                                             **
  12. **  /-----------     #######     #######    ########                       **
  13. **  |    ^ |        ##      ##  ##     ##   ##     ##                      **
  14. **  |      _\       ##          ##     ##   ##     ##  Version 1.83        **
  15. **  |      |        ##          ##     ##   ########                       **
  16. **  |    --|        ##          ##     ##   ##                             **
  17. **  +-----/         ##      ##  ##     ##   ##                             **
  18. **   |   |           #######     #######    ## (c) 1993-1999 THOR-Software **
  19. **                                                                         **
  20. **                                                                         **
  21. **              A Low Level Debugger for all Amiga Systems                 **
  22. **                                                                         **
  23. *****************************************************************************
  24.  
  25.                                     by
  26.  
  27.      _______         _____  _____           __     _
  28.         /    /    / /    / /    /         \/_/    //_/_
  29.        /    /____/ /    / /____/   ___    /  ____// /        _      __
  30.       /    /    / /    / /   \           /  /|/ /  /  /   /_/ / /\_/_/
  31.      /    /    / /____/ /    /         _/__/_/ /__/|_/_/_/ /_/_/  /_
  32.                                               /                   
  33.  
  34. _____________________________________________________________________________
  35.  
  36.             About COP
  37.  
  38. COP is a low level debugger for all amiga systems. "Low Level" means it
  39. directly plays with the hardware, does not have GUI, but is unbeatable
  40. stable. Its main purpose is to debug programs not debugable with the usual
  41. "source level" debugger, like hardware device drivers, DOS handlers in action
  42. and much more. It supports debugging by the serial port, thru a standard
  43. tty terminal (also a COP type 5 terminal is better. A terminal program
  44. for amigas is included), and a build-in terminal emulation in case no 
  45. second computer is available.
  46.  
  47. In case you want to use COP, make sure:
  48.  
  49. -that you really want it. COP is not easy to use!
  50. -that you know assembly language. It won't work without!
  51. -that you have a lot of good will!
  52.  
  53.  
  54. EMail:  thor@einstein.math.tu-berlin.de
  55.  
  56. WWW:    http://www.math.tu-berlin.de/~thor/thor/index.html
  57.  
  58.  
  59. By the way: You should read the documentation first (before trying to get
  60. COP running)!
  61.  
  62. This is even more important if you own a '060 or '040 system. Special hints
  63. can be found at the end of the COP.doc file.
  64.  
  65. _____________________________________________________________________________
  66.  
  67. Changes made in 1.83:    THIS IS THE LAST COP RELEASE. Goodbye!
  68.  
  69. - Fixed the fmovem <dynamic register list> disassembly.
  70. - Fixed incorrect FPU exception handling for the 040 and the 060.
  71. - Fixed a spurious Bus error which occured on some 040 systems at times
  72.   the MMU wasn't active (Early bootup)
  73. - Fixed many bugs in the "Terminal" program: 
  74.     - Hangs on menu pop-open are history, I hope. (Semaphore deadlocks)
  75.     - ATR transfer became more stable (but still leaves a lot to be 
  76.       desired)
  77.     - ATR "autodetection" mode has been added.
  78. _____________________________________________________________________________
  79.  
  80. Changes made in 1.82:
  81.  
  82. - Fixed the (d.32,PC) EA disassembly which was wrong by two bytes.
  83. - Added the comment character ";" to the command interpreter.
  84. _____________________________________________________________________________
  85.  
  86. Changes made in 1.81:
  87.  
  88. - Added some workarounds in the terminal driver against a 68030 firmware bug.
  89. - Fixed the "find.i" command which was broken.
  90. - Fixed printer support. In case of printer trouble, it did not disable
  91. printing correctly.
  92. - The long mulitplication and division opcodes are now correctly disassembled
  93. as "extended".
  94. - Fixed a bug in the setup logic which caused the program to report that
  95. interrupts have been overwritten on plain 68000 systems.  
  96. _____________________________________________________________________________
  97.  
  98. Changes made in 1.80:
  99.  
  100. - COP disables now the caches if the MMU is disabled. This helps preventing
  101. some cache related problems on boards with Z-II memory which might not allow
  102. burst accesses.
  103. - COP autodetects now a 68060 CPU even if the correspoding 060 flag in 
  104. ExecBase->AttnFlags is not set correctly. The SET060 option is no longer
  105. required to correct this manually.
  106. - Fixed a bug in the disassembler, did not disassemble 64 bit arithmetics
  107. correctly.
  108. - Updated the MuForce compatibility hints slightly. Mainly, specify
  109. NOGURUPATCH and avoid CAPTURESUPER.
  110.  
  111. _____________________________________________________________________________
  112.  
  113. Changes made in 1.79:
  114.  
  115. - Fixed the terminal program a lot. The I/O mechanism was very unstable.
  116. - Updated the ATerm download protocol.
  117. - Partially fixed '060 support of the 1.77 release. This might be still
  118.   broken, but there's currently nothing I can do about it.
  119. - Rewrote the vector setup logic and the autovector monitor.
  120. - Updated the disassembler: tst.l ax was disassembled as illegal 
  121.   instead of extended.
  122. - Disassembler is now really MMU aware, removed an old cludge.
  123. _____________________________________________________________________________
  124.  
  125. Changes made in 1.77:
  126.  
  127. - Rewrote the IRQ table setup for MC68010 or better. It used to be a mess.
  128. - Fixed the cache control commands for the 68040 and 68060.
  129. - Added SegTracker support for stack traceback.
  130. - Fixed memory manager MMU support. It used to use the SRP instead of the
  131.   URP for checking table accesses and therefore caused problems with
  132.   MuGuardianAngel.
  133.  
  134. This release seems still to have problems on some 030 machines if it is 
  135. installed with SetCPU FASTROM active. I don't know why as I can't reproduce
  136. it on my 030 A2000. MuFastROM is recommended anyways.
  137. _____________________________________________________________________________
  138.  
  139. Changes made in 1.76:
  140.  
  141. - Internal release, unpublished.
  142.  
  143. _____________________________________________________________________________
  144.  
  145. Changes made in 1.75:
  146.  
  147. - Modified the exception handler routines a bit, they no longer block
  148.   interrupts completely.
  149. - Added the DARKEN command line option to blank the screen.
  150. - Fixed the memory list scan that failed with remapped low-memory areas.
  151. _____________________________________________________________________________
  152.  
  153. Changes made in 1.73:
  154.  
  155. - The "restorevbr" option did not work correctly and could cause problems
  156.   on 040 and 060 based machines.
  157. - The MMU could have been disabled on startup, forgot to saveback a 
  158.   register.
  159. - 030 bus error processing can now handle MuForce instruction emulation
  160.   in the zero-page.
  161.  
  162. _____________________________________________________________________________
  163.  
  164. Changes made in 1.72:
  165.  
  166. - Fixed a stupid bug in the 060 support code. COP did not test correctly
  167.   whether a memory address is really available due to a broken MMU table
  168.   scanner.
  169. _____________________________________________________________________________
  170.  
  171. Changes made in 1.71:
  172.  
  173. - The 1.69 version disabled the MMU on 030 systems completely. Fixed.
  174. - COP can now be made resident even on systems without autoconfig fast
  175.   memory.
  176. - The COP initializer was a bit too picky about the FPU bits and therefore
  177.   refused to keep resident on 040 and 060 systems.
  178. - Fixed 040 FPU related bugs.
  179. - Partial RTG support implemented, yeah!
  180.  
  181. _____________________________________________________________________________
  182.  
  183.  
  184. Changes made in 1.69:
  185.  
  186. - Fixed the disassembly of some 040 specific instructions, cpushp and others.
  187. - Fixed the startup code.
  188. - Fixed the documentation, COP was never Enforcer compatible when run on
  189.   a 040 and 060, unfortunately. It is compatible to "MuForce", which does
  190.   the same.
  191. - The bus error handler tries now to complete missing writebacks of the 040
  192.   processor.
  193.  
  194. _____________________________________________________________________________
  195.  
  196. Changes made in 1.68:
  197.  
  198. - Added 040 and 060 FPU instructions for single and double precision in the
  199.   disassembler.
  200. - Added PLPAR/W instructions.
  201. - Overflow handling in the expression evaluation was buggy.
  202. - MMU table lookup for 68060 was buggy, worked only for complete 4K tables.
  203. - MMU management included, the MMU registers are now written back.
  204.   (Let's hope this works for the 040 and 060, I haven't tested this)
  205. - The MMU URP/SRP registers can now be set by the user. However, be careful
  206.   with it, this may easely trash the system.
  207. - FPU emulator traps haven't been filtered out for the 040.
  208. _____________________________________________________________________________
  209.  
  210. Changes made in 1.67:
  211.  
  212. - Due to a silly mistake, the Enforcer was disabled completely for the
  213.   68030 processor.... Argh!
  214.  
  215. _____________________________________________________________________________
  216.  
  217. Changes made in 1.66:
  218.  
  219. - Fixed a horror bug in the MMU control section. After disabling the MMU,
  220.   I forgot to flush the ATC and the cache of the 68030. Since the cache
  221.   of the '020 and the '030 is BEHIND the MMU, it could still contain
  222.   addresses marked as INVALID and might create an enforcer hit on some
  223.   systems. This happens most likely in systems with the supervisor stack
  224.   in chip ram. Fixed.
  225. - General cleanup of the vector base register installation routine.
  226. - Included the SSPToFast program which *should* be run in the startup 
  227.   sequence for systems without autoconfig fast ram. Moving the SSP to
  228.   fast ram will increase the performance of the system.
  229.  
  230.  
  231. This release is mainly to due to Jörg Riemer. Thanks for letting me debug
  232. COP on his A1200, and thanks for the hospitality.
  233.  
  234.  
  235. Changes made in 1.65:
  236.  
  237. - Fixed a bug in the 68851 detection routine. This thing is now getting
  238.   "metamagical", too. As the rest of the kernal code...
  239.   Thanks, Dennis, for letting me know.
  240. - COP RESTOREVBR restores now, too ,the Alert entry that might have been
  241.   reset by the Enforcer.
  242. - Removed a bug from the symbol hunk parser that didn't respect HUNK_DEBUGs
  243.   as it should.
  244. _____________________________________________________________________________
  245.  
  246. Changes made in 1.64:
  247.  
  248. - Fixed another set of bugs in the disassembler. The "pmove bad/bac" opcoded
  249.   did not work.
  250. - The disassembler knows now the "fnop" command.
  251. - The register saveback routine was faulty for the '020 - it tried to save
  252.   the non-existing tt0,tt1 registers.
  253. _____________________________________________________________________________
  254.  
  255. Changes made in 1.63:
  256.  
  257. - Fixed a bug in the disassembler. The 0x7100 opcode was not detected as
  258.   illegal.
  259. - Fixed memory addressing bugs in the disassembler. Did not check for
  260.   validity of addresses. 
  261. - Fixed an addressing bug in the label manager. Did not check whether an
  262.   address is valid or not.
  263. - COP does no longer run the ROM code for the '060 in case no Enforcer/060
  264.   library is installed.
  265. - Added support code for the 68851 PMMU coprocessor. Should be detected
  266.   correctly now.
  267. _____________________________________________________________________________
  268.  
  269. Changes made in 1.62:
  270.  
  271. - Neither the NOMMU nor the NOEMU command line options worked in 1.61.
  272.   Sigh.
  273. - Added MMU and EMU keywords for symmetry.
  274. - Fixed just another bug in the '060 support code, thanks to Mark for
  275.   the hints and the testing. (I guess we're at 4% now).
  276. - Added the MMU support for MOVE, FIND and FILL commands.
  277. - Improved FIND command, displays the found instructions or bytes.
  278. - Made RESTOREVBR a bit smarter.
  279. - Updated the included DDT file to contain '060 specific gurus. Thanks, 
  280.   Mark!
  281. ____________________________________________________________________________
  282.  
  283. Changes made in 1.61:
  284.  
  285. - Fixed a lot of bugs in the '060 support code. Thus, the chance that
  286.   this release operates properly on a '060 has about doubled (from 1% to
  287.   2%, to be precise...).
  288. - Added NOEMU command line switch to bypass emulator traps.
  289. - Added proper support for the '060 '040 MMU and cache.
  290. - Debugged the AbsExecBase move.l emulator for the '060. Might actually work
  291.   by now, but is untested.
  292. - Changed some details in MMU handling.
  293. - Changed minor details for COP capturing its own bugs.
  294. - Added another function to the label manager, showing the label given an
  295.   address - LABL.F command.
  296. - Fixed a bug in the memory manager that did not handle non-writable memory
  297.   in the correct way.
  298. - Fixed a bug in the set-breakpoint logic.
  299. - Enhanced the stack traceback with the new label manager. It tries to find
  300.   out the label names.
  301. _____________________________________________________________________________
  302.  
  303. Changes made in 1.60:
  304.  
  305. - Removed bugs in the breakpoint logic.
  306. - Added SegTracker support for the REGS.G and (new) SEGM commands.
  307. - Updated MMU/Enforcer support since I finally bought a real 68030.
  308. - Added the NOMMU command line switch to disable the MMU bypass.
  309. - Added the ability to pre-compile the DDT files for faster parsing
  310.   with the "PRE" command line option.
  311. - Updated the Terminal program a bit.
  312. _____________________________________________________________________________
  313.  
  314. Changes made in 1.59:
  315.  
  316. - Removed a bug in the expression evaluator that made the indirection 
  317.   operator [] unuseable.
  318. - Removed a bug in the conditional break points.
  319. - Rewrote parts of the system segment.
  320. - Added support for the CyberGuard. That's not yet tested, however!
  321. - Added more '040 instructions I forgot.
  322. - Fixed a bug in the disassembler.
  323. - The previous fix of the "NODE" command broke it even more, fixed!
  324. - Fixed plain MC68000 support that was broken since 1.56.
  325. _____________________________________________________________________________
  326.  
  327. Changes made in 1.58:
  328.  
  329. -Added two '040 instructions I wasn't aware of.
  330. -Rewrote the complete math support, an FPU is no longer required.
  331. -Enhanced the "NODE" command, it displays now all additional information
  332.  it can hold of.
  333. -Removed a stupid bug from the "NODE" command.
  334. -Added the "LABS" command to view the defined labels. Study the doc file for
  335.  details.
  336.  
  337. _____________________________________________________________________________
  338.  
  339. Changes made in 1.57:
  340.  
  341. -Added PAL/NTSC switch.
  342. -Added a check for many command that won't work in a splitted display.
  343.  
  344. _____________________________________________________________________________
  345.  
  346. Changes made in 1.56:
  347.  
  348. -Removed a bug in the printer hardware driver that caused one additional
  349.  character to be printed.
  350. -Added command to eject paper.
  351. -Added Enforcer support for the MC68020 and MC68030 CPUs.
  352. -Added partial MMU support, however no MMU related commands are available.
  353.  Enforcer must be run for this purpose.
  354. -Added IRQ CopyBack mode.
  355. -Fixed several final bugs in the 1.55 release, esp. some MC68060 related,
  356.  although the support isn't complete yet ('60 FPU support is still somewhat
  357.  broken, as the FPU part must be re-written anyways).
  358.  
  359.  
  360. Thomas,
  361.     December 1999
  362.