X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=int%2Fint.c;h=a946908763a3c914c46bfeb8e9aea44faadb2016;hb=c816d5c0477f15631058928c9aad4fbd63d50156;hp=71d3b4c5253e2ec4f4f022d80998d5ed0f01ce16;hpb=48dfd7ad2f104321657a3ea44d33340761c95c2e;p=mTask.git diff --git a/int/int.c b/int/int.c index 71d3b4c..a946908 100644 --- a/int/int.c +++ b/int/int.c @@ -1,4 +1,5 @@ #include +#include #include "mTaskSymbols.h" @@ -17,9 +18,20 @@ char program[PROGRAMSIZE+1] = {0}; int stack[STACKSIZE+1] = {0}; +bool input_available(){ + struct timeval tv; + fd_set fds; + tv.tv_sec = 0; + tv.tv_usec = 0; + FD_ZERO(&fds); + FD_SET(0, &fds); + select(1, &fds, NULL, NULL, &tv); + return FD_ISSET(0, &fds); +} + + int main(void) { - // char c; int pl, sp, pc; @@ -101,17 +113,31 @@ int main(void) pc = pc + program[pc]; break; case BCJmpT: - if (stack[sp]) - pc = pc + program[pc]; - else - pc++; + pc += stack[sp] ? program[pc] : 1; break; case BCJmpF: - if (stack[sp]) - pc++; - else - pc = pc + program[pc]; + pc += stack[sp] ? 1 : program[pc]; + break; + case BCSERIALAVAIL: + printf("SerialAvailable()\n"); + break; + case BCSERIALPRINT: + printf("SerialPrint()\n"); + break; + case BCSERIALPRINTLN: + printf("SerialPrintln()\n"); + break; + case BCSERIALREAD: + printf("SerialRead()\n"); + break; + case BCSERIALPARSEINT: + printf("SerialParseInt()\n"); + break; + case BCANALOGREAD: + printf("AnalogRead()\n"); break; + case BCANALOGWRITE: + printf("AnalogWrite()\n"); default: die("Unrecognized command: %X\n", program[--pc]); }