From dd5f565cf3e5f63a48978b1732e2643944bf4743 Mon Sep 17 00:00:00 2001 From: Veit Heller Date: Sun, 3 Aug 2014 21:34:02 +0200 Subject: [PATCH] Vugfix in brainf*ck interpreter --- nbfi/src/nbfi.c | 16 ++++++++-------- vvm/bin/vvm | Bin 14252 -> 0 bytes 2 files changed, 8 insertions(+), 8 deletions(-) delete mode 100755 vvm/bin/vvm diff --git a/nbfi/src/nbfi.c b/nbfi/src/nbfi.c index 1809e4b..72aaf52 100644 --- a/nbfi/src/nbfi.c +++ b/nbfi/src/nbfi.c @@ -26,16 +26,16 @@ static inline void die(int code, const char* message){ } struct instruction_t{ - unsigned short operator; - unsigned short operand; + unsigned int operator; + unsigned int operand; }; static struct instruction_t program[PROGRAM_SIZE]; -static unsigned short stack[MAX_SIZE]; -static unsigned int sp = 0; +static unsigned int stack[MAX_SIZE]; +static unsigned long sp = 0; void compile(FILE* fp){ - unsigned short pc = 0, jmp_pc; + unsigned int pc = 0, jmp_pc; int ip; while ((ip = getc(fp)) != EOF && pc < MAX_SIZE){ switch (ip) { @@ -73,7 +73,7 @@ void compile(FILE* fp){ } void execute(){ - unsigned short data[DATA_SIZE], pc = 0; + unsigned int data[DATA_SIZE], pc = 0; unsigned int ptr = DATA_SIZE; while (--ptr) data[ptr] = 0; while (program[pc].operator != OP_END && ptr < DATA_SIZE){ @@ -82,8 +82,8 @@ void execute(){ case OP_DEC_DP: ptr--; break; case OP_INC_VAL: data[ptr]++; break; case OP_DEC_VAL: data[ptr]--; break; - case OP_OUT: putchar(data[ptr]); break; - case OP_IN: data[ptr] = (short unsigned int)getchar(); break; + case OP_OUT: putchar((signed int)data[ptr]); break; + case OP_IN: data[ptr] = (unsigned int)getchar(); break; case OP_JMP_FWD: if(!data[ptr]) { pc = program[pc].operand; } break; case OP_JMP_BCK: if(data[ptr]) { pc = program[pc].operand; } break; default: die(2, "Unknown instruction."); diff --git a/vvm/bin/vvm b/vvm/bin/vvm deleted file mode 100755 index 0314d533e75ef91375bbfa7653ba938ce4bb5400..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14252 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