diff options
author | Vladimir Menshakov | 2011-06-10 09:53:35 +0400 |
---|---|---|
committer | Alyssa Milburn | 2011-06-15 17:33:55 +0200 |
commit | 8cc8e73d1f80065c6359f98722e1a4de2cb62654 (patch) | |
tree | 4151f746611e04ea78fa6c555f21e98c0ea5de10 /engines | |
parent | 97310ab904eea1a80c2b2235e0a31a01f1fbaaae (diff) | |
download | scummvm-rg350-8cc8e73d1f80065c6359f98722e1a4de2cb62654.tar.gz scummvm-rg350-8cc8e73d1f80065c6359f98722e1a4de2cb62654.tar.bz2 scummvm-rg350-8cc8e73d1f80065c6359f98722e1a4de2cb62654.zip |
DREAMWEB: blacklisted vga blitting functions
Diffstat (limited to 'engines')
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 186 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 4 | ||||
-rw-r--r-- | engines/dreamweb/dreamweb.cpp | 16 |
3 files changed, 20 insertions, 186 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index c9fcfb3e6b..b27c44e5bc 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -49,9 +49,6 @@ void switchryanon(Context &context); void drawflags(Context &context); void getdimension(Context &context); void getflagunderp(Context &context); -void multidump(Context &context); -void multiput(Context &context); -void multiget(Context &context); void dumpblink(Context &context); void showblink(Context &context); void showframe(Context &context); @@ -429,7 +426,6 @@ void rollendcredits2(Context &context); void clearstartpal(Context &context); void fadecalculation(Context &context); void frameoutfx(Context &context); -void frameoutnm(Context &context); void frameoutbh(Context &context); void frameoutv(Context &context); void putunderzoom(Context &context); @@ -4357,142 +4353,6 @@ deloneloop: return; } -void multiget(Context & context) { - context.ax = context.bx; - context.bx = (320); - context._mul(context.bx); - context._add(context.di, context.ax); - context.es = context.data.word(kWorkspace); - context.es = context.ds; - context.ds = context.es; - context._xchg(context.di, context.si); - context.al = context.cl; - context.ah = 0; - context.dx = (320); - context._sub(context.dx, context.ax); - context.al = context.cl; - context._and(context.al, 1); - if (!context.flags.z()) goto oddwidth2; - context.bl = context.cl; - context.bh = 0; - context.ax = 1819; - context._shr(context.bx, 1); - context._sub(context.ax, context.bx); - context.cl = context.ch; - context.ch = 0; -multiloop3: - __dispatch_call(context, context.ax); - context._add(context.si, context.dx); - if (--context.cx) goto multiloop3; - return; -oddwidth2: - context.bl = context.cl; - context.bh = 0; - context._shr(context.bx, 1); - context.ax = 1819; - context._sub(context.ax, context.bx); - context.cl = context.ch; - context.ch = 0; -multiloop4: - __dispatch_call(context, context.ax); - context._movsb(); - context._add(context.si, context.dx); - if (--context.cx) goto multiloop4; - return; -} - -void multiput(Context & context) { - context.ax = context.bx; - context.bx = (320); - context._mul(context.bx); - context._add(context.di, context.ax); - context.es = context.data.word(kWorkspace); - context.al = context.cl; - context.ah = 0; - context.dx = (320); - context._sub(context.dx, context.ax); - context.al = context.cl; - context._and(context.al, 1); - if (!context.flags.z()) goto oddwidth3; - context.bl = context.cl; - context.bh = 0; - context._shr(context.bx, 1); - context.ax = 1819; - context._sub(context.ax, context.bx); - context.cl = context.ch; - context.ch = 0; -multiloop5: - __dispatch_call(context, context.ax); - context._add(context.di, context.dx); - if (--context.cx) goto multiloop5; - return; -oddwidth3: - context.bl = context.cl; - context.bh = 0; - context._shr(context.bx, 1); - context.ax = 1819; - context._sub(context.ax, context.bx); - context.cl = context.ch; - context.ch = 0; -multiloop6: - __dispatch_call(context, context.ax); - context._movsb(); - context._add(context.di, context.dx); - if (--context.cx) goto multiloop6; - return; -} - -void multidump(Context & context) { - context.dx = 0x0a000; - context.es = context.dx; - context.ds = context.data.word(kWorkspace); - context.ax = context.bx; - context.bx = (320); - context._mul(context.bx); - context._add(context.di, context.ax); - context.dx = (320); - context.si = context.di; - context.al = context.cl; - context._and(context.al, 1); - if (!context.flags.z()) goto oddwidth; - context.bl = context.cl; - context.bh = 0; - context._shr(context.bx, 1); - context.ax = 1819; - context._sub(context.ax, context.bx); - context.bl = context.cl; - context.bh = 0; - context._neg(context.bx); - context._add(context.bx, context.dx); - context.cl = context.ch; - context.ch = 0; -multiloop1: - __dispatch_call(context, context.ax); - context._add(context.di, context.bx); - context._add(context.si, context.bx); - if (--context.cx) goto multiloop1; - return; -oddwidth: - context.bl = context.cl; - context.bh = 0; - context._shr(context.bx, 1); - context.ax = 1819; - context._sub(context.ax, context.bx); - context.bl = context.cl; - context.bh = 0; - context._neg(context.bx); - context._add(context.bx, (320)); - context.cl = context.ch; - context.ch = 0; -multiloop2: - __dispatch_call(context, context.ax); - context._movsb(); - context._add(context.di, context.bx); - context._add(context.si, context.bx); - if (--context.cx) goto multiloop2; - return; -} - void width160(Context & context) { context._movsw(); context._movsw(); @@ -4978,48 +4838,6 @@ backtosolid: return; } -void frameoutnm(Context & context) { - context.push(context.dx); - context.ax = context.bx; - context.bx = context.dx; - context._mul(context.bx); - context._add(context.di, context.ax); - context.dx = context.pop(); - context.push(context.cx); - context.ch = 0; - context._sub(context.dx, context.cx); - context.cx = context.pop(); - context.al = context.cl; - context._and(context.al, 1); - if (!context.flags.z()) goto oddwidthframe; - context.bl = context.cl; - context.bh = 0; - context.ax = 1819; - context._shr(context.bx, 1); - context._sub(context.ax, context.bx); - context.cl = context.ch; - context.ch = 0; -nmloop1: - __dispatch_call(context, context.ax); - context._add(context.di, context.dx); - if (--context.cx) goto nmloop1; - return; -oddwidthframe: - context.bl = context.cl; - context.bh = 0; - context._shr(context.bx, 1); - context.ax = 1819; - context._sub(context.ax, context.bx); - context.cl = context.ch; - context.ch = 0; -nmloop2: - __dispatch_call(context, context.ax); - context._movsb(); - context._add(context.di, context.dx); - if (--context.cx) goto nmloop2; - return; -} - void frameoutbh(Context & context) { context.push(context.dx); context.ax = context.bx; @@ -21517,14 +21335,10 @@ void __dispatch_call(Context &context, unsigned addr) { case 0xc20c: doshake(context); break; case 0xc210: zoom(context); break; case 0xc214: delthisone(context); break; - case 0xc218: multiget(context); break; - case 0xc21c: multiput(context); break; - case 0xc220: multidump(context); break; case 0xc224: width160(context); break; case 0xc228: doblocks(context); break; case 0xc22c: showframe(context); break; case 0xc230: frameoutv(context); break; - case 0xc234: frameoutnm(context); break; case 0xc238: frameoutbh(context); break; case 0xc23c: frameoutfx(context); break; case 0xc240: transferinv(context); break; diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index 228bf14df8..fcbf738a00 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -12,6 +12,10 @@ namespace dreamgen { void quickquit(Context &context); void quickquit2(Context &context); void seecommandtail(Context &context); + void multiget(Context &context); + void multiput(Context &context); + void multidump(Context &context); + void frameoutnm(Context &context); void keyboardread(Context &context); void resetkeyboard(Context &context); void setkeyboardint(Context &context); diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp index 94c6e7e6e7..adc2cbbaa2 100644 --- a/engines/dreamweb/dreamweb.cpp +++ b/engines/dreamweb/dreamweb.cpp @@ -227,6 +227,22 @@ static inline DreamWeb::DreamWebEngine *engine() { return DreamWeb::DreamWebEngine::instance(); } +void multiget(Context &context) { + ::error("multiget"); +} + +void multiput(Context &context) { + ::error("multiput"); +} + +void multidump(Context &context) { + ::error("multidump"); +} + +void frameoutnm(Context &context) { + ::error("frameoutnm"); +} + void seecommandtail(Context &context) { context.data.word(kSoundbaseadd) = 0x220; context.data.byte(kSoundint) = 5; |