ASMB,R,L,C,Q * NAME: .SETB * SOURCE: 92067-18328 * RELPC: 92067-16268 * PGMR: G.L.M. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * * NAM .SETB,7 92067-1X328 REV.2013 780921 * * * ENT .SETB,.CLRB * EXT $LIBR,$LIBX,!BITM * * SUP SKP * * * CALLING SEQUENCE: LDA LU * JSB .SETB * * RETURN (E)=0 IF BIT WAS CLEAR WHEN CALLED * (E)=1 IF BIT WAS SET WHEN CALLED * * * .SETB NOP CLB SET STB .CLRB ENTRY FLAG TO INDICATE "SET" CALL * .SET2 JSB $LIBR GO PRIV NOP * LDB ND100 VERIFY LU ADB A IS BETWEEN 0 SSA,RSS AND 99 SSB,RSS JMP OUTS LU IS OUT OF RANGE * CLB DIV D16 CALCULATE WORD OFFSET ADA TABL INTO BIT MAP TABLE STA TMP AND SAVE. * CLA,INA CALCULATE BIT POSITION CMB,INB,SZB,RSS SET BIT OFFSET NEGATIVE JMP GOTC IF BIT POSITION IS ZERO, CONTINUE * RAL ELSE, PLACE INB,SZB BIT IN PROPER JMP *-2 POSITION. * * GOTC LDB .CLRB FETCH ENTRY FLAG SZB IF THIS WAS A CLEAR CALL, JMP CLRIT GO DO IT * STA B SAVE BIT POSITION AND TMP,I IF BIT CLE,SZA WAS ALREADY SET, CCE RETURN E=1 * LDA B RESTORE BIT POSITION IOR TMP,I SET THE BIT STA TMP,I AND RESTORE THE WORD IN THE TABLE * OUTS JSB $LIBX DEF .SETB * * SPC 5 * * * CLEAR BIT SUBROUTINE * * CALLING SEQUENCE: LDA LU * JSB .CLRB * RETURN --- * * .CLRB NOP LDB .CLRB SET RETURN STB .SETB ADDRESS FOR COMMON JMP .SET2 BODY OF ROUTINE. * * * * THE "CLEAR" FUNCTION CONTINUES HERE * * CLRIT CMA AND TMP,I CLEAR THE BIT STA TMP,I THEN RESTORE THE WORD JMP OUTS RETURN * TABL DEF !BITM+0 GET A DIRECT ADDRESS TMP NOP ND100 DEC -100 D16 DEC 16 A EQU 0 B EQU 1 END