summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/ts_386ex/start/ts_1325.inc
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/i386/ts_386ex/start/ts_1325.inc')
-rw-r--r--c/src/lib/libbsp/i386/ts_386ex/start/ts_1325.inc50
1 files changed, 50 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/i386/ts_386ex/start/ts_1325.inc b/c/src/lib/libbsp/i386/ts_386ex/start/ts_1325.inc
new file mode 100644
index 0000000000..e10999abc0
--- /dev/null
+++ b/c/src/lib/libbsp/i386/ts_386ex/start/ts_1325.inc
@@ -0,0 +1,50 @@
+/*
+ These are just some useful macros that control the TS-1325's
+ LEDs and push-button switch. Useful for debugging.
+
+ NOTE: This *must* be 16-bit compatible code to work in start.s
+
+ Tony Ambardar
+*/
+
+ .macro LED_OFF
+ movw $P1LTC, dx
+ inb dx, al
+ orb $0b01000000, al
+ andb $0b11011111, al
+ outb al, dx
+ .endm
+
+ .macro LED_GREEN
+ movw $P1LTC, dx
+ inb dx, al
+ orb $0b01100000, al
+ outb al, dx
+ .endm
+
+ .macro LED_YELLOW
+ movw $P1LTC, dx
+ inb dx, al
+ orb $0b00100000, al
+ andb $0b10111111, al
+ outb al, dx
+ .endm
+
+ .macro LED_RED
+ movw $P1LTC, dx
+ inb dx, al
+ andb $0b10011111, al
+ outb al, dx
+ .endm
+
+ .macro WAIT_BUTTON # Wait till the button is pressed for a bit.
+ movw $P1PIN, dx # ~25-30 cycles per loop, 25MHz -> 1 sec.
+ movl $300000,ecx # "Timer" count determines how long.
+0: inb dx, al
+ andb $0b00000001,al
+ jnz 0b # Button pressed?
+ decl ecx
+ jnz 0b # CX count expired?
+ .endm
+
+