/usr/include/gpsim/p16x5x.h is in gpsim-dev 0.26.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | /*
Copyright (C) 2000,2001 T. Scott Dattalo, Daniel Schudel, Robert Pearce
This file is part of the libgpsim library of gpsim
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
<http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
//
// p16x5x
//
// This file supports:
// P16C54
// P16C55
// P16C56
#ifndef __P16X5X_H__
#define __P16X5X_H__
#include "packages.h"
#include "stimuli.h"
#include "12bit-processors.h"
class PicPortRegister;
class PicTrisRegister;
class PicLatchRegister;
class P16C54 : public _12bit_processor
{
public:
PicPortRegister *m_porta;
PicTrisRegister *m_trisa;
PicPortRegister *m_portb;
PicTrisRegister *m_trisb;
#ifdef USE_PIN_MODULE_FOR_TOCKI
PinModule *m_tocki;
#else
PicPortRegister *m_tocki;
PicTrisRegister *m_trist0;
#endif
virtual PROCESSOR_TYPE isa(){return _P16C54_;};
virtual void create_symbols();
virtual unsigned int program_memory_size() const { return 0x200; };
virtual unsigned int register_memory_size() const { return 0x20; };
virtual unsigned int config_word_address() const {return 0xFFF;};
virtual void create_sfr_map();
virtual void option_new_bits_6_7(unsigned int bits) {}
P16C54(const char *_name=0, const char *desc=0);
virtual ~P16C54();
void create();
virtual void create_iopin_map();
static Processor *construct(const char *name);
virtual void tris_instruction(unsigned int tris_register);
virtual unsigned int fsr_valid_bits()
{
return 0x1f; // Only 32 register addresses
}
virtual unsigned int fsr_register_page_bits()
{
return 0; // Only one register page.
}
};
class P16C55 : public P16C54
{
public:
PicPortRegister *m_portc;
PicTrisRegister *m_trisc;
virtual PROCESSOR_TYPE isa(){return _P16C55_;};
virtual void create_symbols();
virtual unsigned int program_memory_size() const { return 0x200; };
virtual unsigned int register_memory_size() const { return 0x20; };
virtual unsigned int config_word_address() const {return 0xFFF;};
virtual void create_sfr_map();
P16C55(const char *_name=0, const char *desc=0);
virtual ~P16C55();
virtual void create();
virtual void create_iopin_map();
static Processor *construct(const char *name);
virtual void tris_instruction(unsigned int tris_register);
};
class P16C56 : public P16C54
{
public:
virtual PROCESSOR_TYPE isa(){return _P16C56_;};
virtual unsigned int program_memory_size() const { return 0x400; };
virtual unsigned int register_memory_size() const { return 0x20; };
virtual unsigned int config_word_address() const {return 0xFFF;};
P16C56(const char *_name=0, const char *desc=0);
static Processor *construct(const char *name);
};
#endif
|