home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / UTILS / A / ARC20.ARC / ARCMACS.ARC / ADDMULT.MAC < prev    next >
Text File  |  1989-11-07  |  630b  |  43 lines

  1. ; ADD_LONG_MULT for Turbo-ARC, TR 061189
  2. ; procedure add_long_mult(var sum,lw:longword; m:byte);
  3.  
  4.     .z80
  5.     extrn    sum,lw,m
  6.  
  7.     ld    ix,(sum)    ; ^dest
  8.     ld    hl,(lw)        ; ^src1
  9.     ld    e,(hl)
  10.     inc    hl
  11.     ld    d,(hl)
  12.     inc    hl
  13.     push    de
  14.     ld    e,(hl)
  15.     inc    hl
  16.     ld    d,(hl)
  17.     pop    hl        ; DEHL = src1
  18.     ld    a,(m)        ; A = src2
  19. loop:    srl    a
  20.     jr    nc,loop1
  21.     push    af
  22.     ld    a,(ix)
  23.     add    a,l
  24.     ld    (ix),a
  25.     ld    a,(ix+1)
  26.     adc    a,h
  27.     ld    (ix+1),a
  28.     ld    a,(ix+2)
  29.     adc    a,e
  30.     ld    (ix+2),a
  31.     ld    a,(ix+3)
  32.     adc    a,d
  33.     ld    (ix+3),a    ; add src1 to dest
  34.     pop    af
  35. loop1:    ret    z        ; nothing else to do: leave
  36.     sla    l
  37.     rl    h
  38.     rl    e
  39.     rl    d        ; shift src1 left (*2)
  40.     jr    loop
  41.  
  42.     end
  43.