diff options
Diffstat (limited to 'sw/z80/tests/pio/main.c')
-rw-r--r-- | sw/z80/tests/pio/main.c | 48 |
1 files changed, 39 insertions, 9 deletions
diff --git a/sw/z80/tests/pio/main.c b/sw/z80/tests/pio/main.c index c873e20..3687f50 100644 --- a/sw/z80/tests/pio/main.c +++ b/sw/z80/tests/pio/main.c @@ -1,16 +1,46 @@ -#include "pio.h" +// #include "pio.h" #include <stdint.h> +#define PIO_A_DATA 0x10 +#define PIO_A_CMD 0x11 +#define PIO_B_DATA 0x12 +#define PIO_B_CMD 0x13 + void main(void) { - uint8_t i = 0; + __asm + ;; output variable + ld h, #0x00 + + ;; set bit mode + ld a, #0xCF + ;; load cmd addr + ld c, #PIO_B_CMD + out (c), a + ;; set output + ld a, #0x00 + out (c), a + ;; disable interrupts + ld a, #0x0C + out (c), a + ;; load data addr + ld c, #PIO_B_DATA +loop: + out (c), h + ld a, h + cpl + ld h, a + jr loop + __endasm; + + // uint8_t i = 0; - pio_set_mode(PIO_A, PIO_MODE_BIT_IO, 0x00); - pio_set_interrupts(PIO_A, PIO_INT_DISABLE); + // pio_set_mode(PIO_A, PIO_MODE_BIT_IO, 0x00); + // pio_set_interrupts(PIO_A, PIO_INT_DISABLE); - while (1) { - pio_write(PIO_A, i); - i = ~i; - } -} + // while (1) { + // pio_write(PIO_A, i); + // i = ~i; + // } +}
\ No newline at end of file |