diff options
Diffstat (limited to 'engines/dreamweb/dreamgen.cpp')
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 4801 |
1 files changed, 614 insertions, 4187 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 3c10ea69d1..8d3518d5f6 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -1694,116 +1694,6 @@ notendtelly: showgamereel(); } -void DreamGenContext::madman() { - STACK_CHECK; - data.word(kWatchingtime) = 2; - checkspeed(); - if (!flags.z()) - goto nomadspeed; - ax = es.word(bx+3); - _cmp(ax, 364); - if (!flags.c()) - goto ryansded; - _cmp(ax, 10); - if (!flags.z()) - goto notfirstmad; - push(es); - push(bx); - push(ax); - dx = 2247; - loadtemptext(); - ax = pop(); - bx = pop(); - es = pop(); - data.byte(kCombatcount) = -1; - data.byte(kSpeechcount) = 0; -notfirstmad: - _inc(ax); - _cmp(ax, 294); - if (flags.z()) - goto madmanspoken; - _cmp(ax, 66); - if (!flags.z()) - goto nomadspeak; - _inc(data.byte(kCombatcount)); - push(es); - push(bx); - madmantext(); - bx = pop(); - es = pop(); - ax = 53; - _cmp(data.byte(kCombatcount), 64); - if (flags.c()) - goto nomadspeak; - _cmp(data.byte(kCombatcount), 70); - if (flags.z()) - goto killryan; - _cmp(data.byte(kLastweapon), 8); - if (!flags.z()) - goto nomadspeak; - data.byte(kCombatcount) = 72; - data.byte(kLastweapon) = -1; - data.byte(kMadmanflag) = 1; - ax = 67; - goto nomadspeak; -killryan: - ax = 310; -nomadspeak: - es.word(bx+3) = ax; -nomadspeed: - showgamereel(); - al = data.byte(kMapx); - es.byte(bx+1) = al; - madmode(); - return; -madmanspoken: - _cmp(data.byte(kWongame), 1); - if (flags.z()) - return /* (alreadywon) */; - data.byte(kWongame) = 1; - push(es); - push(bx); - getridoftemptext(); - bx = pop(); - es = pop(); - return; -ryansded: - data.byte(kMandead) = 2; - showgamereel(); -} - -void DreamGenContext::madmantext() { - STACK_CHECK; - _cmp(data.byte(kSpeechcount), 63); - if (!flags.c()) - return /* (nomadtext) */; - _cmp(data.byte(kCh1playing), 255); - if (!flags.z()) - return /* (nomadtext) */; - al = data.byte(kSpeechcount); - _inc(data.byte(kSpeechcount)); - _add(al, 47); - bl = 72; - bh = 80; - cx = 90; - dx = 1; - ah = 82; - setuptimedtemp(); -} - -void DreamGenContext::madmode() { - STACK_CHECK; - data.word(kWatchingtime) = 2; - data.byte(kPointermode) = 0; - _cmp(data.byte(kCombatcount), 65); - if (flags.c()) - return /* (iswatchmad) */; - _cmp(data.byte(kCombatcount), 70); - if (!flags.c()) - return /* (iswatchmad) */; - data.byte(kPointermode) = 2; -} - void DreamGenContext::priesttext() { STACK_CHECK; _cmp(es.word(bx+3), 2); @@ -2160,22 +2050,6 @@ void DreamGenContext::addtopeoplelist() { _add(data.word(kListpos), 5); } -void DreamGenContext::showgamereel() { - STACK_CHECK; - ax = es.word(bx+3); - _cmp(ax, 512); - if (!flags.c()) - return /* (noshow) */; - data.word(kReelpointer) = ax; - push(es); - push(bx); - plotreel(); - bx = pop(); - es = pop(); - ax = data.word(kReelpointer); - es.word(bx+3) = ax; -} - void DreamGenContext::checkspeed() { STACK_CHECK; _cmp(data.byte(kLastweapon), -1); @@ -2202,217 +2076,6 @@ void DreamGenContext::delsprite() { _stosb(cx, true); } -void DreamGenContext::checkone() { - STACK_CHECK; - push(cx); - al = ch; - ah = 0; - cl = 4; - _shr(ax, cl); - dl = al; - cx = pop(); - al = cl; - ah = 0; - cl = 4; - _shr(ax, cl); - ah = dl; - push(ax); - ch = 0; - cl = al; - push(cx); - al = ah; - ah = 0; - cx = 11; - _mul(cx); - cx = pop(); - _add(ax, cx); - cx = 3; - _mul(cx); - si = ax; - ds = data.word(kBuffers); - _add(si, (0+(228*13)+32+60+(32*32))); - _lodsw(); - cx = ax; - _lodsb(); - dx = pop(); -} - -void DreamGenContext::findsource() { - STACK_CHECK; - ax = data.word(kCurrentframe); - _cmp(ax, 160); - if (!flags.c()) - goto over1000; - ds = data.word(kReel1); - data.word(kTakeoff) = 0; - return; -over1000: - _cmp(ax, 320); - if (!flags.c()) - goto over1001; - ds = data.word(kReel2); - data.word(kTakeoff) = 160; - return; -over1001: - ds = data.word(kReel3); - data.word(kTakeoff) = 320; -} - -void DreamGenContext::mainman() { - STACK_CHECK; - _cmp(data.byte(kResetmanxy), 1); - if (!flags.z()) - goto notinnewroom; - data.byte(kResetmanxy) = 0; - al = data.byte(kRyanx); - ah = data.byte(kRyany); - es.word(bx+10) = ax; - es.byte(bx+29) = 0; - goto executewalk; -notinnewroom: - _dec(es.byte(bx+22)); - _cmp(es.byte(bx+22), -1); - if (flags.z()) - goto executewalk; - return; -executewalk: - es.byte(bx+22) = 0; - al = data.byte(kTurntoface); - _cmp(al, data.byte(kFacing)); - if (flags.z()) - goto facingok; - aboutturn(); - goto notwalk; -facingok: - _cmp(data.byte(kTurndirection), 0); - if (flags.z()) - goto alreadyturned; - _cmp(data.byte(kLinepointer), 254); - if (!flags.z()) - goto alreadyturned; - data.byte(kReasseschanges) = 1; - al = data.byte(kFacing); - _cmp(al, data.byte(kLeavedirection)); - if (!flags.z()) - goto alreadyturned; - checkforexit(); -alreadyturned: - data.byte(kTurndirection) = 0; - _cmp(data.byte(kLinepointer), 254); - if (!flags.z()) - goto walkman; - es.byte(bx+29) = 0; - goto notwalk; -walkman: - al = es.byte(bx+29); - _inc(al); - _cmp(al, 11); - if (!flags.z()) - goto notanimend1; - al = 1; -notanimend1: - es.byte(bx+29) = al; - walking(); - _cmp(data.byte(kLinepointer), 254); - if (flags.z()) - goto afterwalk; - al = data.byte(kFacing); - _and(al, 1); - if (flags.z()) - goto isdouble; - al = es.byte(bx+29); - _cmp(al, 2); - if (flags.z()) - goto afterwalk; - _cmp(al, 7); - if (flags.z()) - goto afterwalk; -isdouble: - walking(); -afterwalk: - _cmp(data.byte(kLinepointer), 254); - if (!flags.z()) - goto notwalk; - al = data.byte(kTurntoface); - _cmp(al, data.byte(kFacing)); - if (!flags.z()) - goto notwalk; - data.byte(kReasseschanges) = 1; - al = data.byte(kFacing); - _cmp(al, data.byte(kLeavedirection)); - if (!flags.z()) - goto notwalk; - checkforexit(); -notwalk: - al = data.byte(kFacing); - ah = 0; - di = 1105; - _add(di, ax); - al = cs.byte(di); - _add(al, es.byte(bx+29)); - es.byte(bx+15) = al; - ax = es.word(bx+10); - data.byte(kRyanx) = al; - data.byte(kRyany) = ah; -} - -void DreamGenContext::aboutturn() { - STACK_CHECK; - _cmp(data.byte(kTurndirection), 1); - if (flags.z()) - goto incdir; - _cmp(data.byte(kTurndirection), -1); - if (flags.z()) - goto decdir; - al = data.byte(kFacing); - _sub(al, data.byte(kTurntoface)); - if (!flags.c()) - goto higher; - _neg(al); - _cmp(al, 4); - if (!flags.c()) - goto decdir; - goto incdir; -higher: - _cmp(al, 4); - if (!flags.c()) - goto incdir; - goto decdir; -incdir: - data.byte(kTurndirection) = 1; - al = data.byte(kFacing); - _inc(al); - _and(al, 7); - data.byte(kFacing) = al; - es.byte(bx+29) = 0; - return; -decdir: - data.byte(kTurndirection) = -1; - al = data.byte(kFacing); - _dec(al); - _and(al, 7); - data.byte(kFacing) = al; - es.byte(bx+29) = 0; -} - -void DreamGenContext::facerightway() { - STACK_CHECK; - push(es); - push(bx); - getroomspaths(); - al = data.byte(kManspath); - ah = 0; - _add(ax, ax); - _add(ax, ax); - _add(ax, ax); - _add(bx, ax); - al = es.byte(bx+7); - data.byte(kTurntoface) = al; - data.byte(kLeavedirection) = al; - bx = pop(); - es = pop(); -} - void DreamGenContext::checkforexit() { STACK_CHECK; cl = data.byte(kRyanx); @@ -2629,7 +2292,7 @@ void DreamGenContext::initrain() { STACK_CHECK; es = data.word(kBuffers); di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)); - bx = 1113; + bx = offset_rainlocations; checkmorerain: al = cs.byte(bx); _cmp(al, 255); @@ -2772,147 +2435,6 @@ failrain: al = 0; } -void DreamGenContext::showrain() { - STACK_CHECK; - ds = data.word(kMainsprites); - si = 6*58; - ax = ds.word(si+2); - si = ax; - _add(si, 2080); - bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)); - es = data.word(kBuffers); - _cmp(es.byte(bx), 255); - if (flags.z()) - return /* (nothunder) */; -morerain: - es = data.word(kBuffers); - _cmp(es.byte(bx), 255); - if (flags.z()) - goto finishrain; - al = es.byte(bx+1); - ah = 0; - _add(ax, data.word(kMapady)); - _add(ax, data.word(kMapystart)); - cx = 320; - _mul(cx); - cl = es.byte(bx); - ch = 0; - _add(ax, cx); - _add(ax, data.word(kMapadx)); - _add(ax, data.word(kMapxstart)); - di = ax; - cl = es.byte(bx+2); - ch = 0; - ax = es.word(bx+3); - dl = es.byte(bx+5); - dh = 0; - _sub(ax, dx); - _and(ax, 511); - es.word(bx+3) = ax; - _add(bx, 6); - push(si); - _add(si, ax); - es = data.word(kWorkspace); - ah = 0; - dx = 320-2; -rainloop: - _lodsb(); - _cmp(al, ah); - if (flags.z()) - goto noplot; - _stosb(); - _add(di, dx); - if (--cx) - goto rainloop; - si = pop(); - goto morerain; -noplot: - _add(di, 320-1); - if (--cx) - goto rainloop; - si = pop(); - goto morerain; -finishrain: - _cmp(data.word(kCh1blockstocopy), 0); - if (!flags.z()) - return /* (nothunder) */; - _cmp(data.byte(kReallocation), 2); - if (!flags.z()) - goto notlouisthund; - _cmp(data.byte(kBeenmugged), 1); - if (!flags.z()) - return /* (nothunder) */; -notlouisthund: - _cmp(data.byte(kReallocation), 55); - if (flags.z()) - return /* (nothunder) */; - randomnum1(); - _cmp(al, 1); - if (!flags.c()) - return /* (nothunder) */; - al = 7; - _cmp(data.byte(kCh0playing), 6); - if (flags.z()) - goto isthunder1; - al = 4; -isthunder1: - playchannel1(); -} - -void DreamGenContext::backobject() { - STACK_CHECK; - ds = data.word(kSetdat); - di = es.word(bx+20); - al = es.byte(bx+18); - _cmp(al, 0); - if (flags.z()) - goto _tmp48z; - _dec(al); - es.byte(bx+18) = al; - return /* (finishback) */; -_tmp48z: - al = ds.byte(di+7); - es.byte(bx+18) = al; - al = ds.byte(di+8); - _cmp(al, 6); - if (!flags.z()) - goto notwidedoor; - widedoor(); - return /* (finishback) */; -notwidedoor: - _cmp(al, 5); - if (!flags.z()) - goto notrandom; - random(); - return /* (finishback) */; -notrandom: - _cmp(al, 4); - if (!flags.z()) - goto notlockdoor; - lockeddoorway(); - return /* (finishback) */; -notlockdoor: - _cmp(al, 3); - if (!flags.z()) - goto notlift; - liftsprite(); - return /* (finishback) */; -notlift: - _cmp(al, 2); - if (!flags.z()) - goto notdoor; - doorway(); - return /* (finishback) */; -notdoor: - _cmp(al, 1); - if (!flags.z()) - goto steadyob; - constant(); - return /* (finishback) */; -steadyob: - steady(); -} - void DreamGenContext::liftnoise() { STACK_CHECK; _cmp(data.byte(kReallocation), 5); @@ -2966,231 +2488,6 @@ gotconst: ds.byte(di+17) = al; } -void DreamGenContext::doorway() { - STACK_CHECK; - data.byte(kDoorcheck1) = -24; - data.byte(kDoorcheck2) = 10; - data.byte(kDoorcheck3) = -30; - data.byte(kDoorcheck4) = 10; - dodoor(); -} - -void DreamGenContext::widedoor() { - STACK_CHECK; - data.byte(kDoorcheck1) = -24; - data.byte(kDoorcheck2) = 24; - data.byte(kDoorcheck3) = -30; - data.byte(kDoorcheck4) = 24; - dodoor(); -} - -void DreamGenContext::lockeddoorway() { - STACK_CHECK; - al = data.byte(kRyanx); - ah = data.byte(kRyany); - cl = es.byte(bx+10); - ch = es.byte(bx+11); - _cmp(al, cl); - if (!flags.c()) - goto rtofdoor2; - _sub(al, cl); - _cmp(al, -24); - if (!flags.c()) - goto upordown2; - goto shutdoor2; -rtofdoor2: - _sub(al, cl); - _cmp(al, 10); - if (!flags.c()) - goto shutdoor2; -upordown2: - _cmp(ah, ch); - if (!flags.c()) - goto botofdoor2; - _sub(ah, ch); - _cmp(ah, -30); - if (flags.c()) - goto shutdoor2; - goto opendoor2; -botofdoor2: - _sub(ah, ch); - _cmp(ah, 12); - if (!flags.c()) - goto shutdoor2; -opendoor2: - _cmp(data.byte(kThroughdoor), 1); - if (flags.z()) - goto mustbeopen; - _cmp(data.byte(kLockstatus), 1); - if (flags.z()) - goto shutdoor; -mustbeopen: - cl = es.byte(bx+19); - _cmp(cl, 1); - if (!flags.z()) - goto notdoorsound4; - al = 0; - playchannel1(); -notdoorsound4: - _cmp(cl, 6); - if (!flags.z()) - goto noturnonyet; - al = data.byte(kDoorpath); - push(es); - push(bx); - turnpathon(); - bx = pop(); - es = pop(); -noturnonyet: - cl = es.byte(bx+19); - _cmp(data.byte(kThroughdoor), 1); - if (!flags.z()) - goto notthrough2; - _cmp(cl, 0); - if (!flags.z()) - goto notthrough2; - cl = 6; -notthrough2: - _inc(cl); - ch = 0; - push(di); - _add(di, cx); - al = ds.byte(di+18); - _cmp(al, 255); - if (!flags.z()) - goto atlast3; - _dec(di); - _dec(cl); -atlast3: - es.byte(bx+19) = cl; - al = ds.byte(di+18); - di = pop(); - es.byte(bx+15) = al; - ds.byte(di+17) = al; - _cmp(cl, 5); - if (!flags.z()) - return /* (justshutting) */; - data.byte(kThroughdoor) = 1; - return; -shutdoor2: - cl = es.byte(bx+19); - _cmp(cl, 5); - if (!flags.z()) - goto notdoorsound3; - al = 1; - playchannel1(); -notdoorsound3: - _cmp(cl, 0); - if (flags.z()) - goto atlast4; - _dec(cl); - es.byte(bx+19) = cl; -atlast4: - ch = 0; - data.byte(kThroughdoor) = 0; - push(di); - _add(di, cx); - al = ds.byte(di+18); - di = pop(); - es.byte(bx+15) = al; - ds.byte(di+17) = al; - _cmp(cl, 0); - if (!flags.z()) - return /* (notlocky) */; - al = data.byte(kDoorpath); - push(es); - push(bx); - turnpathoff(); - bx = pop(); - es = pop(); - data.byte(kLockstatus) = 1; - return; -/*continuing to unbounded code: shutdoor from dodoor:60-87*/ -shutdoor: - cl = es.byte(bx+19); - _cmp(cl, 5); - if (!flags.z()) - goto notdoorsound1; - al = 1; - _cmp(data.byte(kReallocation), 5); - if (!flags.z()) - goto nothoteldoor1; - al = 13; -nothoteldoor1: - playchannel1(); -notdoorsound1: - _cmp(cl, 0); - if (flags.z()) - goto atlast2; - _dec(cl); - es.byte(bx+19) = cl; -atlast2: - ch = 0; - push(di); - _add(di, cx); - al = ds.byte(di+18); - di = pop(); - es.byte(bx+15) = al; - ds.byte(di+17) = al; - _cmp(cl, 5); - if (!flags.z()) - return /* (notnearly) */; - data.byte(kThroughdoor) = 0; -} - -void DreamGenContext::updatepeople() { - STACK_CHECK; - es = data.word(kBuffers); - di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)); - data.word(kListpos) = di; - cx = 12*5; - al = 255; - _stosb(cx, true); - _inc(data.word(kMaintimer)); - es = cs; - bx = 534; - di = 991; -updateloop: - al = es.byte(bx); - _cmp(al, 255); - if (flags.z()) - return /* (endupdate) */; - _cmp(al, data.byte(kReallocation)); - if (!flags.z()) - goto notinthisroom; - cx = es.word(bx+1); - _cmp(cl, data.byte(kMapx)); - if (!flags.z()) - goto notinthisroom; - _cmp(ch, data.byte(kMapy)); - if (!flags.z()) - goto notinthisroom; - push(di); - ax = cs.word(di); - __dispatch_call(ax); - di = pop(); -notinthisroom: - _add(bx, 8); - _add(di, 2); - goto updateloop; -} - -void DreamGenContext::getreelframeax() { - STACK_CHECK; - push(ds); - data.word(kCurrentframe) = ax; - findsource(); - es = ds; - ds = pop(); - ax = data.word(kCurrentframe); - _sub(ax, data.word(kTakeoff)); - _add(ax, ax); - cx = ax; - _add(ax, ax); - _add(ax, cx); - bx = ax; -} - void DreamGenContext::reelsonscreen() { STACK_CHECK; reconstruct(); @@ -3200,48 +2497,6 @@ void DreamGenContext::reelsonscreen() { usetimedtext(); } -void DreamGenContext::plotreel() { - STACK_CHECK; - getreelstart(); -retryreel: - push(es); - push(si); - ax = es.word(si+2); - _cmp(al, 220); - if (flags.c()) - goto normalreel; - _cmp(al, 255); - if (flags.z()) - goto normalreel; - dealwithspecial(); - _inc(data.word(kReelpointer)); - si = pop(); - es = pop(); - _add(si, 40); - goto retryreel; -normalreel: - cx = 8; -plotloop: - push(cx); - push(es); - push(si); - ax = es.word(si); - _cmp(ax, 0x0ffff); - if (flags.z()) - goto notplot; - showreelframe(); -notplot: - si = pop(); - es = pop(); - cx = pop(); - _add(si, 5); - if (--cx) - goto plotloop; - soundonreels(); - bx = pop(); - es = pop(); -} - void DreamGenContext::soundonreels() { STACK_CHECK; bl = data.byte(kReallocation); @@ -3307,126 +2562,6 @@ notfudge: data.byte(kHavedoneobs) = 0; } -void DreamGenContext::dealwithspecial() { - STACK_CHECK; - _sub(al, 220); - _cmp(al, 0); - if (!flags.z()) - goto notplset; - al = ah; - placesetobject(); - data.byte(kHavedoneobs) = 1; - return; -notplset: - _cmp(al, 1); - if (!flags.z()) - goto notremset; - al = ah; - removesetobject(); - data.byte(kHavedoneobs) = 1; - return; -notremset: - _cmp(al, 2); - if (!flags.z()) - goto notplfree; - al = ah; - placefreeobject(); - data.byte(kHavedoneobs) = 1; - return; -notplfree: - _cmp(al, 3); - if (!flags.z()) - goto notremfree; - al = ah; - removefreeobject(); - data.byte(kHavedoneobs) = 1; - return; -notremfree: - _cmp(al, 4); - if (!flags.z()) - goto notryanoff; - switchryanoff(); - return; -notryanoff: - _cmp(al, 5); - if (!flags.z()) - goto notryanon; - data.byte(kTurntoface) = ah; - data.byte(kFacing) = ah; - switchryanon(); - return; -notryanon: - _cmp(al, 6); - if (!flags.z()) - goto notchangeloc; - data.byte(kNewlocation) = ah; - return; -notchangeloc: - movemap(); -} - -void DreamGenContext::movemap() { - STACK_CHECK; - _cmp(ah, 32); - if (!flags.z()) - goto notmapup2; - _sub(data.byte(kMapy), 20); - data.byte(kNowinnewroom) = 1; - return; -notmapup2: - _cmp(ah, 16); - if (!flags.z()) - goto notmapupspec; - _sub(data.byte(kMapy), 10); - data.byte(kNowinnewroom) = 1; - return; -notmapupspec: - _cmp(ah, 8); - if (!flags.z()) - goto notmapdownspec; - _add(data.byte(kMapy), 10); - data.byte(kNowinnewroom) = 1; - return; -notmapdownspec: - _cmp(ah, 2); - if (!flags.z()) - goto notmaprightspec; - _add(data.byte(kMapx), 11); - data.byte(kNowinnewroom) = 1; - return; -notmaprightspec: - _sub(data.byte(kMapx), 11); - data.byte(kNowinnewroom) = 1; -} - -void DreamGenContext::getreelstart() { - STACK_CHECK; - ax = data.word(kReelpointer); - cx = 40; - _mul(cx); - es = data.word(kReels); - si = ax; - _add(si, (0+(36*144))); -} - -void DreamGenContext::showreelframe() { - STACK_CHECK; - al = es.byte(si+2); - ah = 0; - di = ax; - _add(di, data.word(kMapadx)); - al = es.byte(si+3); - bx = ax; - _add(bx, data.word(kMapady)); - ax = es.word(si); - data.word(kCurrentframe) = ax; - findsource(); - ax = data.word(kCurrentframe); - _sub(ax, data.word(kTakeoff)); - ah = 8; - showframe(); -} - void DreamGenContext::deleverything() { STACK_CHECK; al = data.byte(kMapysize); @@ -3501,13 +2636,6 @@ dumpevery2: goto dumpevery2; } -void DreamGenContext::allocatework() { - STACK_CHECK; - bx = 0x1000; - allocatemem(); - data.word(kWorkspace) = ax; -} - void DreamGenContext::loadpalfromiff() { STACK_CHECK; dx = 2481; @@ -3669,68 +2797,6 @@ void DreamGenContext::createpanel2() { showframe(); } -void DreamGenContext::clearwork() { - STACK_CHECK; - ax = 0x0; - es = data.word(kWorkspace); - di = 0; - cx = (200*320)/64; -clearloop: - _stosw(32); - if (--cx) - goto clearloop; -} - -void DreamGenContext::zoom() { - STACK_CHECK; - _cmp(data.word(kWatchingtime), 0); - if (!flags.z()) - return /* (inwatching) */; - _cmp(data.byte(kZoomon), 1); - if (flags.z()) - goto zoomswitch; - return; -zoomswitch: - _cmp(data.byte(kCommandtype), 199); - if (flags.c()) - goto zoomit; - putunderzoom(); - return; -zoomit: - ax = data.word(kOldpointery); - _sub(ax, 9); - cx = (320); - _mul(cx); - _add(ax, data.word(kOldpointerx)); - _sub(ax, 11); - si = ax; - ax = (132)+4; - cx = (320); - _mul(cx); - _add(ax, (8)+5); - di = ax; - es = data.word(kWorkspace); - ds = data.word(kWorkspace); - cx = 20; -zoomloop: - push(cx); - cx = 23; -zoomloop2: - _lodsb(); - ah = al; - _stosw(); - es.word(di+(320)-2) = ax; - if (--cx) - goto zoomloop2; - _add(si, (320)-23); - _add(di, (320)-46+(320)); - cx = pop(); - if (--cx) - goto zoomloop; - crosshair(); - data.byte(kDidzoom) = 1; -} - void DreamGenContext::delthisone() { STACK_CHECK; push(ax); @@ -3775,83 +2841,6 @@ deloneloop: goto deloneloop; } -void DreamGenContext::doblocks() { - STACK_CHECK; - es = data.word(kWorkspace); - ax = data.word(kMapady); - cx = (320); - _mul(cx); - di = data.word(kMapadx); - _add(di, ax); - al = data.byte(kMapy); - ah = 0; - bx = (66); - _mul(bx); - bl = data.byte(kMapx); - bh = 0; - _add(ax, bx); - si = (0); - _add(si, ax); - cx = 10; -loop120: - push(di); - push(cx); - cx = 11; -loop124: - push(cx); - push(di); - ds = data.word(kMapdata); - _lodsb(); - ds = data.word(kBackdrop); - push(si); - _cmp(al, 0); - if (flags.z()) - goto zeroblock; - ah = al; - al = 0; - si = (0+192); - _add(si, ax); - bh = 14; - bh = 4; -firstbitofblock: - _movsw(8); - _add(di, (320)-16); - _dec(bh); - if (!flags.z()) - goto firstbitofblock; - bh = 12; -loop125: - _movsw(8); - ax = 0x0dfdf; - _stosw(2); - _add(di, (320)-20); - _dec(bh); - if (!flags.z()) - goto loop125; - _add(di, 4); - ax = 0x0dfdf; - _stosw(8); - _add(di, (320)-16); - _stosw(8); - _add(di, (320)-16); - _stosw(8); - _add(di, (320)-16); - _stosw(8); -zeroblock: - si = pop(); - di = pop(); - cx = pop(); - _add(di, 16); - if (--cx) - goto loop124; - _add(si, (66)-11); - cx = pop(); - di = pop(); - _add(di, (320)*16); - if (--cx) - goto loop120; -} - void DreamGenContext::transferinv() { STACK_CHECK; di = data.word(kExframepos); @@ -4937,216 +3926,6 @@ realcreditsearly: data.byte(kLasthardkey) = 0; } -void DreamGenContext::printchar() { - STACK_CHECK; - _cmp(al, 255); - if (flags.z()) - return /* (ignoreit) */; - push(si); - push(bx); - push(di); - _cmp(data.byte(kForeignrelease), 0); - if (flags.z()) - goto _tmp1; - _sub(bx, 3); -_tmp1: - push(ax); - _sub(al, 32); - ah = 0; - _add(ax, data.word(kCharshift)); - showframe(); - ax = pop(); - di = pop(); - bx = pop(); - si = pop(); - _cmp(data.byte(kKerning), 0); - if (!flags.z()) - goto nokern; - kernchars(); -nokern: - push(cx); - ch = 0; - _add(di, cx); - cx = pop(); -} - -void DreamGenContext::printslow() { - STACK_CHECK; - data.byte(kPointerframe) = 1; - data.byte(kPointermode) = 3; - ds = data.word(kCharset1); -printloopslow6: - push(bx); - push(di); - push(dx); - getnumber(); - ch = 0; -printloopslow5: - push(cx); - push(si); - push(es); - ax = es.word(si); - push(bx); - push(cx); - push(es); - push(si); - push(ds); - modifychar(); - printboth(); - ds = pop(); - si = pop(); - es = pop(); - cx = pop(); - bx = pop(); - ax = es.word(si+1); - _inc(si); - _cmp(al, 0); - if (flags.z()) - goto finishslow; - _cmp(al, ':'); - if (flags.z()) - goto finishslow; - _cmp(cl, 1); - if (flags.z()) - goto afterslow; - push(di); - push(ds); - push(bx); - push(cx); - push(es); - push(si); - modifychar(); - data.word(kCharshift) = 91; - printboth(); - data.word(kCharshift) = 0; - si = pop(); - es = pop(); - cx = pop(); - bx = pop(); - ds = pop(); - di = pop(); - waitframes(); - _cmp(ax, 0); - if (flags.z()) - goto keepgoing; - _cmp(ax, data.word(kOldbutton)); - if (!flags.z()) - goto finishslow2; -keepgoing: - waitframes(); - _cmp(ax, 0); - if (flags.z()) - goto afterslow; - _cmp(ax, data.word(kOldbutton)); - if (!flags.z()) - goto finishslow2; -afterslow: - es = pop(); - si = pop(); - cx = pop(); - _inc(si); - if (--cx) - goto printloopslow5; - dx = pop(); - di = pop(); - bx = pop(); - _add(bx, 10); - goto printloopslow6; -finishslow: - es = pop(); - si = pop(); - cx = pop(); - dx = pop(); - di = pop(); - bx = pop(); - al = 0; - return; -finishslow2: - es = pop(); - si = pop(); - cx = pop(); - dx = pop(); - di = pop(); - bx = pop(); - al = 1; -} - -void DreamGenContext::waitframes() { - STACK_CHECK; - push(di); - push(bx); - push(es); - push(si); - push(ds); - readmouse(); - showpointer(); - vsync(); - dumppointer(); - delpointer(); - ax = data.word(kMousebutton); - ds = pop(); - si = pop(); - es = pop(); - bx = pop(); - di = pop(); -} - -void DreamGenContext::printboth() { - STACK_CHECK; - push(ax); - push(cx); - push(bx); - push(di); - printchar(); - ax = pop(); - push(di); - di = ax; - multidump(); - di = pop(); - bx = pop(); - cx = pop(); - ax = pop(); -} - -void DreamGenContext::printdirect() { - STACK_CHECK; - data.word(kLastxpos) = di; - ds = data.word(kCurrentset); -printloop6: - push(bx); - push(di); - push(dx); - getnumber(); - ch = 0; -printloop5: - ax = es.word(si); - _inc(si); - _cmp(al, 0); - if (flags.z()) - goto finishdirct; - _cmp(al, ':'); - if (flags.z()) - goto finishdirct; - push(cx); - push(es); - modifychar(); - printchar(); - data.word(kLastxpos) = di; - es = pop(); - cx = pop(); - if (--cx) - goto printloop5; - dx = pop(); - di = pop(); - bx = pop(); - _add(bx, data.word(kLinespacing)); - goto printloop6; -finishdirct: - dx = pop(); - di = pop(); - bx = pop(); -} - void DreamGenContext::monprint() { STACK_CHECK; data.byte(kKerning) = 1; @@ -5233,114 +4012,6 @@ nottrigger2: data.byte(kKerning) = 0; } -void DreamGenContext::getnumber() { - STACK_CHECK; - cx = 0; - push(si); - push(bx); - push(di); - push(ds); - push(es); - di = si; -wordloop: - push(cx); - push(dx); - getnextword(); - dx = pop(); - cx = pop(); - _cmp(al, 1); - if (flags.z()) - goto endoftext; - al = cl; - ah = 0; - push(bx); - bh = 0; - _add(ax, bx); - bx = pop(); - _sub(ax, 10); - dh = 0; - _cmp(ax, dx); - if (!flags.c()) - goto gotoverend; - _add(cl, bl); - _add(ch, bh); - goto wordloop; -gotoverend: - al = dl; - _and(al, 1); - if (flags.z()) - goto notcentre; - push(cx); - al = dl; - _and(al, 0xfe); - ah = 0; - ch = 0; - _sub(ax, cx); - _add(ax, 20); - _shr(ax, 1); - cx = pop(); - es = pop(); - ds = pop(); - di = pop(); - bx = pop(); - si = pop(); - _add(di, ax); - cl = ch; - return; -notcentre: - es = pop(); - ds = pop(); - di = pop(); - bx = pop(); - si = pop(); - cl = ch; - return; -endoftext: - al = cl; - ah = 0; - push(bx); - bh = 0; - _add(ax, bx); - bx = pop(); - _sub(ax, 10); - dh = 0; - _cmp(ax, dx); - if (!flags.c()) - goto gotoverend2; - _add(cl, bl); - _add(ch, bh); -gotoverend2: - al = dl; - _and(al, 1); - if (flags.z()) - goto notcent2; - push(cx); - al = dl; - _and(al, 0xfe); - _add(al, 2); - ah = 0; - ch = 0; - _add(ax, 20); - _sub(ax, cx); - _shr(ax, 1); - cx = pop(); - es = pop(); - ds = pop(); - di = pop(); - bx = pop(); - si = pop(); - _add(di, ax); - cl = ch; - return; -notcent2: - es = pop(); - ds = pop(); - di = pop(); - bx = pop(); - si = pop(); - cl = ch; -} - void DreamGenContext::fillryan() { STACK_CHECK; es = data.word(kBuffers); @@ -5649,15 +4320,15 @@ waitexam: dumptextline(); delpointer(); data.byte(kGetback) = 0; - bx = 2494; + bx = offset_examlist; _cmp(data.byte(kInvopen), 0); if (flags.z()) goto notuseinv; - bx = 2556; + bx = offset_invlist1; _cmp(data.byte(kInvopen), 1); if (flags.z()) goto notuseinv; - bx = 2618; + bx = offset_withlist1; notuseinv: checkcoords(); _cmp(data.byte(kExamagain), 0); @@ -5788,7 +4459,7 @@ void DreamGenContext::openob() { STACK_CHECK; al = data.byte(kOpenedob); ah = data.byte(kOpenedtype); - di = 5847; + di = offset_commandline; copyname(); di = (80); bx = (58)+86; @@ -5799,7 +4470,7 @@ void DreamGenContext::openob() { _add(di, 5); bx = (58)+86; es = cs; - si = 5847; + si = offset_commandline; dl = 220; al = 0; ah = 0; @@ -5811,7 +4482,7 @@ void DreamGenContext::openob() { cx = (44); _mul(cx); _add(ax, (80)); - bx = 2588; + bx = offset_openchangesize; cs.word(bx) = ax; } @@ -6163,15 +4834,15 @@ waitexam: dumptextline(); delpointer(); data.byte(kGetback) = 0; - bx = 2494; + bx = offset_examlist; _cmp(data.byte(kInvopen), 0); if (flags.z()) goto notuseinv; - bx = 2556; + bx = offset_invlist1; _cmp(data.byte(kInvopen), 1); if (flags.z()) goto notuseinv; - bx = 2618; + bx = offset_withlist1; notuseinv: checkcoords(); _cmp(data.byte(kExamagain), 0); @@ -6529,31 +5200,6 @@ doplace: delpointer(); } -void DreamGenContext::deletetaken() { - STACK_CHECK; - es = data.word(kFreedat); - ah = data.byte(kReallocation); - ds = data.word(kExtras); - si = (0+2080+30000); - cx = (114); -takenloop: - al = ds.byte(si+11); - _cmp(al, ah); - if (!flags.z()) - goto notinhere; - bl = ds.byte(si+1); - bh = 0; - _add(bx, bx); - _add(bx, bx); - _add(bx, bx); - _add(bx, bx); - es.byte(bx+2) = 254; -notinhere: - _add(si, 16); - if (--cx) - goto takenloop; -} - void DreamGenContext::outofinv() { STACK_CHECK; findinvpos(); @@ -7675,392 +6321,6 @@ void DreamGenContext::drawfloor() { es = pop(); } -void DreamGenContext::calcmapad() { - STACK_CHECK; - getdimension(); - push(cx); - push(dx); - al = 11; - _sub(al, dl); - _sub(al, cl); - _sub(al, cl); - ax.cbw(); - bx = 8; - _mul(bx); - _add(ax, data.word(kMapoffsetx)); - data.word(kMapadx) = ax; - dx = pop(); - cx = pop(); - al = 10; - _sub(al, dh); - _sub(al, ch); - _sub(al, ch); - ax.cbw(); - bx = 8; - _mul(bx); - _add(ax, data.word(kMapoffsety)); - data.word(kMapady) = ax; -} - -void DreamGenContext::getdimension() { - STACK_CHECK; - es = data.word(kBuffers); - bx = (0+(228*13)+32+60+(32*32)); - ch = 0; -dimloop1: - addalong(); - _cmp(al, 0); - if (!flags.z()) - goto finishdim1; - _inc(ch); - goto dimloop1; -finishdim1: - bx = (0+(228*13)+32+60+(32*32)); - cl = 0; -dimloop2: - push(bx); - addlength(); - bx = pop(); - _cmp(al, 0); - if (!flags.z()) - goto finishdim2; - _inc(cl); - _add(bx, 3); - goto dimloop2; -finishdim2: - bx = (0+(228*13)+32+60+(32*32))+(11*3*9); - dh = 10; -dimloop3: - push(bx); - addalong(); - bx = pop(); - _cmp(al, 0); - if (!flags.z()) - goto finishdim3; - _dec(dh); - _sub(bx, 11*3); - goto dimloop3; -finishdim3: - bx = (0+(228*13)+32+60+(32*32))+(3*10); - dl = 11; -dimloop4: - push(bx); - addlength(); - bx = pop(); - _cmp(al, 0); - if (!flags.z()) - goto finishdim4; - _dec(dl); - _sub(bx, 3); - goto dimloop4; -finishdim4: - al = cl; - ah = 0; - _shl(ax, 1); - _shl(ax, 1); - _shl(ax, 1); - _shl(ax, 1); - data.word(kMapxstart) = ax; - al = ch; - ah = 0; - _shl(ax, 1); - _shl(ax, 1); - _shl(ax, 1); - _shl(ax, 1); - data.word(kMapystart) = ax; - _sub(dl, cl); - _sub(dh, ch); - al = dl; - ah = 0; - _shl(ax, 1); - _shl(ax, 1); - _shl(ax, 1); - _shl(ax, 1); - data.byte(kMapxsize) = al; - al = dh; - ah = 0; - _shl(ax, 1); - _shl(ax, 1); - _shl(ax, 1); - _shl(ax, 1); - data.byte(kMapysize) = al; -} - -void DreamGenContext::addalong() { - STACK_CHECK; - ah = 11; -addloop: - _cmp(es.byte(bx), 0); - if (!flags.z()) - goto gotalong; - _add(bx, 3); - _dec(ah); - if (!flags.z()) - goto addloop; - al = 0; - return; -gotalong: - al = 1; -} - -void DreamGenContext::addlength() { - STACK_CHECK; - ah = 10; -addloop2: - _cmp(es.byte(bx), 0); - if (!flags.z()) - goto gotlength; - _add(bx, 3*11); - _dec(ah); - if (!flags.z()) - goto addloop2; - al = 0; - return; -gotlength: - al = 1; -} - -void DreamGenContext::drawflags() { - STACK_CHECK; - es = data.word(kBuffers); - di = (0+(228*13)+32+60+(32*32)); - al = data.byte(kMapy); - ah = 0; - cx = (66); - _mul(cx); - bl = data.byte(kMapx); - bh = 0; - _add(ax, bx); - si = (0); - _add(si, ax); - cx = 10; -_tmp28: - push(cx); - cx = 11; -_tmp28a: - ds = data.word(kMapdata); - _lodsb(); - ds = data.word(kBackdrop); - push(si); - push(ax); - ah = 0; - _add(ax, ax); - si = (0); - _add(si, ax); - _movsw(); - ax = pop(); - _stosb(); - si = pop(); - if (--cx) - goto _tmp28a; - _add(si, (66)-11); - cx = pop(); - if (--cx) - goto _tmp28; -} - -void DreamGenContext::showallobs() { - STACK_CHECK; - es = data.word(kBuffers); - bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)); - data.word(kListpos) = bx; - di = bx; - cx = 128*5; - al = 255; - _stosb(cx, true); - es = data.word(kSetframes); - data.word(kFrsegment) = es; - ax = (0); - data.word(kDataad) = ax; - ax = (0+2080); - data.word(kFramesad) = ax; - data.byte(kCurrentob) = 0; - ds = data.word(kSetdat); - si = 0; - cx = 128; -showobsloop: - push(cx); - push(si); - push(si); - _add(si, 58); - es = data.word(kSetdat); - getmapad(); - si = pop(); - _cmp(ch, 0); - if (flags.z()) - goto blankframe; - al = es.byte(si+18); - ah = 0; - data.word(kCurrentframe) = ax; - _cmp(al, 255); - if (flags.z()) - goto blankframe; - push(es); - push(si); - calcfrframe(); - finalframe(); - si = pop(); - es = pop(); - al = es.byte(si+18); - es.byte(si+17) = al; - _cmp(es.byte(si+8), 0); - if (!flags.z()) - goto animating; - _cmp(es.byte(si+5), 5); - if (flags.z()) - goto animating; - _cmp(es.byte(si+5), 6); - if (flags.z()) - goto animating; - ax = data.word(kCurrentframe); - ah = 0; - _add(di, data.word(kMapadx)); - _add(bx, data.word(kMapady)); - showframe(); - goto drawnsetob; -animating: - makebackob(); -drawnsetob: - si = data.word(kListpos); - es = data.word(kBuffers); - al = data.byte(kSavex); - ah = data.byte(kSavey); - es.word(si) = ax; - cx = ax; - ax = data.word(kSavesize); - _add(al, cl); - _add(ah, ch); - es.word(si+2) = ax; - al = data.byte(kCurrentob); - es.byte(si+4) = al; - _add(si, 5); - data.word(kListpos) = si; -blankframe: - _inc(data.byte(kCurrentob)); - si = pop(); - cx = pop(); - _add(si, 64); - _dec(cx); - if (flags.z()) - return /* (finishedsetobs) */; - goto showobsloop; -} - -void DreamGenContext::makebackob() { - STACK_CHECK; - _cmp(data.byte(kNewobs), 0); - if (flags.z()) - return /* (nomake) */; - al = es.byte(si+5); - ah = es.byte(si+8); - push(si); - push(ax); - push(si); - ax = data.word(kObjectx); - bx = data.word(kObjecty); - ah = bl; - si = ax; - cx = 49520; - dx = data.word(kSetframes); - di = (0); - makesprite(); - ax = pop(); - es.word(bx+20) = ax; - ax = pop(); - _cmp(al, 255); - if (!flags.z()) - goto usedpriority; - al = 0; -usedpriority: - es.byte(bx+23) = al; - es.byte(bx+30) = ah; - es.byte(bx+16) = 0; - es.byte(bx+18) = 0; - es.byte(bx+19) = 0; - si = pop(); -} - -void DreamGenContext::showallfree() { - STACK_CHECK; - es = data.word(kBuffers); - bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)); - data.word(kListpos) = bx; - di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)); - cx = 80*5; - al = 255; - _stosb(cx, true); - es = data.word(kFreeframes); - data.word(kFrsegment) = es; - ax = (0); - data.word(kDataad) = ax; - ax = (0+2080); - data.word(kFramesad) = ax; - al = 0; - data.byte(kCurrentfree) = al; - ds = data.word(kFreedat); - si = 2; - cx = 0; -loop127: - push(cx); - push(si); - push(si); - es = data.word(kFreedat); - getmapad(); - si = pop(); - _cmp(ch, 0); - if (flags.z()) - goto over138; - al = data.byte(kCurrentfree); - ah = 0; - dx = ax; - _add(ax, ax); - _add(ax, dx); - data.word(kCurrentframe) = ax; - push(es); - push(si); - calcfrframe(); - es = data.word(kMapstore); - ds = data.word(kFrsegment); - finalframe(); - si = pop(); - es = pop(); - _cmp(cx, 0); - if (flags.z()) - goto over138; - ax = data.word(kCurrentframe); - ah = 0; - _add(di, data.word(kMapadx)); - _add(bx, data.word(kMapady)); - showframe(); - si = data.word(kListpos); - es = data.word(kBuffers); - al = data.byte(kSavex); - ah = data.byte(kSavey); - es.word(si) = ax; - cx = ax; - ax = data.word(kSavesize); - _add(al, cl); - _add(ah, ch); - es.word(si+2) = ax; - ax = pop(); - cx = pop(); - push(cx); - push(ax); - es.byte(si+4) = cl; - _add(si, 5); - data.word(kListpos) = si; -over138: - _inc(data.byte(kCurrentfree)); - si = pop(); - cx = pop(); - _add(si, 16); - _inc(cx); - _cmp(cx, 80); - if (flags.z()) - return /* (finfree) */; - goto loop127; -} - void DreamGenContext::showallex() { STACK_CHECK; es = data.word(kBuffers); @@ -8149,128 +6409,6 @@ blankex: goto exloop; } -void DreamGenContext::calcfrframe() { - STACK_CHECK; - dx = data.word(kFrsegment); - ax = data.word(kFramesad); - push(ax); - cx = data.word(kDataad); - ax = data.word(kCurrentframe); - ds = dx; - bx = 6; - _mul(bx); - _add(ax, cx); - bx = ax; - cx = ds.word(bx); - ax = ds.word(bx+2); - dx = ds.word(bx+4); - bx = pop(); - push(dx); - _add(ax, bx); - data.word(kSavesource) = ax; - data.word(kSavesize) = cx; - ax = pop(); - push(ax); - ah = 0; - data.word(kOffsetx) = ax; - ax = pop(); - al = ah; - ah = 0; - data.word(kOffsety) = ax; - return; - ax = pop(); - cx = 0; - data.word(kSavesize) = cx; -} - -void DreamGenContext::finalframe() { - STACK_CHECK; - ax = data.word(kObjecty); - _add(ax, data.word(kOffsety)); - bx = data.word(kObjectx); - _add(bx, data.word(kOffsetx)); - data.byte(kSavex) = bl; - data.byte(kSavey) = al; - di = data.word(kObjectx); - bx = data.word(kObjecty); -} - -void DreamGenContext::adjustlen() { - STACK_CHECK; - ah = al; - _add(al, ch); - _cmp(al, 100); - if (flags.c()) - return /* (over242) */; - al = 224; - _sub(al, ch); - ch = al; -} - -void DreamGenContext::getmapad() { - STACK_CHECK; - getxad(); - _cmp(ch, 0); - if (flags.z()) - return /* (over146) */; - data.word(kObjectx) = ax; - getyad(); - _cmp(ch, 0); - if (flags.z()) - return /* (over146) */; - data.word(kObjecty) = ax; - ch = 1; -} - -void DreamGenContext::getxad() { - STACK_CHECK; - cl = es.byte(si); - _inc(si); - al = es.byte(si); - _inc(si); - ah = es.byte(si); - _inc(si); - _cmp(cl, 0); - if (!flags.z()) - goto over148; - _sub(al, data.byte(kMapx)); - if (flags.c()) - goto over148; - _cmp(al, 11); - if (!flags.c()) - goto over148; - cl = 4; - _shl(al, cl); - _or(al, ah); - ah = 0; - ch = 1; - return; -over148: - ch = 0; -} - -void DreamGenContext::getyad() { - STACK_CHECK; - al = es.byte(si); - _inc(si); - ah = es.byte(si); - _inc(si); - _sub(al, data.byte(kMapy)); - if (flags.c()) - goto over147; - _cmp(al, 10); - if (!flags.c()) - goto over147; - cl = 4; - _shl(al, cl); - _or(al, ah); - ah = 0; - ch = 1; - return; -over147: - ch = 0; -} - void DreamGenContext::autolook() { STACK_CHECK; ax = data.word(kMousex); @@ -8426,7 +6564,7 @@ waittalk: dumppointer(); dumptextline(); data.byte(kGetback) = 0; - bx = 2660; + bx = offset_talklist; checkcoords(); _cmp(data.byte(kQuitrequested), 0); if (!flags.z()) @@ -8720,7 +6858,7 @@ hangloopq: vsync(); dumppointer(); dumptextline(); - bx = 2692; + bx = offset_quitlist; checkcoords(); bx = pop(); cx = pop(); @@ -8855,7 +6993,7 @@ select: _cmp(data.byte(kGetback), 1); if (flags.z()) goto quittravel; - bx = 2714; + bx = offset_destlist; checkcoords(); _cmp(data.byte(kNewlocation), 255); if (flags.z()) @@ -9279,12 +7417,12 @@ void DreamGenContext::usemon() { al = 32; _stosb(cx, true); es = cs; - di = 2942+1; + di = offset_operand1+1; cx = 12; al = 32; _stosb(cx, true); es = cs; - di = 2836; + di = offset_keys; es.byte(di) = 1; _add(di, 26); cx = 3; @@ -9782,7 +7920,7 @@ void DreamGenContext::delchar() { void DreamGenContext::execcommand() { STACK_CHECK; es = cs; - bx = 2776; + bx = offset_comlist; ds = cs; si = 8045; al = ds.byte(si); @@ -9881,7 +8019,7 @@ void DreamGenContext::dircom() { dirroot: data.byte(kLogonum) = 0; ds = cs; - si = 2956; + si = offset_rootdir; _inc(si); es = cs; di = 2970; @@ -9922,7 +8060,7 @@ void DreamGenContext::signon() { parser(); _inc(di); ds = cs; - si = 2836; + si = offset_keys; cx = 4; signonloop: push(cx); @@ -10026,7 +8164,7 @@ void DreamGenContext::showkeys() { al = 18; monmessage(); es = cs; - bx = 2836; + bx = offset_keys; cx = 4; keysloop: push(cx); @@ -10093,7 +8231,7 @@ foundfile2: return; keyok1: es = cs; - di = 2942; + di = offset_operand1; ds = data.word(kMonsource); searchforstring(); _cmp(al, 0); @@ -10185,7 +8323,7 @@ keyok2: push(es); push(bx); ds = cs; - si = 2942+1; + si = offset_operand1+1; es = cs; di = 2970+1; cx = 12; @@ -10232,7 +8370,7 @@ void DreamGenContext::getkeyandlogo() { cx = 26; _mul(cx); es = cs; - bx = 2836; + bx = offset_keys; _add(bx, ax); al = es.byte(bx); _cmp(al, 1); @@ -10306,11 +8444,11 @@ notfound: void DreamGenContext::parser() { STACK_CHECK; es = cs; - di = 2942; + di = offset_operand1; cx = 13; al = 0; _stosb(cx, true); - di = 2942; + di = offset_operand1; al = '='; _stosb(); ds = cs; @@ -10339,7 +8477,7 @@ copyin1: if (!flags.z()) goto copyin1; finishpars: - di = 2942; + di = offset_operand1; } void DreamGenContext::scrollmonitor() { @@ -10633,7 +8771,7 @@ nodream7: getanyad(); dx = data; ds = dx; - si = 2984; + si = offset_uselist; checkuselist: push(si); _lodsb(); @@ -12057,7 +10195,7 @@ _tmp1: di = 160; bx = 155; es = cs; - si = 3474; + si = offset_money1poke; data.word(kCharshift) = 91*2+75; al = 0; ah = 0; @@ -12066,7 +10204,7 @@ _tmp1: di = 187; bx = 155; es = cs; - si = 3479; + si = offset_money2poke; data.word(kCharshift) = 91*2+85; al = 0; ah = 0; @@ -12134,7 +10272,7 @@ void DreamGenContext::lookatcard() { void DreamGenContext::moneypoke() { STACK_CHECK; - bx = 3474; + bx = offset_money1poke; cl = 48-1; numberpoke0: _inc(cl); @@ -12170,7 +10308,7 @@ numberpoke3: goto numberpoke3; _add(ax, 10); cs.byte(bx) = cl; - bx = 3479; + bx = offset_money2poke; _add(al, 48); cs.byte(bx) = al; } @@ -12633,7 +10771,7 @@ void DreamGenContext::withwhat() { al = data.byte(kCommand); ah = data.byte(kObjecttype); es = cs; - di = 5847; + di = offset_commandline; copyname(); di = 100; bx = 21; @@ -12645,7 +10783,7 @@ void DreamGenContext::withwhat() { _add(di, 5); bx = 21; es = cs; - si = 5847; + si = offset_commandline; dl = 220; al = 0; ah = 0; @@ -12918,32 +11056,6 @@ void DreamGenContext::findpuztext() { si = ax; } -void DreamGenContext::placesetobject() { - STACK_CHECK; - push(es); - push(bx); - cl = 0; - ch = 0; - findormake(); - getsetad(); - es.byte(bx+58) = 0; - bx = pop(); - es = pop(); -} - -void DreamGenContext::removesetobject() { - STACK_CHECK; - push(es); - push(bx); - cl = 255; - ch = 0; - findormake(); - getsetad(); - es.byte(bx+58) = 255; - bx = pop(); - es = pop(); -} - void DreamGenContext::issetobonmap() { STACK_CHECK; push(es); @@ -12978,35 +11090,6 @@ void DreamGenContext::removefreeobject() { es = pop(); } -void DreamGenContext::findormake() { - STACK_CHECK; - bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)); - push(ax); - es = data.word(kBuffers); - ah = data.byte(kReallocation); -changeloop: - _cmp(es.byte(bx), 255); - if (flags.z()) - goto haventfound; - _cmp(ax, es.word(bx)); - if (!flags.z()) - goto nofoundchange; - _cmp(ch, es.byte(bx+3)); - if (flags.z()) - goto foundchange; -nofoundchange: - _add(bx, 4); - goto changeloop; -foundchange: - ax = pop(); - es.byte(bx+2) = cl; - return; -haventfound: - es.word(bx) = ax; - es.word(bx+2) = cx; - ax = pop(); -} - void DreamGenContext::switchryanon() { STACK_CHECK; data.byte(kRyanon) = 255; @@ -13017,70 +11100,6 @@ void DreamGenContext::switchryanoff() { data.byte(kRyanon) = 1; } -void DreamGenContext::setallchanges() { - STACK_CHECK; - es = data.word(kBuffers); - bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)); -setallloop: - ax = es.word(bx); - _cmp(al, 255); - if (flags.z()) - return /* (endsetloop) */; - cx = es.word(bx+2); - _add(bx, 4); - _cmp(ah, data.byte(kReallocation)); - if (!flags.z()) - goto setallloop; - push(es); - push(bx); - dochange(); - bx = pop(); - es = pop(); - goto setallloop; -} - -void DreamGenContext::dochange() { - STACK_CHECK; - _cmp(ch, 0); - if (flags.z()) - goto object; - _cmp(ch, 1); - if (flags.z()) - goto freeobject; - push(cx); - ah = 0; - _add(ax, ax); - _add(ax, ax); - _add(ax, ax); - push(ax); - al = ch; - _sub(al, 100); - ah = 0; - cx = 144; - _mul(cx); - bx = pop(); - _add(bx, ax); - _add(bx, (0)); - es = data.word(kReels); - cx = pop(); - es.byte(bx+6) = cl; - return; -object: - push(cx); - getsetad(); - cx = pop(); - es.byte(bx+58) = cl; - return; -freeobject: - push(cx); - getfreead(); - cx = pop(); - _cmp(es.byte(bx+2), 255); - if (!flags.z()) - return /* (beenpickedup) */; - es.byte(bx+2) = cl; -} - void DreamGenContext::autoappear() { STACK_CHECK; _cmp(data.byte(kLocation), 32); @@ -13151,68 +11170,6 @@ notonsartroof: placesetobject(); } -void DreamGenContext::getundertimed() { - STACK_CHECK; - al = data.byte(kTimedy); - _cmp(data.byte(kForeignrelease), 0); - if (flags.z()) - goto _tmp1; - _sub(al, 3); -_tmp1: - ah = 0; - bx = ax; - al = data.byte(kTimedx); - ah = 0; - di = ax; - ch = (30); - cl = 240; - ds = data.word(kBuffers); - si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)); - multiget(); -} - -void DreamGenContext::putundertimed() { - STACK_CHECK; - al = data.byte(kTimedy); - _cmp(data.byte(kForeignrelease), 0); - if (flags.z()) - goto _tmp1; - _sub(al, 3); -_tmp1: - ah = 0; - bx = ax; - al = data.byte(kTimedx); - ah = 0; - di = ax; - ch = (30); - cl = 240; - ds = data.word(kBuffers); - si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)); - multiput(); -} - -void DreamGenContext::dumptimedtext() { - STACK_CHECK; - _cmp(data.byte(kNeedtodumptimed), 1); - if (!flags.z()) - return /* (nodumptimed) */; - al = data.byte(kTimedy); - _cmp(data.byte(kForeignrelease), 0); - if (flags.z()) - goto _tmp1; - _sub(al, 3); -_tmp1: - ah = 0; - bx = ax; - al = data.byte(kTimedx); - ah = 0; - di = ax; - cl = 240; - ch = (30); - multidump(); - data.byte(kNeedtodumptimed) = 0; -} - void DreamGenContext::setuptimeduse() { STACK_CHECK; _cmp(data.word(kTimecount), 0); @@ -13235,94 +11192,6 @@ void DreamGenContext::setuptimeduse() { data.word(kTimedoffset) = bx; } -void DreamGenContext::setuptimedtemp() { - STACK_CHECK; - _cmp(ah, 0); - if (flags.z()) - goto notloadspeech3; - push(ax); - push(bx); - push(cx); - push(dx); - dl = 'T'; - dh = ah; - cl = 'T'; - ah = 0; - loadspeech(); - _cmp(data.byte(kSpeechloaded), 1); - if (!flags.z()) - goto _tmp1; - al = 50+12; - playchannel1(); -_tmp1: - dx = pop(); - cx = pop(); - bx = pop(); - ax = pop(); - _cmp(data.byte(kSpeechloaded), 1); - if (!flags.z()) - goto notloadspeech3; - _cmp(data.byte(kSubtitles), 1); - if (flags.z()) - goto notloadspeech3; - return; -notloadspeech3: - _cmp(data.word(kTimecount), 0); - if (!flags.z()) - return /* (cantsetup2) */; - data.byte(kTimedy) = bh; - data.byte(kTimedx) = bl; - data.word(kCounttotimed) = cx; - _add(dx, cx); - data.word(kTimecount) = dx; - bl = al; - bh = 0; - _add(bx, bx); - es = data.word(kTextfile1); - cx = (66*2); - ax = es.word(bx); - _add(ax, cx); - bx = ax; - data.word(kTimedseg) = es; - data.word(kTimedoffset) = bx; -} - -void DreamGenContext::usetimedtext() { - STACK_CHECK; - _cmp(data.word(kTimecount), 0); - if (flags.z()) - return /* (notext) */; - _dec(data.word(kTimecount)); - _cmp(data.word(kTimecount), 0); - if (flags.z()) - goto deltimedtext; - ax = data.word(kTimecount); - _cmp(ax, data.word(kCounttotimed)); - if (flags.z()) - goto firsttimed; - if (!flags.c()) - return /* (notext) */; - goto notfirsttimed; -firsttimed: - getundertimed(); -notfirsttimed: - bl = data.byte(kTimedy); - bh = 0; - al = data.byte(kTimedx); - ah = 0; - di = ax; - es = data.word(kTimedseg); - si = data.word(kTimedoffset); - dl = 237; - ah = 0; - printdirect(); - data.byte(kNeedtodumptimed) = 1; - return; -deltimedtext: - putundertimed(); - data.byte(kNeedtodumptimed) = 1; -} - void DreamGenContext::edenscdplayer() { STACK_CHECK; showfirstuse(); @@ -13781,7 +11650,7 @@ afterpress: dumppointer(); dumpkeypad(); dumptextline(); - bx = 3482; + bx = offset_keypadlist; checkcoords(); _cmp(data.byte(kGetback), 1); if (flags.z()) @@ -14121,7 +11990,7 @@ menuloop: dumppointer(); dumpmenu(); dumptextline(); - bx = 3614; + bx = offset_menulist; checkcoords(); _cmp(data.byte(kGetback), 1); if (!flags.z()) @@ -14234,7 +12103,7 @@ folderloop: vsync(); dumppointer(); dumptextline(); - bx = 3636; + bx = offset_folderlist; checkcoords(); _cmp(data.byte(kGetback), 0); if (flags.z()) @@ -14278,7 +12147,7 @@ donextf: delpointer(); showfolder(); data.word(kMousebutton) = 0; - bx = 3636; + bx = offset_folderlist; checkcoords(); worktoscreenm(); } @@ -14365,7 +12234,7 @@ dolastf: delpointer(); showfolder(); data.word(kMousebutton) = 0; - bx = 3636; + bx = offset_folderlist; checkcoords(); worktoscreenm(); } @@ -14627,7 +12496,7 @@ symbolloop: dumppointer(); dumptextline(); dumpsymbol(); - bx = 3678; + bx = offset_symbollist; checkcoords(); _cmp(data.byte(kGetback), 0); if (flags.z()) @@ -14998,7 +12867,7 @@ diaryloop: dumppointer(); dumpdiarykeys(); dumptextline(); - bx = 3740; + bx = offset_diarylist; checkcoords(); _cmp(data.byte(kGetback), 0); if (flags.z()) @@ -15334,7 +13203,7 @@ waitops: dumppointer(); dumptextline(); delpointer(); - bx = 3782; + bx = offset_opslist; checkcoords(); _cmp(data.byte(kGetback), 0); if (flags.z()) @@ -15424,71 +13293,6 @@ void DreamGenContext::loadsavebox() { loadintotemp(); } -void DreamGenContext::loadgame() { - STACK_CHECK; - _cmp(data.byte(kCommandtype), 246); - if (flags.z()) - goto alreadyload; - data.byte(kCommandtype) = 246; - al = 41; - commandonly(); -alreadyload: - ax = data.word(kMousebutton); - _cmp(ax, data.word(kOldbutton)); - if (flags.z()) - return /* (noload) */; - _cmp(ax, 1); - if (flags.z()) - goto doload; - return; -doload: - data.byte(kLoadingorsave) = 1; - showopbox(); - showloadops(); - data.byte(kCurrentslot) = 0; - showslots(); - shownames(); - data.byte(kPointerframe) = 0; - worktoscreenm(); - namestoold(); - data.byte(kGetback) = 0; -loadops: - _cmp(data.byte(kQuitrequested), 0); - if (!flags.z()) - return /* (quitloaded) */; - delpointer(); - readmouse(); - showpointer(); - vsync(); - dumppointer(); - dumptextline(); - bx = 3824; - checkcoords(); - _cmp(data.byte(kGetback), 0); - if (flags.z()) - goto loadops; - _cmp(data.byte(kGetback), 2); - if (flags.z()) - return /* (quitloaded) */; - getridoftemp(); - dx = data; - es = dx; - bx = 7979; - startloading(); - loadroomssample(); - data.byte(kRoomloaded) = 1; - data.byte(kNewlocation) = 255; - clearsprites(); - initman(); - initrain(); - data.word(kTextaddressx) = 13; - data.word(kTextaddressy) = 182; - data.byte(kTextlen) = 240; - startup(); - worktoscreen(); - data.byte(kGetback) = 4; -} - void DreamGenContext::getbacktoops() { STACK_CHECK; _cmp(data.byte(kCommandtype), 201); @@ -15546,63 +13350,13 @@ discopsloop: vsync(); dumppointer(); dumptextline(); - bx = 3866; + bx = offset_discopslist; checkcoords(); _cmp(data.byte(kGetback), 0); if (flags.z()) goto discopsloop; } -void DreamGenContext::savegame() { - STACK_CHECK; - _cmp(data.byte(kMandead), 2); - if (!flags.z()) - goto cansaveok; - blank(); - return; -cansaveok: - _cmp(data.byte(kCommandtype), 247); - if (flags.z()) - goto alreadysave; - data.byte(kCommandtype) = 247; - al = 44; - commandonly(); -alreadysave: - ax = data.word(kMousebutton); - _and(ax, 1); - if (!flags.z()) - goto dosave; - return; -dosave: - data.byte(kLoadingorsave) = 2; - showopbox(); - showsaveops(); - data.byte(kCurrentslot) = 0; - showslots(); - shownames(); - worktoscreenm(); - namestoold(); - data.word(kBufferin) = 0; - data.word(kBufferout) = 0; - data.byte(kGetback) = 0; -saveops: - _cmp(data.byte(kQuitrequested), 0); - if (!flags.z()) - return /* (quitsavegame) */; - delpointer(); - checkinput(); - readmouse(); - showpointer(); - vsync(); - dumppointer(); - dumptextline(); - bx = 3908; - checkcoords(); - _cmp(data.byte(kGetback), 0); - if (flags.z()) - goto saveops; -} - void DreamGenContext::actualsave() { STACK_CHECK; _cmp(data.byte(kCommandtype), 222); @@ -16129,21 +13883,6 @@ isntblank: _stosw(); } -void DreamGenContext::findlen() { - STACK_CHECK; - _dec(bx); - _add(bx, ax); -nextone: - _cmp(cl, ds.byte(bx)); - if (!flags.z()) - return /* (foundlen) */; - _dec(bx); - _dec(ax); - _cmp(ax, 0); - if (!flags.z()) - goto nextone; -} - void DreamGenContext::scanfornames() { STACK_CHECK; dx = data; @@ -16223,7 +13962,7 @@ _tmp1: dumppointer(); dumptextline(); delpointer(); - bx = 5057; + bx = offset_decidelist; checkcoords(); _cmp(data.byte(kGetback), 0); if (flags.z()) @@ -16267,55 +14006,6 @@ alreadynewgame: data.byte(kGetback) = 3; } -void DreamGenContext::doload() { - STACK_CHECK; - data.byte(kLoadingorsave) = 1; - showopbox(); - showloadops(); - data.byte(kCurrentslot) = 0; - showslots(); - shownames(); - data.byte(kPointerframe) = 0; - worktoscreenm(); - namestoold(); - data.byte(kGetback) = 0; -loadops: - _cmp(data.byte(kQuitrequested), 0); - if (!flags.z()) - return /* (quitloaded) */; - delpointer(); - readmouse(); - showpointer(); - vsync(); - dumppointer(); - dumptextline(); - bx = 3824; - checkcoords(); - _cmp(data.byte(kGetback), 0); - if (flags.z()) - goto loadops; - _cmp(data.byte(kGetback), 2); - if (flags.z()) - return /* (quitloaded) */; - getridoftemp(); - dx = data; - es = dx; - bx = 7979; - startloading(); - loadroomssample(); - data.byte(kRoomloaded) = 1; - data.byte(kNewlocation) = 255; - clearsprites(); - initman(); - initrain(); - data.word(kTextaddressx) = 13; - data.word(kTextaddressy) = 182; - data.byte(kTextlen) = 240; - startup(); - worktoscreen(); - data.byte(kGetback) = 4; -} - void DreamGenContext::loadold() { STACK_CHECK; _cmp(data.byte(kCommandtype), 252); @@ -16329,6 +14019,7 @@ alreadyloadold: _and(ax, 1); if (flags.z()) return /* (noloadold) */; + ax = 0x0ffff; doload(); _cmp(data.byte(kGetback), 4); if (flags.z()) @@ -16344,7 +14035,7 @@ alreadyloadold: void DreamGenContext::createname() { STACK_CHECK; push(ax); - di = 5105; + di = offset_speechfile; cs.byte(di+0) = dl; cs.byte(di+3) = cl; al = dh; @@ -16511,46 +14202,6 @@ notsecondbank1: es = pop(); } -void DreamGenContext::makenextblock() { - STACK_CHECK; - volumeadjust(); - loopchannel0(); - _cmp(data.word(kCh1blockstocopy), 0); - if (flags.z()) - goto mightbeonlych0; - _cmp(data.word(kCh0blockstocopy), 0); - if (flags.z()) - goto mightbeonlych1; - _dec(data.word(kCh0blockstocopy)); - _dec(data.word(kCh1blockstocopy)); - bothchannels(); - return; -mightbeonlych1: - data.byte(kCh0playing) = 255; - _cmp(data.word(kCh1blockstocopy), 0); - if (flags.z()) - return /* (notch1only) */; - _dec(data.word(kCh1blockstocopy)); - channel1only(); - return; -mightbeonlych0: - data.byte(kCh1playing) = 255; - _cmp(data.word(kCh0blockstocopy), 0); - if (flags.z()) - goto notch0only; - _dec(data.word(kCh0blockstocopy)); - channel0only(); - return; -notch0only: - es = data.word(kSoundbuffer); - di = data.word(kSoundbufferwrite); - cx = 1024; - ax = 0x7f7f; - _stosw(cx, true); - _and(di, 16384-1); - data.word(kSoundbufferwrite) = di; -} - void DreamGenContext::volumeadjust() { STACK_CHECK; al = data.byte(kVolumedirection); @@ -16572,162 +14223,6 @@ volfinish: data.byte(kVolumedirection) = 0; } -void DreamGenContext::loopchannel0() { - STACK_CHECK; - _cmp(data.word(kCh0blockstocopy), 0); - if (!flags.z()) - return /* (notloop) */; - _cmp(data.byte(kCh0repeat), 0); - if (flags.z()) - return /* (notloop) */; - _cmp(data.byte(kCh0repeat), 255); - if (flags.z()) - goto endlessloop; - _dec(data.byte(kCh0repeat)); -endlessloop: - ax = data.word(kCh0oldemmpage); - data.word(kCh0emmpage) = ax; - ax = data.word(kCh0oldoffset); - data.word(kCh0offset) = ax; - ax = data.word(kCh0blockstocopy); - _add(ax, data.word(kCh0oldblockstocopy)); - data.word(kCh0blockstocopy) = ax; -} - -void DreamGenContext::channel0tran() { - STACK_CHECK; - _cmp(data.byte(kVolume), 0); - if (!flags.z()) - goto lowvolumetran; - cx = 1024; - _movsw(cx, true); - return; -lowvolumetran: - cx = 1024; - bh = data.byte(kVolume); - bl = 0; - _add(bx, 16384-256); -volloop: - _lodsw(); - bl = al; - al = es.byte(bx); - bl = ah; - ah = es.byte(bx); - _stosw(); - if (--cx) - goto volloop; -} - -void DreamGenContext::domix() { - STACK_CHECK; - _cmp(data.byte(kVolume), 0); - if (!flags.z()) - goto lowvolumemix; -slow: - _lodsb(); - ah = ds.byte(bx); - _inc(bx); - _cmp(al, dh); - if (!flags.c()) - goto toplot; - _cmp(ah, dh); - if (!flags.c()) - goto nodistort; - _add(al, ah); - if (flags.s()) - goto botok; - _xor(al, al); - _stosb(); - if (--cx) - goto slow; - return /* (doneit) */; -botok: - _xor(al, dh); - _stosb(); - if (--cx) - goto slow; - return /* (doneit) */; -toplot: - _cmp(ah, dh); - if (flags.c()) - goto nodistort; - _add(al, ah); - if (!flags.s()) - goto topok; - al = dl; - _stosb(); - if (--cx) - goto slow; - return /* (doneit) */; -topok: - _xor(al, dh); - _stosb(); - if (--cx) - goto slow; - return /* (doneit) */; -nodistort: - _add(al, ah); - _xor(al, dh); - _stosb(); - if (--cx) - goto slow; - return /* (doneit) */; -lowvolumemix: - _lodsb(); - push(bx); - bh = data.byte(kVolume); - _add(bh, 63); - bl = al; - al = es.byte(bx); - bx = pop(); - ah = ds.byte(bx); - _inc(bx); - _cmp(al, dh); - if (!flags.c()) - goto toplotv; - _cmp(ah, dh); - if (!flags.c()) - goto nodistortv; - _add(al, ah); - if (flags.s()) - goto botokv; - _xor(al, al); - _stosb(); - if (--cx) - goto lowvolumemix; - return /* (doneit) */; -botokv: - _xor(al, dh); - _stosb(); - if (--cx) - goto lowvolumemix; - return /* (doneit) */; -toplotv: - _cmp(ah, dh); - if (flags.c()) - goto nodistortv; - _add(al, ah); - if (!flags.s()) - goto topokv; - al = dl; - _stosb(); - if (--cx) - goto lowvolumemix; - return /* (doneit) */; -topokv: - _xor(al, dh); - _stosb(); - if (--cx) - goto lowvolumemix; - return /* (doneit) */; -nodistortv: - _add(al, ah); - _xor(al, dh); - _stosb(); - if (--cx) - goto lowvolumemix; -} - void DreamGenContext::entrytexts() { STACK_CHECK; _cmp(data.byte(kLocation), 21); @@ -17150,84 +14645,6 @@ void DreamGenContext::clearrest() { deallocatemem(); } -void DreamGenContext::parseblaster() { - STACK_CHECK; -lookattail: - al = es.byte(bx); - _cmp(al, 0); - if (flags.z()) - return /* (endtail) */; - _cmp(al, 13); - if (flags.z()) - return /* (endtail) */; - _cmp(al, 'i'); - if (flags.z()) - goto issoundint; - _cmp(al, 'I'); - if (flags.z()) - goto issoundint; - _cmp(al, 'b'); - if (flags.z()) - goto isbright; - _cmp(al, 'B'); - if (flags.z()) - goto isbright; - _cmp(al, 'a'); - if (flags.z()) - goto isbaseadd; - _cmp(al, 'A'); - if (flags.z()) - goto isbaseadd; - _cmp(al, 'n'); - if (flags.z()) - goto isnosound; - _cmp(al, 'N'); - if (flags.z()) - goto isnosound; - _cmp(al, 'd'); - if (flags.z()) - goto isdma; - _cmp(al, 'D'); - if (flags.z()) - goto isdma; - _inc(bx); - if (--cx) - goto lookattail; - return; -issoundint: - al = es.byte(bx+1); - _sub(al, '0'); - data.byte(kSoundint) = al; - _inc(bx); - goto lookattail; -isdma: - al = es.byte(bx+1); - _sub(al, '0'); - data.byte(kSounddmachannel) = al; - _inc(bx); - goto lookattail; -isbaseadd: - push(cx); - al = es.byte(bx+2); - _sub(al, '0'); - ah = 0; - cl = 4; - _shl(ax, cl); - _add(ax, 0x200); - data.word(kSoundbaseadd) = ax; - cx = pop(); - _inc(bx); - goto lookattail; -isbright: - data.byte(kBrightness) = 1; - _inc(bx); - goto lookattail; -isnosound: - data.byte(kSoundint) = 255; - _inc(bx); - goto lookattail; -} - void DreamGenContext::startup() { STACK_CHECK; data.byte(kCurrentkey) = 0; @@ -17633,96 +15050,14 @@ notzeronum: ch = 1; } -void DreamGenContext::walkandexamine() { - STACK_CHECK; - finishedwalking(); - if (!flags.z()) - return /* (noobselect) */; - al = data.byte(kWalkexamtype); - data.byte(kCommandtype) = al; - al = data.byte(kWalkexamnum); - data.byte(kCommand) = al; - data.byte(kWalkandexam) = 0; - _cmp(data.byte(kCommandtype), 5); - if (flags.z()) - return /* (noobselect) */; - examineob(); - return; -wantstowalk: - setwalk(); - data.byte(kReasseschanges) = 1; - return; -diff: - data.byte(kCommand) = al; - data.byte(kCommandtype) = ah; - _cmp(data.byte(kLinepointer), 254); - if (!flags.z()) - goto middleofwalk; - _cmp(data.word(kWatchingtime), 0); - if (!flags.z()) - goto middleofwalk; - al = data.byte(kFacing); - _cmp(al, data.byte(kTurntoface)); - if (!flags.z()) - goto middleofwalk; - _cmp(data.byte(kCommandtype), 3); - if (!flags.z()) - goto notblock; - bl = data.byte(kManspath); - _cmp(bl, data.byte(kPointerspath)); - if (!flags.z()) - goto dontcheck; - cl = data.byte(kRyanx); - _add(cl, 12); - ch = data.byte(kRyany); - _add(ch, 12); - checkone(); - _cmp(cl, 2); - if (flags.c()) - goto isblock; -dontcheck: - getflagunderp(); - _cmp(data.byte(kLastflag), 2); - if (flags.c()) - goto isblock; - _cmp(data.byte(kLastflag), 128); - if (!flags.c()) - goto isblock; - goto toofaraway; -notblock: - bl = data.byte(kManspath); - _cmp(bl, data.byte(kPointerspath)); - if (!flags.z()) - goto toofaraway; - _cmp(data.byte(kCommandtype), 3); - if (flags.z()) - goto isblock; - _cmp(data.byte(kCommandtype), 5); - if (flags.z()) - goto isaperson; - examineobtext(); - return; -middleofwalk: - blocknametext(); - return; -isblock: - blocknametext(); - return; -isaperson: - personnametext(); - return; -toofaraway: - walktotext(); -} - void DreamGenContext::mainscreen() { STACK_CHECK; data.byte(kInmaparea) = 0; - bx = 5122; + bx = offset_mainlist; _cmp(data.byte(kWatchon), 1); if (flags.z()) goto checkmain; - bx = 5184; + bx = offset_mainlist2; checkmain: checkcoords(); _cmp(data.byte(kWalkandexam), 0); @@ -17762,43 +15097,6 @@ alreadyrun: data.byte(kLastweapon) = 8; } -void DreamGenContext::checkcoords() { - STACK_CHECK; - _cmp(data.byte(kNewlocation), 255); - if (flags.z()) - goto loop048; - return; -loop048: - ax = cs.word(bx); - _cmp(ax, 0x0ffff); - if (flags.z()) - return /* (nonefound) */; - push(bx); - _cmp(data.word(kMousex), ax); - if (flags.l()) - goto over045; - ax = cs.word(bx+2); - _cmp(data.word(kMousex), ax); - if (!flags.l()) - goto over045; - ax = cs.word(bx+4); - _cmp(data.word(kMousey), ax); - if (flags.l()) - goto over045; - ax = cs.word(bx+6); - _cmp(data.word(kMousey), ax); - if (!flags.l()) - goto over045; - ax = cs.word(bx+8); - __dispatch_call(ax); - ax = pop(); - return; -over045: - bx = pop(); - _add(bx, 10); - goto loop048; -} - void DreamGenContext::identifyob() { STACK_CHECK; _cmp(data.word(kWatchingtime), 0); @@ -17862,69 +15160,6 @@ nothingund: blank(); } -void DreamGenContext::checkifperson() { - STACK_CHECK; - es = data.word(kBuffers); - bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)); - cx = 12; -identifyreel: - push(cx); - _cmp(es.byte(bx+4), 255); - if (flags.z()) - goto notareelid; - push(es); - push(bx); - push(ax); - ax = es.word(bx+0); - data.word(kReelpointer) = ax; - getreelstart(); - _cmp(es.word(si+2), 0x0ffff); - if (!flags.z()) - goto notblankpers; - _add(si, 5); -notblankpers: - cx = es.word(si+2); - ax = es.word(si+0); - push(cx); - getreelframeax(); - cx = pop(); - _add(cl, es.byte(bx+4)); - _add(ch, es.byte(bx+5)); - dx = cx; - _add(dl, es.byte(bx+0)); - _add(dh, es.byte(bx+1)); - ax = pop(); - bx = pop(); - es = pop(); - _cmp(al, cl); - if (flags.c()) - goto notareelid; - _cmp(ah, ch); - if (flags.c()) - goto notareelid; - _cmp(al, dl); - if (!flags.c()) - goto notareelid; - _cmp(ah, dh); - if (!flags.c()) - goto notareelid; - cx = pop(); - ax = es.word(bx+2); - data.word(kPersondata) = ax; - al = es.byte(bx+4); - ah = 5; - obname(); - al = 0; - _cmp(al, 1); - return; -notareelid: - cx = pop(); - _add(bx, 5); - _dec(cx); - if (!flags.z()) - goto identifyreel; -} - void DreamGenContext::checkifset() { STACK_CHECK; es = data.word(kBuffers); @@ -18001,41 +15236,6 @@ notanexid: goto identifyex; } -void DreamGenContext::checkiffree() { - STACK_CHECK; - es = data.word(kBuffers); - bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5))+(79*5); - cx = 79; -identifyfree: - _cmp(es.byte(bx+4), 255); - if (flags.z()) - goto notafreeid; - _cmp(al, es.byte(bx)); - if (flags.c()) - goto notafreeid; - _cmp(al, es.byte(bx+2)); - if (!flags.c()) - goto notafreeid; - _cmp(ah, es.byte(bx+1)); - if (flags.c()) - goto notafreeid; - _cmp(ah, es.byte(bx+3)); - if (!flags.c()) - goto notafreeid; - al = es.byte(bx+4); - ah = 2; - obname(); - al = 0; - _cmp(al, 1); - return; -notafreeid: - _sub(bx, 5); - _dec(cx); - _cmp(cx, -1); - if (!flags.z()) - goto identifyfree; -} - void DreamGenContext::isitdescribed() { STACK_CHECK; push(ax); @@ -18301,7 +15501,7 @@ void DreamGenContext::atmospheres() { STACK_CHECK; cl = data.byte(kMapx); ch = data.byte(kMapy); - bx = 5246; + bx = offset_atmospherelist; nextatmos: al = cs.byte(bx); _cmp(al, 255); @@ -18407,149 +15607,6 @@ void DreamGenContext::afterintroroom() { data.byte(kNowinnewroom) = 0; } -void DreamGenContext::obname() { - STACK_CHECK; - _cmp(data.byte(kReasseschanges), 0); - if (flags.z()) - goto notnewpath; - data.byte(kReasseschanges) = 0; - goto diff; -notnewpath: - _cmp(ah, data.byte(kCommandtype)); - if (flags.z()) - goto notdiffob; - goto diff; -notdiffob: - _cmp(al, data.byte(kCommand)); - if (!flags.z()) - goto diff; - _cmp(data.byte(kWalkandexam), 1); - if (flags.z()) - goto walkandexamine; - _cmp(data.word(kMousebutton), 0); - if (flags.z()) - return /* (noobselect) */; - _cmp(data.byte(kCommandtype), 3); - if (!flags.z()) - goto isntblock; - _cmp(data.byte(kLastflag), 2); - if (flags.c()) - return /* (noobselect) */; -isntblock: - bl = data.byte(kManspath); - _cmp(bl, data.byte(kPointerspath)); - if (!flags.z()) - goto wantstowalk; - _cmp(data.byte(kCommandtype), 3); - if (flags.z()) - goto wantstowalk; - finishedwalking(); - if (!flags.z()) - return /* (noobselect) */; - _cmp(data.byte(kCommandtype), 5); - if (flags.z()) - goto wantstotalk; - _cmp(data.word(kWatchingtime), 0); - if (!flags.z()) - return /* (noobselect) */; - examineob(); - return; -wantstotalk: - _cmp(data.word(kWatchingtime), 0); - if (!flags.z()) - return /* (noobselect) */; - talk(); - return; -walkandexamine: - finishedwalking(); - if (!flags.z()) - return /* (noobselect) */; - al = data.byte(kWalkexamtype); - data.byte(kCommandtype) = al; - al = data.byte(kWalkexamnum); - data.byte(kCommand) = al; - data.byte(kWalkandexam) = 0; - _cmp(data.byte(kCommandtype), 5); - if (flags.z()) - return /* (noobselect) */; - examineob(); - return; -wantstowalk: - setwalk(); - data.byte(kReasseschanges) = 1; - return; -diff: - data.byte(kCommand) = al; - data.byte(kCommandtype) = ah; - _cmp(data.byte(kLinepointer), 254); - if (!flags.z()) - goto middleofwalk; - _cmp(data.word(kWatchingtime), 0); - if (!flags.z()) - goto middleofwalk; - al = data.byte(kFacing); - _cmp(al, data.byte(kTurntoface)); - if (!flags.z()) - goto middleofwalk; - _cmp(data.byte(kCommandtype), 3); - if (!flags.z()) - goto notblock; - bl = data.byte(kManspath); - _cmp(bl, data.byte(kPointerspath)); - if (!flags.z()) - goto dontcheck; - cl = data.byte(kRyanx); - _add(cl, 12); - ch = data.byte(kRyany); - _add(ch, 12); - checkone(); - _cmp(cl, 2); - if (flags.c()) - goto isblock; -dontcheck: - getflagunderp(); - _cmp(data.byte(kLastflag), 2); - if (flags.c()) - goto isblock; - _cmp(data.byte(kLastflag), 128); - if (!flags.c()) - goto isblock; - goto toofaraway; -notblock: - bl = data.byte(kManspath); - _cmp(bl, data.byte(kPointerspath)); - if (!flags.z()) - goto toofaraway; - _cmp(data.byte(kCommandtype), 3); - if (flags.z()) - goto isblock; - _cmp(data.byte(kCommandtype), 5); - if (flags.z()) - goto isaperson; - examineobtext(); - return; -middleofwalk: - blocknametext(); - return; -isblock: - blocknametext(); - return; -isaperson: - personnametext(); - return; -toofaraway: - walktotext(); -} - -void DreamGenContext::finishedwalking() { - STACK_CHECK; - _cmp(data.byte(kLinepointer), 254); - if (!flags.z()) - return /* (iswalking) */; - al = data.byte(kFacing); - _cmp(al, data.byte(kTurntoface)); -} - void DreamGenContext::examineobtext() { STACK_CHECK; bl = data.byte(kCommand); @@ -18558,95 +15615,6 @@ void DreamGenContext::examineobtext() { commandwithob(); } -void DreamGenContext::commandwithob() { - STACK_CHECK; - push(ax); - push(ax); - push(bx); - push(cx); - push(dx); - push(es); - push(ds); - push(si); - push(di); - deltextline(); - di = pop(); - si = pop(); - ds = pop(); - es = pop(); - dx = pop(); - cx = pop(); - bx = pop(); - ax = pop(); - push(bx); - ah = 0; - _add(ax, ax); - bx = ax; - es = data.word(kCommandtext); - ax = es.word(bx); - _add(ax, (66*2)); - si = ax; - di = data.word(kTextaddressx); - bx = data.word(kTextaddressy); - dl = data.byte(kTextlen); - al = 0; - ah = 0; - printdirect(); - ax = pop(); - di = 5847; - copyname(); - ax = pop(); - di = data.word(kLastxpos); - _cmp(al, 0); - if (flags.z()) - goto noadd; - _add(di, 5); -noadd: - bx = data.word(kTextaddressy); - es = cs; - si = 5847; - dl = data.byte(kTextlen); - al = 0; - ah = 0; - printdirect(); - data.byte(kNewtextline) = 1; -} - -void DreamGenContext::commandonly() { - STACK_CHECK; - push(ax); - push(bx); - push(cx); - push(dx); - push(es); - push(ds); - push(si); - push(di); - deltextline(); - di = pop(); - si = pop(); - ds = pop(); - es = pop(); - dx = pop(); - cx = pop(); - bx = pop(); - ax = pop(); - ah = 0; - _add(ax, ax); - bx = ax; - es = data.word(kCommandtext); - ax = es.word(bx); - _add(ax, (66*2)); - si = ax; - di = data.word(kTextaddressx); - bx = data.word(kTextaddressy); - dl = data.byte(kTextlen); - al = 0; - ah = 0; - printdirect(); - data.byte(kNewtextline) = 1; -} - void DreamGenContext::printmessage() { STACK_CHECK; push(dx); @@ -18696,43 +15664,6 @@ searchmess: printdirect(); } -void DreamGenContext::blocknametext() { - STACK_CHECK; - bl = data.byte(kCommand); - bh = data.byte(kCommandtype); - al = 0; - commandwithob(); -} - -void DreamGenContext::personnametext() { - STACK_CHECK; - bl = data.byte(kCommand); - _and(bl, 127); - bh = data.byte(kCommandtype); - al = 2; - commandwithob(); -} - -void DreamGenContext::walktotext() { - STACK_CHECK; - bl = data.byte(kCommand); - bh = data.byte(kCommandtype); - al = 3; - commandwithob(); -} - -void DreamGenContext::getflagunderp() { - STACK_CHECK; - cx = data.word(kMousex); - _sub(cx, data.word(kMapadx)); - ax = data.word(kMousey); - _sub(ax, data.word(kMapady)); - ch = al; - checkone(); - data.byte(kLastflag) = cl; - data.byte(kLastflagex) = ch; -} - void DreamGenContext::setwalk() { STACK_CHECK; _cmp(data.byte(kLinepointer), 254); @@ -18776,109 +15707,6 @@ holdingreel: data.byte(kWatchmode) = 2; } -void DreamGenContext::autosetwalk() { - STACK_CHECK; - al = data.byte(kManspath); - _cmp(data.byte(kFinaldest), al); - if (!flags.z()) - goto notsamealready; - return; -notsamealready: - getroomspaths(); - checkdest(); - push(bx); - al = data.byte(kManspath); - ah = 0; - _add(ax, ax); - _add(ax, ax); - _add(ax, ax); - _add(bx, ax); - al = es.byte(bx); - ah = 0; - _sub(ax, 12); - data.word(kLinestartx) = ax; - al = es.byte(bx+1); - ah = 0; - _sub(ax, 12); - data.word(kLinestarty) = ax; - bx = pop(); - al = data.byte(kDestination); - ah = 0; - _add(ax, ax); - _add(ax, ax); - _add(ax, ax); - _add(bx, ax); - al = es.byte(bx); - ah = 0; - _sub(ax, 12); - data.word(kLineendx) = ax; - al = es.byte(bx+1); - ah = 0; - _sub(ax, 12); - data.word(kLineendy) = ax; - bresenhams(); - _cmp(data.byte(kLinedirection), 0); - if (flags.z()) - goto normalline; - al = data.byte(kLinelength); - _dec(al); - data.byte(kLinepointer) = al; - data.byte(kLinedirection) = 1; - return; -normalline: - data.byte(kLinepointer) = 0; -} - -void DreamGenContext::checkdest() { - STACK_CHECK; - push(bx); - _add(bx, 12*8); - ah = data.byte(kManspath); - cl = 4; - _shl(ah, cl); - al = data.byte(kDestination); - cl = 24; - ch = data.byte(kDestination); -checkdestloop: - dh = es.byte(bx); - _and(dh, 0xf0); - dl = es.byte(bx); - _and(dl, 0xf); - _cmp(ax, dx); - if (!flags.z()) - goto nextcheck; - al = es.byte(bx+1); - _and(al, 15); - data.byte(kDestination) = al; - bx = pop(); - return; -nextcheck: - dl = es.byte(bx); - _and(dl, 0xf0); - _shr(dl, 1); - _shr(dl, 1); - _shr(dl, 1); - _shr(dl, 1); - dh = es.byte(bx); - _and(dh, 0xf); - _shl(dh, 1); - _shl(dh, 1); - _shl(dh, 1); - _shl(dh, 1); - _cmp(ax, dx); - if (!flags.z()) - goto nextcheck2; - ch = es.byte(bx+1); - _and(ch, 15); -nextcheck2: - _add(bx, 2); - _dec(cl); - if (!flags.z()) - goto checkdestloop; - data.byte(kDestination) = ch; - bx = pop(); -} - void DreamGenContext::bresenhams() { STACK_CHECK; workoutframes(); @@ -19094,106 +15922,6 @@ success: data.byte(kTurndirection) = 0; } -void DreamGenContext::getroomspaths() { - STACK_CHECK; - al = data.byte(kRoomnum); - ah = 0; - cx = 144; - _mul(cx); - es = data.word(kReels); - bx = (0); - _add(bx, ax); -} - -void DreamGenContext::copyname() { - STACK_CHECK; - push(di); - findobname(); - di = pop(); - es = cs; - cx = 28; -make: - _lodsb(); - _cmp(al, ':'); - if (flags.z()) - goto finishmakename; - _cmp(al, 0); - if (flags.z()) - goto finishmakename; - _stosb(); - if (--cx) - goto make; -finishmakename: - _inc(cx); - al = 0; - _stosb(); - return; - al = 255; - _stosb(cx, true); -} - -void DreamGenContext::findobname() { - STACK_CHECK; - push(ax); - ah = 0; - _add(ax, ax); - bx = ax; - ax = pop(); - _cmp(ah, 5); - if (!flags.z()) - goto notpersonname; - push(ax); - _and(al, 127); - ah = 0; - bx = 64*2; - _mul(bx); - si = ax; - ds = data.word(kPeople); - _add(si, (0+24)); - cx = (0+24+(1026*2)); - ax = ds.word(si); - _add(ax, cx); - si = ax; - ax = pop(); - return; -notpersonname: - _cmp(ah, 4); - if (!flags.z()) - goto notextraname; - ds = data.word(kExtras); - _add(bx, (0+2080+30000+(16*114))); - ax = ds.word(bx); - _add(ax, (0+2080+30000+(16*114)+((114+2)*2))); - si = ax; - return; -notextraname: - _cmp(ah, 2); - if (!flags.z()) - goto notfreename; - ds = data.word(kFreedesc); - _add(bx, (0)); - ax = ds.word(bx); - _add(ax, (0+(82*2))); - si = ax; - return; -notfreename: - _cmp(ah, 1); - if (!flags.z()) - goto notsetname; - ds = data.word(kSetdesc); - _add(bx, (0)); - ax = ds.word(bx); - _add(ax, (0+(130*2))); - si = ax; - return; -notsetname: - ds = data.word(kBlockdesc); - _add(bx, (0)); - ax = ds.word(bx); - _add(ax, (0+(98*2))); - si = ax; -} - void DreamGenContext::showicon() { STACK_CHECK; _cmp(data.byte(kReallocation), 50); @@ -19298,22 +16026,6 @@ void DreamGenContext::showman() { showframe(); } -void DreamGenContext::showpanel() { - STACK_CHECK; - ds = data.word(kIcons1); - di = 72; - bx = 0; - al = 19; - ah = 0; - showframe(); - ds = data.word(kIcons1); - di = 192; - bx = 0; - al = 19; - ah = 0; - showframe(); -} - void DreamGenContext::roomname() { STACK_CHECK; di = 88; @@ -19430,63 +16142,6 @@ void DreamGenContext::zoomicon() { showframe(); } -void DreamGenContext::showblink() { - STACK_CHECK; - _cmp(data.byte(kManisoffscreen), 1); - if (flags.z()) - return /* (finblink1) */; - _inc(data.byte(kBlinkcount)); - _cmp(data.byte(kShadeson), 0); - if (!flags.z()) - return /* (finblink1) */; - _cmp(data.byte(kReallocation), 50); - if (!flags.c()) - return /* (eyesshut) */; - al = data.byte(kBlinkcount); - _cmp(al, 3); - if (!flags.z()) - return /* (finblink1) */; - data.byte(kBlinkcount) = 0; - al = data.byte(kBlinkframe); - _inc(al); - data.byte(kBlinkframe) = al; - _cmp(al, 6); - if (flags.c()) - goto nomorethan6; - al = 6; -nomorethan6: - ah = 0; - bx = 5888; - _add(bx, ax); - al = cs.byte(bx); - ds = data.word(kIcons1); - di = 44; - bx = 32; - ah = 0; - showframe(); -} - -void DreamGenContext::dumpblink() { - STACK_CHECK; - _cmp(data.byte(kShadeson), 0); - if (!flags.z()) - return /* (nodumpeye) */; - _cmp(data.byte(kBlinkcount), 0); - if (!flags.z()) - return /* (nodumpeye) */; - al = data.byte(kBlinkframe); - _cmp(al, 6); - if (!flags.c()) - return /* (nodumpeye) */; - push(ds); - di = 44; - bx = 32; - cl = 16; - ch = 12; - multidump(); - ds = pop(); -} - void DreamGenContext::worktoscreenm() { STACK_CHECK; animpointer(); @@ -19622,188 +16277,6 @@ void DreamGenContext::putunderzoom() { multiput(); } -void DreamGenContext::crosshair() { - STACK_CHECK; - _cmp(data.byte(kCommandtype), 3); - if (flags.z()) - goto nocross; - _cmp(data.byte(kCommandtype), 10); - if (!flags.c()) - goto nocross; - es = data.word(kWorkspace); - ds = data.word(kIcons1); - di = (8)+24; - bx = (132)+19; - al = 9; - ah = 0; - showframe(); - return; -nocross: - es = data.word(kWorkspace); - ds = data.word(kIcons1); - di = (8)+24; - bx = (132)+19; - al = 29; - ah = 0; - showframe(); -} - -void DreamGenContext::showpointer() { - STACK_CHECK; - showblink(); - di = data.word(kMousex); - data.word(kOldpointerx) = di; - bx = data.word(kMousey); - data.word(kOldpointery) = bx; - _cmp(data.byte(kPickup), 1); - if (flags.z()) - goto itsanobject; - push(bx); - push(di); - ds = data.word(kIcons1); - al = data.byte(kPointerframe); - _add(al, 20); - ah = 0; - _add(ax, ax); - si = ax; - _add(ax, ax); - _add(si, ax); - cx = ds.word(si); - _cmp(cl, 12); - if (!flags.c()) - goto notsmallx; - cl = 12; -notsmallx: - _cmp(ch, 12); - if (!flags.c()) - goto notsmally; - ch = 12; -notsmally: - data.byte(kPointerxs) = cl; - data.byte(kPointerys) = ch; - push(ds); - ds = data.word(kBuffers); - si = (0+(228*13)+32+60); - multiget(); - ds = pop(); - di = pop(); - bx = pop(); - push(di); - push(bx); - al = data.byte(kPointerframe); - _add(al, 20); - ah = 0; - showframe(); - bx = pop(); - di = pop(); - return; -itsanobject: - al = data.byte(kItemframe); - ds = data.word(kExtras); - _cmp(data.byte(kObjecttype), 4); - if (flags.z()) - goto itsfrominv; - ds = data.word(kFreeframes); -itsfrominv: - cl = al; - _add(al, al); - _add(al, cl); - _inc(al); - ah = 0; - push(ax); - _add(ax, ax); - si = ax; - _add(ax, ax); - _add(si, ax); - ax = 2080; - cx = ds.word(si); - _cmp(cl, 12); - if (!flags.c()) - goto notsmallx2; - cl = 12; -notsmallx2: - _cmp(ch, 12); - if (!flags.c()) - goto notsmally2; - ch = 12; -notsmally2: - data.byte(kPointerxs) = cl; - data.byte(kPointerys) = ch; - ax = pop(); - push(di); - push(bx); - push(ax); - push(bx); - push(di); - push(ds); - al = cl; - ah = 0; - _shr(ax, 1); - _sub(data.word(kOldpointerx), ax); - _sub(di, ax); - al = ch; - _shr(ax, 1); - _sub(data.word(kOldpointery), ax); - _sub(bx, ax); - ds = data.word(kBuffers); - si = (0+(228*13)+32+60); - multiget(); - ds = pop(); - di = pop(); - bx = pop(); - ax = pop(); - ah = 128; - showframe(); - bx = pop(); - di = pop(); - ds = data.word(kIcons1); - al = 3; - ah = 128; - showframe(); -} - -void DreamGenContext::delpointer() { - STACK_CHECK; - ax = data.word(kOldpointerx); - _cmp(ax, 0x0ffff); - if (flags.z()) - return /* (nevershown) */; - data.word(kDelherex) = ax; - ax = data.word(kOldpointery); - data.word(kDelherey) = ax; - cl = data.byte(kPointerxs); - data.byte(kDelxs) = cl; - ch = data.byte(kPointerys); - data.byte(kDelys) = ch; - ds = data.word(kBuffers); - si = (0+(228*13)+32+60); - di = data.word(kDelherex); - bx = data.word(kDelherey); - multiput(); -} - -void DreamGenContext::dumppointer() { - STACK_CHECK; - dumpblink(); - cl = data.byte(kDelxs); - ch = data.byte(kDelys); - di = data.word(kDelherex); - bx = data.word(kDelherey); - multidump(); - bx = data.word(kOldpointery); - di = data.word(kOldpointerx); - _cmp(di, data.word(kDelherex)); - if (!flags.z()) - goto difffound; - _cmp(bx, data.word(kDelherey)); - if (flags.z()) - return /* (notboth) */; -difffound: - cl = data.byte(kPointerxs); - ch = data.byte(kPointerys); - multidump(); -} - void DreamGenContext::undertextline() { STACK_CHECK; di = data.word(kTextaddressx); @@ -19820,186 +16293,6 @@ _tmp1: multiget(); } -void DreamGenContext::deltextline() { - STACK_CHECK; - di = data.word(kTextaddressx); - bx = data.word(kTextaddressy); - _cmp(data.byte(kForeignrelease), 0); - if (flags.z()) - goto _tmp1; - _sub(bx, 3); -_tmp1: - ds = data.word(kBuffers); - si = (0); - cl = (228); - ch = (13); - multiput(); -} - -void DreamGenContext::dumptextline() { - STACK_CHECK; - _cmp(data.byte(kNewtextline), 1); - if (!flags.z()) - return /* (nodumptextline) */; - data.byte(kNewtextline) = 0; - di = data.word(kTextaddressx); - bx = data.word(kTextaddressy); - _cmp(data.byte(kForeignrelease), 0); - if (flags.z()) - goto _tmp1; - _sub(bx, 3); -_tmp1: - cl = (228); - ch = (13); - multidump(); -} - -void DreamGenContext::animpointer() { - STACK_CHECK; - _cmp(data.byte(kPointermode), 2); - if (flags.z()) - goto combathand; - _cmp(data.byte(kPointermode), 3); - if (flags.z()) - goto mousehand; - _cmp(data.word(kWatchingtime), 0); - if (flags.z()) - goto notwatchpoint; - data.byte(kPointerframe) = 11; - return; -notwatchpoint: - data.byte(kPointerframe) = 0; - _cmp(data.byte(kInmaparea), 0); - if (flags.z()) - return /* (gothand) */; - _cmp(data.byte(kPointerfirstpath), 0); - if (flags.z()) - return /* (gothand) */; - getflagunderp(); - _cmp(cl, 2); - if (flags.c()) - return /* (gothand) */; - _cmp(cl, 128); - if (!flags.c()) - return /* (gothand) */; - data.byte(kPointerframe) = 3; - _test(cl, 4); - if (!flags.z()) - return /* (gothand) */; - data.byte(kPointerframe) = 4; - _test(cl, 16); - if (!flags.z()) - return /* (gothand) */; - data.byte(kPointerframe) = 5; - _test(cl, 2); - if (!flags.z()) - return /* (gothand) */; - data.byte(kPointerframe) = 6; - _test(cl, 8); - if (!flags.z()) - return /* (gothand) */; - data.byte(kPointerframe) = 8; - return; -mousehand: - _cmp(data.byte(kPointerspeed), 0); - if (flags.z()) - goto rightspeed3; - _dec(data.byte(kPointerspeed)); - goto finflashmouse; -rightspeed3: - data.byte(kPointerspeed) = 5; - _inc(data.byte(kPointercount)); - _cmp(data.byte(kPointercount), 16); - if (!flags.z()) - goto finflashmouse; - data.byte(kPointercount) = 0; -finflashmouse: - al = data.byte(kPointercount); - ah = 0; - bx = 5895; - _add(bx, ax); - al = cs.byte(bx); - data.byte(kPointerframe) = al; - return; -combathand: - data.byte(kPointerframe) = 0; - _cmp(data.byte(kReallocation), 14); - if (!flags.z()) - return /* (notarrow) */; - _cmp(data.byte(kCommandtype), 211); - if (!flags.z()) - return /* (notarrow) */; - data.byte(kPointerframe) = 5; -} - -void DreamGenContext::readmouse() { - STACK_CHECK; - ax = data.word(kMousebutton); - data.word(kOldbutton) = ax; - ax = data.word(kMousex); - data.word(kOldx) = ax; - ax = data.word(kMousey); - data.word(kOldy) = ax; - mousecall(); - data.word(kMousex) = cx; - data.word(kMousey) = dx; - data.word(kMousebutton) = bx; -} - -void DreamGenContext::readmouse1() { - STACK_CHECK; - ax = data.word(kMousex); - data.word(kOldx) = ax; - ax = data.word(kMousey); - data.word(kOldy) = ax; - mousecall(); - data.word(kMousex) = cx; - data.word(kMousey) = dx; - data.word(kMousebutton1) = bx; -} - -void DreamGenContext::readmouse2() { - STACK_CHECK; - ax = data.word(kMousex); - data.word(kOldx) = ax; - ax = data.word(kMousey); - data.word(kOldy) = ax; - mousecall(); - data.word(kMousex) = cx; - data.word(kMousey) = dx; - data.word(kMousebutton2) = bx; -} - -void DreamGenContext::readmouse3() { - STACK_CHECK; - ax = data.word(kMousex); - data.word(kOldx) = ax; - ax = data.word(kMousey); - data.word(kOldy) = ax; - mousecall(); - data.word(kMousex) = cx; - data.word(kMousey) = dx; - data.word(kMousebutton3) = bx; -} - -void DreamGenContext::readmouse4() { - STACK_CHECK; - ax = data.word(kMousebutton); - data.word(kOldbutton) = ax; - ax = data.word(kMousex); - data.word(kOldx) = ax; - ax = data.word(kMousey); - data.word(kOldy) = ax; - mousecall(); - data.word(kMousex) = cx; - data.word(kMousey) = dx; - ax = data.word(kMousebutton1); - _or(ax, data.word(kMousebutton2)); - _or(ax, data.word(kMousebutton3)); - _or(bx, ax); - data.word(kMousebutton) = bx; -} - void DreamGenContext::readkey() { STACK_CHECK; bx = data.word(kBufferout); @@ -20009,7 +16302,7 @@ void DreamGenContext::readkey() { _inc(bx); _and(bx, 15); data.word(kBufferout) = bx; - di = 5912; + di = offset_keybuffer; _add(di, bx); al = cs.byte(di); data.byte(kCurrentkey) = al; @@ -20333,142 +16626,6 @@ blimey: es = pop(); } -void DreamGenContext::startloading() { - STACK_CHECK; - data.byte(kCombatcount) = 0; - al = cs.byte(bx+13); - data.byte(kRoomssample) = al; - al = cs.byte(bx+15); - data.byte(kMapx) = al; - al = cs.byte(bx+16); - data.byte(kMapy) = al; - al = cs.byte(bx+20); - data.byte(kLiftflag) = al; - al = cs.byte(bx+21); - data.byte(kManspath) = al; - data.byte(kDestination) = al; - data.byte(kFinaldest) = al; - al = cs.byte(bx+22); - data.byte(kFacing) = al; - data.byte(kTurntoface) = al; - al = cs.byte(bx+23); - data.byte(kCounttoopen) = al; - al = cs.byte(bx+24); - data.byte(kLiftpath) = al; - al = cs.byte(bx+25); - data.byte(kDoorpath) = al; - data.byte(kLastweapon) = -1; - al = cs.byte(bx+27); - push(ax); - al = cs.byte(bx+31); - ah = data.byte(kReallocation); - data.byte(kReallocation) = al; - dx = bx; - openfile(); - readheader(); - allocateload(); - ds = ax; - data.word(kBackdrop) = ax; - dx = (0); - loadseg(); - ds = data.word(kWorkspace); - dx = (0); - cx = 132*66; - al = 0; - fillspace(); - loadseg(); - sortoutmap(); - allocateload(); - data.word(kSetframes) = ax; - ds = ax; - dx = (0); - loadseg(); - ds = data.word(kSetdat); - dx = 0; - cx = (64*128); - al = 255; - fillspace(); - loadseg(); - allocateload(); - data.word(kReel1) = ax; - ds = ax; - dx = 0; - loadseg(); - allocateload(); - data.word(kReel2) = ax; - ds = ax; - dx = 0; - loadseg(); - allocateload(); - data.word(kReel3) = ax; - ds = ax; - dx = 0; - loadseg(); - allocateload(); - data.word(kReels) = ax; - ds = ax; - dx = 0; - loadseg(); - allocateload(); - data.word(kPeople) = ax; - ds = ax; - dx = 0; - loadseg(); - allocateload(); - data.word(kSetdesc) = ax; - ds = ax; - dx = 0; - loadseg(); - allocateload(); - data.word(kBlockdesc) = ax; - ds = ax; - dx = 0; - loadseg(); - allocateload(); - data.word(kRoomdesc) = ax; - ds = ax; - dx = 0; - loadseg(); - allocateload(); - data.word(kFreeframes) = ax; - ds = ax; - dx = 0; - loadseg(); - ds = data.word(kFreedat); - dx = 0; - cx = (16*80); - al = 255; - fillspace(); - loadseg(); - allocateload(); - data.word(kFreedesc) = ax; - ds = ax; - dx = (0); - loadseg(); - closefile(); - findroominloc(); - deletetaken(); - setallchanges(); - autoappear(); - al = data.byte(kNewlocation); - getroomdata(); - data.byte(kLastweapon) = -1; - data.byte(kMandead) = 0; - data.word(kLookcounter) = 160; - data.byte(kNewlocation) = 255; - data.byte(kLinepointer) = 254; - ax = pop(); - _cmp(al, 255); - if (flags.z()) - goto dontwalkin; - data.byte(kManspath) = al; - push(bx); - autosetwalk(); - bx = pop(); -dontwalkin: - findxyfrompath(); -} - void DreamGenContext::disablepath() { STACK_CHECK; push(cx); @@ -20503,22 +16660,6 @@ lookx2: es.byte(bx+6) = al; } -void DreamGenContext::findxyfrompath() { - STACK_CHECK; - getroomspaths(); - al = data.byte(kManspath); - ah = 0; - _add(ax, ax); - _add(ax, ax); - _add(ax, ax); - _add(bx, ax); - ax = es.word(bx); - _sub(al, 12); - _sub(ah, 12); - data.byte(kRyanx) = al; - data.byte(kRyany) = ah; -} - void DreamGenContext::findroominloc() { STACK_CHECK; al = data.byte(kMapy); @@ -20538,25 +16679,6 @@ lookx: data.byte(kRoomnum) = cl; } -void DreamGenContext::getroomdata() { - STACK_CHECK; - ah = 0; - cx = 32; - _mul(cx); - bx = 6187; - _add(bx, ax); -} - -void DreamGenContext::readheader() { - STACK_CHECK; - ds = cs; - dx = 6091; - cx = (6187-6091); - readfromfile(); - es = cs; - di = 6141; -} - void DreamGenContext::allocateload() { STACK_CHECK; push(es); @@ -20569,23 +16691,6 @@ void DreamGenContext::allocateload() { es = pop(); } -void DreamGenContext::fillspace() { - STACK_CHECK; - push(es); - push(ds); - push(dx); - push(di); - push(bx); - di = dx; - es = ds; - _stosb(cx, true); - bx = pop(); - di = pop(); - dx = pop(); - ds = pop(); - es = pop(); -} - void DreamGenContext::getridoftemp() { STACK_CHECK; es = data.word(kTempgraphics); @@ -20656,723 +16761,1142 @@ void DreamGenContext::readsetdata() { closefile(); } -void DreamGenContext::makename() { - STACK_CHECK; - si = dx; - di = 6061; -transfer: - al = cs.byte(si); - cs.byte(di) = al; - _inc(si); - _inc(di); - _cmp(al, 0); - if (!flags.z()) - goto transfer; - dx = 6059; -} - -void DreamGenContext::dreamweb() { - STACK_CHECK; - seecommandtail(); - checkbasemem(); - soundstartup(); - setkeyboardint(); - setupemm(); - allocatebuffers(); - setmouse(); - fadedos(); - gettime(); - clearbuffers(); - clearpalette(); - set16colpalette(); - readsetdata(); - data.byte(kWongame) = 0; - dx = 1909; - loadsample(); - setsoundoff(); - scanfornames(); - _cmp(al, 0); - if (!flags.z()) - goto dodecisions; - setmode(); - loadpalfromiff(); - titles(); - credits(); - goto playgame; -dodecisions: - cls(); - setmode(); - decide(); - _cmp(data.byte(kQuitrequested), 0); - if (!flags.z()) - return /* (exitgame) */; - _cmp(data.byte(kGetback), 4); - if (flags.z()) - goto mainloop; - titles(); - _cmp(data.byte(kQuitrequested), 0); - if (!flags.z()) - return /* (exitgame) */; - credits(); -playgame: - _cmp(data.byte(kQuitrequested), 0); - if (!flags.z()) - return /* (exitgame) */; - clearchanges(); - setmode(); - loadpalfromiff(); - data.byte(kLocation) = 255; - data.byte(kRoomafterdream) = 1; - data.byte(kNewlocation) = 35; - data.byte(kVolume) = 7; - loadroom(); - clearsprites(); - initman(); - entrytexts(); - entryanims(); - data.byte(kDestpos) = 3; - initialinv(); - data.byte(kLastflag) = 32; - startup1(); - data.byte(kVolumeto) = 0; - data.byte(kVolumedirection) = -1; - data.byte(kCommandtype) = 255; - goto mainloop; -loadnew: - clearbeforeload(); - loadroom(); - clearsprites(); - initman(); - entrytexts(); - entryanims(); - data.byte(kNewlocation) = 255; - startup(); - data.byte(kCommandtype) = 255; - worktoscreenm(); - goto mainloop; - data.byte(kNewlocation) = 255; - clearsprites(); - initman(); - startup(); - data.byte(kCommandtype) = 255; -mainloop: - _cmp(data.byte(kQuitrequested), 0); - if (!flags.z()) - return /* (exitgame) */; - screenupdate(); - _cmp(data.byte(kWongame), 0); - if (!flags.z()) - goto endofgame; - _cmp(data.byte(kMandead), 1); - if (flags.z()) - goto gameover; - _cmp(data.byte(kMandead), 2); - if (flags.z()) - goto gameover; - _cmp(data.word(kWatchingtime), 0); - if (flags.z()) - goto notwatching; - al = data.byte(kFinaldest); - _cmp(al, data.byte(kManspath)); - if (!flags.z()) - goto mainloop; - _dec(data.word(kWatchingtime)); - if (!flags.z()) - goto mainloop; -notwatching: - _cmp(data.byte(kMandead), 4); - if (flags.z()) - goto gameover; - _cmp(data.byte(kNewlocation), 255); - if (!flags.z()) - goto loadnew; - goto mainloop; -gameover: - clearbeforeload(); - showgun(); - fadescreendown(); - cx = 100; - hangon(); - goto dodecisions; -endofgame: - clearbeforeload(); - fadescreendowns(); - cx = 200; - hangon(); - endgame(); - { quickquit2(); return; }; -} - void DreamGenContext::__start() { static const uint8 src[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x13, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0000: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x0010: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0020: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00, 0xff, 0x00, + //0x0030: .... .... .... .... 0xff, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0xb6, + //0x0040: ...0 .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0050: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0060: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0070: .... ...h .&.. .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0080: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0090: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x00a0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + //0x00b0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x00c0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x00d0: .... .... .... .... 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x00e0: .. .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x00f0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0100: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0110: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0120: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0130: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0140: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0150: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + //0x0160: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, + //0x0170: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0180: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0190: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + //0x01a0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x01b0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x01c0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x01d0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x01e0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x01f0: .... .... .... .... 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x0200: .... .... .... .... 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x00, 0x14, 0x00, 0x02, 0x00, 0x01, 0x01, 0x37, + //0x0210: .... ..., .... ...7 0x00, 0x00, 0x00, 0x32, 0x14, 0x00, 0x18, 0x16, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x18, 0x21, + //0x0220: ...2 .... .J.. ...! 0x0a, 0x4b, 0x00, 0x01, 0x00, 0x01, 0x01, 0x2c, 0x00, 0x1b, 0x00, 0x02, 0x00, 0x02, 0x01, 0x2c, + //0x0230: .K.. ..., .... ..., 0x00, 0x60, 0x00, 0x03, 0x00, 0x04, 0x01, 0x2c, 0x00, 0x76, 0x00, 0x02, 0x00, 0x05, 0x01, 0x2c, + //0x0240: .`.. ..., .v.. ..., 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, 0x16, 0x14, 0x35, 0x00, 0x03, 0x00, 0x00, 0x05, 0x16, + //0x0250: .... .... .5.. .... 0x14, 0x28, 0x00, 0x01, 0x00, 0x02, 0x05, 0x16, 0x14, 0x32, 0x00, 0x01, 0x00, 0x03, 0x02, 0x0b, + //0x0260: .(.. .... .2.. .... 0x0a, 0xc0, 0x00, 0x01, 0x00, 0x00, 0x02, 0x0b, 0x0a, 0xb6, 0x00, 0x02, 0x00, 0x01, 0x08, 0x0b, + //0x0270: .... .... .... .... 0x0a, 0x00, 0x00, 0x02, 0x00, 0x01, 0x17, 0x00, 0x32, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1c, 0x0b, + //0x0280: .... .... 2... .... 0x14, 0xfa, 0x00, 0x04, 0x00, 0x00, 0x17, 0x00, 0x32, 0x2b, 0x00, 0x02, 0x00, 0x08, 0x17, 0x0b, + //0x0290: .... .... 2+.. .... 0x28, 0x82, 0x00, 0x02, 0x00, 0x01, 0x17, 0x16, 0x28, 0x7a, 0x00, 0x02, 0x00, 0x02, 0x17, 0x16, + //0x02a0: (... .... (z.. .... 0x28, 0x69, 0x00, 0x02, 0x00, 0x03, 0x17, 0x16, 0x28, 0x51, 0x00, 0x02, 0x00, 0x04, 0x17, 0x0b, + //0x02b0: (i.. .... (Q.. .... 0x28, 0x87, 0x00, 0x02, 0x00, 0x05, 0x17, 0x16, 0x28, 0x91, 0x00, 0x02, 0x00, 0x06, 0x04, 0x16, + //0x02c0: (... .... (... .... 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0xc8, 0x00, 0x00, 0x00, 0x14, 0x2d, 0x16, + //0x02d0: .... ..-. .... ..-. 0x1e, 0x27, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0x19, 0x00, 0x02, 0x00, 0x00, 0x08, 0x16, + //0x02e0: .'.. ..-. .... .... 0x28, 0x20, 0x00, 0x02, 0x00, 0x00, 0x07, 0x0b, 0x14, 0x40, 0x00, 0x02, 0x00, 0x00, 0x16, 0x16, + //0x02f0: ( .. .... .@.. .... 0x14, 0x52, 0x00, 0x02, 0x00, 0x00, 0x1b, 0x0b, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x14, 0x00, + //0x0300: .R.. .... .... .... 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x21, 0x28, 0x15, 0x00, 0x01, 0x00, 0x00, 0x1d, 0x0b, + //0x0310: .... ...! (... .... 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00, + //0x0320: .... .... .... .... 0x32, 0x04, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x79, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, + //0x0330: 2... ..2. .y.. ..2. 0x1e, 0x00, 0x00, 0x14, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xc0, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, + //0x0340: .... ..4. .... ..4. 0x1e, 0xe9, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x68, 0x00, 0x37, 0x00, 0x00, 0x35, 0x21, + //0x0350: .... ..2. (h.7 ..5! 0x00, 0x63, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x00, 0x00, 0x03, 0x00, 0x00, 0x32, 0x16, + //0x0360: .c.. ..2. (... ..2. 0x1e, 0xa2, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x39, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, + //0x0370: .... ..4. .9.. ..4. 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x36, 0x00, 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, 0x37, 0x2c, + //0x0380: .... ..6. .H.. ..7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0e, 0x16, + //0x0390: .... .... .... .... 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x2c, 0x01, 0x01, 0x00, 0x00, 0x0a, 0x16, + //0x03a0: .... .... .,.. .... 0x1e, 0xae, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x16, 0x14, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0b, 0x0b, + //0x03b0: .... .... .... .... 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x0b, 0x1e, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x16, + //0x03c0: ...2 .... ...2 .... 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0e, 0x21, 0x28, 0x00, 0x00, 0x32, 0x14, 0x00, 0xff, 0x7c, + //0x03d0: ...2 ...! (..2 ...| 0xc0, 0x80, 0xc0, 0x1c, 0xc0, 0x20, 0xc0, 0x00, 0xc1, 0x10, 0xc0, 0x18, 0xc0, 0xf4, 0xc0, 0x0c, + //0x03e0: .... . .. .... .... 0xc0, 0x24, 0xc0, 0x28, 0xc0, 0x2c, 0xc0, 0x30, 0xc0, 0x54, 0xc0, 0x78, 0xc0, 0x50, 0xc0, 0x74, + //0x03f0: .$.( .,.0 .T.x .P.t 0xc0, 0x34, 0xc0, 0x38, 0xc0, 0x40, 0xc0, 0x44, 0xc0, 0x48, 0xc0, 0x3c, 0xc0, 0x14, 0xc0, 0x88, + //0x0400: .4.8 .@.D .H.< .... 0xc0, 0x8c, 0xc0, 0x90, 0xc0, 0x70, 0xc0, 0xfc, 0xc0, 0x6c, 0xc0, 0x58, 0xc0, 0x68, 0xc0, 0x04, + //0x0410: .... .p.. .l.X .h.. 0xc1, 0x64, 0xc0, 0x60, 0xc0, 0x5c, 0xc0, 0x94, 0xc0, 0x04, 0xc0, 0xa4, 0xc0, 0x9c, 0xc0, 0xa0, + //0x0420: .d.` .... .... .... 0xc0, 0xa8, 0xc0, 0xac, 0xc0, 0x98, 0xc0, 0xb0, 0xc0, 0xb4, 0xc0, 0xc8, 0xc0, 0xcc, 0xc0, 0xd4, + //0x0430: .... .... .... .... 0xc0, 0xdc, 0xc0, 0xd8, 0xc0, 0x00, 0xc0, 0x08, 0xc0, 0x84, 0xc0, 0x84, 0xc0, 0x84, 0xc0, 0x84, + //0x0440: .... .... .... .... 0xc0, 0x00, 0x3c, 0x21, 0x47, 0x0b, 0x52, 0x16, 0x5d, 0x01, 0x2c, 0x0a, 0x10, 0x04, 0x0b, 0x1e, + //0x0450: ..<! G.R. ].,. .... 0x0e, 0x04, 0x16, 0x1e, 0x0e, 0x03, 0x21, 0x0a, 0x0e, 0x0a, 0x21, 0x1e, 0x0e, 0x0a, 0x16, 0x1e, + //0x0460: .... ..!. ..!. .... 0x18, 0x09, 0x16, 0x0a, 0x0e, 0x02, 0x21, 0x00, 0x0e, 0x02, 0x16, 0x00, 0x0e, 0x06, 0x0b, 0x1e, + //0x0470: .... ..!. .... .... 0x0e, 0x07, 0x0b, 0x14, 0x12, 0x07, 0x00, 0x14, 0x12, 0x07, 0x00, 0x1e, 0x12, 0x37, 0x2c, 0x00, + //0x0480: .... .... .... .7,. 0x0e, 0x05, 0x16, 0x1e, 0x0e, 0x08, 0x00, 0x0a, 0x12, 0x08, 0x0b, 0x0a, 0x12, 0x08, 0x16, 0x0a, + //0x0490: .... .... .... .... 0x12, 0x08, 0x21, 0x0a, 0x12, 0x08, 0x21, 0x14, 0x12, 0x08, 0x21, 0x1e, 0x12, 0x08, 0x21, 0x28, + //0x04a0: ..!. ..!. ..!. ..!( 0x12, 0x08, 0x16, 0x28, 0x12, 0x08, 0x0b, 0x28, 0x12, 0x15, 0x2c, 0x14, 0x12, 0xff, 0x2e, 0x05, + //0x04b0: ...( ...( ..,. .... 0x2f, 0x05, 0x33, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x46, 0x05, 0x2e, 0x05, 0x4d, 0x05, + //0x04c0: /.3. .... ..F. ..M. 0x5d, 0x05, 0x64, 0x05, 0x68, 0x05, 0x6c, 0x05, 0x70, 0x05, 0x7d, 0x05, 0x2e, 0x05, 0x2e, 0x05, + //0x04d0: ].d. h.l. p.}. .... 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x9f, 0x05, 0x2e, 0x05, 0xb5, 0x05, 0xd4, 0x05, 0x2e, 0x05, + //0x04e0: .... .... .... .... 0xe1, 0x05, 0xf7, 0x05, 0x0d, 0x06, 0x26, 0x06, 0x39, 0x06, 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, + //0x04f0: .... ..&. 9... .... 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, + //0x0500: .... .... .... .... 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x49, 0x06, 0x50, 0x06, 0x75, 0x06, 0x2e, 0x05, + //0x0510: .... .... I.P. u... 0x2e, 0x05, 0x2e, 0x05, 0x2e, 0x05, 0x82, 0x06, 0x86, 0x06, 0x2e, 0x05, 0x8d, 0x06, 0xff, 0x0f, + //0x0520: .... .... .... .... 0x01, 0x01, 0xff, 0x0c, 0x05, 0x00, 0x0d, 0x15, 0x00, 0x0f, 0x23, 0x00, 0x11, 0x32, 0x00, 0x12, + //0x0530: .... .... ..#. .2.. 0x67, 0x00, 0x13, 0x6c, 0x00, 0xff, 0x12, 0x13, 0x00, 0x13, 0x17, 0x00, 0xff, 0x0c, 0x33, 0x00, + //0x0540: g..l .... .... ..3. 0x0d, 0x35, 0x00, 0x0e, 0x0e, 0x00, 0x0f, 0x14, 0x00, 0x00, 0x4e, 0x00, 0xff, 0x0c, 0x77, 0x00, + //0x0550: .5.. .... ..N. ..w. 0x0c, 0x91, 0x00, 0xff, 0x0d, 0x10, 0x00, 0xff, 0x0d, 0x14, 0x00, 0xff, 0x0e, 0x10, 0x00, 0xff, + //0x0560: .... .... .... .... 0x0f, 0x04, 0x00, 0x10, 0x08, 0x00, 0x11, 0x86, 0x00, 0x12, 0x99, 0x00, 0xff, 0x0d, 0x6c, 0x00, + //0x0570: .... .... .... ..l. 0x0f, 0x46, 0x01, 0x0f, 0x4b, 0x01, 0x0f, 0x50, 0x01, 0x0f, 0x56, 0x01, 0x0f, 0x5c, 0x01, 0x0f, + //0x0580: .F.. K..P ..V. .... 0x62, 0x01, 0x12, 0x9f, 0x00, 0x12, 0xb2, 0x00, 0x93, 0xd9, 0x00, 0x54, 0xe4, 0x00, 0xff, 0x0d, + //0x0590: b... .... ...T .... 0x14, 0x00, 0x0d, 0x15, 0x00, 0x0f, 0x22, 0x00, 0x0d, 0x34, 0x00, 0x0d, 0x37, 0x00, 0x19, 0x39, + //0x05a0: .... ..". .4.. 7..9 0x00, 0x15, 0x49, 0x00, 0xff, 0x0d, 0xc4, 0x00, 0x0d, 0xea, 0x00, 0x0d, 0x9c, 0x00, 0x0e, 0x81, + //0x05b0: ..I. .... .... .... 0x00, 0x0d, 0x7c, 0x00, 0x0f, 0xa2, 0x00, 0x0f, 0xc8, 0x00, 0x0f, 0xef, 0x00, 0x11, 0x63, 0x00, + //0x05c0: ..|. .... .... ..c. 0x0c, 0x34, 0x00, 0xff, 0x0f, 0x38, 0x00, 0x10, 0x40, 0x00, 0x13, 0x16, 0x00, 0x14, 0x21, 0x00, + //0x05d0: .4.. .8.. @... ..!. 0xff, 0x14, 0x0b, 0x00, 0x14, 0x0f, 0x00, 0x0f, 0x1c, 0x00, 0x0d, 0x50, 0x00, 0x15, 0x52, 0x00, + //0x05e0: .... .... ...P ..R. 0x93, 0x57, 0x00, 0x57, 0x80, 0x00, 0xff, 0x0c, 0x0d, 0x00, 0x0e, 0x27, 0x00, 0x0c, 0x43, 0x00, + //0x05f0: .W.W .... ...' ..C. 0x0c, 0x4b, 0x00, 0x0c, 0x53, 0x00, 0x0c, 0x5b, 0x00, 0x0f, 0x66, 0x00, 0xff, 0x16, 0x24, 0x00, + //0x0600: .K.. S..[ ..f. ..$. 0x0d, 0x7d, 0x00, 0x12, 0x58, 0x00, 0x0f, 0x6b, 0x00, 0x0e, 0x7f, 0x00, 0x0e, 0x9a, 0x00, 0x93, + //0x0610: .}.. X..k .... .... 0xaa, 0x00, 0x57, 0xe8, 0x00, 0xff, 0x15, 0x10, 0x00, 0x15, 0x48, 0x00, 0x15, 0xcd, 0x00, 0x16, + //0x0620: ..W. .... ..H. .... 0x3f, 0x00, 0x97, 0x63, 0x00, 0x58, 0x9e, 0x00, 0xff, 0x0d, 0x15, 0x00, 0x0e, 0x18, 0x00, 0x93, + //0x0630: ?..c .X.. .... .... 0x32, 0x00, 0x57, 0x4b, 0x00, 0x18, 0x80, 0x00, 0xff, 0x53, 0x2e, 0x00, 0x10, 0xa7, 0x00, 0xff, + //0x0640: 2.WK .... .S.. .... 0x10, 0x13, 0x00, 0x0e, 0x24, 0x00, 0x10, 0x32, 0x00, 0x0e, 0x41, 0x00, 0x10, 0x51, 0x00, 0x0e, + //0x0650: .... $..2 ..A. .Q.. 0x60, 0x00, 0x10, 0x72, 0x00, 0x0e, 0x81, 0x00, 0x10, 0x93, 0x00, 0x0e, 0xa2, 0x00, 0x10, 0xb1, + //0x0660: `..r .... .... .... 0x00, 0x0e, 0xbf, 0x00, 0xff, 0x0d, 0x30, 0x00, 0x0e, 0x29, 0x00, 0x0f, 0x4e, 0x00, 0x10, 0x5c, + //0x0670: .... ..0. .).. N... 0x00, 0xff, 0x10, 0x73, 0x00, 0xff, 0x15, 0x67, 0x00, 0x14, 0xc7, 0x00, 0xff, 0x11, 0x35, 0x00, + //0x0680: ...s ...g .... ..5. 0x11, 0x36, 0x00, 0x11, 0x37, 0x00, 0x11, 0x38, 0x00, 0x11, 0x39, 0x00, 0x11, 0x3a, 0x00, 0x11, + //0x0690: .6.. 7..8 ..9. .:.. 0x3b, 0x00, 0x11, 0x3d, 0x00, 0x11, 0x3f, 0x00, 0x11, 0x40, 0x00, 0x11, 0x41, 0x00, 0xff, 0x9c, + //0x06a0: ;..= ..?. .@.. A... 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c, + //0x06b0: .... .... .... .... 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, + //0x06c0: .... .... .... .... 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c, + //0x06d0: .... .... .... .... 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c, + //0x06e0: .... .... .... .... 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, + //0x06f0: .... .... .... .... 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c, + //0x0700: .... .... .... .... 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9c, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x0710: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x53, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, + //0x0720: WEB. S00. DREA MWEB 0x2e, 0x53, 0x30, 0x32, 0x00, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x2e, 0x44, 0x41, 0x54, + //0x0730: .S02 .INS TALL .DAT 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x43, 0x30, 0x30, 0x00, 0x44, 0x52, + //0x0740: .DRE AMWE B.C0 0.DR 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x43, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x0750: EAMW EB.C 01.D REAM 0x57, 0x45, 0x42, 0x2e, 0x43, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, + //0x0760: WEB. C02. DREA MWEB 0x2e, 0x56, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, + //0x0770: .V00 .DRE AMWE B.V9 0x39, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x30, 0x00, 0x44, + //0x0780: 9.DR EAMW EB.G 00.D 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, + //0x0790: REAM WEB. G01. DREA 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, + //0x07a0: MWEB .G02 .DRE AMWE 0x42, 0x2e, 0x47, 0x30, 0x38, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, + //0x07b0: B.G0 8.DR EAMW EB.G 0x30, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x37, 0x00, + //0x07c0: 03.D REAM WEB. G07. 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, + //0x07d0: DREA MWEB .G04 .DRE 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, + //0x07e0: AMWE B.G0 5.DR EAMW 0x45, 0x42, 0x2e, 0x47, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, + //0x07f0: EB.G 06.D REAM WEB. 0x47, 0x31, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x30, 0x31, + //0x0800: G14. DREA MWEB .T01 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x30, 0x32, 0x00, 0x44, 0x52, + //0x0810: .DRE AMWE B.T0 2.DR 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x31, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x0820: EAMW EB.T 10.D REAM 0x57, 0x45, 0x42, 0x2e, 0x54, 0x31, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, + //0x0830: WEB. T11. DREA MWEB 0x2e, 0x54, 0x31, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x31, + //0x0840: .T12 .DRE AMWE B.T1 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x32, 0x30, 0x00, 0x44, + //0x0850: 3.DR EAMW EB.T 20.D 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x32, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, + //0x0860: REAM WEB. T21. DREA 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x32, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, + //0x0870: MWEB .T22 .DRE AMWE 0x42, 0x2e, 0x54, 0x32, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, + //0x0880: B.T2 3.DR EAMW EB.T 0x32, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, 0x30, 0x00, + //0x0890: 24.D REAM WEB. T50. 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, + //0x08a0: DREA MWEB .T51 .DRE 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, + //0x08b0: AMWE B.T8 0.DR EAMW 0x45, 0x42, 0x2e, 0x54, 0x38, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, + //0x08c0: EB.T 81.D REAM WEB. 0x54, 0x38, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x33, + //0x08d0: T82. DREA MWEB .T83 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x34, 0x00, 0x44, 0x52, + //0x08e0: .DRE AMWE B.T8 4.DR 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x4f, 0x4c, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x08f0: EAMW EB.V OL.D REAM 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x39, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, + //0x0900: WEB. G09. DREA MWEB 0x2e, 0x47, 0x31, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, + //0x0910: .G10 .DRE AMWE B.G1 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x32, 0x00, 0x44, + //0x0920: 1.DR EAMW EB.G 12.D 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, + //0x0930: REAM WEB. G13. DREA 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, + //0x0940: MWEB .G15 .DRE AMWE 0x42, 0x2e, 0x49, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, + //0x0950: B.I0 0.DR EAMW EB.I 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x32, 0x00, + //0x0960: 01.D REAM WEB. I02. 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x33, 0x00, 0x44, 0x52, 0x45, + //0x0970: DREA MWEB .I03 .DRE 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, + //0x0980: AMWE B.I0 4.DR EAMW 0x45, 0x42, 0x2e, 0x49, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, + //0x0990: EB.I 05.D REAM WEB. 0x49, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x37, + //0x09a0: I06. DREA MWEB .I07 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x50, 0x41, 0x4c, 0x00, 0x11, 0x01, + //0x09b0: .DRE AMWE B.PA L... 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x44, 0xc3, 0x04, 0x01, 0x2c, 0x01, 0x00, 0x00, 0x2c, 0x00, + //0x09c0: @... ..D. ..,. ..,. 0x80, 0xc5, 0xd2, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x2c, 0x00, 0xdc, 0xc3, 0x90, 0x00, 0xb0, 0x00, + //0x09d0: .... .... ,... .... 0x40, 0x00, 0x60, 0x00, 0x80, 0xc3, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0xc8, 0x00, 0x84, 0xc3, + //0x09e0: @.`. .... 2.2. .... 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, + //0x09f0: ..@. .... .... ..@. 0x9d, 0x00, 0xc6, 0x00, 0x44, 0xc3, 0xff, 0x00, 0x26, 0x01, 0x00, 0x00, 0x18, 0x00, 0xc8, 0xc3, + //0x0a00: .... D... &... .... 0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x48, 0xc3, 0x50, 0x00, 0x00, 0x01, 0x9e, 0x00, + //0x0a10: ..-. (.8. H.P. .... 0xca, 0x00, 0xe0, 0xc3, 0x50, 0x00, 0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0x98, 0xc3, 0x00, 0x00, + //0x0a20: .... P.,. :... .... 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, + //0x0a30: @... .... .... @... 0xc6, 0x00, 0x44, 0xc3, 0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x48, 0xc3, 0x50, 0x00, + //0x0a40: ..D. ..-. (.8. H.P. 0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0xbc, 0xc6, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, + //0x0a50: ,.:. .... ..@. .... 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0xf0, 0x00, + //0x0a60: .... ..@. .... |... 0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, 0x94, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, + //0x0a70: "... ,... ..@. .... 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, + //0x0a80: .... ..@. .... |... 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00, + //0x0a90: @... .... .... .... 0x2c, 0x00, 0xc8, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xcc, 0xc4, 0x18, 0x01, + //0x0aa0: ,... h.|. ..,. .... 0x34, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb0, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00, + //0x0ab0: 4... ,... h... .... 0xd0, 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01, + //0x0ac0: .... @... ..|. ..@. 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20, + //0x0ad0: .... .... EXIT 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, + //0x0ae0: HE LP LIST 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x0af0: RE AD 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, + //0x0b00: LOGO N KE YS 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, + //0x0b10: ..PU BLIC 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, + //0x0b20: PU BLIC ... 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, + //0x0b30: BLAC KDRA GON RYAN 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, + //0x0b40: . ..HE NDRI 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x0b50: X LO UIS 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20, + //0x0b60: ... SEPT IMUS 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20, + //0x0b70: BECK ETT . .. 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, + //0x0b80: . "ROO 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x0b90: T ." 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x4e, 0x45, 0x54, 0x57, 0xe8, 0xc4, 0x45, 0x4c, + //0x0ba0: . NETW ..EL 0x56, 0x41, 0x8c, 0xc6, 0x45, 0x4c, 0x56, 0x42, 0x9c, 0xc6, 0x45, 0x4c, 0x56, 0x43, 0x94, 0xc6, + //0x0bb0: VA.. ELVB ..EL VC.. 0x45, 0x4c, 0x56, 0x45, 0x98, 0xc6, 0x45, 0x4c, 0x56, 0x46, 0xa0, 0xc6, 0x43, 0x47, 0x41, 0x54, + //0x0bc0: ELVE ..EL VF.. CGAT 0x30, 0xc7, 0x52, 0x45, 0x4d, 0x4f, 0xa8, 0xc6, 0x42, 0x55, 0x54, 0x41, 0x3c, 0xc7, 0x43, 0x42, + //0x0bd0: 0.RE MO.. BUTA <.CB 0x4f, 0x58, 0x44, 0xc7, 0x4c, 0x49, 0x54, 0x45, 0x5c, 0xc6, 0x50, 0x4c, 0x41, 0x54, 0x40, 0xc7, + //0x0be0: OXD. LITE ..PL AT@. 0x4c, 0x49, 0x46, 0x54, 0x7c, 0xc6, 0x57, 0x49, 0x52, 0x45, 0x84, 0xc6, 0x48, 0x4e, 0x44, 0x4c, + //0x0bf0: LIFT |.WI RE.. HNDL 0x88, 0xc6, 0x48, 0x41, 0x43, 0x48, 0x80, 0xc6, 0x44, 0x4f, 0x4f, 0x52, 0xb4, 0xc6, 0x43, 0x53, + //0x0c00: ..HA CH.. DOOR ..CS 0x48, 0x52, 0x70, 0xc6, 0x47, 0x55, 0x4e, 0x41, 0x34, 0xc7, 0x43, 0x52, 0x41, 0x41, 0x64, 0xc6, + //0x0c10: HRp. GUNA 4.CR AAd. 0x43, 0x52, 0x42, 0x42, 0x68, 0xc6, 0x43, 0x52, 0x43, 0x43, 0x6c, 0xc6, 0x53, 0x45, 0x41, 0x54, + //0x0c20: CRBB h.CR CCl. SEAT 0xf8, 0xc5, 0x4d, 0x45, 0x4e, 0x55, 0x98, 0xc7, 0x43, 0x4f, 0x4f, 0x4b, 0xac, 0xc6, 0x45, 0x4c, + //0x0c30: ..ME NU.. COOK ..EL 0x43, 0x41, 0x4c, 0xc6, 0x45, 0x44, 0x43, 0x41, 0x50, 0xc6, 0x44, 0x44, 0x43, 0x41, 0x54, 0xc6, + //0x0c40: CAL. EDCA P.DD CAT. 0x41, 0x4c, 0x54, 0x52, 0x04, 0xc6, 0x4c, 0x4f, 0x4b, 0x41, 0x3c, 0xc6, 0x4c, 0x4f, 0x4b, 0x42, + //0x0c50: ALTR ..LO KA<. LOKB 0x40, 0xc6, 0x45, 0x4e, 0x54, 0x41, 0x10, 0xc6, 0x45, 0x4e, 0x54, 0x42, 0x24, 0xc6, 0x45, 0x4e, + //0x0c60: @.EN TA.. ENTB $.EN 0x54, 0x45, 0x28, 0xc6, 0x45, 0x4e, 0x54, 0x43, 0x18, 0xc6, 0x45, 0x4e, 0x54, 0x44, 0x2c, 0xc6, + //0x0c70: TE(. ENTC ..EN TD,. 0x45, 0x4e, 0x54, 0x48, 0x30, 0xc6, 0x57, 0x57, 0x41, 0x54, 0xf0, 0xc5, 0x50, 0x4f, 0x4f, 0x4c, + //0x0c80: ENTH 0.WW AT.. POOL 0x58, 0xc6, 0x57, 0x53, 0x48, 0x44, 0xf4, 0xc5, 0x47, 0x52, 0x41, 0x46, 0x44, 0xc6, 0x54, 0x52, + //0x0c90: X.WS HD.. GRAF D.TR 0x41, 0x50, 0x48, 0xc6, 0x43, 0x44, 0x50, 0x45, 0x28, 0xc7, 0x44, 0x4c, 0x4f, 0x4b, 0x08, 0xc6, + //0x0ca0: APH. CDPE (.DL OK.. 0x48, 0x4f, 0x4c, 0x45, 0x00, 0xc6, 0x44, 0x52, 0x59, 0x52, 0x0c, 0xc6, 0x48, 0x4f, 0x4c, 0x59, + //0x0cb0: HOLE ..DR YR.. HOLY 0xfc, 0xc5, 0x57, 0x41, 0x4c, 0x4c, 0x2c, 0xc7, 0x42, 0x4f, 0x4f, 0x4b, 0x08, 0xc8, 0x41, 0x58, + //0x0cc0: ..WA LL,. BOOK ..AX 0x45, 0x44, 0xb0, 0xc6, 0x53, 0x48, 0x4c, 0x44, 0x38, 0xc7, 0x42, 0x43, 0x4e, 0x59, 0xe8, 0xc5, + //0x0cd0: ED.. SHLD 8.BC NY.. 0x4c, 0x49, 0x44, 0x43, 0xe4, 0xc5, 0x4c, 0x49, 0x44, 0x55, 0xe0, 0xc5, 0x4c, 0x49, 0x44, 0x4f, + //0x0ce0: LIDC ..LI DU.. LIDO 0xec, 0xc5, 0x50, 0x49, 0x50, 0x45, 0xa8, 0xc5, 0x42, 0x41, 0x4c, 0x43, 0x20, 0xc6, 0x57, 0x49, + //0x0cf0: ..PI PE.. BALC .WI 0x4e, 0x44, 0x1c, 0xc6, 0x50, 0x41, 0x50, 0x52, 0xb4, 0xc7, 0x55, 0x57, 0x54, 0x41, 0xa0, 0xc5, + //0x0d00: ND.. PAPR ..UW TA.. 0x55, 0x57, 0x54, 0x42, 0xa0, 0xc5, 0x53, 0x54, 0x41, 0x54, 0xd8, 0xc7, 0x54, 0x4c, 0x49, 0x44, + //0x0d10: UWTB ..ST AT.. TLID 0x9c, 0xc5, 0x53, 0x4c, 0x41, 0x42, 0xd8, 0xc5, 0x43, 0x41, 0x52, 0x54, 0xdc, 0xc5, 0x46, 0x43, + //0x0d20: ..SL AB.. CART ..FC 0x41, 0x52, 0xac, 0xc5, 0x53, 0x4c, 0x42, 0x41, 0xc0, 0xc5, 0x53, 0x4c, 0x42, 0x42, 0xc4, 0xc5, + //0x0d30: AR.. SLBA ..SL BB.. 0x53, 0x4c, 0x42, 0x43, 0xcc, 0xc5, 0x53, 0x4c, 0x42, 0x44, 0xc8, 0xc5, 0x53, 0x4c, 0x42, 0x45, + //0x0d40: SLBC ..SL BD.. SLBE 0xd0, 0xc5, 0x53, 0x4c, 0x42, 0x46, 0xd4, 0xc5, 0x50, 0x4c, 0x49, 0x4e, 0xb0, 0xc5, 0x4c, 0x41, + //0x0d50: ..SL BF.. PLIN ..LA 0x44, 0x44, 0xb8, 0xc5, 0x4c, 0x41, 0x44, 0x42, 0xbc, 0xc5, 0x47, 0x55, 0x4d, 0x41, 0xb4, 0xc5, + //0x0d60: DD.. LADB ..GU MA.. 0x53, 0x51, 0x45, 0x45, 0x88, 0xc5, 0x54, 0x41, 0x50, 0x50, 0x8c, 0xc5, 0x47, 0x55, 0x49, 0x54, + //0x0d70: SQEE ..TA PP.. GUIT 0x90, 0xc5, 0x43, 0x4f, 0x4e, 0x54, 0x94, 0xc5, 0x42, 0x45, 0x4c, 0x4c, 0x98, 0xc5, 0x8c, 0x8c, + //0x0d80: ..CO NT.. BELL .... 0x8c, 0x8c, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x9d, 0x00, 0xb2, 0x00, 0x51, 0x00, + //0x0d90: ..00 00.0 0... ..Q. 0x5e, 0x00, 0x58, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x5c, 0xc7, 0xc9, 0x00, + //0x0da0: ^.X. .... Q.^. .... 0xde, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x60, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x5f, 0x00, 0x70, 0x00, + //0x0db0: ..Q. ^.`. .... _.p. 0x64, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x68, 0xc7, 0xc9, 0x00, 0xde, 0x00, + //0x0dc0: d... .._. p.h. .... 0x5f, 0x00, 0x70, 0x00, 0x6c, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x71, 0x00, 0x82, 0x00, 0x70, 0xc7, + //0x0dd0: _.p. l... ..q. ..p. 0xb3, 0x00, 0xc8, 0x00, 0x71, 0x00, 0x82, 0x00, 0x74, 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x71, 0x00, + //0x0de0: .... q... t... ..q. 0x82, 0x00, 0x78, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x83, 0x00, 0x91, 0x00, 0x7c, 0xc7, 0xb3, 0x00, + //0x0df0: ..x. .... .... |... 0xde, 0x00, 0x83, 0x00, 0x91, 0x00, 0x80, 0xc7, 0xdc, 0x00, 0xea, 0x00, 0x98, 0x00, 0xa6, 0x00, + //0x0e00: .... .... .... .... 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xae, 0x00, + //0x0e10: P... @... .... .... 0xbc, 0x00, 0x84, 0x00, 0x94, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, + //0x0e20: .... ..P. ..@. .... 0xa0, 0xca, 0xff, 0xff, 0x18, 0x01, 0x40, 0x01, 0xa0, 0x00, 0xc8, 0x00, 0x50, 0xc7, 0x8f, 0x00, + //0x0e30: .... ..@. .... P... 0x2c, 0x01, 0x06, 0x00, 0xc2, 0x00, 0xb8, 0xc7, 0x00, 0x00, 0x8f, 0x00, 0x06, 0x00, 0xc2, 0x00, + //0x0e40: ,... .... .... .... 0xc0, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x68, 0x00, + //0x0e50: .... @... .... ..h. 0x80, 0x00, 0x3a, 0x00, 0x48, 0x00, 0xdc, 0xc7, 0x40, 0x00, 0x74, 0x00, 0x4c, 0x00, 0x6a, 0x00, + //0x0e60: ..:. H... @.t. L.j. 0xe0, 0xc7, 0x74, 0x00, 0xa8, 0x00, 0x4c, 0x00, 0x6a, 0x00, 0xe4, 0xc7, 0x40, 0x00, 0x74, 0x00, + //0x0e70: ..t. ..L. j... @.t. 0x6a, 0x00, 0x88, 0x00, 0xe8, 0xc7, 0x74, 0x00, 0xa8, 0x00, 0x6a, 0x00, 0x88, 0x00, 0xec, 0xc7, + //0x0e80: j... ..t. ..j. .... 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xba, 0x00, 0xca, 0x00, + //0x0e90: ..@. .... .... .... 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03, 0x01, 0x83, 0x00, 0x93, 0x00, 0x18, 0xc8, + //0x0ea0: .... .... .... .... 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, + //0x0eb0: .... .... P... @... 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x34, 0xc8, + //0x0ec0: .... ..w. ..R. ..4. 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00, + //0x0ed0: F... >.o. .... ..D. 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, + //0x0ee0: ..L. ..@. .... .... 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, + //0x0ef0: .... p... H... ..@. 0x98, 0x00, 0x58, 0xc8, 0x3e, 0x00, 0x98, 0x00, 0x38, 0x00, 0x85, 0x00, 0x74, 0xc8, 0x00, 0x00, + //0x0f00: ..X. >... 8... t... 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, + //0x0f10: @... .... ..w. ..R. 0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, + //0x0f20: ..D. F... >.o. P... 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, + //0x0f30: ..p. ..H. ..@. .... 0xa0, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0xbc, 0x00, + //0x0f40: .... .... p... H... 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x54, 0xc8, 0x3e, 0x00, 0x98, 0x00, 0x38, 0x00, 0x85, 0x00, + //0x0f50: ..@. ..T. >... 8... 0x74, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a, + //0x0f60: t... @... .... .... 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, + //0x0f70: ..Dr eamw eb h as a 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, + //0x0f80: n Er ror: ..Un able 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x45, 0x78, 0x70, + //0x0f90: to allo cate Exp 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2e, 0x0d, 0x0a, 0x0d, + //0x0fa0: ande d Me mory .... 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, + //0x0fb0: .$.. ..Dr eamw eb h 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x53, 0x6f, + //0x0fc0: as a n Er ror: ..So 0x75, 0x6e, 0x64, 0x20, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, 0x72, 0x64, + //0x0fd0: und Blas ter card 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, + //0x0fe0: not fou nd a t ad 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x32, 0x32, 0x30, 0x20, 0x48, 0x65, 0x78, 0x2e, 0x0d, 0x0a, + //0x0ff0: dres s 22 0 He x... 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, + //0x1000: ..$. ...D ream web 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x4f, + //0x1010: has an E rror :..O 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x42, 0x61, 0x73, 0x65, 0x20, 0x4d, 0x65, 0x6d, 0x6f, 0x72, + //0x1020: ut o f Ba se M emor 0x79, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, + //0x1030: y... ..$. ...D ream 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, + //0x1040: web has an E rror 0x3a, 0x0d, 0x0a, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, + //0x1050: :..M emor y De allo 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x2e, 0x0d, + //0x1060: cati on p robl em.. 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, + //0x1070: ...$ .... Drea mweb 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, + //0x1080: has an Erro r:.. 0x41, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x35, 0x39, 0x30, 0x4b, 0x20, 0x6f, 0x66, + //0x1090: At l east 590 K of 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x69, 0x73, 0x20, + //0x10a0: bas e me mory is 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, + //0x10b0: requ ired .... .$.. 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, + //0x10c0: ..Dr eamw eb h as a 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20, + //0x10d0: n Er ror: ..So und 0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, + //0x10e0: Blas ter not foun 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x75, 0x70, 0x74, 0x20, 0x30, 0x0d, + //0x10f0: d on int erup t 0. 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, + //0x1100: ...$ .... Drea mweb 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, + //0x1110: has an Erro r:.. 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + //0x1120: Unab le t o se lect 0x20, 0x45, 0x4d, 0x4d, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, + //0x1130: EMM pag e... ..$. 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, + //0x1140: ...D ream web has 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x20, + //0x1150: an E rror :..F ile 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x63, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, + //0x1160: not foun d.c. ...$ 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x73, 0x20, 0x66, + //0x1170: Drea mweb loo ks f 0x6f, 0x72, 0x20, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, + //0x1180: or S ound Bla ster 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x0d, + //0x1190: inf orma tion in. 0x0a, 0x74, 0x68, 0x65, 0x20, 0x42, 0x4c, 0x41, 0x53, 0x54, 0x45, 0x52, 0x20, 0x65, 0x6e, 0x76, + //0x11a0: .the BLA STER env 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + //0x11b0: iron ment var iabl 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x41, 0x55, 0x54, 0x4f, 0x45, + //0x11c0: e (i n yo ur A UTOE 0x58, 0x45, 0x43, 0x2e, 0x42, 0x41, 0x54, 0x29, 0x0d, 0x0a, 0x0d, 0x0a, 0x49, 0x66, 0x20, 0x74, + //0x11d0: XEC. BAT) .... If t 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, + //0x11e0: his is n ot f ound 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x49, 0x52, 0x51, 0x20, 0x37, 0x2c, 0x20, 0x44, 0x4d, 0x41, + //0x11f0: the n IR Q 7, DMA 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x62, + //0x1200: cha nnel 1 a nd b 0x61, 0x73, 0x65, 0x0d, 0x0a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x32, 0x32, 0x30, + //0x1210: ase. .add ress 220 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x2e, 0x0d, 0x0a, + //0x1220: h ar e as sume d... 0x0d, 0x0a, 0x54, 0x6f, 0x20, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, + //0x1230: ..To alt er a ny o 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x73, + //0x1240: r al l of the se s 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, + //0x1250: etti ngs you can 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x0d, 0x0a, 0x6f, 0x6e, + //0x1260: spec ify them ..on 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, + //0x1270: the com mand lin 0x65, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x0d, + //0x1280: e. F or e xamp le:. 0x0a, 0x0d, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1290: ...T ype D REAM 0x57, 0x45, 0x42, 0x20, 0x49, 0x37, 0x20, 0x41, 0x32, 0x32, 0x30, 0x20, 0x44, 0x31, 0x20, 0x20, + //0x12a0: WEB I7 A 220 D1 0x20, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, + //0x12b0: to run Dre amwe 0x62, 0x20, 0x6f, 0x6e, 0x20, 0x49, 0x52, 0x51, 0x20, 0x37, 0x2c, 0x20, 0x44, 0x4d, 0x41, 0x0d, + //0x12c0: b on IRQ 7, DMA. 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x12d0: . 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x12e0: 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x61, + //0x12f0: chan nel 1 an d ba 0x73, 0x65, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x32, 0x32, 0x30, 0x68, 0x0d, + //0x1300: se a ddre ss 2 20h. 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, + //0x1310: . DRE AMWE 0x42, 0x20, 0x49, 0x35, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x1320: B I5 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, + //0x1330: to r un D ream web 0x6f, 0x6e, 0x20, 0x49, 0x52, 0x51, 0x20, 0x35, 0x20, 0x61, 0x6e, 0x64, 0x0d, 0x0a, 0x20, 0x20, + //0x1340: on I RQ 5 and .. 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x1350: 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x66, + //0x1360: def 0x61, 0x75, 0x6c, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, + //0x1370: ault add ress of 0x32, 0x32, 0x30, 0x68, 0x2c, 0x20, 0x44, 0x4d, 0x41, 0x20, 0x31, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, + //0x1380: 220h , DM A 1. ...$ 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x72, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x72, 0x65, 0x61, + //0x1390: .... Try the Drea 0x6d, 0x77, 0x65, 0x62, 0x20, 0x43, 0x44, 0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, + //0x13a0: mweb CD in y our 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x2e, 0x2e, 0x2e, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x0d, 0x0a, + //0x13b0: ster eo.. .... .... 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00, 0x93, 0x00, 0x3e, + //0x13c0: $... .R.. ...P ...> 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0xc4, 0xc8, 0x00, + //0x13d0: .o.. .... .>.o .... 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50, 0x45, 0x45, 0x43, + //0x13e0: .@.. .... ...S PEEC 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x87, 0x83, + //0x13f0: HR24 C000 5.RA W... 0x81, 0x82, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x70, 0xc4, 0x00, 0x00, 0x32, 0x00, + //0x1400: ..,. F. . ..p. ..2. 0x00, 0x00, 0xb4, 0x00, 0x7c, 0xc3, 0xe2, 0x00, 0xf4, 0x00, 0x0a, 0x00, 0x1a, 0x00, 0x28, 0xc8, + //0x1410: .... |... .... ..(. 0xe2, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x28, 0x00, 0x2c, 0xc8, 0xf0, 0x00, 0x04, 0x01, 0x64, 0x00, + //0x1420: .... ..(. ,... ..d. 0x7c, 0x00, 0xcc, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd4, 0xc9, 0xff, 0xff, + //0x1430: |... ..@. .... .... 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x70, 0xc4, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + //0x1440: ,.F. ... p... 2... 0xb4, 0x00, 0x7c, 0xc3, 0x12, 0x01, 0x24, 0x01, 0x0a, 0x00, 0x1a, 0x00, 0x28, 0xc8, 0x12, 0x01, + //0x1450: ..|. ..$. .... (... 0x24, 0x01, 0x1a, 0x00, 0x28, 0x00, 0x2c, 0xc8, 0xf0, 0x00, 0x04, 0x01, 0x64, 0x00, 0x7c, 0x00, + //0x1460: $... (.,. .... d.|. 0xcc, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd4, 0xc9, 0xff, 0xff, 0x00, 0x21, + //0x1470: .... @... .... ...! 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x00, 0x0f, 0xff, 0x00, 0x0b, 0x00, + //0x1480: .... .... .... .... 0x0f, 0xff, 0x00, 0x0b, 0x0a, 0x0f, 0xff, 0x00, 0x00, 0x0a, 0x0f, 0xff, 0x01, 0x2c, 0x0a, 0x06, + //0x1490: .... .... .... .,.. 0xff, 0x01, 0x2c, 0x00, 0x0d, 0xff, 0x02, 0x21, 0x00, 0x06, 0xff, 0x02, 0x16, 0x00, 0x05, 0xff, + //0x14a0: ..,. ...! .... .... 0x02, 0x16, 0x0a, 0x10, 0xff, 0x02, 0x0b, 0x0a, 0x10, 0xff, 0x03, 0x2c, 0x00, 0x0f, 0xff, 0x03, + //0x14b0: .... .... ..., .... 0x21, 0x0a, 0x06, 0xff, 0x03, 0x21, 0x00, 0x05, 0xff, 0x04, 0x0b, 0x1e, 0x06, 0xff, 0x04, 0x16, + //0x14c0: !... .!.. .... .... 0x1e, 0x05, 0xff, 0x04, 0x16, 0x14, 0x0d, 0xff, 0x0a, 0x21, 0x1e, 0x06, 0xff, 0x0a, 0x16, 0x1e, + //0x14d0: .... .... .!.. .... 0x06, 0xff, 0x09, 0x16, 0x0a, 0x06, 0xff, 0x09, 0x16, 0x14, 0x10, 0xff, 0x09, 0x16, 0x1e, 0x10, + //0x14e0: .... .... .... .... 0xff, 0x09, 0x16, 0x28, 0x10, 0xff, 0x09, 0x16, 0x32, 0x10, 0xff, 0x06, 0x0b, 0x1e, 0x06, 0xff, + //0x14f0: ...( .... 2... .... 0x06, 0x00, 0x0a, 0x0f, 0xff, 0x06, 0x00, 0x14, 0x0f, 0xff, 0x06, 0x0b, 0x14, 0x0f, 0xff, 0x06, + //0x1500: .... .... .... .... 0x16, 0x14, 0x0f, 0xff, 0x07, 0x0b, 0x14, 0x06, 0xff, 0x07, 0x00, 0x14, 0x06, 0xff, 0x07, 0x00, + //0x1510: .... .... .... .... 0x1e, 0x06, 0xff, 0x37, 0x2c, 0x00, 0x05, 0xff, 0x37, 0x2c, 0x0a, 0x05, 0xff, 0x05, 0x16, 0x1e, + //0x1520: ...7 ,... 7,.. .... 0x06, 0xff, 0x05, 0x16, 0x14, 0x0f, 0xff, 0x05, 0x16, 0x0a, 0x0f, 0xff, 0x18, 0x16, 0x00, 0x0f, + //0x1530: .... .... .... .... 0xff, 0x18, 0x21, 0x00, 0x0f, 0xff, 0x18, 0x2c, 0x00, 0x0f, 0xff, 0x18, 0x21, 0x0a, 0x0f, 0xff, + //0x1540: ..!. ..., .... !... 0x08, 0x00, 0x0a, 0x06, 0xff, 0x08, 0x0b, 0x0a, 0x06, 0xff, 0x08, 0x16, 0x0a, 0x06, 0xff, 0x08, + //0x1550: .... .... .... .... 0x21, 0x0a, 0x06, 0xff, 0x08, 0x21, 0x14, 0x06, 0xff, 0x08, 0x21, 0x1e, 0x06, 0xff, 0x08, 0x21, + //0x1560: !... .!.. ..!. ...! 0x28, 0x06, 0xff, 0x08, 0x16, 0x28, 0x06, 0xff, 0x08, 0x0b, 0x28, 0x06, 0xff, 0x0b, 0x0b, 0x14, + //0x1570: (... .(.. ..(. .... 0x0c, 0xff, 0x0b, 0x0b, 0x1e, 0x0c, 0xff, 0x0b, 0x16, 0x14, 0x0c, 0xff, 0x0b, 0x16, 0x1e, 0x0c, + //0x1580: .... .... .... .... 0xff, 0x0c, 0x16, 0x14, 0x0c, 0xff, 0x0d, 0x16, 0x14, 0x0c, 0xff, 0x0d, 0x21, 0x14, 0x0c, 0xff, + //0x1590: .... .... .... !... 0x0e, 0x2c, 0x14, 0x0c, 0xff, 0x0e, 0x21, 0x00, 0x0c, 0xff, 0x0e, 0x21, 0x0a, 0x0c, 0xff, 0x0e, + //0x15a0: .,.. ..!. ...! .... 0x21, 0x14, 0x0c, 0xff, 0x0e, 0x21, 0x1e, 0x0c, 0xff, 0x0e, 0x21, 0x28, 0x0c, 0xff, 0x0e, 0x16, + //0x15b0: !... .!.. ..!( .... 0x00, 0x10, 0xff, 0x13, 0x00, 0x00, 0x0c, 0xff, 0x14, 0x00, 0x14, 0x10, 0xff, 0x14, 0x00, 0x1e, + //0x15c0: .... .... .... .... 0x10, 0xff, 0x14, 0x0b, 0x1e, 0x10, 0xff, 0x14, 0x00, 0x28, 0x10, 0xff, 0x14, 0x0b, 0x28, 0x10, + //0x15d0: .... .... .(.. ..(. 0xff, 0x15, 0x0b, 0x0a, 0x0f, 0xff, 0x15, 0x0b, 0x14, 0x0f, 0xff, 0x15, 0x00, 0x14, 0x0f, 0xff, + //0x15e0: .... .... .... .... 0x15, 0x16, 0x14, 0x0f, 0xff, 0x15, 0x21, 0x14, 0x0f, 0xff, 0x15, 0x2c, 0x14, 0x0f, 0xff, 0x15, + //0x15f0: .... ..!. ..., .... 0x2c, 0x0a, 0x0f, 0xff, 0x16, 0x16, 0x0a, 0x10, 0xff, 0x16, 0x16, 0x14, 0x10, 0xff, 0x17, 0x16, + //0x1600: ,... .... .... .... 0x1e, 0x0d, 0xff, 0x17, 0x16, 0x28, 0x0d, 0xff, 0x17, 0x21, 0x28, 0x0d, 0xff, 0x17, 0x0b, 0x28, + //0x1610: .... .(.. .!(. ...( 0x0d, 0xff, 0x17, 0x00, 0x28, 0x0d, 0xff, 0x17, 0x00, 0x32, 0x0d, 0xff, 0x19, 0x0b, 0x28, 0x10, + //0x1620: .... (... .2.. ..(. 0xff, 0x19, 0x0b, 0x32, 0x10, 0xff, 0x19, 0x00, 0x32, 0x10, 0xff, 0x1b, 0x0b, 0x14, 0x10, 0xff, + //0x1630: ...2 .... 2... .... 0x1b, 0x0b, 0x1e, 0x10, 0xff, 0x1d, 0x0b, 0x0a, 0x10, 0xff, 0x2d, 0x16, 0x1e, 0x0c, 0xff, 0x2d, + //0x1640: .... .... ..-. ...- 0x16, 0x28, 0x0c, 0xff, 0x2d, 0x16, 0x32, 0x0c, 0xff, 0x2e, 0x16, 0x28, 0x0c, 0xff, 0x2e, 0x0b, + //0x1650: .(.. -.2. ...( .... 0x32, 0x0c, 0xff, 0x2e, 0x16, 0x32, 0x0c, 0xff, 0x2e, 0x21, 0x32, 0x0c, 0xff, 0x2f, 0x00, 0x00, + //0x1660: 2... .2.. .!2. ./.. 0x0c, 0xff, 0x1a, 0x16, 0x14, 0x10, 0xff, 0x1a, 0x21, 0x0a, 0x10, 0xff, 0x1a, 0x21, 0x14, 0x10, + //0x1670: .... .... !... .!.. 0xff, 0x1a, 0x21, 0x1e, 0x10, 0xff, 0x1a, 0x2c, 0x1e, 0x10, 0xff, 0x1a, 0x16, 0x1e, 0x10, 0xff, + //0x1680: ..!. ..., .... .... 0x1a, 0x0b, 0x1e, 0x10, 0xff, 0x1a, 0x0b, 0x14, 0x10, 0xff, 0x1a, 0x00, 0x14, 0x10, 0xff, 0x1a, + //0x1690: .... .... .... .... 0x0b, 0x28, 0x10, 0xff, 0x1a, 0x00, 0x28, 0x10, 0xff, 0x1a, 0x16, 0x28, 0x10, 0xff, 0x1a, 0x0b, + //0x16a0: .(.. ..(. ...( .... 0x32, 0x10, 0xff, 0x1c, 0x00, 0x1e, 0x0f, 0xff, 0x1c, 0x00, 0x14, 0x0f, 0xff, 0x1c, 0x00, 0x28, + //0x16b0: 2... .... .... ...( 0x0f, 0xff, 0x1c, 0x0b, 0x1e, 0x0f, 0xff, 0x1c, 0x0b, 0x14, 0x0f, 0xff, 0x1c, 0x16, 0x1e, 0x0f, + //0x16c0: .... .... .... .... 0xff, 0x1c, 0x16, 0x14, 0x0f, 0xff, 0xff, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, + //0x16d0: .... ...O BJEC T NA 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x16e0: ME O NE 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + //0x16f0: . 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + //0x1700: .... .... .... .... 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1710: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, + //0x1720: .... .... ..12 3456 0x37, 0x38, 0x39, 0x30, 0x2d, 0x00, 0x08, 0x00, 0x51, 0x57, 0x45, 0x52, 0x54, 0x59, 0x55, 0x49, + //0x1730: 7890 -... QWER TYUI 0x4f, 0x50, 0x00, 0x00, 0x0d, 0x00, 0x41, 0x53, 0x44, 0x46, 0x47, 0x48, 0x4a, 0x4b, 0x4c, 0x00, + //0x1740: OP.. ..AS DFGH JKL. 0x00, 0x00, 0x00, 0x00, 0x5a, 0x58, 0x43, 0x56, 0x42, 0x4e, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1750: .... ZXCV BNM. .... 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1760: . .. .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1770: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1780: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1790: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x3a, 0x00, 0x00, 0x00, + //0x17a0: .... .... ...D :... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x17b0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x17c0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x20, 0x44, 0x41, 0x54, 0x41, 0x20, 0x46, 0x49, 0x4c, 0x45, 0x20, 0x43, 0x4f, + //0x17d0: WEB DATA FIL E CO 0x50, 0x59, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x31, 0x39, 0x39, 0x32, 0x20, 0x43, 0x52, 0x45, + //0x17e0: PYRI GHT 1992 CRE 0x41, 0x54, 0x49, 0x56, 0x45, 0x20, 0x52, 0x45, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x00, 0x00, 0x00, + //0x17f0: ATIV E RE ALIT Y... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1800: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1810: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1820: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x30, 0x00, 0x05, 0xff, 0x21, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1830: WEB. R00. ..!. .... 0x01, 0x06, 0x02, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1840: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x31, 0x00, 0x01, 0xff, 0x2c, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1850: WEB. R01. ..,. .... 0x07, 0x02, 0xff, 0xff, 0xff, 0xff, 0x06, 0xff, 0xff, 0xff, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1860: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x32, 0x00, 0x02, 0xff, 0x21, 0x00, 0xff, 0xff, 0xff, 0x00, + //0x1870: WEB. R02. ..!. .... 0x01, 0x00, 0xff, 0xff, 0x01, 0xff, 0x03, 0xff, 0xff, 0xff, 0x02, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1880: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x33, 0x00, 0x05, 0xff, 0x21, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1890: WEB. R03. ..!. .... 0x02, 0x02, 0x00, 0x02, 0x04, 0xff, 0x00, 0xff, 0xff, 0xff, 0x03, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x18a0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x34, 0x00, 0x17, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x18b0: WEB. R04. .... .... 0x01, 0x04, 0x00, 0x05, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x04, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x18c0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x35, 0x00, 0x05, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x18d0: WEB. R05. .... .... 0x01, 0x02, 0x00, 0x04, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x05, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x18e0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x36, 0x00, 0x05, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x18f0: WEB. R06. .... .... 0x01, 0x00, 0x00, 0x01, 0x02, 0xff, 0x00, 0xff, 0xff, 0xff, 0x06, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1900: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x37, 0x00, 0xff, 0xff, 0x00, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x1910: WEB. R07. .... .... 0x02, 0x02, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x07, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1920: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x38, 0x00, 0x08, 0xff, 0x00, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1930: WEB. R08. .... .... 0x01, 0x02, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0b, 0x28, 0x00, 0x08, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1940: .... .... (..D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x39, 0x00, 0x09, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1950: WEB. R09. .... .... 0x04, 0x06, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x09, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1960: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x30, 0x00, 0x0a, 0xff, 0x21, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x1970: WEB. R10. ..!. .... 0x02, 0x00, 0xff, 0xff, 0x02, 0x02, 0x04, 0x16, 0x1e, 0xff, 0x0a, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1980: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x31, 0x00, 0x0b, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x1990: WEB. R11. .... .... 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x19a0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x32, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x19b0: WEB. R12. .... .... 0x01, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x19c0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x33, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x19d0: WEB. R13. .... .... 0x01, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x19e0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x34, 0x00, 0x0e, 0xff, 0x2c, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x19f0: WEB. R14. ..,. .... 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1a00: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1a10: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1a20: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1a30: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1a40: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1a50: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1a60: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1a70: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1a80: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x39, 0x00, 0x13, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, + //0x1a90: WEB. R19. .... .... 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1aa0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x30, 0x00, 0x16, 0xff, 0x00, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x1ab0: WEB. R20. .... .... 0x01, 0x04, 0x02, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x14, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1ac0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x31, 0x00, 0x05, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1ad0: WEB. R21. .... .... 0x01, 0x04, 0x02, 0x0f, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1ae0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1af0: WEB. R22. .... .... 0x00, 0x04, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1b00: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x33, 0x00, 0x17, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x1b10: WEB. R23. .... .... 0x01, 0x04, 0x02, 0x0f, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1b20: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x34, 0x00, 0x05, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00, + //0x1b30: WEB. R24. ..,. .... 0x01, 0x06, 0x02, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1b40: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x35, 0x00, 0x16, 0xff, 0x0b, 0x28, 0xff, 0xff, 0xff, 0x00, + //0x1b50: WEB. R25. ...( .... 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1b60: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x36, 0x00, 0x09, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x1b70: WEB. R26. .... .... 0x04, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1b80: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x37, 0x00, 0x16, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x1b90: WEB. R27. .... .... 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1b, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1ba0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x38, 0x00, 0x05, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x1bb0: WEB. R28. .... .... 0x00, 0x00, 0xff, 0xff, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1bc0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x39, 0x00, 0x16, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1bd0: WEB. R29. .... .... 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1be0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x35, 0x00, 0x05, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1bf0: WEB. R05. .... .... 0x01, 0x04, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x05, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1c00: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x34, 0x00, 0x17, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x1c10: WEB. R04. .... .... 0x01, 0x04, 0x02, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x04, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1c20: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x30, 0x00, 0x0a, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x1c30: WEB. R10. .... .... 0x03, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1c40: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x32, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x1c50: WEB. R12. .... .... 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1c60: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x33, 0x00, 0x05, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00, + //0x1c70: WEB. R03. ..,. .... 0x01, 0x06, 0x02, 0xff, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1c80: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x34, 0x00, 0x05, 0xff, 0x16, 0x00, 0xff, 0xff, 0xff, 0x00, + //0x1c90: WEB. R24. .... .... 0x03, 0x06, 0x00, 0xff, 0xff, 0xff, 0xff, 0x21, 0x00, 0x03, 0x18, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1ca0: .... ...! ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x1cb0: WEB. R22. .... .... 0x01, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1cc0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x1cd0: WEB. R22. .... .... 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1ce0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x31, 0x00, 0x0b, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x1cf0: WEB. R11. .... .... 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1d00: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x38, 0x00, 0x05, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00, + //0x1d10: WEB. R28. .... .... 0x00, 0x06, 0xff, 0xff, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1d20: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x31, 0x00, 0x05, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1d30: WEB. R21. .... .... 0x01, 0x04, 0x02, 0x0f, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1d40: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x36, 0x00, 0x09, 0xff, 0x00, 0x28, 0xff, 0xff, 0xff, 0x00, + //0x1d50: WEB. R26. ...( .... 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1d60: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x39, 0x00, 0x13, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, + //0x1d70: WEB. R19. .... .... 0x02, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1d80: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x38, 0x00, 0x08, 0xff, 0x0b, 0x28, 0xff, 0xff, 0xff, 0x00, + //0x1d90: WEB. R08. ...( .... 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1da0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x31, 0x00, 0x01, 0xff, 0x2c, 0x0a, 0xff, 0xff, 0xff, 0x00, + //0x1db0: WEB. R01. ..,. .... 0x03, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1dc0: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x34, 0x35, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x1dd0: WEB. R45. #... .... 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1de0: .... .... ..-D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x34, 0x36, 0x00, 0x23, 0xff, 0x16, 0x28, 0xff, 0xff, 0xff, 0x00, + //0x1df0: WEB. R46. #..( .... 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2e, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1e00: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x34, 0x37, 0x00, 0x23, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, + //0x1e10: WEB. R47. #... .... 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1e20: .... .... ../D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x34, 0x35, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x1e30: WEB. R45. #... .... 0x04, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1e40: .... .... ..-D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x34, 0x36, 0x00, 0x23, 0xff, 0x16, 0x32, 0xff, 0xff, 0xff, 0x00, + //0x1e50: WEB. R46. #..2 .... 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2e, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1e60: .... .... ...D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x30, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x1e70: WEB. R50. #... .... 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x32, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1e80: .... .... ..2D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x31, 0x00, 0x23, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x1e90: WEB. R51. #... .... 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x33, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1ea0: .... .... ..3D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x32, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, + //0x1eb0: WEB. R52. #... .... 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x34, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1ec0: .... .... ..4D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x33, 0x00, 0x23, 0xff, 0x21, 0x00, 0xff, 0xff, 0xff, 0x00, + //0x1ed0: WEB. R53. #.!. .... 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1ee0: .... .... ..5D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x34, 0x00, 0x23, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, + //0x1ef0: WEB. R54. #... .... 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x36, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x1f00: .... .... ..6D REAM 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x35, 0x00, 0x0e, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00, + //0x1f10: WEB. R55. ..,. .... 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1f20: .... .... ..7. .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1f30: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, + //0x1f40: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x02, 0x04, + //0x1f50: .... .... .... .... 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1f60: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1f70: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1f80: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1f90: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1fa0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1fb0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1fc0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x1fd0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + //0x1fe0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x1ff0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2000: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2010: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2020: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2030: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2040: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2050: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2060: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2070: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2080: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2090: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x20a0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x20b0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x20c0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x20d0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x20e0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x20f0: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2100: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2110: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2120: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2130: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2140: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2150: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2160: .... .... .... .... 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + //0x2170: .... .... .... .... 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + //0x2180: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + //0x2190: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + //0x21a0: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + //0x21b0: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + //0x21c0: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + //0x21d0: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, + //0x21e0: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, + //0x21f0: .... .... ..DR EAMW 0x45, 0x42, 0x2e, 0x44, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, + //0x2200: EB.D 00.D REAM WEB. 0x44, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x32, + //0x2210: D01. DREA MWEB .D02 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x33, 0x00, 0x44, 0x52, + //0x2220: .DRE AMWE B.D0 3.DR 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x2230: EAMW EB.D 04.D REAM 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, + //0x2240: WEB. D05. DREA MWEB 0x2e, 0x44, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x45, + //0x2250: .D06 .DRE AMWE B.DE 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x2260: M... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x2270: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x2280: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x2290: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x22a0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x22b0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x22c0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x22d0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x22e0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x22f0: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x2300: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x2310: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x2320: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x2330: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x2340: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x2350: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, }; ds.assign(src, src + sizeof(src)); dreamweb(); @@ -21436,8 +17960,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_priest: priest(); break; case addr_madmanstelly: madmanstelly(); break; case addr_madman: madman(); break; - case addr_madmantext: madmantext(); break; - case addr_madmode: madmode(); break; case addr_priesttext: priesttext(); break; case addr_textforend: textforend(); break; case addr_textformonk: textformonk(); break; @@ -21447,14 +17969,9 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_sparky: sparky(); break; case addr_train: train(); break; case addr_addtopeoplelist: addtopeoplelist(); break; - case addr_showgamereel: showgamereel(); break; case addr_checkspeed: checkspeed(); break; case addr_delsprite: delsprite(); break; - case addr_checkone: checkone(); break; - case addr_findsource: findsource(); break; case addr_mainman: mainman(); break; - case addr_aboutturn: aboutturn(); break; - case addr_facerightway: facerightway(); break; case addr_checkforexit: checkforexit(); break; case addr_adjustdown: adjustdown(); break; case addr_adjustup: adjustup(); break; @@ -21464,28 +17981,16 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_initrain: initrain(); break; case addr_splitintolines: splitintolines(); break; case addr_getblockofpixel: getblockofpixel(); break; - case addr_showrain: showrain(); break; case addr_backobject: backobject(); break; case addr_liftnoise: liftnoise(); break; case addr_random: random(); break; case addr_steady: steady(); break; case addr_constant: constant(); break; - case addr_doorway: doorway(); break; - case addr_widedoor: widedoor(); break; - case addr_lockeddoorway: lockeddoorway(); break; - case addr_updatepeople: updatepeople(); break; - case addr_getreelframeax: getreelframeax(); break; case addr_reelsonscreen: reelsonscreen(); break; - case addr_plotreel: plotreel(); break; case addr_soundonreels: soundonreels(); break; case addr_reconstruct: reconstruct(); break; - case addr_dealwithspecial: dealwithspecial(); break; - case addr_movemap: movemap(); break; - case addr_getreelstart: getreelstart(); break; - case addr_showreelframe: showreelframe(); break; case addr_deleverything: deleverything(); break; case addr_dumpeverything: dumpeverything(); break; - case addr_allocatework: allocatework(); break; case addr_showpcx: showpcx(); break; case addr_loadpalfromiff: loadpalfromiff(); break; case addr_setmode: setmode(); break; @@ -21495,12 +18000,9 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_pixelcheckset: pixelcheckset(); break; case addr_createpanel: createpanel(); break; case addr_createpanel2: createpanel2(); break; - case addr_clearwork: clearwork(); break; case addr_vsync: vsync(); break; case addr_doshake: doshake(); break; - case addr_zoom: zoom(); break; case addr_delthisone: delthisone(); break; - case addr_doblocks: doblocks(); break; case addr_transferinv: transferinv(); break; case addr_transfermap: transfermap(); break; case addr_fadedos: fadedos(); break; @@ -21548,13 +18050,7 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_mode640x480: mode640x480(); break; case addr_set16colpalette: set16colpalette(); break; case addr_realcredits: realcredits(); break; - case addr_printchar: printchar(); break; - case addr_printslow: printslow(); break; - case addr_waitframes: waitframes(); break; - case addr_printboth: printboth(); break; - case addr_printdirect: printdirect(); break; case addr_monprint: monprint(); break; - case addr_getnumber: getnumber(); break; case addr_fillryan: fillryan(); break; case addr_fillopen: fillopen(); break; case addr_findallryan: findallryan(); break; @@ -21586,7 +18082,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_swapwithinv: swapwithinv(); break; case addr_swapwithopen: swapwithopen(); break; case addr_intoinv: intoinv(); break; - case addr_deletetaken: deletetaken(); break; case addr_outofinv: outofinv(); break; case addr_getfreead: getfreead(); break; case addr_getexad: getexad(); break; @@ -21622,21 +18117,7 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_deleteextext: deleteextext(); break; case addr_blockget: blockget(); break; case addr_drawfloor: drawfloor(); break; - case addr_calcmapad: calcmapad(); break; - case addr_getdimension: getdimension(); break; - case addr_addalong: addalong(); break; - case addr_addlength: addlength(); break; - case addr_drawflags: drawflags(); break; - case addr_showallobs: showallobs(); break; - case addr_makebackob: makebackob(); break; - case addr_showallfree: showallfree(); break; case addr_showallex: showallex(); break; - case addr_calcfrframe: calcfrframe(); break; - case addr_finalframe: finalframe(); break; - case addr_adjustlen: adjustlen(); break; - case addr_getmapad: getmapad(); break; - case addr_getxad: getxad(); break; - case addr_getyad: getyad(); break; case addr_autolook: autolook(); break; case addr_look: look(); break; case addr_dolook: dolook(); break; @@ -21794,23 +18275,13 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_putbackobstuff: putbackobstuff(); break; case addr_showpuztext: showpuztext(); break; case addr_findpuztext: findpuztext(); break; - case addr_placesetobject: placesetobject(); break; - case addr_removesetobject: removesetobject(); break; case addr_issetobonmap: issetobonmap(); break; case addr_placefreeobject: placefreeobject(); break; case addr_removefreeobject: removefreeobject(); break; - case addr_findormake: findormake(); break; case addr_switchryanon: switchryanon(); break; case addr_switchryanoff: switchryanoff(); break; - case addr_setallchanges: setallchanges(); break; - case addr_dochange: dochange(); break; case addr_autoappear: autoappear(); break; - case addr_getundertimed: getundertimed(); break; - case addr_putundertimed: putundertimed(); break; - case addr_dumptimedtext: dumptimedtext(); break; case addr_setuptimeduse: setuptimeduse(); break; - case addr_setuptimedtemp: setuptimedtemp(); break; - case addr_usetimedtext: usetimedtext(); break; case addr_edenscdplayer: edenscdplayer(); break; case addr_usewall: usewall(); break; case addr_usechurchgate: usechurchgate(); break; @@ -21909,7 +18380,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_makeheader: makeheader(); break; case addr_storeit: storeit(); break; case addr_saveseg: saveseg(); break; - case addr_findlen: findlen(); break; case addr_scanfornames: scanfornames(); break; case addr_decide: decide(); break; case addr_showdecisions: showdecisions(); break; @@ -21930,16 +18400,12 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_out22c: out22c(); break; case addr_playchannel0: playchannel0(); break; case addr_playchannel1: playchannel1(); break; - case addr_makenextblock: makenextblock(); break; case addr_volumeadjust: volumeadjust(); break; - case addr_loopchannel0: loopchannel0(); break; case addr_channel0only: channel0only(); break; case addr_channel1only: channel1only(); break; - case addr_channel0tran: channel0tran(); break; case addr_bothchannels: bothchannels(); break; case addr_saveems: saveems(); break; case addr_restoreems: restoreems(); break; - case addr_domix: domix(); break; case addr_dmaend: dmaend(); break; case addr_startdmablock: startdmablock(); break; case addr_setuppit: setuppit(); break; @@ -21962,7 +18428,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_clearrest: clearrest(); break; case addr_deallocatemem: deallocatemem(); break; case addr_allocatemem: allocatemem(); break; - case addr_parseblaster: parseblaster(); break; case addr_startup: startup(); break; case addr_startup1: startup1(); break; case addr_screenupdate: screenupdate(); break; @@ -21978,12 +18443,9 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_convnum: convnum(); break; case addr_mainscreen: mainscreen(); break; case addr_madmanrun: madmanrun(); break; - case addr_checkcoords: checkcoords(); break; case addr_identifyob: identifyob(); break; - case addr_checkifperson: checkifperson(); break; case addr_checkifset: checkifset(); break; case addr_checkifex: checkifex(); break; - case addr_checkiffree: checkiffree(); break; case addr_isitdescribed: isitdescribed(); break; case addr_findpathofpoint: findpathofpoint(); break; case addr_findfirstpath: findfirstpath(); break; @@ -21996,29 +18458,15 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_atmospheres: atmospheres(); break; case addr_walkintoroom: walkintoroom(); break; case addr_afterintroroom: afterintroroom(); break; - case addr_obname: obname(); break; - case addr_finishedwalking: finishedwalking(); break; case addr_examineobtext: examineobtext(); break; - case addr_commandwithob: commandwithob(); break; - case addr_commandonly: commandonly(); break; case addr_printmessage: printmessage(); break; case addr_printmessage2: printmessage2(); break; - case addr_blocknametext: blocknametext(); break; - case addr_personnametext: personnametext(); break; - case addr_walktotext: walktotext(); break; - case addr_getflagunderp: getflagunderp(); break; case addr_setwalk: setwalk(); break; - case addr_autosetwalk: autosetwalk(); break; - case addr_checkdest: checkdest(); break; case addr_bresenhams: bresenhams(); break; case addr_workoutframes: workoutframes(); break; - case addr_getroomspaths: getroomspaths(); break; - case addr_copyname: copyname(); break; - case addr_findobname: findobname(); break; case addr_showicon: showicon(); break; case addr_middlepanel: middlepanel(); break; case addr_showman: showman(); break; - case addr_showpanel: showpanel(); break; case addr_roomname: roomname(); break; case addr_usecharset1: usecharset1(); break; case addr_usetempcharset: usetempcharset(); break; @@ -22027,8 +18475,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_showwatch: showwatch(); break; case addr_gettime: gettime(); break; case addr_zoomicon: zoomicon(); break; - case addr_showblink: showblink(); break; - case addr_dumpblink: dumpblink(); break; case addr_worktoscreenm: worktoscreenm(); break; case addr_blank: blank(); break; case addr_allpointer: allpointer(); break; @@ -22038,21 +18484,9 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_getunderzoom: getunderzoom(); break; case addr_dumpzoom: dumpzoom(); break; case addr_putunderzoom: putunderzoom(); break; - case addr_crosshair: crosshair(); break; - case addr_showpointer: showpointer(); break; - case addr_delpointer: delpointer(); break; - case addr_dumppointer: dumppointer(); break; case addr_undertextline: undertextline(); break; - case addr_deltextline: deltextline(); break; - case addr_dumptextline: dumptextline(); break; - case addr_animpointer: animpointer(); break; case addr_setmouse: setmouse(); break; - case addr_readmouse: readmouse(); break; case addr_mousecall: mousecall(); break; - case addr_readmouse1: readmouse1(); break; - case addr_readmouse2: readmouse2(); break; - case addr_readmouse3: readmouse3(); break; - case addr_readmouse4: readmouse4(); break; case addr_readkey: readkey(); break; case addr_randomnum1: randomnum1(); break; case addr_randomnum2: randomnum2(); break; @@ -22071,15 +18505,10 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_restorereels: restorereels(); break; case addr_restoreall: restoreall(); break; case addr_sortoutmap: sortoutmap(); break; - case addr_startloading: startloading(); break; case addr_disablepath: disablepath(); break; - case addr_findxyfrompath: findxyfrompath(); break; case addr_findroominloc: findroominloc(); break; - case addr_getroomdata: getroomdata(); break; - case addr_readheader: readheader(); break; case addr_dontloadseg: dontloadseg(); break; case addr_allocateload: allocateload(); break; - case addr_fillspace: fillspace(); break; case addr_getridoftemp: getridoftemp(); break; case addr_getridoftemptext: getridoftemptext(); break; case addr_getridoftemp2: getridoftemp2(); break; @@ -22090,7 +18519,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_createfile: createfile(); break; case addr_openfile: openfile(); break; case addr_openfilefromc: openfilefromc(); break; - case addr_makename: makename(); break; case addr_openfilenocheck: openfilenocheck(); break; case addr_openforsave: openforsave(); break; case addr_closefile: closefile(); break; @@ -22098,7 +18526,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_setkeyboardint: setkeyboardint(); break; case addr_resetkeyboard: resetkeyboard(); break; case addr_keyboardread: keyboardread(); break; - case addr_walkandexamine: walkandexamine(); break; case addr_doload: doload(); break; case addr_generalerror: generalerror(); break; default: ::error("invalid call to %04x dispatched", (uint16)ax); |