X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=minsk.c;h=50038f6697ed40d61d3b45865ab11908383ab4cd;hb=HEAD;hp=3b8f9f5bb1b124b648159c28d73c0db87768b7cc;hpb=31447590d76314f600d8c578e564b148f45ba102;p=minsk.git diff --git a/minsk.c b/minsk.c index 3b8f9f5..50038f6 100644 --- a/minsk.c +++ b/minsk.c @@ -44,7 +44,7 @@ typedef unsigned long long int word; #define SIGN_MASK 01000000000000ULL #define VAL_MASK 00777777777777ULL -typedef struct loc +typedef struct loc { int block; int address; @@ -184,7 +184,7 @@ NORETURN static void parse_error(char *russian_msg, char *english_msg) { if (error_hook) error_hook("Parse error"); - + if (english) printf("Parse error (line %d): %s\n", lino, english_msg); else @@ -472,7 +472,7 @@ static void run(void) int op = (w >> 30) & 0177; // Operation code int ax = (w >> 28) & 3; // Address extensions supported in Minsk-22 mode int ix = (w >> 24) & 15; // Indexing - loc x = { ax & 2, (w >> 12) & 07777 }; // Operands (original form) + loc x = { ax >> 1, (w >> 12) & 07777 }; // Operands (original form) loc y = { ax & 1, w & 07777 }; loc xi=x, yi=y; // (indexed form) if (trace) @@ -1284,7 +1284,7 @@ static void init_memory(int set_password) // not +00 00 0000 0000 (NOP). Otherwise, an empty program would reveal // the location of the password :) for (int i=0; i