home *** CD-ROM | disk | FTP | other *** search
- ;testbit.asm
- ;external function which returns bit value of a byte
- ;
- ; function testbit ( x : char; bit : integer ):
- ; boolean; extern;
- ;
- ; bit number is 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# into b_reg and x into a_reg
- testbit xchg ;hl=wb
- dcx h! dcx h! dcx h! dcx h ;point to bit lownib
- mov b,m ;low byte of bit
- dcx h! mov a,m ;x
- inr b
- ;shift loop
- loop rlc
- dcr b
- jnz loop
- jc true ;bit is set
- ;false : bit is zero
- dcx h! mvi m,0! dcx h! mvi m,0
- ret
- ;true : bit is one
- true dcx h! mvi m,0! dcx h! mvi m,1
- ret
- ;
- end
-