;(*---------------------------------------------------------------------------
;  :Program.    CopyLine2.asm
;  :Author.     Fridtjof Siebert
;  :Address.    Nobileweg 67, D-7000-Stuttgart-40
;  :Phone.      (0)711/822509
;  :Shortcut.   [fbs]
;  :Version.    1.0
;  :Copyright.  PD
;  :Language.   68000 Assembler
;  :Contents.   Procedures used by MuchMore
;---------------------------------------------------------------------------*)
; BitMap:
bm_BytesPerRow = 0
bm_Rows        = 2
bm_Flags       = 4
bm_Depth       = 5
bm_Pad         = 6
bm_Plane0      = 8
bm_Plane1      = 12
bm_SIZEOF      = 40

; a0: Bitmap
; d0: NumColumns
; d1: NumLines;
; d2: ScreenPos;

BM    EQUR a0;
s1    EQUR a1;
s2    EQUR a2;
z1    EQUR a3;
z2    EQUR a4;

NumCol EQUR d0;
NumLin EQUR d1;
ScrPos EQUR d2;

CopyLine:
  move.l  bm_Plane0(BM),z1;
  move.l  bm_Plane1(BM),z2;
  asl     #3,NumCol;
  muls    NumCol,ScrPos;
  lea     (z1,ScrPos),z1;
  lea     (z2,ScrPos),z2;
  muls    NumCol,NumLin;
  lea     (z1,NumLin),s1;
  lea     (z2,NumLin),s2;
  asr     #2,NumCol;
  subq    #1,NumCol;
\loop;
  move.l  (z1)+,(s1)+;
  move.l  (z2)+,(s2)+;
  dbra    NumCol,\loop;

  END;

