home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 529a.lha / EZAsm_v1.5 / scroll.s < prev   
Text File  |  1991-07-02  |  2KB  |  115 lines

  1.  
  2. *    Scroll example ( fixed )
  3.  
  4. *    Hit left mouse button to quit
  5.  
  6.  
  7. INTREQR        equ    $01e
  8. INTREQ        equ    $09c
  9. INTENAR        equ    $01c
  10. INTENA        equ    $09a
  11.  
  12. DMACONR        equ    $002
  13. DMACON        equ    $096
  14.  
  15. BPLCON0        equ    $100
  16. BPLCON1        equ    $102
  17. BPLCON2        equ    $104
  18. BPL1MOD        equ    $108
  19. BPL2MOD        equ    $10a
  20.  
  21. DDFSTRT        equ    $092
  22. DDFSTOP        equ    $094
  23. DIWSTRT        equ    $08e
  24. DIWSTOP        equ    $090
  25.  
  26. BPL1PTH        equ    $0e0
  27. BPL2PTH        equ    $0e4
  28.  
  29.  
  30.  
  31. LONG    DispMem Count
  32. WORD    IntSave DmaSave Color
  33.  
  34.  
  35.     DispMem = AllocMem( 16000 $10002 )
  36.     beq    Quit
  37.             
  38.     a3 = $dff000
  39.     IntSave = INTENAR(a3)    ;save DMA and interrupt states
  40.     DmaSave = DMACONR(a3)
  41.  
  42.  
  43. *  set up display regs
  44.  
  45.     BPLCON0(a3) = $1200    ; (LORES) 1BPL COLOR            
  46.             
  47.     BPLCON1(a3) = 0 w
  48.     BPLCON2(a3) = 0 w
  49.     BPL1MOD(a3) = 0 w
  50.     BPL2MOD(a3) = 0 w
  51.  
  52.     DIWSTRT(a3) = $2c81
  53.     DIWSTOP(a3) = $f4c1
  54.     DDFSTRT(a3) = $0038 w
  55.     DDFSTOP(a3) = $00d0 w
  56.  
  57.     INTENA(a3) = $7fff
  58.     DMACON(a3) = $7fff
  59.     INTENA(a3) = $8020    ;SET VERTB
  60.     DMACON(a3) = $8300    ;SET DMAEN BPLEN
  61.  
  62. *  Make bands for effect
  63.  
  64.     d1 = 7
  65.     d2 = $ffffffff
  66.     a1 = DispMem
  67. 1$    d0 = 249
  68. 2$    (a1)+ = d2
  69.     dbf    d0,2$
  70.     a1 += 1000    ;start of next band
  71.     dbf    d1,1$
  72.  
  73.     d2 = DispMem
  74.     d3 = d2
  75.     d3 += 7960
  76.  
  77. VBloop    d1 = INTREQR(a3) w
  78.     d1:5 = 1 {
  79.  
  80.         INTREQ(a3) = $0020 w
  81.  
  82.         d2 > d3 {
  83.             d2 = DispMem
  84.         } else {
  85.             d2 += 80    ;Scroll speed, try 40 * n
  86.         }
  87.  
  88.         BPL1PTH(a3) = d2
  89.     }
  90.  
  91.     ($bfe001):6 = 1 VBloop
  92.  
  93. Quit
  94.     DispMem != 0 {        
  95.         FreeMem( DispMem 16000 )
  96.     }
  97.  
  98. *    restore DMACON & INTENA
  99.             
  100.     a3 = $dff000
  101.     INTENA(a3) = $7fff
  102.     DMACON(a3) = $7fff
  103.         
  104.     d0 = IntSave
  105.     bset.l    #15,d0
  106.     INTENA(a3) = d0 w
  107.             
  108.     d0 = DmaSave
  109.     bset.l    #15,d0
  110.     DMACON(a3) = d0 w
  111.  
  112.  
  113.     END
  114.  
  115.