Tesseract
3.02
|
00001 /********************************************************************** 00002 * File: bits16.h (Formerly bits8.h) 00003 * Description: Code for 8 bit field class. 00004 * Author: Phil Cheatle 00005 * Created: Thu Oct 17 10:10:05 BST 1991 00006 * 00007 * (C) Copyright 1991, Hewlett-Packard Ltd. 00008 ** Licensed under the Apache License, Version 2.0 (the "License"); 00009 ** you may not use this file except in compliance with the License. 00010 ** You may obtain a copy of the License at 00011 ** http://www.apache.org/licenses/LICENSE-2.0 00012 ** Unless required by applicable law or agreed to in writing, software 00013 ** distributed under the License is distributed on an "AS IS" BASIS, 00014 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00015 ** See the License for the specific language governing permissions and 00016 ** limitations under the License. 00017 * 00018 **********************************************************************/ 00019 00020 #ifndef BITS16_H 00021 #define BITS16_H 00022 00023 #include "host.h" 00024 00025 class DLLSYM BITS16 00026 { 00027 public: 00028 uinT16 val; 00029 00030 BITS16() { 00031 val = 0; 00032 } // constructor 00033 00034 BITS16( // constructor 00035 uinT16 init); // initial val 00036 00037 void turn_on_bit( // flip specified bit 00038 uinT8 bit_num) { // bit to flip 0..7 00039 val = val | 01 << bit_num; 00040 }; 00041 00042 void turn_off_bit( // flip specified bit 00043 uinT8 bit_num) { // bit to flip 0..7 00044 val = val & ~(01 << bit_num); 00045 }; 00046 00047 void set_bit( // flip specified bit 00048 uinT8 bit_num, // bit to flip 0..7 00049 BOOL8 value) { // value to flip to 00050 if (value) 00051 val = val | 01 << bit_num; 00052 else 00053 val = val & ~(01 << bit_num); 00054 }; 00055 00056 BOOL8 bit( // access bit 00057 uinT8 bit_num) const { // bit to access 00058 return (val >> bit_num) & 01; 00059 }; 00060 }; 00061 #endif