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 >
Wrap
Text File
|
1989-10-17
|
930b
|
45 lines
; PUTCODE f}r Turbo, 171089 Tilmann Reh
.z80
extrn code,bitpos,bytpos,actbits,rmask,buf
ld hl,(code)
ld e,0 ; 24-Bit-Code EHL
ld a,(bitpos)
or a
jr z,direct ; Bitpos=0 : nicht schieben
ld b,a
shft: add hl,hl
rl e ; links schieben
djnz shft ; Anzahl Bitpos
direct: ld c,a
ld b,0 ; Bitpos in BC
ld ix,rmask
add ix,bc
add ix,bc ; Zeiger auf rmask(bitpos)
ld a,(ix) ; Maske nach A
ld bc,(bytpos)
ld b,0 ; Bytpos in BC
ld ix,buf
add ix,bc ; Zeiger auf Puffer
and (ix) ; Inhalt mit Maske
or l ; neuen Code dabei
ld (ix),a ; speichern
ld (ix+1),h ; NSB speichern
ld hl,(actbits) ; L=Actbits
ld a,(bitpos)
add a,l
sub 8 ; bitpos+actbits-8
inc c ; bytpos+1
cp 8
jr c,ende ; bitpos<8 : ok
sub 8 ; nochmal 8 weg
inc c ; bytpos nochmal +1
ld (ix+2),e ; MSB speichern
ende: ld (bitpos),a
ld a,c
ld (bytpos),a ; bitpos und bytpos speichern
end