home *** CD-ROM | disk | FTP | other *** search
- ;resetbit.asm
- ;external procedure which reset bit in a byte
- ;
- ; procedure resetbit ( var x : char; bit : integer );
- ; extern;
- ; bit# in range 0..7
- ;
- ;entry code
- db 95,6,0 ;int vmcode
- db 92 ;lpn vmcode
- db 0 ;mode vmcode
- ;on entry bc=wtos de=wb hl=wbase
- ;
- ;get bit# in b_reg, addr(x) in hl, x into c_reg
- resetbit xchg ;hl=wb
- dcx h! dcx h! dcx h! dcx h
- mov b,m ;bit#
- dcx h! mov d,m! dcx h! mov e,m ;addr(x)
- xchg ;hl=addr(x)
- mov c,m ;c=x
- ;create mask
- inr b ;incr loop count
- mvi a,0feh
- loop rrc
- dcr b
- jnz loop
- ;a=mask c=byte
- ana c
- mov m,a ;store byte
- ret
- ;
- end
-