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