got all of the basic cape code working
diff --git a/bbb_cape/src/cape/digital.c b/bbb_cape/src/cape/digital.c
index a15b00b..70fce99 100644
--- a/bbb_cape/src/cape/digital.c
+++ b/bbb_cape/src/cape/digital.c
@@ -33,8 +33,6 @@
 void digital_capture_12P(void) ALIAS_WEAK(digital_capture_default);
 void digital_capture_12N(void) ALIAS_WEAK(digital_capture_default);
 
-typedef void (*EXTIHandler)(uint32_t);
-
 void EXTI2_IRQHandler(void) {
   uint32_t inputs = GPIOB->IDR;
   EXTI->PR = EXTI_PR_PR2;
@@ -72,7 +70,7 @@
 }
 
 static void EXTI8_Handler(uint32_t inputs) {
-  if (inputs & (1 << 7)) {
+  if (inputs & (1 << 8)) {
     digital_capture_7N();
   } else {
     digital_capture_7P();
@@ -88,21 +86,21 @@
 }
 
 void EXTI9_5_IRQHandler(void) {
-  uint32_t inputs = GPIOC->IDR;
+  uint32_t a_inputs = GPIOA->IDR, b_inputs = GPIOB->IDR, c_inputs = GPIOC->IDR;
   uint32_t exti = __clz(EXTI->PR);
   EXTI->PR = (1 << 31) >> exti;
   switch (exti) {
     case 31 - 5:
-      EXTI5_Handler(inputs);
+      EXTI5_Handler(c_inputs);
       break;
     case 31 - 7:
-      EXTI7_Handler(inputs);
+      EXTI7_Handler(a_inputs);
       break;
     case 31 - 8:
-      EXTI8_Handler(inputs);
+      EXTI8_Handler(b_inputs);
       break;
     case 31 - 9:
-      EXTI9_Handler(inputs);
+      EXTI9_Handler(b_inputs);
       break;
   }
 }
@@ -156,27 +154,27 @@
 }
 
 void EXTI15_10_IRQHandler(void) {
-  uint32_t inputs = GPIOC->IDR;
+  uint32_t a_inputs = GPIOA->IDR, b_inputs = GPIOB->IDR, c_inputs = GPIOC->IDR;
   uint32_t exti = __clz(EXTI->PR);
   EXTI->PR = (1 << 31) >> exti;
   switch (exti) {
     case 31 - 10:
-      EXTI10_Handler(inputs);
+      EXTI10_Handler(b_inputs);
       break;
     case 31 - 11:
-      EXTI11_Handler(inputs);
+      EXTI11_Handler(a_inputs);
       break;
     case 31 - 12:
-      EXTI12_Handler(inputs);
+      EXTI12_Handler(a_inputs);
       break;
     case 31 - 13:
-      EXTI13_Handler(inputs);
+      EXTI13_Handler(c_inputs);
       break;
     case 31 - 14:
-      EXTI14_Handler(inputs);
+      EXTI14_Handler(c_inputs);
       break;
     case 31 - 15:
-      EXTI15_Handler(inputs);
+      EXTI15_Handler(c_inputs);
       break;
   }
 }