#include "simple.h" int plain_int; enum simple_state current_state = not_init; unsigned long data_value; unsigned long check_value; unsigned char byte = 0xaa; unsigned char byte2= 0xbb; unsigned char byte3= 0xcc; unsigned char byte4= 0xdd; extern exit(int status); void simple_exit(int code) { exit(code); } void simple_initialize() { current_state = init; data_value = 0xffffffff; plain_int = 0x1234; } void byte_write(unsigned short addr, unsigned char data) { *(unsigned char *) addr = data; } unsigned char byte_read(unsigned short addr) { return(*(unsigned char *) addr); } void simple_write(unsigned long val) { if (val != check_value) current_state = error; else current_state = write_enabled; data_value = val; printf("simple_write() value: %x\n",data_value); } unsigned long simple_read() { current_state = read_enabled; printf("simple_read() value: %x\n",data_value); return(data_value); } void simple_transaction(int length, int data) { int i; for(i = 0; i < length; i++) { simple_write(data+i); simple_read(); } } int main() { unsigned long w = 0x12345678; unsigned long r; (void)simple_initialize(); (void)simple_write(w); r = simple_read(); (void) simple_transaction(10, 10); return (0); }