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

  1. dmacon=        $96
  2. vposr=        $4
  3. cop1lc=        $80
  4. cop2lc=        $84
  5. copjmp1=    $88
  6. bplcon0=    $100
  7. bplcon1=    $102
  8. bplcon2=    $104
  9. bpl1pth=    $0e0
  10. bpl1ptl=    $0e2
  11. bpl1mod=    $108
  12. bpl2mod=    $10a
  13. diwstrt=    $08e
  14. diwstop=    $090
  15. ddfstrt=    $092
  16. ddfstop=    $094
  17. openlibrary=    -30-522
  18. forbid=        -30-102
  19. permit=        -30-108
  20. allocmem=    -30-168
  21. freemem=    -30-180
  22. startlist=    38
  23. execbase=    4
  24. numplanes=    5
  25. planewith=    40
  26. planehigh=    224
  27. planesize=    planewith*planehigh
  28. allocsize=    planesize*numplanes
  29. CLsize=        11*4            ;(numplns*8)+4
  30. chip=        2
  31. clear=        chip+$10000
  32.  
  33. initialize:
  34.     move.l    execbase,a6
  35.     move.l    #allocsize,d0
  36.     move.l    #clear,d1
  37.     jsr    allocmem(a6)        ;alloc mem for bplane
  38.     move.l    d0,planeadr
  39.     move.l    #clsize,d0
  40.     moveq    #chip,d1
  41.     jsr    allocmem(a6)        ;alloc mem for CL
  42.     move.l    d0,CLadr
  43.                     ;Make the CopperList
  44.     move.l    #numplanes,d4        ;no of bitplanes -1
  45.     sub.l    #1,d4
  46.     move.l    d0,a0
  47.     move.l    planeadr,d1
  48.     move.w    #bpl1pth,d3
  49. mCL:    move.w    d3,(a0)+
  50.     addq.w    #2,d3
  51.     swap    d1
  52.     move.w    d1,(a0)+
  53.     move.w    d3,(a0)+
  54.     addq.w    #2,d3
  55.     swap     d1
  56.     move.w    d1,(a0)+
  57.     add.l    #planesize,d1
  58.     dbf    d4,mCL
  59.     move.l    #$fffffffe,(a0)
  60.  
  61.     jsr    forbid(a6)        ;DMA&tasksw off
  62.     lea    $dff000,a5
  63.     move.w    #$01e0,dmacon(a5)
  64.     move.l    CLadr,cop1lc(a5)    ;init CL
  65.     clr.w    copjmp1(a5)
  66.     move.w    #$3081,diwstrt(a5)    ;init PlayField
  67.     move.w    #$10c1,diwstop(a5)
  68.     move.w    #$0038,ddfstrt(a5)
  69.     move.w    #$00d0,ddfstop(a5)
  70.     move.w    #%0101000000000000,bplcon0(a5)    ;12-14=bplanes
  71.     clr.w    bplcon1(a5)
  72.     clr.w    bplcon2(a5)
  73.     move.w    #0,bpl1mod(a5)
  74.     move.w    #0,bpl2mod(a5)
  75.     move.w    #$8180,dmacon(a5)
  76.     rts
  77.  
  78. shut_down:
  79.     move.l    #grname,a1
  80.     clr.l    d0
  81.     jsr    openlibrary(a6)
  82.     move.l    d0,a4
  83.     move.l    startlist(a4),cop1lc(a5)
  84.     clr    copjmp1(a5)
  85.     move.w    #$83e0,dmacon(a5)
  86.     jsr    permit(a6)
  87.     move.l    CLadr,a1
  88.     move.l    #CLsize,d0
  89.     jsr    freemem(a6)
  90.     move.l    planeadr,a1
  91.     move.l    #allocsize,d0
  92.     jsr    freemem(a6)
  93.     rts
  94.  
  95. CLadr:        dc.l    0
  96. planeadr:    dc.l    0
  97. test:        dc.l    0
  98. GRname:        dc.b    'graphics.library',0
  99.