demo
[mTask.git] / int / interpret.c
index 06f46a0..39c24b0 100644 (file)
@@ -10,7 +10,8 @@
 #ifdef STM
 #define trace(op, ...) {};
 #else
-#define trace(op, ...) printf("pc: %d, sp: %d, op: " op "\n", pc, sp, ##__VA_ARGS__);
+#define trace(op, ...) {};
+//#define trace(op, ...) printf("pc: %d, sp: %d, op: " op "\n", pc, sp, ##__VA_ARGS__);
 #endif
 
 #define f16(p) program[pc]*265+program[pc+1]
@@ -24,10 +25,10 @@ void run_task(struct task *t)
        char stack[STACKSIZE] = {0};
        debug("Running task with length: %d", plen);
        while(pc < plen){
-               debug("program: %d", program[pc]);
-               debug("stack: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",
-                       stack[0], stack[1], stack[2], stack[3], stack[4],
-                       stack[5], stack[6], stack[7], stack[8], stack[9]);
+//             debug("program: %d", program[pc]);
+//             debug("stack: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",
+//                     stack[0], stack[1], stack[2], stack[3], stack[4],
+//                     stack[5], stack[6], stack[7], stack[8], stack[9]);
 
                switch(program[pc++]){
                case BCNOP: trace("nop");
@@ -138,6 +139,12 @@ void run_task(struct task *t)
                        write_dpin(program[pc++], stack[sp-1]);
                        sp--;
                        break;
+               case BCLEDON: trace("LedOn(%d)", program[pc]);
+                       led_on(program[pc++]);
+                       break;
+               case BCLEDOFF: trace("LedOn(%d)", program[pc]);
+                       led_off(program[pc++]);
+                       break;
                default:
                        trace("unrecognized");
                        die("Unrecognized command: %d", program[pc-1]);