diff options
author | Nao Pross <naopross@thearcway.org> | 2017-11-14 11:46:31 +0100 |
---|---|---|
committer | Nao Pross <naopross@thearcway.org> | 2017-11-14 11:46:31 +0100 |
commit | 8b240f0f90cd11f49947cf335a1e366bbe84b3f1 (patch) | |
tree | c6efe1d65ecbeeb01c993f659dbd6596abce0371 /sw/z80/tests/pio/main.c | |
parent | Update doc, remove z80uPC.tex, improved z80uPC_nostyle (diff) | |
download | z80uPC-8b240f0f90cd11f49947cf335a1e366bbe84b3f1.tar.gz z80uPC-8b240f0f90cd11f49947cf335a1e366bbe84b3f1.zip |
Improvements in PIO driver, pio test rewritten in inline asm
Diffstat (limited to '')
-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 |