home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src6.dms / in.adf / DMZ.LZH / PRG9.2 < prev   
Encoding:
Text File  |  1999-10-02  |  2.4 KB  |  100 lines

  1. ALLOCMEM:    EQU    -198
  2. FREEMEM:    EQU    -210
  3. OPENLIB:    EQU    -408
  4. MEMF_CHIP:    EQU    $10002
  5.  
  6. START:        MOVEM.L    D0-D7/A0-A6,-(SP)
  7.  
  8. INIT:        MOVE.L    $4.W,A6
  9.         MOVE.L    #COPSIZE,D0
  10.         MOVE.L    #MEMF_CHIP,D1
  11.         JSR    ALLOCMEM(A6)
  12.         MOVE.L    D0,NEWCOPPER
  13.         BEQ.L    ALLOCERROR        ; Fel vid allokering?
  14.  
  15.         LEA.L    GFXNAME(PC),A1
  16.         JSR    OPENLIB(A6)        ; Öppna gfx.library
  17.         TST.L    D0            ; Error?
  18.         BEQ.L    GFXERROR
  19.  
  20.         MOVE.L    D0,A0
  21.         MOVE.L    $26(A0),COPLOC1        ; Spar copper1
  22.         MOVE.L    $32(A0),COPLOC2        ; Spar copper2
  23.         MOVE.W    #$4000,$DFF09A        ; Stäng av all irq
  24.         MOVE.L    NEWCOPPER(PC),A0
  25.  
  26.         MOVE.L    A0,D0
  27.         ADD.L    #LOOP1OFFS,D0
  28.         SWAP    D0
  29.         MOVE.W    D0,LOOP1HI        ; Ställ in copper-
  30.         SWAP    D0            ; pekare till LOOP1
  31.         MOVE.W    D0,LOOP1LO
  32.         MOVE.L    A0,D0
  33.         ADD.L    #LOOP2OFFS,D0
  34.         SWAP    D0
  35.         MOVE.W    D0,LOOP2HI        ; Ställ in copper-
  36.         SWAP    D0            ; pekare till LOOP2
  37.         MOVE.W    D0,LOOP2LO
  38.  
  39.         LEA.L    COPPERLIST(PC),A1
  40.         MOVE.W    #COPSIZE-1,D7
  41. MOVECOPPER:    MOVE.B    (A1)+,(A0)+        ; Flytta copper till
  42.         DBF    D7,MOVECOPPER        ; ChipMem
  43.  
  44.         MOVE.L    NEWCOPPER(PC),$DFF080    ; Vår copper
  45.  
  46. MAIN:        BTST    #6,$BFE001        ; Musknapp?
  47.         BNE.S    MAIN
  48.  
  49. EXIT:        MOVE.L    COPLOC1,$DFF080        ; Återstall copper1
  50.         MOVE.L    COPLOC2,$DFF084        ; Återstall copper2
  51.         MOVE.W    #$C000,$DFF09A        ; Sätt på irq
  52.  
  53. GFXERROR:    MOVE.L    NEWCOPPER(PC),A1
  54.         MOVE.L    #COPSIZE,D0
  55.         JSR    FREEMEM(A6)
  56. ALLOCERROR:    MOVEM.L    (SP)+,D0-D7/A0-A6
  57.         RTS
  58.  
  59. COPPERLIST:    DC.W    $0100,$0000        ; Inga bitplan på
  60.  
  61.         DC.W    $0084            ; Ställ in
  62. LOOP1HI:    DC.W    $0000            ; copperpekare 2
  63.         DC.W    $0086            ; till LOOP1
  64. LOOP1LO:    DC.W    $0000
  65.  
  66. LOOP1:        DC.W    $0007,$80FE        ; Vänta till kolumn 07
  67.         DC.W    $0180,$0000        ; Svart bakgrund
  68.         DC.W    $0091,$80FE        ; Vänta till kolumn 91
  69.         DC.W    $0180,$0F00        ; Röd bakgrund
  70.         DC.W    $00CD,$80FE        ; Vänta till kolumn CD
  71.         DC.W    $7FD1,$FFFF        ; SKIP om pos. 7FD1
  72.         DC.W    $008A,$0000        ; Hoppa till LOOP1
  73.  
  74.         DC.W    $0084            ; Ställ in
  75. LOOP2HI:    DC.W    $0000            ; copperpekare 2
  76.         DC.W    $0086            ; till LOOP2
  77. LOOP2LO:    DC.W    $0000
  78.  
  79. LOOP2:        DC.W    $8007,$80FE        ; Vänta till kolumn 07
  80.         DC.W    $0180,$0000        ; Svart bakgrund
  81.         DC.W    $8091,$80FE        ; Vänta till kolumn 91
  82.         DC.W    $0180,$0F00        ; Röd bakgrund
  83.         DC.W    $80CD,$80FE        ; Vänta till kolumn CD
  84.         DC.W    $FFD1,$FFFF        ; SKIP om pos. FFD1
  85.         DC.W    $008A,$0000        ; Hoppa till LOOP2
  86.  
  87.         DC.W    $FFDF,$FFFE        ; Vänta till FFDF
  88.  
  89.         DC.W    $0088,$0000        ; Hoppa till början
  90. COPEND:
  91. COPSIZE:    EQU    COPEND-COPPERLIST
  92. LOOP1OFFS:    EQU    LOOP1-COPPERLIST
  93. LOOP2OFFS:    EQU    LOOP2-COPPERLIST
  94.  
  95. GFXNAME:    DC.B    'graphics.library',0
  96. EVEN
  97. COPLOC1:    DC.L     0
  98. COPLOC2:    DC.L    0
  99. NEWCOPPER:    DC.L    0
  100.