#include "ibm.h"

#include "io.h"
#include "lpt.h"
#include "serial.h"

static void cbm_io_write(uint16_t port, uint8_t val, void *p) {
	serial1_remove();
	serial2_remove();
	lpt1_remove();
	lpt2_remove();
	switch (val & 3) {
	case 1:lpt1_init(0x3bc);
		break;
	case 2:lpt1_init(0x378);
		break;
	case 3:lpt1_init(0x278);
		break;
	}
	switch (val & 0xc) {
	case 0x4:serial1_set(0x2f8, 3);
		break;
	case 0x8:serial1_set(0x3f8, 4);
		break;
	}
}

void cbm_io_init() {
	io_sethandler(0x0230, 0x0001, NULL, NULL, NULL, cbm_io_write, NULL, NULL, NULL);
}
