#include "mTaskSymbols.h"
#include "interpret.h"
-#include "misc.h"
+#include "interface.h"
#include "task.h"
#include "sds.h"
int pc = 0;
int sp = 0;
char stack[STACKSIZE] = {0};
- printf("Running task with length: %d\n", plen);
+ debug("Running task with length: %d\n", plen);
while(pc != plen){
- //printf("program: %d\n", program[pc]);
- //printf("stack: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
- // stack[0], stack[1], stack[2], stack[3], stack[4],
- // stack[5], stack[6], stack[7], stack[8], stack[9]);
+ debug("program: %d\n", program[pc]);
+ debug("stack: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
+ 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\n");
case BCSERIALPARSEINT: trace("SerialParseInt()\n");
break;
case BCANALOGREAD: trace("AnalogRead(%d)\n", program[pc]);
- pc++;
+ stack[sp++] = read_apin(program[pc++]);
break;
case BCANALOGWRITE: trace("AnalogWrite(%d)\n", program[pc]);
- pc++;
+ write_apin(program[pc++], stack[sp-1]);
+ sp--;
break;
case BCDIGITALREAD: trace("DigitalRead(%d)\n", program[pc]);
- pc++;
+ stack[sp++] = read_dpin(program[pc++]);
break;
case BCDIGITALWRITE: trace("DigitalWrite(%d)\n", program[pc]);
- pc++;
+ write_dpin(program[pc++], stack[sp-1]);
+ sp--;
break;
default:
trace("unrecognized\n");