/*
*/
-#include <stdio.h>
#include <libopencmsis/core_cm3.h>
#include <libopencm3/cm3/nvic.h>
#include <libopencm3/stm32/gpio.h>
#include <libopencm3/stm32/timer.h>
+#include <stdio.h>
+
#define ODR 0x0c
#define IDR 0x08
void sys_tick_handler(void)
{
- static int tick_10ms = 0;
- static int count_ms = 0;
+ static int_fast8_t tick_10ms = 0;
+ static int_fast16_t count_ms = 0;
- int i;
+ int_fast8_t i;
++tick_10ms;
if (tick_10ms == 10)
/*--------------------------------------------------------------------------*/
-static uint32_t z80_sram_cmp(uint32_t addr, int length, uint8_t wval, int inc)
+static uint32_t z80_sram_cmp(uint32_t addr, uint32_t length, uint8_t wval, int inc)
{
uint8_t rval;
- int errors = 0;
+ int_fast8_t errors = 0;
- DBG_P(1, "SRAM: Check %#.5x byte... ", length);
+ DBG_P(1, "SRAM: Check 0x%.5lX byte... ", length);
while (length--) {
if ((rval = z80_read(addr)) != wval) {
if (errors == 0) {
#endif
+/*--------------------------------------------------------------------------*/
+
uint8_t z80_get_byte(uint32_t adr)
{
uint8_t data;
void (*func)(uint8_t, int, uint8_t *);
};
+static
uint32_t msg_to_addr(uint8_t *msg)
{
- uint32_t addr = msg[0] + (msg[1] << 8) + (msg[2] << 16);
+ uint32_t addr = msg[0] | (msg[1] << 8) | ((uint32_t)msg[2] << 16);
return addr;
}
+static
void do_msg_ini_msgfifo(uint8_t subf, int len, uint8_t * msg)
{
(void)subf; (void)len;
}
+static
void do_msg_ini_memfifo(uint8_t subf, int len, uint8_t * msg)
{
(void)len;
}
+static
void do_msg_char_out(uint8_t subf, int len, uint8_t * msg)
{
(void)subf;
}
+static
const struct msg_item z80_messages[] =
{
- { 0,
- 0, 0,
+ { 0, /* fct nr. */
+ 0, 0, /* sub fct nr. from, to */
&do_msg_ini_msgfifo},
{ 0,
1, 2,
+static
void do_message(int len, uint8_t *msg)
{
uint8_t fct, sub_fct;
- int i = 0;
+ int_fast8_t i = 0;
if (len >= 2) {
fct = *msg++;
#define CTRBUF_LEN 256
+static
void check_msg_fifo(void)
{
int ch;
- static int state;
+ static int_fast8_t state;
static int msglen,idx;
static uint8_t buffer[CTRBUF_LEN];
void z80_load_mem(void)
{
-
-DBG_P(1, "Loading z80 memory... \n");
-
unsigned sec = 0;
uint32_t sec_base = hdrom_start;
+ DBG_P(1, "Loading z80 memory... \n");
+
while (sec < hdrom_sections) {
DBG_P(2, " From: 0x%.5lX to: 0x%.5lX (%5li bytes)\n",
hdrom_address[sec],
int main(void)
{
- //uint32_t led_state = LED_BLUE_PIN;
- //uint32_t rc;
- //uint8_t startval = 0;
- //int count;
- int state = 0;
+ int_fast8_t state = 0;
int ch;
clock_setup();
z80_memset(0, 0x76, 0x80000);
//z80_sram_fill(0, 512 * 1024, 0x76, 0);
- z80_sram_cmp(0, 512 * 1024, 0x76, 0);
+ z80_sram_cmp(0, (uint32_t)512 * 1024, 0x76, 0);
z80_load_mem();
z80_reset(LOW);