65,6 → 65,8 |
static irq_t gxemul_irq; |
static irq_t gxemul_timer_irq; |
|
static bool hw_map_init_called = false; |
|
static void gxemul_write(chardev_t *dev, const char ch); |
static void gxemul_enable(chardev_t *dev); |
static void gxemul_disable(chardev_t *dev); |
91,6 → 93,7 |
gxemul_hw_map.irqc_mask = gxemul_hw_map.irqc + GXEMUL_IRQC_MASK_OFFSET; |
gxemul_hw_map.irqc_unmask = gxemul_hw_map.irqc + GXEMUL_IRQC_UNMASK_OFFSET; |
|
hw_map_init_called = true; |
} |
|
/** Putchar that works with gxemul */ |
290,10 → 293,12 |
return *((int*)(GXEMUL_MP + GXEMUL_MP_MEMSIZE_OFFSET)); |
} |
|
void gxemul_debug_putc(char ch) { |
// *((volatile char *) GXEMUL_KBD) = ch; |
//TODO commented version doesn't work, don't know why (as ?? |
*((char *) gxemul_hw_map.videoram) = ch; |
void machine_debug_putc(char ch) { |
if (!hw_map_init_called) { |
*((volatile char *) GXEMUL_KBD) = ch; |
} else { |
*((char *) gxemul_hw_map.videoram) = ch; |
} |
} |
|
/** @} |