home *** CD-ROM | disk | FTP | other *** search
- ;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
-