#define X OUT_A #define Y OUT_B #define Z OUT_C #define LIGHT IN_1 #define LIMIT IN_2 #define FX Fwd(X, 7) #define RX Rev(X, 7) #define OX Off(X) #define FY Fwd(Y, 7) #define RY Rev(Y, 7) #define OY Off(Y) #define S(t) Sleep(t * 7); OX; OY; Sleep(3) #define DOWN do { \ Rev(Z, 4); \ Sleep(5); \ Off(Z); \ Sleep(5); \ } while (false) #define UP do { \ Fwd(Z, 4); \ Sleep(10); \ Off(Z); \ } while (false) task main { Sensor(LIGHT, IN_LIGHT); Sensor(LIMIT, IN_SWITCH); Sensor(LIMIT, IN_SWITCH); UP; /* carriage return */ while (LIMIT == 0) { RX; } while (LIMIT == 1) { FX; } Sleep(50); OX; /* B */ DOWN; OX; RY; S(6); FX; OY; S(2); FX; FY; S(1); OX; FY; S(1); RX; FY; S(1); RX; OY; S(2); FX; OY; S(3); FX; FY; S(1); OX; FY; S(1); RX; FY; S(1); RX; OY; S(3); UP; FX; OY; S(6); /* E */ DOWN; FX; OY; S(4); RX; OY; S(4); OX; RY; S(3); FX; OY; S(3); RX; OY; S(3); OX; RY; S(3); FX; OY; S(4); RX; OY; S(4); UP; FX; FY; S(6); /* N */ DOWN; OX; RY; S(6); FX; FY; S(4); OX; FY; S(2); OX; RY; S(6); UP; OX; FY; S(6); FX; OY; S(2); /* space */ FX; OY; S(6); /* W */ OX; RY; S(6); DOWN; OX; FY; S(6); FX; RY; S(2); OX; RY; S(2); OX; FY; S(2); FX; FY; S(2); OX; RY; S(6); UP; OX; FY; S(6); FX; OY; S(2); /* I */ DOWN; OX; RY; S(6); UP; OX; FY; S(6); FX; OY; S(2); /* L */ OX; RY; S(6); DOWN; OX; FY; S(6); FX; OY; S(4); UP; FX; OY; S(2); /* L */ OX; RY; S(6); DOWN; OX; FY; S(6); FX; OY; S(4); UP; FX; OY; S(2); /* I */ DOWN; OX; RY; S(6); UP; OX; FY; S(6); FX; OY; S(2); /* A */ DOWN; OX; RY; S(4); FX; RY; S(2); FX; FY; S(2); OX; FY; S(4); UP; RX; OY; S(4); OX; RY; S(2); DOWN; FX; OY; S(4); UP; OX; FY; S(2); FX; OY; S(2); /* M */ DOWN; OX; RY; S(6); FX; FY; S(2); FX; RY; S(2); OX; FY; S(6); UP; FX; OY; S(2); /* S */ OX; RY; S(1); DOWN; FX; FY; S(1); FX; OY; S(2); FX; RY; S(1); OX; RY; S(1); RX; RY; S(1); RX; OY; S(2); RX; RY; S(1); OX; RY; S(1); FX; RY; S(1); FX; OY; S(2); FX; FY; S(1); UP; OX; FY; S(5); FX; OY; S(2); /* O */ OX; RY; S(1); DOWN; OX; RY; S(4); FX; RY; S(1); FX; OY; S(2); FX; FY; S(1); OX; FY; S(4); RX; FY; S(1); RX; OY; S(2); RX; RY; S(1); UP; OX; FY; S(1); FX; OY; S(6); /* N */ DOWN; OX; RY; S(6); FX; FY; S(4); OX; FY; S(2); OX; RY; S(6); UP; OX; FY; S(6); FX; OY; S(2); }