/*  Copyright 2010, Unpublished Work of Technologic Systems
 *  All Rights Reserved.
 *  Sample utility to peek and poke PC104 space on a TS-81xx base board.
 *  gcc -march=armv4 pc104.c sbus.c -o pc104
 */
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include "sbus.h"

int main(int argc, char **argv) {
	unsigned int adr, val;

	if (argc == 1 || argc > 3) {
		printf("Read usage: pc104 <address>\n"
			"Write usage: pc014 <address> <value>\n\n");
		return -1;
	}
	adr = strtoul(argv[1], NULL, 0);
	if (argc == 3) val = strtoul(argv[2], NULL, 0); 
	sbuslock();
	winpoke16(0x20000, 0x181); // external bus configuration
	if (argc == 2) val = winpeek8(0x10000 + adr);
	else winpoke8(0x10000 + adr, val);
	sbusunlock();
	printf("0x%x\n", val);

	return 0;

}
