home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / sys / amiga / programm / 12834 < prev    next >
Encoding:
Internet Message Format  |  1992-08-29  |  2.9 KB

  1. Path: sparky!uunet!dtix!darwin.sura.net!jvnc.net!yale.edu!ira.uka.de!chx400!josef!swalter
  2. From: swalter@avalon.physik.unizh.ch (walter stefan)
  3. Newsgroups: comp.sys.amiga.programmer
  4. Subject: Bug in ECS? Third try!
  5. Message-ID: <1992Aug28.212016.2130@ifi.unizh.ch>
  6. Date: 28 Aug 92 21:20:16 GMT
  7. Sender: news@ifi.unizh.ch (USENET News Admin)
  8. Organization: University of Zurich, Department of Computer Science
  9. Lines: 57
  10. Nntp-Posting-Host: avalon
  11. X-Newsreader: Tin 1.1 PL4
  12.  
  13. Sorry for the dummy mail before that, was a problem of the text editor.
  14.  
  15. Hi again! Thanks to all for the answers to my earlier question, although they
  16. are of little use, but this is my fault. The message I posted was rather hasty
  17. and didn't tell exactly what I meant, sorry. :)
  18.  
  19. The problem is not with any system routines or resources. The program I'm
  20. writing and that brings up these problems shuts down the display of
  21. the Workbench by disabling Copper DMA and builds up its own two color
  22. hires PAL display using the VB interrupt instead of a Copper list
  23. to update the display registers regularly.
  24.  
  25. To enable the Workbench screen (or any other display...) again after the
  26. program finishes, the following assembly code is executed:
  27.  
  28.         ...
  29.         lea     creginit(pc),a0
  30.         lea     $dff08e,a1
  31.         move.l  (a0)+,(a1)+             ;DIWSTRT & DIWSTOP
  32.         move.l  (a0)+,(a1)+             ;DDFSTRT & DDFSTOP
  33.         move.l  (a0)+,$100-$96(a1)      ;BPLCON0 & BPLCON1
  34.         move.w  (a0)+,$108-$96(a1)      ;BPL1MOD
  35.         move.l  (a0)+,$180-$96(a1)      ;COLOR00 & COLOR01
  36.         move.w  (a0)+,$1dc-$96(a1)      ;BEAMCON0
  37.         move.w  #$8080,$1dc-$96(a1)     ;enable Copper DMA again
  38.         ...
  39.         rts
  40.  
  41. creginit:
  42.         dc.w    $2981,$29c1,$0038,$00d0,$5200,$0000
  43.         dc.w    $0000,$0000,$0000,$0020
  44.  
  45. Now, I know that of course these values for the custom registers are
  46. not correct for the 'normal' 2 planes hires screen of the Workbench,
  47. but it's neccessary to perform these operations for some reasons.
  48.  
  49. Nevertheless, methinks that the problems with the red bitplane sometimes
  50. covering the Workbench screen when the program finishes (it's always red,
  51. even if there is no red in any COLORxx and it is visible for from just a
  52. flicker to upto two seconds, depending on the individual ECS chip) should
  53. not occur anyway. The system copperlist does write to all of these registers
  54. (except to BEAMCON0) in each frame the needed contents for the current mode
  55. of the screen.
  56.  
  57. The problem vanishes as soon as the $5200 that goes to BPLCON0 is replaced
  58. by $a200, the rest (DIWxxxx etc.) don't matter.
  59.  
  60. I really don't see why this happens. I checked the official hardware
  61. manual on hints in this direction, but I didn't find anything.
  62. So, can anyone tell me what goes wrong or what mistake I make? Thanks!
  63.  
  64.                                                         Stefan Walter
  65.  
  66. --------------------
  67. Stefan Walter       avalon.physik.unizh.ch!swalter
  68. Finsterruetistr. 57  or
  69. 8135 Langnau        stefan@pegasus.ch
  70.