Initial framework for C code.
[pdp11-memory-test] / pdp11.c
diff --git a/pdp11.c b/pdp11.c
new file mode 100644 (file)
index 0000000..c96ddf9
--- /dev/null
+++ b/pdp11.c
@@ -0,0 +1,34 @@
+#include <stdint.h>
+
+/*
+ * Polled console I/O
+ */
+
+#define RCSR (*((volatile uint16_t *)0177560))
+#define RBUF (*((volatile uint16_t *)0177562))
+#define XCSR (*((volatile uint16_t *)0177564))
+#define XBUF (*((volatile uint16_t *)0177566))
+
+void
+putch(uint16_t c)
+{
+    while((XCSR && 0200) == 0) continue;
+    XBUF = c;
+}
+
+uint16_t
+getch(void)
+{
+    while((RCSR && 0200) == 0) continue;
+    return RBUF;
+}
+
+/*
+ * Busy-loop
+ */
+
+void
+wait(uint16_t count)
+{
+    while (count--) continue;
+}