sfr at 0xFD P0DIR;
sfr at 0xFE P1DIR;
-sfr at 0xFE P2DIR;
+sfr at 0xFF P2DIR;
sfr at 0x8F P0INP;
sfr at 0xF6 P1INP;
sfr at 0xF7 P2INP;
nop \
_endasm;
+#if 0
+void
+delay (int n)
+{
+ int i, j, k;
+
+ for (k = 0; k < n; k++) {
+ for (j = 0; j < 50; j++)
+ for (i = 0; i < 1000; i++)
+ nop();
+ }
+}
+
+void
+dit() {
+ P1 = 0xff;
+ delay(1);
+ P1 = 0xfd;
+ delay(1);
+}
+
+void
+dah () {
+ P1 = 0xff;
+ delay(3);
+ P1 = 0xfd;
+ delay(1);
+}
+
+void
+charspace () {
+ delay(2);
+}
+
+void
+wordspace () {
+ delay(8);
+}
+
+#define _ dit();
+#define ___ dah();
+#define C charspace();
+#define W wordspace();
+
+#endif
+
main ()
{
- int i, j;
+#if 0
/* Set p1_1 to output */
P1DIR = 0x02;
P1INP = 0x00;
P2INP = 0x00;
for (;;) {
- P1 = 0xff;
- for (j = 0; j < 100; j++)
- for (i = 0; i < 1000; i++)
- nop();
- P1 = 0xfd;
- for (j = 0; j < 100; j++)
- for (i = 0; i < 1000; i++)
- nop();
+ ___ _ ___ _ C ___ ___ _ ___ W /* cq */
+ ___ _ _ C _ W /* de */
+ ___ _ ___ C ___ _ _ C /* kd */
+ ___ ___ _ _ _ C _ _ _ C /* 7s */
+ ___ ___ _ ___ C ___ ___ _ W /* qg */
}
+#else
+ P1DIR = 0x02;
+ for (;;);
+#endif
}