Monitor::Monitor( Computer& computer ) : Simulation<MonitorState> {}, _computer( computer ), _procInt { computer.nextInterrupt( this ) }, _memory { computer.memory() }, _dot { make_unique<SDL_Rect>() }, _borderHorizontal { make_unique<SDL_Rect>() }, _borderVertical { make_unique<SDL_Rect>() } { _state.isBlinking.fill( false ); _borderHorizontal->w = sim::MONITOR_PIXELS_PER_SCREEN_WIDTH; _borderHorizontal->h = sim::MONITOR_PIXELS_PER_BORDER; _borderVertical->w = sim::MONITOR_PIXELS_PER_BORDER; _borderVertical->h = sim::MONITOR_PIXELS_PER_SCREEN_HEIGHT; _dot->x = 0; _dot->y = 0; _dot->w = sim::MONITOR_PIXELS_PER_DOT_WIDTH; _dot->h = sim::MONITOR_PIXELS_PER_DOT_HEIGHT; }