/ SUBROUTINE IN SABR / BIT-BEHANDLUNG FUER J-TES BIT IM WORT K / K DARF AUCH INDIZIERT SEIN / HAT DREI EINGAENGE : / FUNCTION IBIT(K,J) - Z. B. M=IBIT(K,J) / SUBROUTINE ZBIT(K,J) - J-TES BIT WIRD NULL GESETZT / SUBROUTINE SETB(K,J) - J-TES BIT WIRD EINS GESETZT / DECUS #8-706 ENTRY SETB ENTRY ZBIT ENTRY IBIT DUMMY \K DUMMY \J \K, BLOCK 2 \J, BLOCK 2 \IBIT, 0 IBIT, BLOCK 2 TAD MN0 DCA L3 L2, TAD I IBIT DCA \K INC IBIT# TAD I IBIT DCA \K# INC IBIT# TAD I IBIT DCA \J INC IBIT# TAD I IBIT DCA \J# INC IBIT# / FUNCTION TO RETURN A ONE IF BIT J IN K IS TRUE / OR A ZERO IF THAT BIT IS FALSE TAD I \K / GET K DCA \IBIT TAD I \J / FIND WHICH BIT IS NEEDED CMA DCA \J / SET UP COUNTER CLA CLL CML RAR / SET MASK IN BIT 0 ISZ \J / SEE IF J WAS 0 SKP / NOPE - COUNT IT OUT JMP L3 / YES - READY TO GO MBK, RAR / PUT MASK IN BIT 1 ISZ \J / MOVE MASK BIT AS NEEDED JMP MBK L3, NOP / DROPS THROUGH ON IBIT AND \IBIT / NOW MASK THE WORD SNA / IS IT FALSE ? JMP MSI / YES CLA IAC / SET AC FOR TRUE MSI, DCA \IBIT TAD \IBIT RETRN IBIT / SUBROUTINE ZBIT(K,J) TO SET BIT J OF K TO ZERO ZBIT, BLOCK 2 TAD ZBIT DCA IBIT TAD ZBIT# DCA IBIT# TAD ML5 DCA L3 JMP L2 L5, CMA AND \IBIT / NOW MASK THE WORD DCA I \K / REPLACE THE NEW WORD RETRN IBIT ML5, JMP L5 ML4, JMP L4 MN0, NOP / SUBROUTINE SETB(K,J) TO SET BIT J OF K TO ONE SETB, BLOCK 2 TAD ML4 DCA L3 7621 / CLEAR AC AND MQ TAD SETB DCA IBIT TAD SETB# DCA IBIT# JMP L2 L4, 7421 / MOVE MASK TO MQ TAD \IBIT / GET THE WORD 7501 / OR WITH MQ DCA I \K / REPLACE THE NEW WORD RETRN IBIT END