- if (full)
- fprintf(f, "%s -- \n\n",
- prog);
-
- fprintf(f, "Usage: %s\n",
- prog);
-
- if (full) {
- fprintf(f, "\nOptions:\n"
- "\t-h -- this screen\n");
-
- fprintf(f, "\n%78s\n", src_id_);
- }
-}
-
-static int file_load(struct dcpu16 *d, char *filename) {
- FILE *f;
- size_t r;
-
- f = fopen(filename, "rb");
- if (f == NULL)
- {
- fprintf(stderr, "%s(%s):%s\n", "fopen", filename, strerror(errno));
- return -1;
- }
-
- r = fread(d->ram, sizeof(WORD), RAM_SIZE, f);
- TRACE("read %zu words", r);
-
- if (ferror(f)) {
- fprintf(stderr, "%s():%s\n", "fread", strerror(errno));
+ /* and jump over next instr if needed */
+ if (d->skip_) {
+ instruction_decode_(d, d->pc, &opcode, &a, &b, &instr_len);
+ d->pc += instr_len;
+ d->skip_ = 0;
+ TRACE("++ SKIPPED %x words", instr_len);