summaryrefslogtreecommitdiffstats
path: root/sw/z80/tests/pio/main.c
diff options
context:
space:
mode:
authorNao Pross <naopross@thearcway.org>2017-11-14 11:46:31 +0100
committerNao Pross <naopross@thearcway.org>2017-11-14 11:46:31 +0100
commit8b240f0f90cd11f49947cf335a1e366bbe84b3f1 (patch)
treec6efe1d65ecbeeb01c993f659dbd6596abce0371 /sw/z80/tests/pio/main.c
parentUpdate doc, remove z80uPC.tex, improved z80uPC_nostyle (diff)
downloadz80uPC-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.c48
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