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
/
CPM
/
TURBODSG
/
RETBIT.MAC
< prev
next >
Wrap
Text File
|
2000-06-30
|
853b
|
77 lines
;RETBIT.MAC by ESKAY
;
.z80
;
; Purpose:
; return or set bit at bit map address
; IX points to start of bit map
; DHL holds 24-bit address
; for PUTBIT, C holds bit
; Preserve all registers
;
public getbit,putbit
;
cseg
;
getbit: xor a
jr gpbit
;
putbit: ld a,0ffh
gpbit: ld (getput),a
push bc
push de
push hl
push ix
ld a,l
or a
ld b,3
lp1: rr d
rr h
rr l
djnz lp1
and 7
;
; HL = offet into bit map, a=bit number
;
ex de,hl
add ix,de
ld b,a ;bit number into b
inc b ;set up for pre-test
ld a,(getput)
or a
jr nz,putc
ld a,(ix+0)
rlca
loop: dec b
jr z,done
rlca
jr loop
;
done: and 1
done1: pop ix
pop hl
pop de
pop bc
ret
;
putc: ld a,b
ld b,8
..putl: rlc (ix+0)
dec a
call z,..srs
djnz ..putl
jr done1
;
..srs: ld a,c
or a
ld a,0ffh
jr z,..res
set 0,(ix+0)
ret
;
..res: res 0,(ix+0)
ret
;
getput: db 0
end