home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug175.arc / JRTPAS2.LBR / RESETBIT.ASM < prev    next >
Assembly Source File  |  1979-12-31  |  640b  |  33 lines

  1. ;resetbit.asm
  2. ;external procedure which reset bit in a byte
  3. ;
  4. ; procedure resetbit ( var x : char; bit : integer );
  5. ;        extern;
  6. ; bit# in range 0..7
  7. ;
  8. ;entry code
  9.     db 95,6,0    ;int vmcode
  10.     db 92        ;lpn vmcode
  11.     db 0        ;mode vmcode
  12. ;on entry  bc=wtos  de=wb  hl=wbase
  13. ;
  14. ;get bit# in b_reg,  addr(x) in hl,  x into c_reg
  15. resetbit xchg        ;hl=wb
  16.     dcx h! dcx h! dcx h! dcx h
  17.     mov b,m        ;bit#
  18.     dcx h! mov d,m! dcx h! mov e,m ;addr(x)
  19.     xchg        ;hl=addr(x)
  20.     mov c,m        ;c=x
  21. ;create mask
  22.     inr b        ;incr loop count
  23.     mvi a,0feh
  24. loop    rrc
  25.     dcr b
  26.     jnz loop
  27. ;a=mask  c=byte
  28.     ana c
  29.     mov m,a        ;store byte
  30.     ret
  31. ;
  32.     end
  33.