home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src5.dms / in.adf / scroll1.s < prev    next >
Encoding:
Text File  |  1990-05-07  |  4.5 KB  |  148 lines

  1. ********************************************
  2. ***            Scroll Routine            ***
  3. ***   Copyright 1989 by Joakim Hallberg  ***
  4. ***         MASTERMIND OF SIGMA          ***
  5. ********************************************
  6.  
  7.    ExecBase:   equ      4
  8.  
  9.    move.l      ExecBase,A6       ;This will open the
  10.    lea.l       GfxName,A1        ;graphics library
  11.    moveq       #0,D0
  12.    jsr         -552(a6)
  13.    move.l      D0,GfxBase
  14.    beq         OpenErr           ;There was an error, quit!
  15.  
  16.    move.l      GfxBase,A0        ;Shift to the new
  17.    add.l       #$32,A0           ;copper
  18.    move.w      #$0080,$DFF096
  19.    move.l      (A0),OldCopper    ;Save this so we can get it back
  20.    move.l      #Copper,(A0)      ;when finished
  21.    move.w      #$8080,$DFF096
  22.  
  23. * Scroll Routine *
  24.  
  25. scroll:
  26.    move.b      $dff006,d0
  27.    cmp.b       #$ff,d0
  28.    bne         scroll
  29.    move.w      poke+2,d0         ;Move screen
  30.    swap        d0                ;1 pixel up
  31.    move.w      poke+6,d0         ;
  32.    add.l       #40,d0            ;
  33.    move.w      d0,poke+6         ;
  34.    swap        d0                ;
  35.    move.w      d0,poke+2         ;
  36.  
  37.    andi.b      #64,$bfe001       ;Check mousebutton 
  38.    beq         CloseAll          ;Pressed, free up everything we've used  
  39.    bra         scroll
  40.  
  41. CloseAll:
  42.  
  43.    move.l      GfxBase,A0        ;Shift back to the old
  44.    add.l       #$32,A0           ;copper
  45.    move.w      #$0080,$DFF096
  46.    move.l      OldCopper,(A0)
  47.    move.w      #$8080,$DFF096
  48.  
  49. CloseGrap:
  50.    move.l      execbase,A6       ;Close the graphics library
  51.    move.l      GfxBase,A1
  52.    jsr         -414(a6)
  53.  
  54. OpenErr:
  55.    moveq       #0,d0
  56.    rts
  57.  
  58. * Copperlist *
  59.  
  60. copper:
  61.    dc.w        $0100,$1200       ;Number of bitplanes
  62.    dc.w        $008e,$1f81       ;Size of screen
  63.    dc.w        $0090,$2ec1       ;
  64.    dc.w        $0092,$38         ;
  65.    dc.w        $0094,$d0         ;
  66.    dc.w        $0108,$0000       ;Moduls
  67.    dc.w        $010a,$0000       ;
  68. poke:
  69.    dc.w        $00e0,$0000       ;Here's the screen
  70.    dc.w        $00e2,$0000       ;That we are changing at
  71.    dc.w        $0182,$0000       ;Set writecolour to black
  72.    dc.w        $0180,$0000       ;Set background colour to black
  73.  
  74.    dc.w        $7501,$ff00       ;
  75.    dc.w        $0182,$0001       ;
  76.    dc.w        $7601,$ff00       ;
  77.    dc.w        $0182,$0002       ;
  78.    dc.w        $7701,$ff00       ;
  79.    dc.w        $0182,$0003       ;
  80.    dc.w        $7801,$ff00       ;
  81.    dc.w        $0182,$0004       ;
  82.    dc.w        $7901,$ff00       ;
  83.    dc.w        $0182,$0005       ;
  84.    dc.w        $7a01,$ff00       ;
  85.    dc.w        $0182,$0006       ;
  86.    dc.w        $7b01,$ff00       ;
  87.    dc.w        $0182,$0007       ;
  88.    dc.w        $7c01,$ff00       ;
  89.    dc.w        $0182,$0008       ;
  90.    dc.w        $7d01,$ff00       ;
  91.    dc.w        $0182,$0009       ;
  92.    dc.w        $7e01,$ff00       ;
  93.    dc.w        $0182,$000a       ;
  94.    dc.w        $7f01,$ff00       ;
  95.    dc.w        $0182,$000b       ;
  96.    dc.w        $8001,$ff00       ;
  97.    dc.w        $0182,$000c       ;
  98.    dc.w        $8101,$ff00       ;
  99.    dc.w        $0182,$000d       ;
  100.    dc.w        $8201,$ff00       ;
  101.    dc.w        $0182,$000e       ;
  102.    dc.w        $8301,$ff00       ;
  103.    dc.w        $0182,$000f       ;
  104.  
  105.    dc.w        $a801,$ff00       ;Wait for line 168
  106.    dc.w        $0180,$0f00       ;Change BG to red 
  107.    dc.w        $a901,$ff00       ;Wait for line 169
  108.    dc.w        $0180,$0000       ;Change BG to black
  109.  
  110.    dc.w        $cd01,$ff00       ;
  111.    dc.w        $0182,$000e       ;
  112.    dc.w        $ce01,$ff00       ;
  113.    dc.w        $0182,$000d       ;
  114.    dc.w        $cf01,$ff00       ;
  115.    dc.w        $0182,$000c       ;
  116.    dc.w        $d001,$ff00       ;
  117.    dc.w        $0182,$000b       ;
  118.    dc.w        $d101,$ff00       ;
  119.    dc.w        $0182,$000a       ;
  120.    dc.w        $d201,$ff00       ;
  121.    dc.w        $0182,$0009       ;
  122.    dc.w        $d301,$ff00       ;
  123.    dc.w        $0182,$0008       ;
  124.    dc.w        $d401,$ff00       ;
  125.    dc.w        $0182,$0007       ;
  126.    dc.w        $d501,$ff00       ;
  127.    dc.w        $0182,$0006       ;
  128.    dc.w        $d601,$ff00       ;
  129.    dc.w        $0182,$0005       ;
  130.    dc.w        $d701,$ff00       ;
  131.    dc.w        $0182,$0004       ;
  132.    dc.w        $d801,$ff00       ;
  133.    dc.w        $0182,$0003       ;
  134.    dc.w        $d901,$ff00       ;
  135.    dc.w        $0182,$0002       ;
  136.    dc.w        $da01,$ff00       ;
  137.    dc.w        $0182,$0001       ;
  138.    dc.w        $db01,$ff00       ;
  139.    dc.w        $0182,$0000       ;
  140.  
  141.    dc.w        $ffff,$fffe       ;Copperend 
  142.  
  143. GfxName:       DC.B 'graphics.library',0
  144. even
  145.  
  146. OldCopper:     DC.L  1
  147. GfxBase:       DC.L  1
  148.