home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src6.dms / in.adf / DMZ.LZH / PRG10.1 < prev    next >
Encoding:
Text File  |  1999-10-02  |  3.5 KB  |  172 lines

  1. OPENLIB:    EQU    -408
  2. ALLOCMEM:    EQU    -198
  3. FREEMEM:    EQU    -210
  4. MEMF_CHIP:    EQU    $10002
  5.  
  6. BEGIN:        MOVEM.L    D0-D7/A0-A6,-(SP)
  7.         MOVE.L    $4.W,A6
  8.         MOVE.L    #COPSIZE+PICSIZE,D0
  9.         MOVE.L    #MEMF_CHIP,D1
  10.         JSR    ALLOCMEM(A6)        ; Allokera copper &
  11.         MOVE.L    D0,NEWCOPPER        ; bitplan i ChipMem
  12.         BEQ.L    ALLOCERROR        ; Error?
  13.         ADD.L    #COPSIZE,D0
  14.         MOVE.L    D0,BPPTR        ; Pekare till BPL1
  15.  
  16. INITBP:        MOVE.L    D0,D7            ; Ställ in alla
  17.         SWAP    D7            ; bitplanspekare
  18.         MOVE.W    D7,BP1H
  19.         SWAP    D7
  20.         MOVE.W    D7,BP1L
  21.  
  22.         ADD.L    #BPSIZE,D7
  23.         SWAP    D7
  24.         MOVE.W    D7,BP2H
  25.         SWAP    D7
  26.         MOVE.W    D7,BP2L
  27.  
  28.         ADD.L    #BPSIZE,D7
  29.         SWAP    D7
  30.         MOVE.W    D7,BP3H
  31.         SWAP    D7
  32.         MOVE.W    D7,BP3L
  33.  
  34.         ADD.L    #BPSIZE,D7
  35.         SWAP    D7
  36.         MOVE.W    D7,BP4H
  37.         SWAP    D7
  38.         MOVE.W    D7,BP4L
  39.  
  40.         ADD.L    #BPSIZE,D7
  41.         SWAP    D7
  42.         MOVE.W    D7,BP5H
  43.         SWAP    D7
  44.         MOVE.W    D7,BP5L
  45.  
  46.         LEA.L    PIC+[5*BPSIZE],A0
  47.         LEA.L    COLORS+2(PC),A1
  48.         MOVEQ    #31,D7
  49. INITCOLORS:    MOVE.W    (A0)+,(A1)        ; Ställ in 32 färger
  50.         ADDQ.L    #4,A1
  51.         DBF    D7,INITCOLORS
  52.  
  53.         MOVE.L    NEWCOPPER(PC),A0
  54.         LEA.L    COPPERLIST(PC),A1
  55.         MOVE.W    #COPSIZE+PICSIZE-1,D7
  56. MOVETOCHIP:    MOVE.B    (A1)+,(A0)+        ; Flytta copper och
  57.         DBF    D7,MOVETOCHIP        ; bitplan till ChipMem
  58.  
  59.         LEA.L    GFXNAME(PC),A1
  60.         JSR    OPENLIB(A6)        ; Öppna gfx
  61.         TST.L    D0
  62.         BEQ.S    GFXERROR        ; Error?
  63.         MOVE.L    D0,A0
  64.         MOVE.L    $26(A0),OLDCOPPER    ; Spar gammal copper
  65.         MOVE.W    #$4000,$DFF09A        ; Stäng av irq
  66. DISABLE:    TST.B    $DFF006            ; Vänta på rad 0
  67.         BNE.S    DISABLE
  68.         MOVE.W    $DFF002,DMABITS        ; Spar gammal DMA
  69.         BSET    #7,DMABITS
  70.         MOVE.W    #$7FFF,$DFF096        ; Stäng av all DMA
  71.         MOVE.W    #$8380,$DFF096        ; Sätt på bitplan+cop
  72.  
  73.         MOVE.L    NEWCOPPER(PC),$DFF080    ; Vår copperlista
  74.  
  75. MAIN:        BTST    #6,$BFE001
  76.         BNE.S    MAIN
  77.  
  78.  
  79. EXIT:        MOVE.L    OLDCOPPER(PC),$DFF080    ; Återställ copper
  80.         MOVE.W    DMABITS(PC),$DFF096    ; Återställ DMA
  81.         MOVE.W    #$C000,$DFF09A        ; Sätt på irq
  82. GFXERROR:    MOVE.L    NEWCOPPER(PC),A1
  83.         MOVE.L    #COPSIZE+PICSIZE,D0
  84.         JSR    FREEMEM(A6)        ; Deallokera
  85. ALLOCERROR:    MOVEM.L    (SP)+,D0-D7/A0-A6
  86.         RTS
  87.  
  88.  
  89. OLDCOPPER:    DC.L    0
  90. NEWCOPPER:    DC.L    0
  91. BPPTR:        DC.L    0
  92. DMABITS:    DC.W    0
  93. GFXNAME:    DC.B    'graphics.library',0
  94. EVEN
  95.  
  96. COPPERLIST:    DC.W    $008E,$2C81        ; Rad $2C, kol. $81
  97.         DC.W    $0090,$F4C1        ; Rad $F4, kol. $C1
  98.         DC.W    $0092,$0038        ; Vmarg = $38
  99.         DC.W    $0094,$00D0        ; Hmarg = $D0
  100.         DC.W    $0100,$5000        ; 5 bitplan, LORES
  101.         DC.W    $0102,$0000        ; Scrollvärden = 0
  102.         DC.W    $0104,$0000        ; Normal prioritet
  103.         DC.W    $0108,$0000        ; Udda modulo = 0
  104.         DC.W    $010A,$0000        ; Jämn modulo = 0
  105.  
  106.         DC.W    $00E0            ; Bitplanspekare
  107. BP1H:        DC.W    $0000            ; för bitplan 1
  108.         DC.W    $00E2
  109. BP1L:        DC.W    $0000
  110.  
  111.         DC.W    $00E4            ; Bitplanspekare
  112. BP2H:        DC.W    $0000            ; för bitplan 2
  113.         DC.W    $00E6
  114. BP2L:        DC.W    $0000
  115.  
  116.         DC.W    $00E8            ; osv
  117. BP3H:        DC.W    $0000
  118.         DC.W    $00EA
  119. BP3L:        DC.W    $0000
  120.  
  121.         DC.W    $00EC
  122. BP4H:        DC.W    $0000
  123.         DC.W    $00EE
  124. BP4L:        DC.W    $0000
  125.  
  126.         DC.W    $00F0
  127. BP5H:        DC.W    $0000
  128.         DC.W    $00F2
  129. BP5L:        DC.W    $0000
  130.  
  131. COLORS:        DC.W    $0180,$0000        ; Färgtabell
  132.         DC.W    $0182,$0000        ; för alla 32 färger
  133.         DC.W    $0184,$0000
  134.         DC.W    $0186,$0000
  135.         DC.W    $0188,$0000
  136.         DC.W    $018A,$0000
  137.         DC.W    $018C,$0000
  138.         DC.W    $018E,$0000
  139.         DC.W    $0190,$0000
  140.         DC.W    $0192,$0000
  141.         DC.W    $0194,$0000
  142.         DC.W    $0196,$0000
  143.         DC.W    $0198,$0000
  144.         DC.W    $019A,$0000
  145.         DC.W    $019C,$0000
  146.         DC.W    $019E,$0000
  147.         DC.W    $01A0,$0000
  148.         DC.W    $01A2,$0000
  149.         DC.W    $01A4,$0000
  150.         DC.W    $01A6,$0000
  151.         DC.W    $01A8,$0000
  152.         DC.W    $01AA,$0000
  153.         DC.W    $01AC,$0000
  154.         DC.W    $01AE,$0000
  155.         DC.W    $01B0,$0000
  156.         DC.W    $01B2,$0000
  157.         DC.W    $01B4,$0000
  158.         DC.W    $01B6,$0000
  159.         DC.W    $01B8,$0000
  160.         DC.W    $01BA,$0000
  161.         DC.W    $01BC,$0000
  162.         DC.W    $01BE,$0000
  163.  
  164.         DC.W    $FFFF,$FFFE        ; Slut på copperlistan
  165. COPEND:
  166. COPSIZE:    EQU    COPEND-COPPERLIST
  167. BPSIZE:        EQU    320/8*200
  168. PICSIZE:    EQU    5*BPSIZE+64
  169.  
  170. PIC:        BLK.B    PICSIZE,0        ; Reservera minne för
  171.                         ; 5 bitplans bild
  172.