'=========================================================================== ' Subject: SET BIT Date: 01-25-97 (16:41) ' Author: Byron Smith Code: QB, QBasic, PDS ' Origin: unol@sat.net Packet: BINARY.ABC '=========================================================================== DECLARE SUB BON (S%, O%, B%) DECLARE SUB BOFF (S%, O%, B%) DECLARE SUB TOGGLE (S%, O%, B%) DECLARE FUNCTION BIT% (S%, O%, B%) DIM A(0) AS DOUBLE CLS A(0) = CVD(STRING$(7, 170) + CHR$(126)) FOR X% = 63 TO 0 STEP -1 PRINT USING "#"; BIT%(VARSEG(A(0)), VARPTR(A(0)), X%); NEXT PRINT 'Turn ON bit #2 BON VARSEG(A(0)), VARPTR(A(0)), 2 FOR X% = 63 TO 0 STEP -1 PRINT USING "#"; BIT%(VARSEG(A(0)), VARPTR(A(0)), X%); NEXT PRINT 'Turn OFF bit #2 BOFF VARSEG(A(0)), VARPTR(A(0)), 2 FOR X% = 63 TO 0 STEP -1 PRINT USING "#"; BIT%(VARSEG(A(0)), VARPTR(A(0)), X%); NEXT PRINT FUNCTION BIT% (S%, O%, B%) DEF SEG = S%: BIT% = -((PEEK(O% + B% \ 8) AND 2 ^ (B% MOD 8)) > 0) END FUNCTION SUB BOFF (S%, O%, B%) DEF SEG = S%: POKE O% + B% \ 8, PEEK(O% + B% \ 8) AND 255 - 2 ^ (B% MOD 8) END SUB SUB BON (S%, O%, B%) DEF SEG = S%: POKE O% + B% \ 8, PEEK(O% + B% \ 8) OR 2 ^ (B% MOD 8) END SUB SUB TOGGLE (S%, O%, B%) DEF SEG = S%: POKE O% + B% \ 8, PEEK(O% + B% \ 8) XOR 2 ^ (B% MOD 8) END SUB