Fixed problem in DeviceSettings::strParam, returned wrong string
[avr-sim.git] / src / Port.cpp
blobbe0cdeff4ed2b88b48e724402d4a1c46024200c2
1 /*
2 * avr-sim: An atmel AVR simulator
3 * Copyright (C) 2008 Tom Haber
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #include "Port.h"
20 #include "Registers.h"
21 #include <cstring>
23 namespace avr {
25 Port::Port(Bus & bus, const std::string & name, unsigned int mask)
26 : Hardware(bus), name(name), mask(mask) {
29 Port::~Port() {
32 bool Port::attachReg(const char *name, IORegister *reg) {
33 if( strcmp(name, "port") == 0 )
34 port = reg;
35 else if( strcmp(name, "pin") == 0 )
36 pin = reg;
37 else if( strcmp(name, "ddr") == 0 )
38 ddr = reg;
39 else
40 return false;
42 reg->registerHW(this);
43 return true;
46 void Port::regChanged( IORegister *reg ) {
47 if( reg == port )
49 else if( reg == pin )
51 else if( reg == ddr )
55 void Port::step() {