home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / programming / assembler / thesource / volume1 / utilities / disassemblers / copdis.lha / README < prev   
Encoding:
Text File  |  1992-01-25  |  3.9 KB  |  95 lines

  1.  
  2.  
  3. NOTE: This is Karl's original README file, which is here for sake of
  4. completeness. Please read the first lines of the CopDis.c source for the
  5. latest news...
  6.  
  7.                                        seba
  8.  
  9. ------------------------------------------------------------------------
  10.  
  11.  
  12. copdis - copper disassembler  0.0a  6/29/89  (alpha release)
  13.  
  14.  
  15. OVERVIEW
  16.  
  17. Greetings.  The intrepid Amiga hacker, seeking to gain knowledge in the
  18. intricacies of the video coprocessor, or copper, may find use in this
  19. program: a copper list disassembler.
  20.  
  21. The copper is a source of unspeakable power and it must be studied.
  22.  
  23. The copper is a programmable processor, capable of executing a very simple
  24. set of instructions that allow it to control much of the Amiga hardware,
  25. including all of the display characteristics and functions, audio functions,
  26. the blitter, serial port and even the floppy disk drives.
  27.  
  28. The copper has the capability of synchronizing its operations with the
  29. drawing of the display.  Copper programs can use this to do specific
  30. things to specific portions of the screen such as alter color registers,
  31. change display resolutions, etc.  It can also use this capability to
  32. provide a precision timer by which its operations can be precisely ordered,
  33. for example, for using the copper to play music without the intervention
  34. of the 68000 processor.
  35.  
  36. The copper has a particularly interesting, but little used, capability by
  37. which a currently executing copper program (Copper programs basically must
  38. complete within about 1/60th of a second.) can set up another address for
  39. the copper to begin executing at.  The copper would normally begin executing
  40. at that address at the start of the next video field.  It can be forced to
  41. begin executing it immediately with an additional instruction.
  42.  
  43. As there are two copper "program counters," it is possible to have a
  44. one-deep subroutine calling capability whereby programs execute running
  45. copper PC 1 and call subroutines by loading their addresses into copper
  46. PC 2 and strobing the location to causes the coppper to start executing
  47. the "subroutine."  At the completion of the subroutine, it strobes the
  48. address that causes the copper to execute using PC 1, which resumes
  49. the caller -- UNTESTED
  50.  
  51. If that works, a deeper interrupt nesting scheme can be created, if
  52. necessary, involving the copper interrupting the 68000 and getting it
  53. to handle a stack and such.  (kink value == maximum)
  54.  
  55. USING COPDIS
  56.  
  57. There are two ways to use copdis.  One is to execute the copdis program.
  58. This goes out and finds various presumably interesting copper lists and
  59. prints them out for you.
  60.  
  61. The other way to use copdis is to call it directly from your C program.
  62. Simply link copdis.o (after compiling it from copdis.c for the memory
  63. model you're using) in with your program, and call the subroutine 'copdis'
  64. with a pointer to a copper instruction list.  Note that structures such
  65. as "struct cprlist" are not pointers to instruction lists but pointer
  66. to structures that point to instruction lists or point to something that
  67. points to an instruction list.  I think the calls in main are correct,
  68. but I'm not promising *anything.*
  69.  
  70. BUGS
  71.  
  72. This program is in a primitive state.  Right now it doesn't take a length
  73. and if it gets passed a bogus address (i.e., not an address of a real
  74. and properly terminated copper list), it can run on and on.  For all I
  75. know, it may even get lost doing OK lists, but I haven't seen that happen,
  76. at least not for a while.  It really ought to do a sanity check on the
  77. size of the list, like stop after an absurd number of instructions go
  78. by, but you can always control-C anyway.
  79.  
  80. Note also that I'm not a copper expert so any of the information in the
  81. README here could be wrong as well.
  82.  
  83.  
  84. Regards, Karl Lehenbauer @ The Hacker's Haven
  85.  
  86.  Hackercorp
  87.  3918 Panorama
  88.  Missouri City, TX  77459
  89.  
  90.  (713) 274-5184
  91.  usenet: uunet!sugar!karl
  92.  Internet & BITNET: karl@sugar.hackercorp.com
  93.  BIX: karl (rarely)
  94.  
  95.