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 / PUTCODE.MAC < prev    next >
Text File  |  1989-10-17  |  930b  |  45 lines

  1. ; PUTCODE f}r Turbo, 171089 Tilmann Reh
  2.     .z80
  3.  
  4.     extrn    code,bitpos,bytpos,actbits,rmask,buf
  5.  
  6.     ld    hl,(code)
  7.     ld    e,0        ; 24-Bit-Code EHL
  8.     ld    a,(bitpos)
  9.     or    a
  10.     jr    z,direct    ; Bitpos=0 : nicht schieben
  11.     ld    b,a
  12. shft:    add    hl,hl
  13.     rl    e        ; links schieben
  14.     djnz    shft        ; Anzahl Bitpos
  15. direct:    ld    c,a
  16.     ld    b,0        ; Bitpos in BC
  17.     ld    ix,rmask
  18.     add    ix,bc
  19.     add    ix,bc        ; Zeiger auf rmask(bitpos)
  20.     ld    a,(ix)        ; Maske nach A
  21.     ld    bc,(bytpos)
  22.     ld    b,0        ; Bytpos in BC
  23.     ld    ix,buf
  24.     add    ix,bc        ; Zeiger auf Puffer
  25.     and    (ix)        ; Inhalt mit Maske
  26.     or    l        ; neuen Code dabei
  27.     ld    (ix),a        ; speichern
  28.     ld    (ix+1),h    ; NSB speichern
  29.     ld    hl,(actbits)    ; L=Actbits
  30.     ld    a,(bitpos)
  31.     add    a,l
  32.     sub    8        ; bitpos+actbits-8
  33.     inc    c        ; bytpos+1
  34.     cp    8
  35.     jr    c,ende        ; bitpos<8 : ok
  36.     sub    8        ; nochmal 8 weg
  37.     inc    c        ; bytpos nochmal +1
  38.     ld    (ix+2),e    ; MSB speichern
  39. ende:    ld    (bitpos),a
  40.     ld    a,c
  41.     ld    (bytpos),a    ; bitpos und bytpos speichern
  42.  
  43.     end
  44.  
  45.