#pragma once
#include "emul.h"

// Each port is a bitmask of each pin's status. 1 means high.
// From Bit 0 to 6: up, down, left, right, TL, TR, TH

typedef struct {
   uint8_t ctl;
   Tristate TRA;
   Tristate THA;
   Tristate TRB;
   Tristate THB;
   IORD portA_rd;
   IORD portB_rd;
} Ports;

void ports_init(Ports *ports);
void ports_ctl_wr(Ports *ports, uint8_t val);
uint8_t ports_A_rd(Ports *ports);
uint8_t ports_B_rd(Ports *ports);