home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / games / wcoltris / source / qcopy.s < prev    next >
Text File  |  1994-12-27  |  8KB  |  423 lines

  1. tet_buffer_width    EQU        20        ; in byte
  2. col_buffer_width    EQU        16        ; in byte
  3.  
  4.     XREF    screen_width    ; word
  5.  
  6.     XDEF    copy_tet
  7.     XDEF    copy_col
  8.     XDEF    dr_tetris
  9.     XDEF    dr_columns1,dr_columns2
  10.  
  11. tet_width    equ        28
  12. col_width    equ        40
  13.  
  14. copy_tet:    ; a0 ziel
  15.             ; a1 quelle
  16.             ; d0 lines
  17.             ; BREITE: 160 pixel = 20 byte = 5 long
  18.         MOVEM.L    D3-D5,-(SP)
  19. .loop:    MOVEM.L (A1)+,D1-D5
  20.         ADD.W    #20,A0
  21.         MOVEM.L    D1-D5,-(A0)
  22.         ADD.W    screen_width,A0
  23.         DBRA    D0,.loop
  24.         MOVEM.L    (SP)+,D3-D5
  25.         RTS
  26.  
  27. copy_col:    ; a0 ziel
  28.             ; a1 quelle
  29.             ; d0 lines
  30.             ; BREITE: 120 pixel = 15 byte = 3 long 3 byte
  31.             ; breite der quelle 20 byte
  32.         MOVEM.L    D3,-(SP)
  33. .loop:    MOVEM.L (A1)+,D1-D3
  34.         ADD.W    #12,A0
  35.         MOVEM.L D1-D3,-(A0)
  36.         MOVE.W  (A1)+,D1
  37.         MOVE.W    D1,12(A0)
  38.         MOVE.B  (A1)+,D1
  39.         MOVE.B    D1,14(A0)
  40.         ADDQ.W    #1,A1
  41.         ADDA.W    screen_width,A0
  42.         DBRA    D0,.loop
  43.         MOVEM.L    (SP)+,D3
  44.         RTS
  45.  
  46. dr_tetris:    ; a0: ziel-addresse 
  47.             ; a1: quell-addresse
  48.         MOVE.W    (A1),(A0)
  49.         ADDA.W    #tet_width,A1
  50.         ADDA.W    #tet_buffer_width,A0
  51.         MOVE.W    (A1),(A0)
  52.         ADDA.W    #tet_width,A1
  53.         ADDA.W    #tet_buffer_width,A0
  54.         MOVE.W    (A1),(A0)
  55.         ADDA.W    #tet_width,A1
  56.         ADDA.W    #tet_buffer_width,A0
  57.         MOVE.W    (A1),(A0)
  58.         ADDA.W    #tet_width,A1
  59.         ADDA.W    #tet_buffer_width,A0
  60.         MOVE.W    (A1),(A0)
  61.         ADDA.W    #tet_width,A1
  62.         ADDA.W    #tet_buffer_width,A0
  63.         MOVE.W    (A1),(A0)
  64.         ADDA.W    #tet_width,A1
  65.         ADDA.W    #tet_buffer_width,A0
  66.         MOVE.W    (A1),(A0)
  67.         ADDA.W    #tet_width,A1
  68.         ADDA.W    #tet_buffer_width,A0
  69.         MOVE.W    (A1),(A0)
  70.         ADDA.W    #tet_width,A1
  71.         ADDA.W    #tet_buffer_width,A0
  72.         MOVE.W    (A1),(A0)
  73.         ADDA.W    #tet_width,A1
  74.         ADDA.W    #tet_buffer_width,A0
  75.         MOVE.W    (A1),(A0)
  76.         ADDA.W    #tet_width,A1
  77.         ADDA.W    #tet_buffer_width,A0
  78.         MOVE.W    (A1),(A0)
  79.         ADDA.W    #tet_width,A1
  80.         ADDA.W    #tet_buffer_width,A0
  81.         MOVE.W    (A1),(A0)
  82.         ADDA.W    #tet_width,A1
  83.         ADDA.W    #tet_buffer_width,A0
  84.         MOVE.W    (A1),(A0)
  85.         ADDA.W    #tet_width,A1
  86.         ADDA.W    #tet_buffer_width,A0
  87.         MOVE.W    (A1),(A0)
  88.         ADDA.W    #tet_width,A1
  89.         ADDA.W    #tet_buffer_width,A0
  90.         MOVE.W    (A1),(A0)
  91.         ADDA.W    #tet_width,A1
  92.         ADDA.W    #tet_buffer_width,A0
  93.         MOVE.W    (A1),(A0)
  94.         RTS
  95.  
  96. dr_columns1:; a0: ziel-addresse 
  97.             ; a1: quell-addresse
  98.         MOVE.B    #$F0,D0
  99.  
  100.         AND.B    D0,(A0)
  101.         MOVE.B    (A1),D1
  102.         OR.B    D1,(A0)
  103.         MOVE.B    1(A1),1(A0)
  104.         MOVE.B    2(A1),2(A0)
  105.         ADDA.W    #col_width,A1
  106.         ADDA.W    #col_buffer_width,A0
  107.  
  108.         AND.B    D0,(A0)
  109.         MOVE.B    (A1),D1
  110.         OR.B    D1,(A0)
  111.         MOVE.B    1(A1),1(A0)
  112.         MOVE.B    2(A1),2(A0)
  113.         ADDA.W    #col_width,A1
  114.         ADDA.W    #col_buffer_width,A0
  115.  
  116.         AND.B    D0,(A0)
  117.         MOVE.B    (A1),D1
  118.         OR.B    D1,(A0)
  119.         MOVE.B    1(A1),1(A0)
  120.         MOVE.B    2(A1),2(A0)
  121.         ADDA.W    #col_width,A1
  122.         ADDA.W    #col_buffer_width,A0
  123.  
  124.         AND.B    D0,(A0)
  125.         MOVE.B    (A1),D1
  126.         OR.B    D1,(A0)
  127.         MOVE.B    1(A1),1(A0)
  128.         MOVE.B    2(A1),2(A0)
  129.         ADDA.W    #col_width,A1
  130.         ADDA.W    #col_buffer_width,A0
  131.  
  132.         AND.B    D0,(A0)
  133.         MOVE.B    (A1),D1
  134.         OR.B    D1,(A0)
  135.         MOVE.B    1(A1),1(A0)
  136.         MOVE.B    2(A1),2(A0)
  137.         ADDA.W    #col_width,A1
  138.         ADDA.W    #col_buffer_width,A0
  139.  
  140.         AND.B    D0,(A0)
  141.         MOVE.B    (A1),D1
  142.         OR.B    D1,(A0)
  143.         MOVE.B    1(A1),1(A0)
  144.         MOVE.B    2(A1),2(A0)
  145.         ADDA.W    #col_width,A1
  146.         ADDA.W    #col_buffer_width,A0
  147.  
  148.         AND.B    D0,(A0)
  149.         MOVE.B    (A1),D1
  150.         OR.B    D1,(A0)
  151.         MOVE.B    1(A1),1(A0)
  152.         MOVE.B    2(A1),2(A0)
  153.         ADDA.W    #col_width,A1
  154.         ADDA.W    #col_buffer_width,A0
  155.  
  156.         AND.B    D0,(A0)
  157.         MOVE.B    (A1),D1
  158.         OR.B    D1,(A0)
  159.         MOVE.B    1(A1),1(A0)
  160.         MOVE.B    2(A1),2(A0)
  161.         ADDA.W    #col_width,A1
  162.         ADDA.W    #col_buffer_width,A0
  163.  
  164.         AND.B    D0,(A0)
  165.         MOVE.B    (A1),D1
  166.         OR.B    D1,(A0)
  167.         MOVE.B    1(A1),1(A0)
  168.         MOVE.B    2(A1),2(A0)
  169.         ADDA.W    #col_width,A1
  170.         ADDA.W    #col_buffer_width,A0
  171.  
  172.         AND.B    D0,(A0)
  173.         MOVE.B    (A1),D1
  174.         OR.B    D1,(A0)
  175.         MOVE.B    1(A1),1(A0)
  176.         MOVE.B    2(A1),2(A0)
  177.         ADDA.W    #col_width,A1
  178.         ADDA.W    #col_buffer_width,A0
  179.  
  180.         AND.B    D0,(A0)
  181.         MOVE.B    (A1),D1
  182.         OR.B    D1,(A0)
  183.         MOVE.B    1(A1),1(A0)
  184.         MOVE.B    2(A1),2(A0)
  185.         ADDA.W    #col_width,A1
  186.         ADDA.W    #col_buffer_width,A0
  187.  
  188.         AND.B    D0,(A0)
  189.         MOVE.B    (A1),D1
  190.         OR.B    D1,(A0)
  191.         MOVE.B    1(A1),1(A0)
  192.         MOVE.B    2(A1),2(A0)
  193.         ADDA.W    #col_width,A1
  194.         ADDA.W    #col_buffer_width,A0
  195.  
  196.         AND.B    D0,(A0)
  197.         MOVE.B    (A1),D1
  198.         OR.B    D1,(A0)
  199.         MOVE.B    1(A1),1(A0)
  200.         MOVE.B    2(A1),2(A0)
  201.         ADDA.W    #col_width,A1
  202.         ADDA.W    #col_buffer_width,A0
  203.  
  204.         AND.B    D0,(A0)
  205.         MOVE.B    (A1),D1
  206.         OR.B    D1,(A0)
  207.         MOVE.B    1(A1),1(A0)
  208.         MOVE.B    2(A1),2(A0)
  209.         ADDA.W    #col_width,A1
  210.         ADDA.W    #col_buffer_width,A0
  211.  
  212.         AND.B    D0,(A0)
  213.         MOVE.B    (A1),D1
  214.         OR.B    D1,(A0)
  215.         MOVE.B    1(A1),1(A0)
  216.         MOVE.B    2(A1),2(A0)
  217.         ADDA.W    #col_width,A1
  218.         ADDA.W    #col_buffer_width,A0
  219.  
  220.         AND.B    D0,(A0)
  221.         MOVE.B    (A1),D1
  222.         OR.B    D1,(A0)
  223.         MOVE.B    1(A1),1(A0)
  224.         MOVE.B    2(A1),2(A0)
  225.         ADDA.W    #col_width,A1
  226.         ADDA.W    #col_buffer_width,A0
  227.  
  228.         AND.B    D0,(A0)
  229.         MOVE.B    (A1),D1
  230.         OR.B    D1,(A0)
  231.         MOVE.B    1(A1),1(A0)
  232.         MOVE.B    2(A1),2(A0)
  233.         ADDA.W    #col_width,A1
  234.         ADDA.W    #col_buffer_width,A0
  235.  
  236.         AND.B    D0,(A0)
  237.         MOVE.B    (A1),D1
  238.         OR.B    D1,(A0)
  239.         MOVE.B    1(A1),1(A0)
  240.         MOVE.B    2(A1),2(A0)
  241.         ADDA.W    #col_width,A1
  242.         ADDA.W    #col_buffer_width,A0
  243.  
  244.         AND.B    D0,(A0)
  245.         MOVE.B    (A1),D1
  246.         OR.B    D1,(A0)
  247.         MOVE.B    1(A1),1(A0)
  248.         MOVE.B    2(A1),2(A0)
  249.         ADDA.W    #col_width,A1
  250.         ADDA.W    #col_buffer_width,A0
  251.  
  252.         AND.B    D0,(A0)
  253.         MOVE.B    (A1),D1
  254.         OR.B    D1,(A0)
  255.         MOVE.B    1(A1),1(A0)
  256.         MOVE.B    2(A1),2(A0)
  257.  
  258.         RTS
  259.  
  260. dr_columns2:; a0: ziel-addresse 
  261.             ; a1: quell-addresse
  262.         MOVE.B    #$0F,D0
  263.  
  264.         AND.B    D0,2(A0)
  265.         MOVE.B    (A1),(A0)
  266.         MOVE.B    1(A1),1(A0)
  267.         MOVE.B    2(A1),D1
  268.         OR.B    D1,2(A0)
  269.         ADDA.W    #col_width,A1
  270.         ADDA.W    #col_buffer_width,A0
  271.  
  272.         AND.B    D0,2(A0)
  273.         MOVE.B    (A1),(A0)
  274.         MOVE.B    1(A1),1(A0)
  275.         MOVE.B    2(A1),D1
  276.         OR.B    D1,2(A0)
  277.         ADDA.W    #col_width,A1
  278.         ADDA.W    #col_buffer_width,A0
  279.  
  280.         AND.B    D0,2(A0)
  281.         MOVE.B    (A1),(A0)
  282.         MOVE.B    1(A1),1(A0)
  283.         MOVE.B    2(A1),D1
  284.         OR.B    D1,2(A0)
  285.         ADDA.W    #col_width,A1
  286.         ADDA.W    #col_buffer_width,A0
  287.  
  288.         AND.B    D0,2(A0)
  289.         MOVE.B    (A1),(A0)
  290.         MOVE.B    1(A1),1(A0)
  291.         MOVE.B    2(A1),D1
  292.         OR.B    D1,2(A0)
  293.         ADDA.W    #col_width,A1
  294.         ADDA.W    #col_buffer_width,A0
  295.  
  296.         AND.B    D0,2(A0)
  297.         MOVE.B    (A1),(A0)
  298.         MOVE.B    1(A1),1(A0)
  299.         MOVE.B    2(A1),D1
  300.         OR.B    D1,2(A0)
  301.         ADDA.W    #col_width,A1
  302.         ADDA.W    #col_buffer_width,A0
  303.  
  304.         AND.B    D0,2(A0)
  305.         MOVE.B    (A1),(A0)
  306.         MOVE.B    1(A1),1(A0)
  307.         MOVE.B    2(A1),D1
  308.         OR.B    D1,2(A0)
  309.         ADDA.W    #col_width,A1
  310.         ADDA.W    #col_buffer_width,A0
  311.  
  312.         AND.B    D0,2(A0)
  313.         MOVE.B    (A1),(A0)
  314.         MOVE.B    1(A1),1(A0)
  315.         MOVE.B    2(A1),D1
  316.         OR.B    D1,2(A0)
  317.         ADDA.W    #col_width,A1
  318.         ADDA.W    #col_buffer_width,A0
  319.  
  320.         AND.B    D0,2(A0)
  321.         MOVE.B    (A1),(A0)
  322.         MOVE.B    1(A1),1(A0)
  323.         MOVE.B    2(A1),D1
  324.         OR.B    D1,2(A0)
  325.         ADDA.W    #col_width,A1
  326.         ADDA.W    #col_buffer_width,A0
  327.  
  328.         AND.B    D0,2(A0)
  329.         MOVE.B    (A1),(A0)
  330.         MOVE.B    1(A1),1(A0)
  331.         MOVE.B    2(A1),D1
  332.         OR.B    D1,2(A0)
  333.         ADDA.W    #col_width,A1
  334.         ADDA.W    #col_buffer_width,A0
  335.  
  336.         AND.B    D0,2(A0)
  337.         MOVE.B    (A1),(A0)
  338.         MOVE.B    1(A1),1(A0)
  339.         MOVE.B    2(A1),D1
  340.         OR.B    D1,2(A0)
  341.         ADDA.W    #col_width,A1
  342.         ADDA.W    #col_buffer_width,A0
  343.  
  344.         AND.B    D0,2(A0)
  345.         MOVE.B    (A1),(A0)
  346.         MOVE.B    1(A1),1(A0)
  347.         MOVE.B    2(A1),D1
  348.         OR.B    D1,2(A0)
  349.         ADDA.W    #col_width,A1
  350.         ADDA.W    #col_buffer_width,A0
  351.  
  352.         AND.B    D0,2(A0)
  353.         MOVE.B    (A1),(A0)
  354.         MOVE.B    1(A1),1(A0)
  355.         MOVE.B    2(A1),D1
  356.         OR.B    D1,2(A0)
  357.         ADDA.W    #col_width,A1
  358.         ADDA.W    #col_buffer_width,A0
  359.  
  360.         AND.B    D0,2(A0)
  361.         MOVE.B    (A1),(A0)
  362.         MOVE.B    1(A1),1(A0)
  363.         MOVE.B    2(A1),D1
  364.         OR.B    D1,2(A0)
  365.         ADDA.W    #col_width,A1
  366.         ADDA.W    #col_buffer_width,A0
  367.  
  368.         AND.B    D0,2(A0)
  369.         MOVE.B    (A1),(A0)
  370.         MOVE.B    1(A1),1(A0)
  371.         MOVE.B    2(A1),D1
  372.         OR.B    D1,2(A0)
  373.         ADDA.W    #col_width,A1
  374.         ADDA.W    #col_buffer_width,A0
  375.  
  376.         AND.B    D0,2(A0)
  377.         MOVE.B    (A1),(A0)
  378.         MOVE.B    1(A1),1(A0)
  379.         MOVE.B    2(A1),D1
  380.         OR.B    D1,2(A0)
  381.         ADDA.W    #col_width,A1
  382.         ADDA.W    #col_buffer_width,A0
  383.  
  384.         AND.B    D0,2(A0)
  385.         MOVE.B    (A1),(A0)
  386.         MOVE.B    1(A1),1(A0)
  387.         MOVE.B    2(A1),D1
  388.         OR.B    D1,2(A0)
  389.         ADDA.W    #col_width,A1
  390.         ADDA.W    #col_buffer_width,A0
  391.  
  392.         AND.B    D0,2(A0)
  393.         MOVE.B    (A1),(A0)
  394.         MOVE.B    1(A1),1(A0)
  395.         MOVE.B    2(A1),D1
  396.         OR.B    D1,2(A0)
  397.         ADDA.W    #col_width,A1
  398.         ADDA.W    #col_buffer_width,A0
  399.  
  400.         AND.B    D0,2(A0)
  401.         MOVE.B    (A1),(A0)
  402.         MOVE.B    1(A1),1(A0)
  403.         MOVE.B    2(A1),D1
  404.         OR.B    D1,2(A0)
  405.         ADDA.W    #col_width,A1
  406.         ADDA.W    #col_buffer_width,A0
  407.  
  408.         AND.B    D0,2(A0)
  409.         MOVE.B    (A1),(A0)
  410.         MOVE.B    1(A1),1(A0)
  411.         MOVE.B    2(A1),D1
  412.         OR.B    D1,2(A0)
  413.         ADDA.W    #col_width,A1
  414.         ADDA.W    #col_buffer_width,A0
  415.  
  416.         AND.B    D0,2(A0)
  417.         MOVE.B    (A1),(A0)
  418.         MOVE.B    1(A1),1(A0)
  419.         MOVE.B    2(A1),D1
  420.         OR.B    D1,2(A0)
  421.  
  422.         RTS
  423.