                                   2

                                  



   -     ,    
    .     ,   
DMA.                 ,
  68000        ,    
         .  
           
  ,       
  .    ,    , 
,      ,      
.

           
    ,       . 
       
-.          ,  
  .  ,    
  DMA  68000.

    ,          
68000      .

  -  -  ,      
    .     
 DMA: , ,   .  
         ( DMA, 
,    )  68000.

     DMA,      
 chip .

  
          
          .   
    ,    
  ,          .
     . ,  , ,
       .

   ?
   ,              
    68000.    3 ,    
  .

- WAIT ()   ,   x  y.
- MOVE ()     
- SKIP ()  ,     x,y

        16-  , 
.         .
  MOVE    SKIP      . 
         ,    4    
  .    WAIT    3      6
  ,     .

       ,    
        .    ,     
      ' '    '
  '

  WAIT    MOVE    .   SKIP   
' '

 MOVE

  MOVE     .    
  ,       .  
     '  '

               (IR1)

       0     0.
      8 - 1  - (DA8-1).
     15 - 9  ,    0.

               (IR2)
      15  -  0  16       -.

      :
-     $20  
-           $10 - $20   
  =1.        COPCON,
    ' '
-         ,  $10.

 B    .

        $21000 
    $25000
     DC.W    $00E0,$0002     ;$0002   $0E0 (BPL1PTH)
     DC.W    $00E2,$1000     ;$1000   $0E2 (BPL1PTL)
     DC.W    $00E4,$0002     ;$0002   $0E4 (BPL2PTH)
     DC.W    $00E6,$5000     ;$5000   $0E6 (BPL2PTL)

  ,         
           .    
        
     . :

         INCLUDE "hardware/custom.i"

     DC.W    bplpt+$00,$0002 ;$0002   $0E0 (BPLlPTH)
     DC.W    bplpt+$02,$1000 ;$1000   $0E2 (BPLlPTL)
     DC.W    bplpt+$04,$0002 ;$0002   $0E4 (PL2PTH)
     DC.W    bplpt+$06,$5000 ;$5000   $0E6 (BPL2PTL)

   J         "hardware/custom.i"  
         ,   
,       .

 WAIT
  WAIT      ,      
(      )  ,   .  
          .

       
  .        ,      
       .

                            (IR1)

           0       1.
          15 - 8    ( VP).
           7 - 1    ( HP).

                           (IR2)

           0       0.
          15         .
                        1.
                     (.  " ")

           14  -  8         
 ( VE).
           7  -  1        
 ( HE).

      WAIT   150-  ($96)  
  .

        DC.W    $9601,$FF00     ;   150,
                                ;   .

            WAIT      255-    ($FF)  
    254.     , 
       .

        DC.W    $FFFF,$FFFE     ;   255,
                                ; HP = 254 ( ).

      VP=$FF HP=$FE   , 
              
.  255-      ,    
  .      
    (  256    )  
     $E2.  ,   ,
         - $FFE2.    $FFFE
  $FF  ,        $FE    
.    $FFFE   .

  ,       $FE,
(        )      
  .          .
            . 
      $FF,          
,     .

               
        WAIT,        SKIP,  
 ' '

  

     $0 - $E2.  
       ,    113 . 
      4          8   
.         $0F -
$35.      (  320 )  
    $04  - $47     
.
  NTSC        ,       227  228
(0-$E3).   PAL    227.     
    227  1/2,       
.

  
            
  255.      262   NTSC (312  PAL). 
,           
 :

      (0,255)  -          
  .
          256-'   '   -    
      ,    
  256-N,      WAIT



             ,   
            (    
).  NTSC   262  263 ,   PAL 312  313 .

  NTSC      :

          
          
          
          
      ...

1        1    ( 
  )

     NTSC- 3,579,545 Hz
     PAL- 3,546,895 Hz
      -   - 2%.

  
  1-14    .        
 ' '

  

        

-  
-  
-  

 

    :

            COP1LCH  3    .
            COP1LCL  16    .
            COP2LCH  3    .
            COP2LCL  16    .

                  
,        .      
     ,   'H'   3 
   .                   ,
   'L'   16   . 
      19-       
,     'H'.

           
COP1LCH.

                  ,
  .       , 
            . 
          ,    
        .   
                 
.     ,   ,  
      .


                
        COP1LC      ,  
    .

 

              ,  
         .  
                 
  .  ,        
COP2LC,       COPJMP2,   
  .
   :

     COPJMP1    ,   COP1LC.
     COPJMP2    ,   COP2LC.

 

                   ($20 -
$FF),      ,     ($10 -
$1F),       ($00 - $0F). (.  B  
 )        
  ($00-$0F)      68000   
   .

    ,   COPCON   
,    #1.  ,  CDANG (Copper Danger bit) 
         $10  $1F .  
     .  CDANG = 0  
            ,    =1    .
                  
            ,  
 .


 CDANG   .


 

    ,     
     ,     .
      ,    , 
    ,   ,      ,  ,  ,
       ..            .      
          ,
   WAIT,       
   .

,           
   .     :

     WAIT   
     MOVE    
     MOVE ------//-----//--------  ---//---
     MOVE ------//-----//---------  
      ..

    ,           -
      ,     
     +1      
    .

     WAIT   
     MOVE _1  COLOR 17
     MOVE _2  COLOR 18
     MOVE _3  COLOR 19
     WAIT    +1
     MOVE _1  COLOR 17
     MOVE _2  COLOR 18
     MOVE _3  COLOR 19
      ..

    , ,   
    -  ,      
-.              (0,0) 
          (226,262)  NTSC
(  (226,312)   PAL)    .   - x,
  -  y.  ,    (0,100)   
,   (0,60).


         WAIT         
      .    WAIT
     .
,      :

     WAIT  (64,64)
     MOVE 
     WAIT  (60,60)
     MOVE 

       MOVE   (64,64) ..  
    ,        '  
'.              
 :

     WAIT  (60,60)
     MOVE 
     WAIT  (60,60)
     MOVE 

   :

     WAIT  (60,60)
     MOVE 
     MOVE 

  

            
  $21000   $25000.     
 :

               

          COLOR00     
          COLOR01     
          COLOR02     
          COLOR03     

  150   :

               

          COLOR00     
          COLOR01     
          COLOR02     
          COLOR03     

;
; 
;       1.     CHIP .
;       2.    
;       3.       
;          
;       4.   ,   
;                
;          ,  - .
;       5.    ,    
;              AllocMem()
;       6.     ,    
;          
;       7.         
;
          INCLUDE "exec/types.i"
          INCLUDE "hardware/custom.i"
          INCLUDE "hardware/dmabits.i"
          INCLUDE "hardware/hw_examples.i"

COPPERLIST:
;
;    
;
     DC.W    BPL1PTH,$0002      ;S0002   $0E0 (BPL1PTH)
     DC.W    BPL1PTL,$1000      ;$1000   $0E2 (BPL1PTL)
     DC.W    BPL2PTH,$0002      ;$0002   $0E4 (BPL2PTH)
     DC.W    BPL2PTL,$5000      ;$5000   $0E6 (BPL2PTL)
;
;  
;
     DC.W    COLOR00,$0FFF      ;   $180 (COLOR00)
     DC.W    COLOR01,$0F00      ;   $182 (COLOR01)
     DC.W    COLOR02,$00F0      ;   $189 (COLOR02)
     DC.W    COLOR03,$000F      ;   $186 (COLOR03)
;
;      
;
     DC.W    BPLCON0,$2200      ;2 lores ,  
;
;   150
;
     DC.W     $9601,$FF00         ;    150,  .
;
;
;     
;
     DC.W    COLOR00,$0000      ;   $0180 (COLOR00)
     DC.W    COLOR01,$0FF0      ;   $0182 (COLOR01)
     DC.W    COLOR02,$00FF      ;   $0184 (COLOR02)
     DC.W    COLOR03,$0F0F      :   $0186 (COLOR03)
;
;    
;
     DC.W    $FFFF,$FFFE        ;  255, H = 254

            .
 3 ''

  

        ' '


   

 

           
               
   .        COP1LC    
        .   
      .  ,    
   COPPERLIST
;
; a a
;
        lea     CUSTOM,a5               ;a5= a  a
        move.l  #COPPERLIST,COP1LC(a5)  ;a a 
        move.w  COP1JMP(a1),d0          ;a 
;
;   a a dma  dma a
;
     MOVE.W  #(DMAF SETCLR!DMAF_COPPER!DMAF_RASTER!DMAF_MASTER),DMACON(a1)

,    a  COP1LC    ,  a      
a  a a   aa  aa aa 
COP1LC               a   ,  
a a.

 

             ,  
           
WAIT     VP=255  HP=254 (   
).
         DMA    
DMACON,           DMA.  ,  
  COPEN ( 7)    .
               DMA  .    7
'  '

 

 SKIP

  SKIP          a 
     , aa  a.
        SKIP   -,  
  WAIT  a    a  0       - 
.

                            (IR1)

           0       1.
          15 - 8    ( VP).
           7 - 1    ( HP).

                           (IR2)

           0       1.
          15         .
                        1.
           14  -  8         
 ( VE).
           7  -  1        
 ( HE).

a         a    a 
a  a  WAIT   -,     SKIP

      SKIP a    a  a
       a 100 ($64).

      DC.W   $6401,$FF01    ;  VP >= 100,
                            ;    ( HP)

,    

                 
         .  
     COP1LC   
    .

  1-14  ()         WAIT  SKIP ,
            
     .     
      ,     
.    ,      
        ,   
  .       0,    TRUE. ,
                   4  
       8-11

       .   
       WAIT  SKIP,  ,  
15  -        .      
,              .  
,          WAIT  SKIP.
         ,  
   ,  ,   .

            16 
.   ,    ,   $0F 
     $0F.    TRUE  $1F,$2F,$3F 
..     ,     , 
        .      $0F 
     128 ($80)    
TRUE.        ,    $0F
  $80           . ,
      .

          .  COP1LC
 COP2LC     . 
     , 
          16   .         
.

  
        .         
              $?F   (?   -   
  )    .  
  ,              
      ,    $E2 
      .         -  
 .       
    WAIT.    0   COPJMP1 
   ,   COP1LC.
  ,    ,     127-
.         
      127.         
  127,           
  .    -,      ,   , 
    $?F     ( 1xxx1111).
                 WAIT   (   
).        
 COPJMP2.       
  255.       $FFFE. 
                  
   COP1LC.


  COP1LC         
      .     
, COP1LC     .
;
;    .
;
; ,   COPPERL1    COP1LC,  COPPERL2 
; COP2LC
;
COPPERL1:
     DC.W    $0F01,$8F00     ;  VP=0xxx1111
     DC.W    INTREQ,$8010    ;   

     DC.W    $00E3,$80FE     ;  $E2  
                             ;      ,  
                             ;      

     DC.W    $7F01,$7F01     ;   VP>=127
     DC.W    COPJMP1,$0      ;    COP1LC

COPPERL2:
     DC.W    $8F01,$8F00     ;  Vp=1xxx1111
     DC.W    INTREQ,$8010    ;   

     DC.W    $80E3,$80FE     ;  $E2  
                             ;      ,  
                             ;      

     DC.W    $FF01, $FE01    :   VP>=255
     DC.W    COPJMP2,$0      ;    COP2LC


;       ,   NTSC 262 ,
;     255-,    

     DC.W    $FFFF,$FFFE     ;  

    

        ,  . 
  NTSC 262 ,   - 524 ,  PAL 
312    625  .          
     ,    NTSC  262   .
      ,   
-  ,      .   
    ,      , 
  -  .  2-1     
 .

                
     ( t)            ( t+16.6ms)           
                                                    _____________
                                                   |             |
                                                   |      1      |
                                                   |_____________|
                                                   |             |
    _____________          _____________           |      2      |
   |             |        |             |          |_____________|
   |      1      |        |      2      |          |             |
   |_____________|        |_____________|          |      3      |
   |             |        |             |          |_____________|
   |      3      |        |      4      |          |             |
   |_____________|        |_____________|          |      4      |
   |             |        |             |          |_____________|
   |      5      |        |      6      |          |             |
   |_____________|        |_____________|          |      5      |
                                                   |_____________|
                                                   |             |
                                                   |      6      |
                                                   |_____________|

                 2-1:    

        
    .    ,   
       ,  .  
                  
 
          (.
.     )    
     .
         ,  
    COP1LC      
.
     .  3 ''

   

            
,          
  .      
           .    
      -        (BFD)
    = 1       
 .
  BFD = 0    WAIT .  
              
.  ,   BFD .  
     ,          
.

    .  6 ''

  68000

               68000 
      .   68000       
        INTREQ. 
            INTREQ 
  MOVE:

. 2-1:  68000

            

     15           SET/CLR    ,  
                              ,  1

      4           COPEN       

.    7  "  "     



  

        . .
 A    .

       . 2-2:  

             Move             Wait             Skip
  #    IR1     IR2      IR1     IR2      IR1    IR2

   15      X     RD15      VP7     BFD      VP7    BFD
   14      X     RD14      VP6     VE6      VP6    VE6
   13      X     RD13      VPS     VES      VPS    VES
   12      X     RD12      VP4     VE4      VP4    VE4
   11      X     RD11      VP3     VE3      VP3    VE3
   10      X     RD10      VP2     VE2      VP2    VE2
   09      X     RD09      VP1     VE1      VP1    VE1
   08     DA8    RD08      VP0     VE0      VP0    VE0
   07     DA7    RD07      HP8     HE8      HP8    HE8
   06     DA6    RD06      HP7     HE7      HP7    HE7
   05     DAS    RD05      HP6     HE6      HP6    HE6
   04     DA4    RD04      HPS     HES      HPS    HES
   03     DA3    RD03      HP4     HE4      HP4    HE4
   02     DA2    RD02      HP3     HE3      HP3    HE3
   01     DA1    RD01      HP2     HE2      HP2    HE2
   00      0     RD00       1       0        1      1

X   =  ,    0 ( )
IR1 =   
IR2 =   
DA  = a aa
RD  = a  
VP  =  a  a
HP  =  a  a
VE  =  a a  
HE  =  a a  
BFD =  "  "

End.
