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

  1.    ExecBase:   equ      4
  2.  
  3.    move.l      ExecBase,A6       ;This will open the
  4.    lea.l       GfxName,A1        ;graphics library
  5.    moveq       #0,D0
  6.    jsr         -552(a6)
  7.    move.l      D0,GfxBase
  8.    beq         OpenErr           ;There was an error, quit!
  9.  
  10.    move.l      GfxBase,A0        ;Shift to the new
  11.    add.l       #$32,A0           ;copper
  12.    move.w      #$0080,$DFF096
  13.    move.l      (A0),OldCopper    ;Save this so we can get it back
  14.    move.l      #Copper,(A0)      ;when finished
  15.    move.w      #$8080,$DFF096
  16.  
  17.    move.w      #30000,delay
  18.  
  19. main:
  20.    jsr         main1
  21.    jsr         scroll
  22.    jsr         main2
  23.    jsr         scroll
  24.    jsr         main3
  25.    jsr         scroll
  26.    jsr         main4
  27.    jsr         scroll
  28.    jsr         main5
  29.    jsr         scroll
  30.  
  31.    andi.b      #64,$bfe001
  32.    beq         closeall
  33.    bra         main
  34.  
  35. main1:
  36.    move.b      $dff006,d0
  37.    cmp.b       #$ff,d0
  38.    bne         main1
  39.    move.b      $dff006,d0
  40.    cmp.b       #$ff,d0
  41.    bne         main1
  42.    rts  
  43.  
  44. main2:
  45.    move.b      $dff006,d0
  46.    cmp.b       #$ff,d0
  47.    bne         main2
  48.    move.b      $dff006,d0
  49.    cmp.b       #$ff,d0
  50.    bne         main2
  51.    move.b      $dff006,d0
  52.    cmp.b       #$ff,d0
  53.    bne         main2
  54.    move.b      $dff006,d0
  55.    cmp.b       #$ff,d0
  56.    bne         main2
  57.    rts  
  58.  
  59. main3:
  60.    move.b      $dff006,d0
  61.    cmp.b       #$ff,d0
  62.    bne         main3
  63.    move.b      $dff006,d0
  64.    cmp.b       #$ff,d0
  65.    bne         main3
  66.    move.b      $dff006,d0
  67.    cmp.b       #$ff,d0
  68.    bne         main3
  69.    move.b      $dff006,d0
  70.    cmp.b       #$ff,d0
  71.    bne         main3
  72.    move.b      $dff006,d0
  73.    cmp.b       #$ff,d0
  74.    bne         main3
  75.    move.b      $dff006,d0
  76.    cmp.b       #$ff,d0
  77.    bne         main3
  78.    move.b      $dff006,d0
  79.    cmp.b       #$ff,d0
  80.    bne         main3
  81.    move.b      $dff006,d0
  82.    cmp.b       #$ff,d0
  83.    bne         main3
  84.    rts  
  85.  
  86. main4:
  87.    move.b      $dff006,d0
  88.    cmp.b       #$ff,d0
  89.    bne         main
  90.    move.b      $dff006,d0
  91.    cmp.b       #$ff,d0
  92.    bne         main4
  93.    move.b      $dff006,d0
  94.    cmp.b       #$ff,d0
  95.    bne         main4
  96.    move.b      $dff006,d0
  97.    cmp.b       #$ff,d0
  98.    bne         main4
  99.    move.b      $dff006,d0
  100.    cmp.b       #$ff,d0
  101.    bne         main
  102.    move.b      $dff006,d0
  103.    cmp.b       #$ff,d0
  104.    bne         main4
  105.    move.b      $dff006,d0
  106.    cmp.b       #$ff,d0
  107.    bne         main4
  108.    move.b      $dff006,d0
  109.    cmp.b       #$ff,d0
  110.    bne         main4
  111.    move.b      $dff006,d0
  112.    cmp.b       #$ff,d0
  113.    bne         main
  114.    move.b      $dff006,d0
  115.    cmp.b       #$ff,d0
  116.    bne         main
  117.    move.b      $dff006,d0
  118.    cmp.b       #$ff,d0
  119.    bne         main4
  120.    move.b      $dff006,d0
  121.    cmp.b       #$ff,d0
  122.    bne         main4
  123.    move.b      $dff006,d0
  124.    cmp.b       #$ff,d0
  125.    bne         main4
  126.    move.b      $dff006,d0
  127.    cmp.b       #$ff,d0
  128.    bne         main
  129.    move.b      $dff006,d0
  130.    cmp.b       #$ff,d0
  131.    bne         main4
  132.    move.b      $dff006,d0
  133.    cmp.b       #$ff,d0
  134.    bne         main4
  135.    rts  
  136.  
  137. main5:
  138.    move.b      $dff006,d0
  139.    cmp.b       #$ff,d0
  140.    bne         main5
  141.    move.b      $dff006,d0
  142.    cmp.b       #$ff,d0
  143.    bne         main5
  144.    move.b      $dff006,d0
  145.    cmp.b       #$ff,d0
  146.    bne         main5
  147.    move.b      $dff006,d0
  148.    cmp.b       #$ff,d0
  149.    bne         main5
  150.    move.b      $dff006,d0
  151.    cmp.b       #$ff,d0
  152.    bne         main5
  153.    move.b      $dff006,d0
  154.    cmp.b       #$ff,d0
  155.    bne         main5
  156.    move.b      $dff006,d0
  157.    cmp.b       #$ff,d0
  158.    bne         main5
  159.    move.b      $dff006,d0
  160.    cmp.b       #$ff,d0
  161.    bne         main5
  162.    move.b      $dff006,d0
  163.    cmp.b       #$ff,d0
  164.    bne         main5
  165.    move.b      $dff006,d0
  166.    cmp.b       #$ff,d0
  167.    bne         main5
  168.    move.b      $dff006,d0
  169.    cmp.b       #$ff,d0
  170.    bne         main5
  171.    move.b      $dff006,d0
  172.    cmp.b       #$ff,d0
  173.    bne         main5
  174.    move.b      $dff006,d0
  175.    cmp.b       #$ff,d0
  176.    bne         main5
  177.    move.b      $dff006,d0
  178.    cmp.b       #$ff,d0
  179.    bne         main5
  180.    move.b      $dff006,d0
  181.    cmp.b       #$ff,d0
  182.    bne         main5
  183.    move.b      $dff006,d0
  184.    cmp.b       #$ff,d0
  185.    bne         main5
  186.    move.b      $dff006,d0
  187.    cmp.b       #$ff,d0
  188.    bne         main5
  189.    move.b      $dff006,d0
  190.    cmp.b       #$ff,d0
  191.    bne         main5
  192.    move.b      $dff006,d0
  193.    cmp.b       #$ff,d0
  194.    bne         main5
  195.    move.b      $dff006,d0
  196.    cmp.b       #$ff,d0
  197.    bne         main5
  198.    move.b      $dff006,d0
  199.    cmp.b       #$ff,d0
  200.    bne         main5
  201.    move.b      $dff006,d0
  202.    cmp.b       #$ff,d0
  203.    bne         main5
  204.    move.b      $dff006,d0
  205.    cmp.b       #$ff,d0
  206.    bne         main5
  207.    move.b      $dff006,d0
  208.    cmp.b       #$ff,d0
  209.    bne         main5
  210.    move.b      $dff006,d0
  211.    cmp.b       #$ff,d0
  212.    bne         main5
  213.    move.b      $dff006,d0
  214.    cmp.b       #$ff,d0
  215.    bne         main5
  216.    move.b      $dff006,d0
  217.    cmp.b       #$ff,d0
  218.    bne         main5
  219.    move.b      $dff006,d0
  220.    cmp.b       #$ff,d0
  221.    bne         main5
  222.    move.b      $dff006,d0
  223.    cmp.b       #$ff,d0
  224.    bne         main5
  225.    move.b      $dff006,d0
  226.    cmp.b       #$ff,d0
  227.    bne         main5
  228.    move.b      $dff006,d0
  229.    cmp.b       #$ff,d0
  230.    bne         main5
  231.    move.b      $dff006,d0
  232.    cmp.b       #$ff,d0
  233.    bne         main5
  234.    rts  
  235.  
  236. * Scroll Routine *
  237.  
  238. scroll:
  239.    move.w      poke+2,d0         ;Move screen
  240.    swap        d0                ;1 pixel up
  241.    move.w      poke+6,d0         ;
  242.    add.l       #40,d0            ;
  243.    move.w      d0,poke+6         ;
  244.    swap        d0                ;
  245.    move.w      d0,poke+2         ;
  246.  
  247.    rts
  248.  
  249. CloseAll:
  250.  
  251.    move.l      GfxBase,A0        ;Shift back to the old
  252.    add.l       #$32,A0           ;copper
  253.    move.w      #$0080,$DFF096
  254.    move.l      OldCopper,(A0)
  255.    move.w      #$8080,$DFF096
  256.  
  257. CloseGrap:
  258.    move.l      execbase,A6       ;Close the graphics library
  259.    move.l      GfxBase,A1
  260.    jsr         -414(a6)
  261.  
  262. OpenErr:
  263.    moveq       #0,d0
  264.    rts
  265.  
  266. * Copperlist *
  267.  
  268. copper:
  269.    dc.w        $0100,$1200       ;Number of bitplanes
  270.    dc.w        $008e,$1f81       ;Size of screen
  271.    dc.w        $0090,$2ec1       ;
  272.    dc.w        $0092,$38         ;
  273.    dc.w        $0094,$d0         ;
  274.    dc.w        $0108,$0000       ;Moduls
  275.    dc.w        $010a,$0000       ;
  276. poke:
  277.    dc.w        $00e0,$0000       ;Here's the screen
  278.    dc.w        $00e2,$0000       ;That we are changing at
  279.    dc.w        $0182,$00f0       ;Set writecolour to green
  280.    dc.w        $0180,$0f00       ;Set background colour to white
  281.  
  282.    dc.w        $7401,$ff00       ;
  283.    dc.w        $0182,$00f1       ;
  284.    dc.w        $7601,$ff00       ;
  285.    dc.w        $0182,$00f2       ;
  286.    dc.w        $7801,$ff00       ;
  287.    dc.w        $0182,$00f3       ;
  288.    dc.w        $7a01,$ff00       ;
  289.    dc.w        $0182,$00f4       ;
  290.    dc.w        $7c01,$ff00       ;
  291.    dc.w        $0182,$00f5       ;
  292.    dc.w        $7e01,$ff00       ;
  293.    dc.w        $0182,$00f6       ;
  294.    dc.w        $8001,$ff00       ;
  295.    dc.w        $0182,$00f7       ;
  296.    dc.w        $8201,$ff00       ;
  297.    dc.w        $0182,$00f8       ;
  298.    dc.w        $8401,$ff00       ;
  299.    dc.w        $0182,$00f9       ;
  300.    dc.w        $8601,$ff00       ;
  301.    dc.w        $0182,$00fa       ;
  302.    dc.w        $8801,$ff00       ;
  303.    dc.w        $0182,$00fb       ;
  304.    dc.w        $8a01,$ff00       ;
  305.    dc.w        $0182,$00fc       ;
  306.    dc.w        $8c01,$ff00       ;
  307.    dc.w        $0182,$00fd       ;
  308.    dc.w        $8e01,$ff00       ;
  309.    dc.w        $0182,$00fe       ;
  310.    dc.w        $9001,$ff00       ;
  311.    dc.w        $0182,$00ff       ;
  312.  
  313.    dc.w        $0182,$00fe       ;
  314.    dc.w        $cc01,$ff00       ;
  315.    dc.w        $0182,$00fd       ;
  316.    dc.w        $ce01,$ff00       ;
  317.    dc.w        $0182,$00fc       ;
  318.    dc.w        $d001,$ff00       ;
  319.    dc.w        $0182,$00fb       ;
  320.    dc.w        $d201,$ff00       ;
  321.    dc.w        $0182,$00fa       ;
  322.    dc.w        $d401,$ff00       ;
  323.    dc.w        $0182,$00f9       ;
  324.    dc.w        $d601,$ff00       ;
  325.    dc.w        $0182,$00f8       ;
  326.    dc.w        $d801,$ff00       ;
  327.    dc.w        $0182,$00f7       ;
  328.    dc.w        $da01,$ff00       ;
  329.    dc.w        $0182,$00f6       ;
  330.    dc.w        $dc01,$ff00       ;
  331.    dc.w        $0182,$00f5       ;
  332.    dc.w        $de01,$ff00       ;
  333.    dc.w        $0182,$00f4       ;
  334.    dc.w        $e001,$ff00       ;
  335.    dc.w        $0182,$00f3       ;
  336.    dc.w        $e201,$ff00       ;
  337.    dc.w        $0182,$00f2       ;
  338.    dc.w        $e401,$ff00       ;
  339.    dc.w        $0182,$00f1       ;
  340.    dc.w        $e601,$ff00       ;
  341.    dc.w        $0182,$00f0       ;
  342.  
  343.    dc.w        $ffff,$fffe       ;Copperend 
  344.  
  345. GfxName:       DC.B 'graphics.library',0
  346. even
  347.  
  348. OldCopper:     DC.L  1
  349. GfxBase:       DC.L  1
  350. delay:         DC.W  1
  351. even
  352.  
  353.