X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=client%2Finterpret.c;h=b9d0c88eddae750ea93400e50ab1f0a01ce58fc3;hb=59c7c761163b0cc5215563644ca60e2a47b9c9a9;hp=ac0c0bc1e45601aa6c3d9b183c5442369acd6616;hpb=6f7f4cf5968d6d8a626a15eac77026236fc0667e;p=mTask.git diff --git a/client/interpret.c b/client/interpret.c index ac0c0bc..b9d0c88 100644 --- a/client/interpret.c +++ b/client/interpret.c @@ -37,8 +37,21 @@ void run_task(struct task *t) pc++; break; case BCPUSH: trace("push %d", program[pc]*265+program[pc+1]); - stack[sp++] = f16(pc); - pc+=2; + switch(program[pc++]){ + //Long + case 'l': + //Int + case 'i': + stack[sp++] = f16(pc); + pc+=2; + break; + case 'b': //Bool + case 'c': //Character + case 'B': //Button + case 'L': //UserLED + stack[sp++] = program[pc++]; + break; + } break; case BCPOP: trace("pop"); sp--; @@ -125,6 +138,7 @@ void run_task(struct task *t) break; case BCSERIALPARSEINT: trace("SerialParseInt()"); break; +#if HAVEAIO == 1 case BCANALOGREAD: trace("AnalogRead(%d)", program[pc]); stack[sp++] = read_apin(program[pc++]); break; @@ -132,6 +146,8 @@ void run_task(struct task *t) write_apin(program[pc++], stack[sp-1]); sp--; break; +#endif +#if HAVEDIO == 1 case BCDIGITALREAD: trace("DigitalRead(%d)", program[pc]); stack[sp++] = read_dpin(program[pc++]); break; @@ -139,6 +155,8 @@ void run_task(struct task *t) write_dpin(program[pc++], stack[sp-1]); sp--; break; +#endif +#if HAVELED == 1 case BCLEDON: trace("LedOn(%d)", program[pc]); led_on(stack[sp-1]); sp--; @@ -147,6 +165,7 @@ void run_task(struct task *t) led_off(stack[sp-1]); sp--; break; +#endif default: trace("unrecognized"); die("Unrecognized command: %d", program[pc-1]);