home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 109 / EnigmaAmiga109CD.iso / software / testi / corsoasm / sorgenti9 / lezione15a.s < prev    next >
Text File  |  1995-04-26  |  8KB  |  265 lines

  1.  
  2. ; Lezione15a.s        Sfumatura copper AGA con utilizzo della palette 24bit.
  3. ;            Sotto si nota la differenza con quella a 12bit.
  4.  
  5.     SECTION    AgaRulez,CODE
  6.  
  7. ;    Include    "DaWorkBench.s"    ; togliere il ; prima di salvare con "WO"
  8.  
  9. *****************************************************************************
  10.     include    "startup2.s"    ; Salva Copperlist Etc.
  11. *****************************************************************************
  12.  
  13.         ;5432109876543210
  14. DMASET    EQU    %1000001010000000    ; copper DMA
  15.  
  16. WaitDisk    EQU    30    ; 50-150 al salvataggio (secondo i casi)
  17.  
  18. START:
  19.     MOVE.W    #DMASET,$96(a5)        ; DMACON - abilita bitplane, copper
  20.     move.l    #CopList,$80(a5)    ; Puntiamo la nostra COP
  21.     move.w    d0,$88(a5)        ; Facciamo partire la COP
  22.     move.w    #0,$1fc(a5)        ; Fmode azzerato, burst normale
  23.     move.w    #$c00,$106(a5)        ; BPLCON3 resettato
  24.     move.w    #$11,$10c(a5)        ; BPLCON4 resettato
  25.  
  26. LOOP:
  27.     BTST    #6,$BFE001
  28.     BNE.S    LOOP
  29.     RTS
  30.  
  31. ;*****************************************************************************
  32. ;*                COPPERLIST                     *
  33. ;*****************************************************************************
  34.  
  35.     section    coppera,data_C
  36.  
  37. COPLIST:
  38.     dc.w    $8E,$2c81    ; DiwStrt
  39.     dc.w    $90,$2cc1    ; DiwStop
  40.     dc.w    $92,$0038    ; DdfStart
  41.     dc.w    $94,$00d0    ; DdfStop
  42.     dc.w    $102,0        ; BplCon1
  43.     dc.w    $104,0        ; BplCon2
  44.     dc.w    $108,0        ; Bpl1Mod
  45.     dc.w    $10a,0        ; Bpl2Mod
  46.     dc.w    $100,$201    ; no bitplanes (bit 1 abilitato, pero'!)
  47.  
  48.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  49.     dc.w    $180,$005    ; Color0 - nibble alti
  50.                 ; (I nibble bassi li lasciamo a zero...)
  51.  
  52.     dc.w    $5f07,$fffe    ; Wait
  53.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  54.     dc.w    $180,$000    ; Color0 - nibble alti
  55.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  56.     dc.w    $180,$010    ; Color0 - nibble bassi
  57.  
  58.     dc.w    $6007,$fffe    ; Wait
  59.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  60.     dc.w    $180,$000    ; Color0 - nibble alti
  61.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  62.     dc.w    $180,$030    ; Color0 - nibble bassi
  63.  
  64.     dc.w    $6107,$fffe    ; Wait
  65.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  66.     dc.w    $180,$000    ; Color0 - nibble alti
  67.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  68.     dc.w    $180,$050    ; Color0 - nibble bassi
  69.  
  70.     dc.w    $6207,$fffe    ; Wait
  71.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  72.     dc.w    $180,$000    ; Color0 - nibble alti
  73.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  74.     dc.w    $180,$070    ; Color0 - nibble bassi
  75.  
  76.     dc.w    $6307,$fffe    ; Wait
  77.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  78.     dc.w    $180,$000    ; Color0 - nibble alti
  79.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  80.     dc.w    $180,$090    ; Color0 - nibble bassi
  81.  
  82.     dc.w    $6407,$fffe    ; Wait
  83.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  84.     dc.w    $180,$000    ; Color0 - nibble alti
  85.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  86.     dc.w    $180,$0b0    ; Color0 - nibble bassi
  87.  
  88.     dc.w    $6507,$fffe    ; Wait
  89.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  90.     dc.w    $180,$000    ; Color0 - nibble alti
  91.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  92.     dc.w    $180,$0d0    ; Color0 - nibble bassi
  93.  
  94.     dc.w    $6607,$fffe    ; Wait
  95.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  96.     dc.w    $180,$000    ; Color0 - nibble alti
  97.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  98.     dc.w    $180,$0f0    ; Color0 - nibble bassi
  99.  
  100.     dc.w    $6707,$fffe    ; Wait
  101.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  102.     dc.w    $180,$010    ; Color0 - nibble alti
  103.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  104.     dc.w    $180,$010    ; Color0 - nibble bassi
  105.  
  106.     dc.w    $6807,$fffe    ; Wait
  107.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  108.     dc.w    $180,$010    ; Color0 - nibble alti
  109.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  110.     dc.w    $180,$030    ; Color0 - nibble bassi
  111.  
  112.     dc.w    $6907,$fffe    ; Wait
  113.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  114.     dc.w    $180,$010    ; Color0 - nibble alti
  115.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  116.     dc.w    $180,$050    ; Color0 - nibble bassi
  117.  
  118.     dc.w    $6a07,$fffe    ; Wait
  119.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  120.     dc.w    $180,$010    ; Color0 - nibble alti
  121.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  122.     dc.w    $180,$070    ; Color0 - nibble bassi
  123.  
  124.     dc.w    $6b07,$fffe    ; Wait
  125.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  126.     dc.w    $180,$010    ; Color0 - nibble alti
  127.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  128.     dc.w    $180,$090    ; Color0 - nibble bassi
  129.  
  130.     dc.w    $6c07,$fffe    ; Wait
  131.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  132.     dc.w    $180,$010    ; Color0 - nibble alti
  133.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  134.     dc.w    $180,$0b0    ; Color0 - nibble bassi
  135.  
  136.     dc.w    $6d07,$fffe    ; Wait
  137.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  138.     dc.w    $180,$010    ; Color0 - nibble alti
  139.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  140.     dc.w    $180,$0d0    ; Color0 - nibble bassi
  141.  
  142.     dc.w    $6e07,$fffe    ; Wait
  143.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  144.     dc.w    $180,$010    ; Color0 - nibble alti
  145.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  146.     dc.w    $180,$0f0    ; Color0 - nibble bassi
  147.  
  148.     dc.w    $6f07,$fffe    ; Wait
  149.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  150.     dc.w    $180,$020    ; Color0 - nibble alti
  151.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  152.     dc.w    $180,$010    ; Color0 - nibble bassi
  153.  
  154.     dc.w    $7007,$fffe    ; Wait
  155.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  156.     dc.w    $180,$020    ; Color0 - nibble alti
  157.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  158.     dc.w    $180,$030    ; Color0 - nibble bassi
  159.  
  160.     dc.w    $7107,$fffe    ; Wait
  161.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  162.     dc.w    $180,$020    ; Color0 - nibble alti
  163.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  164.     dc.w    $180,$050    ; Color0 - nibble bassi
  165.  
  166.     dc.w    $7207,$fffe    ; Wait
  167.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  168.     dc.w    $180,$020    ; Color0 - nibble alti
  169.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  170.     dc.w    $180,$070    ; Color0 - nibble bassi
  171.  
  172.     dc.w    $7307,$fffe    ; Wait
  173.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  174.     dc.w    $180,$020    ; Color0 - nibble alti
  175.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  176.     dc.w    $180,$090    ; Color0 - nibble bassi
  177.  
  178.     dc.w    $7407,$fffe    ; Wait
  179.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  180.     dc.w    $180,$020    ; Color0 - nibble alti
  181.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  182.     dc.w    $180,$0b0    ; Color0 - nibble bassi
  183.  
  184.     dc.w    $7507,$fffe    ; Wait
  185.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  186.     dc.w    $180,$020    ; Color0 - nibble alti
  187.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  188.     dc.w    $180,$0d0    ; Color0 - nibble bassi
  189.  
  190.     dc.w    $7607,$fffe    ; Wait
  191.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  192.     dc.w    $180,$020    ; Color0 - nibble alti
  193.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  194.     dc.w    $180,$0f0    ; Color0 - nibble bassi
  195.  
  196.     dc.w    $7707,$fffe    ; Wait
  197.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  198.     dc.w    $180,$030    ; Color0 - nibble alti
  199.     dc.w    $106,$e00    ; SELEZIONA NIBBLE BASSI
  200.     dc.w    $180,$010    ; Color0 - nibble bassi
  201.  
  202. ; Ora mettiamo a confronto con la palette "standard" ECS/OCS:
  203.  
  204.     dc.w    $7907,$fffe    ; Wait
  205.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  206.     dc.w    $180,$000    ; Color0 - nibble alti
  207.  
  208.     dc.w    $8007,$fffe    ; Wait
  209.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  210.     dc.w    $180,$010    ; Color0 - nibble alti
  211.  
  212.     dc.w    $8807,$fffe    ; Wait
  213.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  214.     dc.w    $180,$020    ; Color0 - nibble alti
  215.  
  216.     dc.w    $9007,$fffe    ; Wait
  217.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  218.     dc.w    $180,$030    ; Color0 - nibble alti
  219.  
  220.     dc.w    $9807,$fffe    ; Wait
  221.     dc.w    $106,$c00    ; SELEZIONA NIBBLE ALTI
  222.     dc.w    $180,$005    ; Color0 - nibble alti
  223.  
  224.     dc.w    $FFFF,$FFFE    ; Fine della copperlist
  225.  
  226.     end
  227.  
  228. Si nota la differenza, vero?? AGA rulez!
  229. Se notate, la sfumatura segue questo andamento:
  230.  
  231.   Diviso per nibble      Originale a 24 bit
  232.  
  233.       RGB    rgb          RrGgBb
  234.     $0000,$0000    -> ossia $000000
  235.     $0000,$0010    -> ossia $000100
  236.     $0000,$0030    -> ossia $000300
  237.     $0000,$0050    -> ossia $000500
  238.     $0000,$0070    -> ossia $000700
  239.     $0000,$0090    -> ossia $000900
  240.     $0000,$00B0    -> ossia $000b00
  241.     $0000,$00D0    -> ossia $000d00
  242.     $0000,$00F0    -> ossia $000f00
  243.     $0010,$0010    -> ossia $001100
  244.     $0010,$0030    -> ossia $001300
  245.     $0010,$0050    -> ossia $001500
  246.     $0010,$0070    -> ossia $001700
  247.     $0010,$0090    -> ossia $001900
  248.     $0010,$00B0    -> ossia $001b00
  249.     $0010,$00D0    -> ossia $001d00
  250.     $0010,$00F0    -> ossia $001f00
  251.     $0020,$0010    -> ossia $002100
  252.     $0020,$0030    -> ossia $002300
  253.     $0020,$0050    -> ossia $002500
  254.     $0020,$0070    -> ossia $002700
  255.     $0020,$0090    -> ossia $002900
  256.     $0020,$00B0    -> ossia $002b00
  257.     $0020,$00D0    -> ossia $002d00
  258.     $0020,$00F0    -> ossia $002f00
  259.     $0030,$0010    -> ossia $003100
  260.     ...
  261.  
  262. Fare una sfumatura AGA e' lungo manualmente, conviene farsi una routine che
  263. le crei!
  264.  
  265.