home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / amiga / programmer / 3520 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  2.1 KB

  1. Path: Norway.EU.net!usenet
  2. From: patrick.hanevold@login.eunet.no (Patrick Hanevold)
  3. Newsgroups: comp.sys.amiga.programmer
  4. Subject: Re: Qblit intereference again
  5. Date: 21 Feb 1996 02:09:35 GMT
  6. Organization: EUnet Norway
  7. Message-ID: <1695.6625T173T2950@login.eunet.no>
  8. References: <4gb6om$104@sunsystem5.informatik.tu-muenchen.de>
  9. NNTP-Posting-Host: pc9.asker-pm2-1.eunet.no
  10. X-Newsreader: THOR 2.22 (Amiga;TCP/IP)
  11.  
  12.  
  13. >My Qblit function still locks up if OS does small blits between it.
  14. >help please.
  15.  
  16. >Best is IMHO I post the source:
  17.  
  18. >* === THE QBLIT CALL
  19. >   move.w #1,_bltbsy ;MY FLAG TELLING THAT QBLIT SEQUENCE IS WORKING.
  20.  
  21. >   move.l bltnode,a0
  22.  
  23. >   clr.l (a0)+ : move.l #function,(a0)+
  24. >   move.w #$4000,(a0)+ ;do cleanup
  25. >   move.w #$2020,(a0)+ ;DUMMY SIZE. HOW TO DO LARGE BLIT IN A .W ? HUH HUH
  26. >   clr.w (a0)+
  27. >   move.l #cleanup,(a0)+
  28.  
  29. >   move.l bltnode,a1 : move.l _GfxBase,a6 : jsr -276(a6)
  30.  
  31. >* NO I WON'T TOUCH THIS BLTNODE UNTIL MY cleanup: WAS CALLED.
  32.  
  33. >*===== THE FUNCTIONS
  34. >function:
  35. >* DO I MISS CLEARING THE BLITTER INTREQ BIT HERE ?
  36.  
  37. >   movem.l d1/a6,-(sp)
  38. >   move.l bltpc(pc),a6
  39.  
  40. >bltsetreg:
  41. >   move.l (a6)+,d0 : move.w d0,d1 : swap d0
  42. >   move.w d0,0(a0,d1.w)
  43. >*               ^------- ??? $DFF000 BY OS ???
  44.  
  45. >   cmp.w #$5e,d1 : beq.s bltstarted
  46. >   cmp.w #$58,d1 : bne.s bltsetreg
  47. >* ---
  48. >bltstarted:
  49. >   move.l a6,bltpc
  50. >   cmp.l #0,(a6) : beq bltintend
  51.  
  52. >   movem.l (sp)+,d1/a6
  53.  
  54. >   move.l #1,d0 ;TO BE RECALLED
  55. >   rts
  56.  
  57. >bltintend:
  58. >   movem.l (sp)+,d1/a6
  59.  
  60. >   move.l #0,d0 ;ALL DONE
  61. >   rts
  62.  
  63. >cleanup:
  64. >   clr.w _bltbsy
  65. >   moveq #0,d0
  66. >   rts
  67.  
  68. I think its a bug in the system. Atleast he forgets that clr.w _bltbsy some
  69. times. I dont know why.
  70.  
  71. >*===============================
  72.  
  73. >The bugs:
  74.  
  75. >   blitter lockup most likely if lots of small blits are done
  76. >   by other programs, while mine does quite large blits.
  77.  
  78. >   if I just let the function run without any pokes to blitter,
  79. >   the lockup is also caused!
  80.  
  81. >   It's just a lockup, no memory trashed.
  82.  
  83.  
  84. <sb>Patrick Hanevold - Virtual Reality developer
  85. <sb>patrick.hanevold@login.eunet.no
  86. <sb>Amiga and official Be developer
  87.  
  88.