From dc948f592ad4dd37f0349c4faa12e30eb00aa158 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 9 May 2012 01:34:43 +0000 Subject: improve prog dump, move hardware registration out of device module --- emu.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'emu.c') diff --git a/emu.c b/emu.c index c1e29e1..afcc646 100644 --- a/emu.c +++ b/emu.c @@ -103,11 +103,16 @@ hwq(struct context *c, unsigned short *a) { struct device *d = &c->dev[*a]; - c->reg[A] = d->id; - c->reg[B] = d->id >> 16; - c->reg[C] = d->version; - c->reg[X] = d->manu; - c->reg[Y] = d->manu >> 16; + if (d) { + c->reg[A] = d->id; + c->reg[B] = d->id >> 16; + c->reg[C] = d->version; + c->reg[X] = d->manu; + c->reg[Y] = d->manu >> 16; + } else { + warnx("invalid device %d", *a); + errors++; + } cycle += 4; } @@ -117,7 +122,7 @@ hwi(struct context *c, unsigned short *a) { struct device *d = &c->dev[*a]; - if (d->cb) { + if (d && d->cb) { d->cb(c); } else { warnx("invalid device %d", *a); -- cgit v1.2.3