#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
-#include <endian.h>
#include "execute.h"
#include "m68k.h"
#include "m68kcpu.h"
if (address > memory_size - 2) {
return read_io(address);
}
- return be16toh(*((uint16_t *)(memory + address)));
+ return (memory[address] << 8) |
+ memory[address + 1];
}
unsigned int m68k_read_memory_32(unsigned int address)
value |= read_io(address + 2);
return value;
}
- return be32toh(*((uint32_t *)(memory + address)));
+ return (memory[address] << 24)|
+ (memory[address + 1] << 16) |
+ (memory[address + 2] << 8) |
+ memory[address + 3];
}
void m68k_write_memory_8(unsigned int address, unsigned int value)
write_io(address, value);
return;
}
- *((uint16_t *)(memory + address)) = htobe16(value);
+ memory[address] = value >> 8;
+ memory[address + 1] = value;
}
void m68k_write_memory_32(unsigned int address, unsigned int value)
write_io(address + 2, value);
return;
}
- *((uint32_t *)(memory + address)) = htobe32(value);
+ memory[address] = value >> 24;
+ memory[address + 1] = value >> 16;
+ memory[address + 2] = value >> 8;
+ memory[address + 3] = value;
}
void execute_init(int32_t _memory_size, uint8_t *_memory, uint16_t *_chipreg)