home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / fish / languages / ezasm_421 / scroll.s < prev    next >
Text File  |  1990-12-30  |  2KB  |  122 lines

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