Contributor: BYRON ELLACOTT program test {also untested}; var testbyte: byte; function testbit(testbyte,bit:byte):boolean; assembler; asm mov cl,bit mov ah,1 shl ah,cl mov al,testbyte and al,ah end; procedure setbit(var testbyte:byte; bit:byte); assembler; asm mov cl,bit mov al,1 shl al,cl les di,[testbyte] or [es:di],al end; procedure clearbit(var testbyte:byte; bit:byte); assembler; asm mov cl,bit mov al,1 shl al,cl not al les di,[testbyte] and [es:di],al end; begin testbyte := 0; setbit(testbyte,2); setbit(testbyte,5); if testbit(testbyte,2) then writeln('2 is ON'); if not testbit(testbyte,3) then writeln('3 is OFF'); end.