Bug fix: check if vm exists
[avr-sim.git] / Port.cpp
blobd43f7e7c8ffc7a6e9fbc68e8b1c6f6596ca9c060
1 #include "Port.h"
2 #include "Registers.h"
3 #include <cstring>
5 namespace avr {
7 Port::Port(Bus & bus, const std::string & name, unsigned int mask)
8 : Hardware(bus), name(name), mask(mask) {
11 Port::~Port() {
14 bool Port::attachReg(const char *name, IORegister *reg) {
15 if( strcmp(name, "port") == 0 )
16 port = reg;
17 else if( strcmp(name, "pin") == 0 )
18 pin = reg;
19 else if( strcmp(name, "ddr") == 0 )
20 ddr = reg;
21 else
22 return false;
24 reg->registerHW(this);
25 return true;
28 void Port::regChanged( IORegister *reg ) {
29 if( reg == port )
31 else if( reg == pin )
33 else if( reg == ddr )
37 void Port::step() {