view src/controller.c @ 43:6e7bfe83d2b0

Changed the design to vastly simplify the video hardware and support a 23-bit address space on the CPU
author Michael Pavone <pavone@retrodev.com>
date Sat, 27 Aug 2016 22:38:31 -0700
parents b87b3ad5068c
children
line wrap: on
line source

#include <stdint.h>
#include <string.h>
#include "controller.h"

static controllers *current_context;

//UDLR SMAB CXYZ

void controller_init(controllers *context)
{
	memset(context, 0, sizeof(controllers));
	current_context = context;
}

void controller_pressed(int which, uint16_t buttons)
{
	if (which > 1) {
		return;
	}
	current_context->state[which] |= buttons;
}

void controller_released(int which, uint16_t buttons)
{
	if (which > 1) {
		return;
	}
	current_context->state[which] &= (~buttons) & 0xFFF;
}

uint16_t controller_read(controllers *context, int which)
{
	if (which > 1) {
		return 0xFFFF;
	}
	return context->state[which];
}