aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/dreamgen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dreamweb/dreamgen.cpp')
-rw-r--r--engines/dreamweb/dreamgen.cpp17268
1 files changed, 0 insertions, 17268 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
deleted file mode 100644
index 8f4b4cea21..0000000000
--- a/engines/dreamweb/dreamgen.cpp
+++ /dev/null
@@ -1,17268 +0,0 @@
-/* PLEASE DO NOT MODIFY THIS FILE. ALL CHANGES WILL BE LOST! LOOK FOR README FOR DETAILS */
-
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-
-
-#include "dreamgen.h"
-
-namespace DreamGen {
-
-void DreamGenContext::alleybarksound() {
- STACK_CHECK;
- ax = es.word(bx+3);
- _dec(ax);
- _cmp(ax, 0);
- if (!flags.z())
- goto nobark;
- push(bx);
- push(es);
- al = 14;
- playchannel1();
- es = pop();
- bx = pop();
- ax = 1000;
-nobark:
- es.word(bx+3) = ax;
-}
-
-void DreamGenContext::intromusic() {
- STACK_CHECK;
-}
-
-void DreamGenContext::foghornsound() {
- STACK_CHECK;
- randomnumber();
- _cmp(al, 198);
- if (!flags.z())
- return /* (nofog) */;
- al = 13;
- playchannel1();
-}
-
-void DreamGenContext::receptionist() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto gotrecep;
- _cmp(data.byte(kCardpassflag), 1);
- if (!flags.z())
- goto notsetcard;
- _inc(data.byte(kCardpassflag));
- es.byte(bx+7) = 1;
- es.word(bx+3) = 64;
-notsetcard:
- _cmp(es.word(bx+3), 58);
- if (!flags.z())
- goto notdes1;
- randomnumber();
- _cmp(al, 30);
- if (flags.c())
- goto notdes2;
- es.word(bx+3) = 55;
- goto gotrecep;
-notdes1:
- _cmp(es.word(bx+3), 60);
- if (!flags.z())
- goto notdes2;
- randomnumber();
- _cmp(al, 240);
- if (flags.c())
- goto gotrecep;
- es.word(bx+3) = 53;
- goto gotrecep;
-notdes2:
- _cmp(es.word(bx+3), 88);
- if (!flags.z())
- goto notendcard;
- es.word(bx+3) = 53;
- goto gotrecep;
-notendcard:
- _inc(es.word(bx+3));
-gotrecep:
- showgamereel();
- addtopeoplelist();
- al = es.byte(bx+7);
- _and(al, 128);
- if (flags.z())
- return /* (nottalkedrecep) */;
- data.byte(kTalkedtorecep) = 1;
-}
-
-void DreamGenContext::smokebloke() {
- STACK_CHECK;
- _cmp(data.byte(kRockstardead), 0);
- if (!flags.z())
- goto notspokento;
- al = es.byte(bx+7);
- _and(al, 128);
- if (flags.z())
- goto notspokento;
- push(es);
- push(bx);
- al = 5;
- setlocation();
- bx = pop();
- es = pop();
-notspokento:
- checkspeed();
- if (!flags.z())
- goto gotsmokeb;
- _cmp(es.word(bx+3), 100);
- if (!flags.z())
- goto notsmokeb1;
- randomnumber();
- _cmp(al, 30);
- if (flags.c())
- goto notsmokeb2;
- es.word(bx+3) = 96;
- goto gotsmokeb;
-notsmokeb1:
- _cmp(es.word(bx+3), 117);
- if (!flags.z())
- goto notsmokeb2;
- es.word(bx+3) = 96;
- goto gotsmokeb;
-notsmokeb2:
- _inc(es.word(bx+3));
-gotsmokeb:
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::attendant() {
- STACK_CHECK;
- showgamereel();
- addtopeoplelist();
- al = es.byte(bx+7);
- _and(al, 128);
- if (flags.z())
- return /* (nottalked) */;
- data.byte(kTalkedtoattendant) = 1;
-}
-
-void DreamGenContext::manasleep() {
- STACK_CHECK;
- al = es.byte(bx+7);
- _and(al, 127);
- es.byte(bx+7) = al;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::eden() {
- STACK_CHECK;
- _cmp(data.byte(kGeneraldead), 0);
- if (!flags.z())
- return /* (notinbed) */;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::edeninbath() {
- STACK_CHECK;
- _cmp(data.byte(kGeneraldead), 0);
- if (flags.z())
- return /* (notinbath) */;
- _cmp(data.byte(kSartaindead), 0);
- if (!flags.z())
- return /* (notinbath) */;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::malefan() {
- STACK_CHECK;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::femalefan() {
- STACK_CHECK;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::louis() {
- STACK_CHECK;
- _cmp(data.byte(kRockstardead), 0);
- if (!flags.z())
- return /* (notlouis1) */;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::louischair() {
- STACK_CHECK;
- _cmp(data.byte(kRockstardead), 0);
- if (flags.z())
- return /* (notlouis2) */;
- checkspeed();
- if (!flags.z())
- goto notlouisanim;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 191);
- if (flags.z())
- goto restartlouis;
- _cmp(ax, 185);
- if (flags.z())
- goto randomlouis;
- es.word(bx+3) = ax;
- goto notlouisanim;
-randomlouis:
- es.word(bx+3) = ax;
- randomnumber();
- _cmp(al, 245);
- if (!flags.c())
- goto notlouisanim;
-restartlouis:
- ax = 182;
- es.word(bx+3) = ax;
-notlouisanim:
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::manasleep2() {
- STACK_CHECK;
- al = es.byte(bx+7);
- _and(al, 127);
- es.byte(bx+7) = al;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::mansatstill() {
- STACK_CHECK;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::tattooman() {
- STACK_CHECK;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::drinker() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto gotdrinker;
- _inc(es.word(bx+3));
- _cmp(es.word(bx+3), 115);
- if (!flags.z())
- goto notdrinker1;
- es.word(bx+3) = 105;
- goto gotdrinker;
-notdrinker1:
- _cmp(es.word(bx+3), 106);
- if (!flags.z())
- goto gotdrinker;
- randomnumber();
- _cmp(al, 3);
- if (flags.c())
- goto gotdrinker;
- es.word(bx+3) = 105;
-gotdrinker:
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::bartender() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto gotsmoket;
- _cmp(es.word(bx+3), 86);
- if (!flags.z())
- goto notsmoket1;
- randomnumber();
- _cmp(al, 18);
- if (flags.c())
- goto notsmoket2;
- es.word(bx+3) = 81;
- goto gotsmoket;
-notsmoket1:
- _cmp(es.word(bx+3), 103);
- if (!flags.z())
- goto notsmoket2;
- es.word(bx+3) = 81;
- goto gotsmoket;
-notsmoket2:
- _inc(es.word(bx+3));
-gotsmoket:
- showgamereel();
- _cmp(data.byte(kGunpassflag), 1);
- if (!flags.z())
- goto notgotgun;
- es.byte(bx+7) = 9;
-notgotgun:
- addtopeoplelist();
-}
-
-void DreamGenContext::othersmoker() {
- STACK_CHECK;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::barwoman() {
- STACK_CHECK;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::interviewer() {
- STACK_CHECK;
- _cmp(data.word(kReeltowatch), 68);
- if (!flags.z())
- goto notgeneralstart;
- _inc(es.word(bx+3));
-notgeneralstart:
- _cmp(es.word(bx+3), 250);
- if (flags.z())
- goto talking;
- checkspeed();
- if (!flags.z())
- goto talking;
- _cmp(es.word(bx+3), 259);
- if (flags.z())
- goto talking;
- _inc(es.word(bx+3));
-talking:
- showgamereel();
-}
-
-void DreamGenContext::soldier1() {
- STACK_CHECK;
- _cmp(es.word(bx+3), 0);
- if (flags.z())
- goto soldierwait;
- data.word(kWatchingtime) = 10;
- _cmp(es.word(bx+3), 30);
- if (!flags.z())
- goto notaftersshot;
- _inc(data.byte(kCombatcount));
- _cmp(data.byte(kCombatcount), 40);
- if (!flags.z())
- goto gotsoldframe;
- data.byte(kMandead) = 2;
- goto gotsoldframe;
-notaftersshot:
- checkspeed();
- if (!flags.z())
- goto gotsoldframe;
- _inc(es.word(bx+3));
- goto gotsoldframe;
-soldierwait:
- _cmp(data.byte(kLastweapon), 1);
- if (!flags.z())
- goto gotsoldframe;
- data.word(kWatchingtime) = 10;
- _cmp(data.byte(kManspath), 2);
- if (!flags.z())
- goto gotsoldframe;
- _cmp(data.byte(kFacing), 4);
- if (!flags.z())
- goto gotsoldframe;
- _inc(es.word(bx+3));
- data.byte(kLastweapon) = -1;
- data.byte(kCombatcount) = 0;
-gotsoldframe:
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::rockstar() {
- STACK_CHECK;
- ax = es.word(bx+3);
- _cmp(ax, 303);
- if (flags.z())
- goto rockcombatend;
- _cmp(ax, 118);
- if (flags.z())
- goto rockcombatend;
- checkspeed();
- if (!flags.z())
- goto rockspeed;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 118);
- if (!flags.z())
- goto notbeforedead;
- data.byte(kMandead) = 2;
- goto gotrockframe;
-notbeforedead:
- _cmp(ax, 79);
- if (!flags.z())
- goto gotrockframe;
- _dec(ax);
- _cmp(data.byte(kLastweapon), 1);
- if (!flags.z())
- goto notgunonrock;
- data.byte(kLastweapon) = -1;
- ax = 123;
- goto gotrockframe;
-notgunonrock:
- _inc(data.byte(kCombatcount));
- _cmp(data.byte(kCombatcount), 40);
- if (!flags.z())
- goto gotrockframe;
- data.byte(kCombatcount) = 0;
- ax = 79;
-gotrockframe:
- es.word(bx+3) = ax;
-rockspeed:
- showgamereel();
- _cmp(es.word(bx+3), 78);
- if (!flags.z())
- goto notalkrock;
- addtopeoplelist();
- data.byte(kPointermode) = 2;
- data.word(kWatchingtime) = 0;
- return;
-notalkrock:
- data.word(kWatchingtime) = 2;
- data.byte(kPointermode) = 0;
- al = data.byte(kMapy);
- es.byte(bx+2) = al;
- return;
-rockcombatend:
- data.byte(kNewlocation) = 45;
- showgamereel();
-}
-
-void DreamGenContext::helicopter() {
- STACK_CHECK;
- ax = es.word(bx+3);
- _cmp(ax, 203);
- if (flags.z())
- goto heliwon;
- checkspeed();
- if (!flags.z())
- goto helispeed;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 53);
- if (!flags.z())
- goto notbeforehdead;
- _inc(data.byte(kCombatcount));
- _cmp(data.byte(kCombatcount), 8);
- if (flags.c())
- goto waitabit;
- data.byte(kMandead) = 2;
-waitabit:
- ax = 49;
- goto gotheliframe;
-notbeforehdead:
- _cmp(ax, 9);
- if (!flags.z())
- goto gotheliframe;
- _dec(ax);
- _cmp(data.byte(kLastweapon), 1);
- if (!flags.z())
- goto notgunonheli;
- data.byte(kLastweapon) = -1;
- ax = 55;
- goto gotheliframe;
-notgunonheli:
- ax = 5;
- _inc(data.byte(kCombatcount));
- _cmp(data.byte(kCombatcount), 20);
- if (!flags.z())
- goto gotheliframe;
- data.byte(kCombatcount) = 0;
- ax = 9;
-gotheliframe:
- es.word(bx+3) = ax;
-helispeed:
- showgamereel();
- al = data.byte(kMapx);
- es.byte(bx+1) = al;
- ax = es.word(bx+3);
- _cmp(ax, 9);
- if (!flags.c())
- goto notwaitingheli;
- _cmp(data.byte(kCombatcount), 7);
- if (flags.c())
- goto notwaitingheli;
- data.byte(kPointermode) = 2;
- data.word(kWatchingtime) = 0;
- return;
-notwaitingheli:
- data.byte(kPointermode) = 0;
- data.word(kWatchingtime) = 2;
- return;
-heliwon:
- data.byte(kPointermode) = 0;
-}
-
-void DreamGenContext::mugger() {
- STACK_CHECK;
- ax = es.word(bx+3);
- _cmp(ax, 138);
- if (flags.z())
- goto endmugger1;
- _cmp(ax, 176);
- if (flags.z())
- return /* (endmugger2) */;
- _cmp(ax, 2);
- if (!flags.z())
- goto havesetwatch;
- data.word(kWatchingtime) = 175*2;
-havesetwatch:
- checkspeed();
- if (!flags.z())
- goto notmugger;
- _inc(es.word(bx+3));
-notmugger:
- showgamereel();
- al = data.byte(kMapx);
- es.byte(bx+1) = al;
- return;
-endmugger1:
- push(es);
- push(bx);
- createpanel2();
- showicon();
- al = 41;
- findpuztext();
- di = 33+20;
- bx = 104;
- dl = 241;
- ah = 0;
- printdirect();
- worktoscreen();
- cx = 300;
- hangon();
- bx = pop();
- es = pop();
- push(es);
- push(bx);
- es.word(bx+3) = 140;
- data.byte(kManspath) = 2;
- data.byte(kFinaldest) = 2;
- findxyfrompath();
- data.byte(kResetmanxy) = 1;
- al = 'W';
- ah = 'E';
- cl = 'T';
- ch = 'A';
- findexobject();
- data.byte(kCommand) = al;
- data.byte(kObjecttype) = 4;
- removeobfrominv();
- al = 'W';
- ah = 'E';
- cl = 'T';
- ch = 'B';
- findexobject();
- data.byte(kCommand) = al;
- data.byte(kObjecttype) = 4;
- removeobfrominv();
- makemainscreen();
- al = 48;
- bl = 68-32;
- bh = 54+64;
- cx = 70;
- dx = 10;
- setuptimeduse();
- data.byte(kBeenmugged) = 1;
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::aide() {
- STACK_CHECK;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::businessman() {
- STACK_CHECK;
- data.byte(kPointermode) = 0;
- data.word(kWatchingtime) = 2;
- ax = es.word(bx+3);
- _cmp(ax, 2);
- if (!flags.z())
- goto notfirstbiz;
- push(ax);
- push(bx);
- push(es);
- al = 49;
- cx = 30;
- dx = 1;
- bl = 68;
- bh = 174;
- setuptimeduse();
- es = pop();
- bx = pop();
- ax = pop();
-notfirstbiz:
- _cmp(ax, 95);
- if (flags.z())
- goto buscombatwonend;
- _cmp(ax, 49);
- if (flags.z())
- return /* (buscombatend) */;
- checkspeed();
- if (!flags.z())
- goto busspeed;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 48);
- if (!flags.z())
- goto notbeforedeadb;
- data.byte(kMandead) = 2;
- goto gotbusframe;
-notbeforedeadb:
- _cmp(ax, 15);
- if (!flags.z())
- goto buscombatwon;
- _dec(ax);
- _cmp(data.byte(kLastweapon), 3);
- if (!flags.z())
- goto notshieldonbus;
- data.byte(kLastweapon) = -1;
- data.byte(kCombatcount) = 0;
- ax = 51;
- goto gotbusframe;
-notshieldonbus:
- _inc(data.byte(kCombatcount));
- _cmp(data.byte(kCombatcount), 20);
- if (!flags.z())
- goto gotbusframe;
- data.byte(kCombatcount) = 0;
- ax = 15;
- goto gotbusframe;
-buscombatwon:
- _cmp(ax, 91);
- if (!flags.z())
- goto gotbusframe;
- push(bx);
- push(es);
- al = 0;
- turnpathon();
- al = 1;
- turnpathon();
- al = 2;
- turnpathon();
- al = 3;
- turnpathoff();
- data.byte(kManspath) = 5;
- data.byte(kFinaldest) = 5;
- findxyfrompath();
- data.byte(kResetmanxy) = 1;
- es = pop();
- bx = pop();
- ax = 92;
- goto gotbusframe;
-gotbusframe:
- es.word(bx+3) = ax;
-busspeed:
- showgamereel();
- al = data.byte(kMapy);
- es.byte(bx+2) = al;
- ax = es.word(bx+3);
- _cmp(ax, 14);
- if (!flags.z())
- return /* (buscombatend) */;
- data.word(kWatchingtime) = 0;
- data.byte(kPointermode) = 2;
- return;
-buscombatwonend:
- data.byte(kPointermode) = 0;
- data.word(kWatchingtime) = 0;
-}
-
-void DreamGenContext::poolguard() {
- STACK_CHECK;
- ax = es.word(bx+3);
- _cmp(ax, 214);
- if (flags.z())
- goto combatover2;
- _cmp(ax, 258);
- if (flags.z())
- goto combatover2;
- _cmp(ax, 185);
- if (flags.z())
- goto combatover1;
- _cmp(ax, 0);
- if (!flags.z())
- goto notfirstpool;
- al = 0;
- turnpathon();
-notfirstpool:
- checkspeed();
- if (!flags.z())
- goto guardspeed;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 122);
- if (!flags.z())
- goto notendguard1;
- _dec(ax);
- _cmp(data.byte(kLastweapon), 2);
- if (!flags.z())
- goto notaxeonpool;
- data.byte(kLastweapon) = -1;
- ax = 122;
- goto gotguardframe;
-notaxeonpool:
- _inc(data.byte(kCombatcount));
- _cmp(data.byte(kCombatcount), 40);
- if (!flags.z())
- goto gotguardframe;
- data.byte(kCombatcount) = 0;
- ax = 195;
- goto gotguardframe;
-notendguard1:
- _cmp(ax, 147);
- if (!flags.z())
- goto gotguardframe;
- _dec(ax);
- _cmp(data.byte(kLastweapon), 1);
- if (!flags.z())
- goto notgunonpool;
- data.byte(kLastweapon) = -1;
- ax = 147;
- goto gotguardframe;
-notgunonpool:
- _inc(data.byte(kCombatcount));
- _cmp(data.byte(kCombatcount), 40);
- if (!flags.z())
- goto gotguardframe;
- data.byte(kCombatcount) = 0;
- ax = 220;
-gotguardframe:
- es.word(bx+3) = ax;
-guardspeed:
- showgamereel();
- ax = es.word(bx+3);
- _cmp(ax, 121);
- if (flags.z())
- goto iswaitingpool;
- _cmp(ax, 146);
- if (flags.z())
- goto iswaitingpool;
- data.byte(kPointermode) = 0;
- data.word(kWatchingtime) = 2;
- return;
-iswaitingpool:
- data.byte(kPointermode) = 2;
- data.word(kWatchingtime) = 0;
- return;
-combatover1:
- data.word(kWatchingtime) = 0;
- data.byte(kPointermode) = 0;
- al = 0;
- turnpathon();
- al = 1;
- turnpathoff();
- return;
-combatover2:
- showgamereel();
- data.word(kWatchingtime) = 2;
- data.byte(kPointermode) = 0;
- _inc(data.byte(kCombatcount));
- _cmp(data.byte(kCombatcount), 100);
- if (flags.c())
- return /* (doneover2) */;
- data.word(kWatchingtime) = 0;
- data.byte(kMandead) = 2;
-}
-
-void DreamGenContext::security() {
- STACK_CHECK;
- _cmp(es.word(bx+3), 32);
- if (flags.z())
- goto securwait;
- _cmp(es.word(bx+3), 69);
- if (!flags.z())
- goto notaftersec;
- return;
-notaftersec:
- data.word(kWatchingtime) = 10;
- checkspeed();
- if (!flags.z())
- goto gotsecurframe;
- _inc(es.word(bx+3));
- goto gotsecurframe;
-securwait:
- _cmp(data.byte(kLastweapon), 1);
- if (!flags.z())
- goto gotsecurframe;
- data.word(kWatchingtime) = 10;
- _cmp(data.byte(kManspath), 9);
- if (!flags.z())
- goto gotsecurframe;
- _cmp(data.byte(kFacing), 0);
- if (!flags.z())
- goto gotsecurframe;
- data.byte(kLastweapon) = -1;
- _inc(es.word(bx+3));
-gotsecurframe:
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::heavy() {
- STACK_CHECK;
- al = es.byte(bx+7);
- _and(al, 127);
- es.byte(bx+7) = al;
- _cmp(es.word(bx+3), 43);
- if (flags.z())
- goto heavywait;
- data.word(kWatchingtime) = 10;
- _cmp(es.word(bx+3), 70);
- if (!flags.z())
- goto notafterhshot;
- _inc(data.byte(kCombatcount));
- _cmp(data.byte(kCombatcount), 80);
- if (!flags.z())
- goto gotheavyframe;
- data.byte(kMandead) = 2;
- goto gotheavyframe;
-notafterhshot:
- checkspeed();
- if (!flags.z())
- goto gotheavyframe;
- _inc(es.word(bx+3));
- goto gotheavyframe;
-heavywait:
- _cmp(data.byte(kLastweapon), 1);
- if (!flags.z())
- goto gotheavyframe;
- _cmp(data.byte(kManspath), 5);
- if (!flags.z())
- goto gotheavyframe;
- _cmp(data.byte(kFacing), 4);
- if (!flags.z())
- goto gotheavyframe;
- data.byte(kLastweapon) = -1;
- _inc(es.word(bx+3));
- data.byte(kCombatcount) = 0;
-gotheavyframe:
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::bossman() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto notboss;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 4);
- if (flags.z())
- goto firstdes;
- _cmp(ax, 20);
- if (flags.z())
- goto secdes;
- _cmp(ax, 41);
- if (!flags.z())
- goto gotallboss;
- ax = 0;
- _inc(data.byte(kGunpassflag));
- es.byte(bx+7) = 10;
- goto gotallboss;
-firstdes:
- _cmp(data.byte(kGunpassflag), 1);
- if (flags.z())
- goto gotallboss;
- push(ax);
- randomnumber();
- cl = al;
- ax = pop();
- _cmp(cl, 10);
- if (flags.c())
- goto gotallboss;
- ax = 0;
- goto gotallboss;
-secdes:
- _cmp(data.byte(kGunpassflag), 1);
- if (flags.z())
- goto gotallboss;
- ax = 0;
-gotallboss:
- es.word(bx+3) = ax;
-notboss:
- showgamereel();
- addtopeoplelist();
- al = es.byte(bx+7);
- _and(al, 128);
- if (flags.z())
- return /* (nottalkedboss) */;
- data.byte(kTalkedtoboss) = 1;
-}
-
-void DreamGenContext::gamer() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto gamerfin;
-gameragain:
- randomnum1();
- _and(al, 7);
- _cmp(al, 5);
- if (!flags.c())
- goto gameragain;
- _add(al, 20);
- _cmp(al, es.byte(bx+3));
- if (flags.z())
- goto gameragain;
- ah = 0;
- es.word(bx+3) = ax;
-gamerfin:
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::sparkydrip() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- return /* (cantdrip) */;
- al = 14;
- ah = 0;
- playchannel0();
-}
-
-void DreamGenContext::carparkdrip() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- return /* (cantdrip2) */;
- al = 14;
- playchannel1();
-}
-
-void DreamGenContext::keeper() {
- STACK_CHECK;
- _cmp(data.byte(kKeeperflag), 0);
- if (!flags.z())
- goto notwaiting;
- _cmp(data.word(kReeltowatch), 190);
- if (flags.c())
- return /* (waiting) */;
- _inc(data.byte(kKeeperflag));
- ah = es.byte(bx+7);
- _and(ah, 127);
- _cmp(ah, data.byte(kDreamnumber));
- if (flags.z())
- return /* (notdiff) */;
- al = data.byte(kDreamnumber);
- es.byte(bx+7) = al;
- return;
-notwaiting:
- addtopeoplelist();
- showgamereel();
-}
-
-void DreamGenContext::candles1() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto candle1;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 44);
- if (!flags.z())
- goto notendcandle1;
- ax = 39;
-notendcandle1:
- es.word(bx+3) = ax;
-candle1:
- showgamereel();
-}
-
-void DreamGenContext::smallcandle() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto smallcandlef;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 37);
- if (!flags.z())
- goto notendsmallcandle;
- ax = 25;
-notendsmallcandle:
- es.word(bx+3) = ax;
-smallcandlef:
- showgamereel();
-}
-
-void DreamGenContext::intromagic1() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto introm1fin;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 145);
- if (!flags.z())
- goto gotintrom1;
- ax = 121;
-gotintrom1:
- es.word(bx+3) = ax;
- _cmp(ax, 121);
- if (!flags.z())
- goto introm1fin;
- _inc(data.byte(kIntrocount));
- push(es);
- push(bx);
- intro1text();
- bx = pop();
- es = pop();
- _cmp(data.byte(kIntrocount), 8);
- if (!flags.z())
- goto introm1fin;
- _add(data.byte(kMapy), 10);
- data.byte(kNowinnewroom) = 1;
-introm1fin:
- showgamereel();
-}
-
-void DreamGenContext::candles() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto candlesfin;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 167);
- if (!flags.z())
- goto gotcandles;
- ax = 162;
-gotcandles:
- es.word(bx+3) = ax;
-candlesfin:
- showgamereel();
-}
-
-void DreamGenContext::candles2() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto candles2fin;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 238);
- if (!flags.z())
- goto gotcandles2;
- ax = 233;
-gotcandles2:
- es.word(bx+3) = ax;
-candles2fin:
- showgamereel();
-}
-
-void DreamGenContext::gates() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto gatesfin;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 116);
- if (!flags.z())
- goto notbang;
- push(ax);
- push(bx);
- push(es);
- al = 17;
- playchannel1();
- es = pop();
- bx = pop();
- ax = pop();
-notbang:
- _cmp(ax, 110);
- if (flags.c())
- goto slowgates;
- es.byte(bx+5) = 2;
-slowgates:
- _cmp(ax, 120);
- if (!flags.z())
- goto gotgates;
- data.byte(kGetback) = 1;
- ax = 119;
-gotgates:
- es.word(bx+3) = ax;
- push(es);
- push(bx);
- intro3text();
- bx = pop();
- es = pop();
-gatesfin:
- showgamereel();
-}
-
-void DreamGenContext::intromagic2() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto introm2fin;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 216);
- if (!flags.z())
- goto gotintrom2;
- ax = 192;
-gotintrom2:
- es.word(bx+3) = ax;
-introm2fin:
- showgamereel();
-}
-
-void DreamGenContext::intromagic3() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto introm3fin;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 218);
- if (!flags.z())
- goto gotintrom3;
- data.byte(kGetback) = 1;
-gotintrom3:
- es.word(bx+3) = ax;
-introm3fin:
- showgamereel();
- al = data.byte(kMapx);
- es.byte(bx+1) = al;
-}
-
-void DreamGenContext::intromonks1() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto intromonk1fin;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 80);
- if (!flags.z())
- goto notendmonk1;
- _add(data.byte(kMapy), 10);
- data.byte(kNowinnewroom) = 1;
- showgamereel();
- return;
-notendmonk1:
- _cmp(ax, 30);
- if (!flags.z())
- goto gotintromonk1;
- _sub(data.byte(kMapy), 10);
- data.byte(kNowinnewroom) = 1;
- ax = 51;
-gotintromonk1:
- es.word(bx+3) = ax;
- _cmp(ax, 5);
- if (flags.z())
- goto waitstep;
- _cmp(ax, 15);
- if (flags.z())
- goto waitstep;
- _cmp(ax, 25);
- if (flags.z())
- goto waitstep;
- _cmp(ax, 61);
- if (flags.z())
- goto waitstep;
- _cmp(ax, 71);
- if (flags.z())
- goto waitstep;
- goto intromonk1fin;
-waitstep:
- push(es);
- push(bx);
- intro2text();
- bx = pop();
- es = pop();
- es.byte(bx+6) = -20;
-intromonk1fin:
- showgamereel();
- al = data.byte(kMapy);
- es.byte(bx+2) = al;
-}
-
-void DreamGenContext::intromonks2() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto intromonk2fin;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 87);
- if (!flags.z())
- goto nottalk1;
- _inc(data.byte(kIntrocount));
- push(es);
- push(bx);
- monks2text();
- bx = pop();
- es = pop();
- _cmp(data.byte(kIntrocount), 19);
- if (!flags.z())
- goto notlasttalk1;
- ax = 87;
- goto gotintromonk2;
-notlasttalk1:
- ax = 74;
- goto gotintromonk2;
-nottalk1:
- _cmp(ax, 110);
- if (!flags.z())
- goto notraisearm;
- _inc(data.byte(kIntrocount));
- push(es);
- push(bx);
- monks2text();
- bx = pop();
- es = pop();
- _cmp(data.byte(kIntrocount), 35);
- if (!flags.z())
- goto notlastraise;
- ax = 111;
- goto gotintromonk2;
-notlastraise:
- ax = 98;
- goto gotintromonk2;
-notraisearm:
- _cmp(ax, 176);
- if (!flags.z())
- goto notendmonk2;
- data.byte(kGetback) = 1;
- goto gotintromonk2;
-notendmonk2:
- _cmp(ax, 125);
- if (!flags.z())
- goto gotintromonk2;
- ax = 140;
-gotintromonk2:
- es.word(bx+3) = ax;
-intromonk2fin:
- showgamereel();
-}
-
-void DreamGenContext::handclap() {
- STACK_CHECK;
-}
-
-void DreamGenContext::monks2text() {
- STACK_CHECK;
- _cmp(data.byte(kIntrocount), 1);
- if (!flags.z())
- goto notmonk2text1;
- al = 8;
- bl = 36;
- bh = 160;
- cx = 100;
- goto gotmonks2text;
-notmonk2text1:
- _cmp(data.byte(kIntrocount), 4);
- if (!flags.z())
- goto notmonk2text2;
- al = 9;
- bl = 36;
- bh = 160;
- cx = 100;
- goto gotmonks2text;
-notmonk2text2:
- _cmp(data.byte(kIntrocount), 7);
- if (!flags.z())
- goto notmonk2text3;
- al = 10;
- bl = 36;
- bh = 160;
- cx = 100;
- goto gotmonks2text;
-notmonk2text3:
- _cmp(data.byte(kIntrocount), 10);
- if (!flags.z())
- goto notmonk2text4;
- data.byte(kIntrocount) = 12;
- al = 11;
- bl = 0;
- bh = 105;
- cx = 100;
- goto gotmonks2text;
-notmonk2text4:
- _cmp(data.byte(kIntrocount), 13);
- if (!flags.z())
- goto notmonk2text5;
- data.byte(kIntrocount) = 17;
- return;
- al = 12;
- bl = 0;
- bh = 120;
- cx = 100;
- goto gotmonks2text;
-notmonk2text5:
- _cmp(data.byte(kIntrocount), 16);
- if (!flags.z())
- goto notmonk2text6;
- al = 13;
- bl = 0;
- bh = 135;
- cx = 100;
- goto gotmonks2text;
-notmonk2text6:
- _cmp(data.byte(kIntrocount), 19);
- if (!flags.z())
- goto notmonk2text7;
- al = 14;
- bl = 36;
- bh = 160;
- cx = 100;
- dx = 1;
- ah = 82;
- { setuptimedtemp(); return; };
-notmonk2text7:
- _cmp(data.byte(kIntrocount), 22);
- if (!flags.z())
- goto notmonk2text8;
- al = 15;
- bl = 36;
- bh = 160;
- cx = 100;
- goto gotmonks2text;
-notmonk2text8:
- _cmp(data.byte(kIntrocount), 25);
- if (!flags.z())
- goto notmonk2text9;
- al = 16;
- bl = 36;
- bh = 160;
- cx = 100;
- goto gotmonks2text;
-notmonk2text9:
- _cmp(data.byte(kIntrocount), 27);
- if (!flags.z())
- goto notmonk2text10;
- al = 17;
- bl = 36;
- bh = 160;
- cx = 100;
- goto gotmonks2text;
-notmonk2text10:
- _cmp(data.byte(kIntrocount), 31);
- if (!flags.z())
- return /* (notmonk2text11) */;
- al = 18;
- bl = 36;
- bh = 160;
- cx = 100;
- goto gotmonks2text;
- return;
-gotmonks2text:
- dx = 1;
- cx = 120;
- ah = 82;
- setuptimedtemp();
-}
-
-void DreamGenContext::intro1text() {
- STACK_CHECK;
- _cmp(data.byte(kIntrocount), 2);
- if (!flags.z())
- goto notintro1text1;
- al = 40;
- bl = 34;
- bh = 130;
- cx = 90;
- goto gotintro1text;
-notintro1text1:
- _cmp(data.byte(kIntrocount), 4);
- if (!flags.z())
- goto notintro1text2;
- al = 41;
- bl = 34;
- bh = 130;
- cx = 90;
- goto gotintro1text;
-notintro1text2:
- _cmp(data.byte(kIntrocount), 6);
- if (!flags.z())
- return /* (notintro1text3) */;
- al = 42;
- bl = 34;
- bh = 130;
- cx = 90;
- goto gotintro1text;
- return;
-gotintro1text:
- dx = 1;
- ah = 82;
- _cmp(data.byte(kCh1playing), 255);
- if (flags.z())
- goto oktalk2;
- _dec(data.byte(kIntrocount));
- return;
-oktalk2:
- setuptimedtemp();
-}
-
-void DreamGenContext::intro2text() {
- STACK_CHECK;
- _cmp(ax, 5);
- if (!flags.z())
- goto notintro2text1;
- al = 43;
- bl = 34;
- bh = 40;
- cx = 90;
- goto gotintro2text;
-notintro2text1:
- _cmp(ax, 15);
- if (!flags.z())
- return /* (notintro2text2) */;
- al = 44;
- bl = 34;
- bh = 40;
- cx = 90;
- goto gotintro2text;
- return;
-gotintro2text:
- dx = 1;
- ah = 82;
- setuptimedtemp();
-}
-
-void DreamGenContext::intro3text() {
- STACK_CHECK;
- _cmp(ax, 107);
- if (!flags.z())
- goto notintro3text1;
- al = 45;
- bl = 36;
- bh = 56;
- cx = 100;
- goto gotintro3text;
-notintro3text1:
- _cmp(ax, 108);
- if (!flags.z())
- return /* (notintro3text2) */;
- al = 46;
- bl = 36;
- bh = 56;
- cx = 100;
- goto gotintro3text;
- return;
-gotintro3text:
- dx = 1;
- ah = 82;
- setuptimedtemp();
-}
-
-void DreamGenContext::monkandryan() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto notmonkryan;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 83);
- if (!flags.z())
- goto gotmonkryan;
- _inc(data.byte(kIntrocount));
- push(es);
- push(bx);
- textformonk();
- bx = pop();
- es = pop();
- ax = 77;
- _cmp(data.byte(kIntrocount), 57);
- if (!flags.z())
- goto gotmonkryan;
- data.byte(kGetback) = 1;
- return;
-gotmonkryan:
- es.word(bx+3) = ax;
-notmonkryan:
- showgamereel();
-}
-
-void DreamGenContext::endgameseq() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto notendseq;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 51);
- if (!flags.z())
- goto gotendseq;
- _cmp(data.byte(kIntrocount), 140);
- if (flags.z())
- goto gotendseq;
- _inc(data.byte(kIntrocount));
- push(es);
- push(bx);
- textforend();
- bx = pop();
- es = pop();
- ax = 50;
-gotendseq:
- es.word(bx+3) = ax;
- _cmp(ax, 134);
- if (!flags.z())
- goto notfadedown;
- push(es);
- push(bx);
- push(ax);
- fadescreendownhalf();
- ax = pop();
- bx = pop();
- es = pop();
- goto notendseq;
-notfadedown:
- _cmp(ax, 324);
- if (!flags.z())
- goto notfadeend;
- push(es);
- push(bx);
- push(ax);
- fadescreendowns();
- data.byte(kVolumeto) = 7;
- data.byte(kVolumedirection) = 1;
- ax = pop();
- bx = pop();
- es = pop();
-notfadeend:
- _cmp(ax, 340);
- if (!flags.z())
- goto notendseq;
- data.byte(kGetback) = 1;
-notendseq:
- showgamereel();
- al = data.byte(kMapy);
- es.byte(bx+2) = al;
- ax = es.word(bx+3);
- _cmp(ax, 145);
- if (!flags.z())
- return /* (notendcreds) */;
- es.word(bx+3) = 146;
- rollendcredits();
-}
-
-void DreamGenContext::rollendcredits() {
- STACK_CHECK;
- al = 16;
- ah = 255;
- playchannel0();
- data.byte(kVolume) = 7;
- data.byte(kVolumeto) = 0;
- data.byte(kVolumedirection) = -1;
- cl = 160;
- ch = 160;
- di = 75;
- bx = 20;
- ds = data.word(kMapstore);
- si = 0;
- multiget();
- es = data.word(kTextfile1);
- si = 3*2;
- ax = es.word(si);
- si = ax;
- _add(si, (66*2));
- cx = 254;
-endcredits1:
- push(cx);
- bx = 10;
- cx = data.word(kLinespacing);
-endcredits2:
- push(cx);
- push(si);
- push(di);
- push(es);
- push(bx);
- vsync();
- cl = 160;
- ch = 160;
- di = 75;
- bx = 20;
- ds = data.word(kMapstore);
- si = 0;
- multiput();
- vsync();
- bx = pop();
- es = pop();
- di = pop();
- si = pop();
- push(si);
- push(di);
- push(es);
- push(bx);
- cx = 18;
-onelot:
- push(cx);
- di = 75;
- dx = 161;
- ax = 0;
- printdirect();
- _add(bx, data.word(kLinespacing));
- cx = pop();
- if (--cx)
- goto onelot;
- vsync();
- cl = 160;
- ch = 160;
- di = 75;
- bx = 20;
- multidump();
- bx = pop();
- es = pop();
- di = pop();
- si = pop();
- cx = pop();
- _dec(bx);
- if (--cx)
- goto endcredits2;
- cx = pop();
-looknext:
- al = es.byte(si);
- _inc(si);
- _cmp(al, ':');
- if (flags.z())
- goto gotnext;
- _cmp(al, 0);
- if (flags.z())
- goto gotnext;
- goto looknext;
-gotnext:
- if (--cx)
- goto endcredits1;
- cx = 100;
- hangon();
- paneltomap();
- fadescreenuphalf();
-}
-
-void DreamGenContext::priest() {
- STACK_CHECK;
- _cmp(es.word(bx+3), 8);
- if (flags.z())
- return /* (priestspoken) */;
- data.byte(kPointermode) = 0;
- data.word(kWatchingtime) = 2;
- checkspeed();
- if (!flags.z())
- return /* (priestwait) */;
- _inc(es.word(bx+3));
- push(es);
- push(bx);
- priesttext();
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::madmanstelly() {
- STACK_CHECK;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 307);
- if (!flags.z())
- goto notendtelly;
- ax = 300;
-notendtelly:
- es.word(bx+3) = ax;
- showgamereel();
-}
-
-void DreamGenContext::priesttext() {
- STACK_CHECK;
- _cmp(es.word(bx+3), 2);
- if (flags.c())
- return /* (nopriesttext) */;
- _cmp(es.word(bx+3), 7);
- if (!flags.c())
- return /* (nopriesttext) */;
- al = es.byte(bx+3);
- _and(al, 1);
- if (!flags.z())
- return /* (nopriesttext) */;
- al = es.byte(bx+3);
- _shr(al, 1);
- _add(al, 50);
- bl = 72;
- bh = 80;
- cx = 54;
- dx = 1;
- setuptimeduse();
-}
-
-void DreamGenContext::textforend() {
- STACK_CHECK;
- _cmp(data.byte(kIntrocount), 20);
- if (!flags.z())
- goto notendtext1;
- al = 0;
- bl = 34;
- bh = 20;
- cx = 60;
- goto gotendtext;
-notendtext1:
- _cmp(data.byte(kIntrocount), 50);
- if (!flags.z())
- goto notendtext2;
- al = 1;
- bl = 34;
- bh = 20;
- cx = 60;
- goto gotendtext;
-notendtext2:
- _cmp(data.byte(kIntrocount), 85);
- if (!flags.z())
- return /* (notendtext3) */;
- al = 2;
- bl = 34;
- bh = 20;
- cx = 60;
- goto gotendtext;
- return;
-gotendtext:
- dx = 1;
- ah = 83;
- setuptimedtemp();
-}
-
-void DreamGenContext::textformonk() {
- STACK_CHECK;
- _cmp(data.byte(kIntrocount), 1);
- if (!flags.z())
- goto notmonktext1;
- al = 19;
- bl = 68;
- bh = 154;
- cx = 120;
- goto gotmonktext;
-notmonktext1:
- _cmp(data.byte(kIntrocount), 5);
- if (!flags.z())
- goto notmonktext2;
- al = 20;
- bl = 68;
- bh = 38;
- cx = 120;
- goto gotmonktext;
-notmonktext2:
- _cmp(data.byte(kIntrocount), 9);
- if (!flags.z())
- goto notmonktext3;
- al = 21;
- bl = 48;
- bh = 154;
- cx = 120;
- goto gotmonktext;
-notmonktext3:
- _cmp(data.byte(kIntrocount), 13);
- if (!flags.z())
- goto notmonktext4;
- al = 22;
- bl = 68;
- bh = 38;
- cx = 120;
- goto gotmonktext;
-notmonktext4:
- _cmp(data.byte(kIntrocount), 15);
- if (!flags.z())
- goto notmonktext5;
- al = 23;
- bl = 68;
- bh = 154;
- cx = 120;
- goto gotmonktext;
-notmonktext5:
- _cmp(data.byte(kIntrocount), 21);
- if (!flags.z())
- goto notmonktext6;
- al = 24;
- bl = 68;
- bh = 38;
- cx = 120;
- goto gotmonktext;
-notmonktext6:
- _cmp(data.byte(kIntrocount), 25);
- if (!flags.z())
- goto notmonktext7;
- al = 25;
- bl = 68;
- bh = 154;
- cx = 120;
- goto gotmonktext;
-notmonktext7:
- _cmp(data.byte(kIntrocount), 29);
- if (!flags.z())
- goto notmonktext8;
- al = 26;
- bl = 68;
- bh = 38;
- cx = 120;
- goto gotmonktext;
-notmonktext8:
- _cmp(data.byte(kIntrocount), 33);
- if (!flags.z())
- goto notmonktext9;
- al = 27;
- bl = 68;
- bh = 154;
- cx = 120;
- goto gotmonktext;
-notmonktext9:
- _cmp(data.byte(kIntrocount), 37);
- if (!flags.z())
- goto notmonktext10;
- al = 28;
- bl = 68;
- bh = 154;
- cx = 120;
- goto gotmonktext;
-notmonktext10:
- _cmp(data.byte(kIntrocount), 41);
- if (!flags.z())
- goto notmonktext11;
- al = 29;
- bl = 68;
- bh = 38;
- cx = 120;
- goto gotmonktext;
-notmonktext11:
- _cmp(data.byte(kIntrocount), 45);
- if (!flags.z())
- goto notmonktext12;
- al = 30;
- bl = 68;
- bh = 154;
- cx = 120;
- goto gotmonktext;
-notmonktext12:
- _cmp(data.byte(kIntrocount), 52);
- if (!flags.z())
- goto notmonktext13;
- al = 31;
- bl = 68;
- bh = 154;
- cx = 220;
- goto gotmonktext;
-notmonktext13:
- _cmp(data.byte(kIntrocount), 53);
- if (!flags.z())
- return /* (notendtitles) */;
- fadescreendowns();
- data.byte(kVolumeto) = 7;
- data.byte(kVolumedirection) = 1;
- return;
-gotmonktext:
- dx = 1;
- ah = 82;
- _cmp(data.byte(kCh1playing), 255);
- if (flags.z())
- goto oktalk;
- _dec(data.byte(kIntrocount));
- return;
-oktalk:
- setuptimedtemp();
-}
-
-void DreamGenContext::drunk() {
- STACK_CHECK;
- _cmp(data.byte(kGeneraldead), 0);
- if (!flags.z())
- return /* (trampgone) */;
- al = es.byte(bx+7);
- _and(al, 127);
- es.byte(bx+7) = al;
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::advisor() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto noadvisor;
- goto noadvisor;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 123);
- if (!flags.z())
- goto notendadvis;
- ax = 106;
- goto gotadvframe;
-notendadvis:
- _cmp(ax, 108);
- if (!flags.z())
- goto gotadvframe;
- push(ax);
- randomnumber();
- cl = al;
- ax = pop();
- _cmp(cl, 3);
- if (flags.c())
- goto gotadvframe;
- ax = 106;
-gotadvframe:
- es.word(bx+3) = ax;
-noadvisor:
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::copper() {
- STACK_CHECK;
- checkspeed();
- if (!flags.z())
- goto nocopper;
- ax = es.word(bx+3);
- _inc(ax);
- _cmp(ax, 94);
- if (!flags.z())
- goto notendcopper;
- ax = 64;
- goto gotcopframe;
-notendcopper:
- _cmp(ax, 81);
- if (flags.z())
- goto mightwait;
- _cmp(ax, 66);
- if (!flags.z())
- goto gotcopframe;
-mightwait:
- push(ax);
- randomnumber();
- cl = al;
- ax = pop();
- _cmp(cl, 7);
- if (flags.c())
- goto gotcopframe;
- _dec(ax);
-gotcopframe:
- es.word(bx+3) = ax;
-nocopper:
- showgamereel();
- addtopeoplelist();
-}
-
-void DreamGenContext::sparky() {
- STACK_CHECK;
- _cmp(data.word(kCard1money), 0);
- if (flags.z())
- goto animsparky;
- es.byte(bx+7) = 3;
- goto animsparky;
-animsparky:
- checkspeed();
- if (!flags.z())
- goto finishsparky;
- _cmp(es.word(bx+3), 34);
- if (!flags.z())
- goto notsparky1;
- randomnumber();
- _cmp(al, 30);
- if (flags.c())
- goto dosparky;
- es.word(bx+3) = 27;
- goto finishsparky;
-notsparky1:
- _cmp(es.word(bx+3), 48);
- if (!flags.z())
- goto dosparky;
- es.word(bx+3) = 27;
- goto finishsparky;
-dosparky:
- _inc(es.word(bx+3));
-finishsparky:
- showgamereel();
- addtopeoplelist();
- al = es.byte(bx+7);
- _and(al, 128);
- if (flags.z())
- return /* (nottalkedsparky) */;
- data.byte(kTalkedtosparky) = 1;
-}
-
-void DreamGenContext::train() {
- STACK_CHECK;
- return;
- ax = es.word(bx+3);
- _cmp(ax, 21);
- if (!flags.c())
- goto notrainyet;
- _inc(ax);
- goto gottrainframe;
-notrainyet:
- randomnumber();
- _cmp(al, 253);
- if (flags.c())
- return /* (notrainatall) */;
- _cmp(data.byte(kManspath), 5);
- if (!flags.z())
- return /* (notrainatall) */;
- _cmp(data.byte(kFinaldest), 5);
- if (!flags.z())
- return /* (notrainatall) */;
- ax = 5;
-gottrainframe:
- es.word(bx+3) = ax;
- showgamereel();
-}
-
-void DreamGenContext::checkspeed() {
- STACK_CHECK;
- _cmp(data.byte(kLastweapon), -1);
- if (!flags.z())
- goto forcenext;
- _inc(es.byte(bx+6));
- al = es.byte(bx+6);
- _cmp(al, es.byte(bx+5));
- if (!flags.z())
- return /* (notspeed) */;
- al = 0;
- es.byte(bx+6) = al;
- _cmp(al, al);
- return;
-forcenext:
- _cmp(al, al);
-}
-
-void DreamGenContext::checkforexit() {
- STACK_CHECK;
- cl = data.byte(kRyanx);
- _add(cl, 12);
- ch = data.byte(kRyany);
- _add(ch, 12);
- checkone();
- data.byte(kLastflag) = cl;
- data.byte(kLastflagex) = ch;
- data.byte(kFlagx) = dl;
- data.byte(kFlagy) = dh;
- al = data.byte(kLastflag);
- _test(al, 64);
- if (flags.z())
- goto notnewdirect;
- al = data.byte(kLastflagex);
- data.byte(kAutolocation) = al;
- return;
-notnewdirect:
- _test(al, 32);
- if (flags.z())
- goto notleave;
- push(es);
- push(bx);
- _cmp(data.byte(kReallocation), 2);
- if (!flags.z())
- goto notlouis;
- bl = 0;
- push(bx);
- al = 'W';
- ah = 'E';
- cl = 'T';
- ch = 'A';
- isryanholding();
- bx = pop();
- if (flags.z())
- goto noshoe1;
- _inc(bl);
-noshoe1:
- push(bx);
- al = 'W';
- ah = 'E';
- cl = 'T';
- ch = 'B';
- isryanholding();
- bx = pop();
- if (flags.z())
- goto noshoe2;
- _inc(bl);
-noshoe2:
- _cmp(bl, 2);
- if (flags.z())
- goto notlouis;
- al = 42;
- _cmp(bl, 0);
- if (flags.z())
- goto notravmessage;
- _inc(al);
-notravmessage:
- cx = 80;
- dx = 10;
- bl = 68;
- bh = 64;
- setuptimeduse();
- al = data.byte(kFacing);
- _add(al, 4);
- _and(al, 7);
- data.byte(kTurntoface) = al;
- bx = pop();
- es = pop();
- return;
-notlouis:
- bx = pop();
- es = pop();
- data.byte(kNeedtotravel) = 1;
- return;
-notleave:
- _test(al, 4);
- if (flags.z())
- goto notaleft;
- adjustleft();
- return;
-notaleft:
- _test(al, 2);
- if (flags.z())
- goto notaright;
- adjustright();
- return;
-notaright:
- _test(al, 8);
- if (flags.z())
- goto notadown;
- adjustdown();
- return;
-notadown:
- _test(al, 16);
- if (flags.z())
- return /* (notanup) */;
- adjustup();
-}
-
-void DreamGenContext::adjustdown() {
- STACK_CHECK;
- push(es);
- push(bx);
- _add(data.byte(kMapy), 10);
- al = data.byte(kLastflagex);
- cl = 16;
- _mul(cl);
- es.byte(bx+11) = al;
- data.byte(kNowinnewroom) = 1;
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::adjustup() {
- STACK_CHECK;
- push(es);
- push(bx);
- _sub(data.byte(kMapy), 10);
- al = data.byte(kLastflagex);
- cl = 16;
- _mul(cl);
- es.byte(bx+11) = al;
- data.byte(kNowinnewroom) = 1;
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::adjustleft() {
- STACK_CHECK;
- push(es);
- push(bx);
- data.byte(kLastflag) = 0;
- _sub(data.byte(kMapx), 11);
- al = data.byte(kLastflagex);
- cl = 16;
- _mul(cl);
- es.byte(bx+10) = al;
- data.byte(kNowinnewroom) = 1;
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::adjustright() {
- STACK_CHECK;
- push(es);
- push(bx);
- _add(data.byte(kMapx), 11);
- al = data.byte(kLastflagex);
- cl = 16;
- _mul(cl);
- _sub(al, 2);
- es.byte(bx+10) = al;
- data.byte(kNowinnewroom) = 1;
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::reminders() {
- STACK_CHECK;
- _cmp(data.byte(kReallocation), 24);
- if (!flags.z())
- return /* (notinedenslift) */;
- _cmp(data.byte(kMapx), 44);
- if (!flags.z())
- return /* (notinedenslift) */;
- _cmp(data.byte(kProgresspoints), 0);
- if (!flags.z())
- return /* (notfirst) */;
- al = 'D';
- ah = 'K';
- cl = 'E';
- ch = 'Y';
- isryanholding();
- if (flags.z())
- goto forgotone;
- al = 'C';
- ah = 'S';
- cl = 'H';
- ch = 'R';
- findexobject();
- _cmp(al, (114));
- if (flags.z())
- goto forgotone;
- ax = es.word(bx+2);
- _cmp(al, 4);
- if (!flags.z())
- goto forgotone;
- _cmp(ah, 255);
- if (flags.z())
- goto havegotcard;
- cl = 'P';
- ch = 'U';
- dl = 'R';
- dh = 'S';
- _xchg(al, ah);
- compare();
- if (!flags.z())
- goto forgotone;
-havegotcard:
- _inc(data.byte(kProgresspoints));
- return;
-forgotone:
- al = 50;
- bl = 54;
- bh = 70;
- cx = 48;
- dx = 8;
- setuptimeduse();
-}
-
-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 = offset_rainlocations;
-checkmorerain:
- al = cs.byte(bx);
- _cmp(al, 255);
- if (flags.z())
- goto finishinitrain;
- _cmp(al, data.byte(kReallocation));
- if (!flags.z())
- goto checkrain;
- al = cs.byte(bx+1);
- _cmp(al, data.byte(kMapx));
- if (!flags.z())
- goto checkrain;
- al = cs.byte(bx+2);
- _cmp(al, data.byte(kMapy));
- if (!flags.z())
- goto checkrain;
- al = cs.byte(bx+3);
- data.byte(kRainspace) = al;
- goto dorain;
-checkrain:
- _add(bx, 4);
- goto checkmorerain;
-dorain:
- cx = 4;
-initraintop:
- randomnumber();
- _and(al, 31);
- _add(al, 3);
- _cmp(al, data.byte(kRainspace));
- if (!flags.c())
- goto initraintop;
- _add(cl, al);
- _cmp(cl, data.byte(kMapxsize));
- if (!flags.c())
- goto initrainside;
- push(cx);
- splitintolines();
- cx = pop();
- goto initraintop;
-initrainside:
- cl = data.byte(kMapxsize);
- _dec(cl);
-initrainside2:
- randomnumber();
- _and(al, 31);
- _add(al, 3);
- _cmp(al, data.byte(kRainspace));
- if (!flags.c())
- goto initrainside2;
- _add(ch, al);
- _cmp(ch, data.byte(kMapysize));
- if (!flags.c())
- goto finishinitrain;
- push(cx);
- splitintolines();
- cx = pop();
- goto initrainside2;
-finishinitrain:
- al = 255;
- _stosb();
-}
-
-void DreamGenContext::splitintolines() {
- STACK_CHECK;
-lookforlinestart:
- getblockofpixel();
- _cmp(al, 0);
- if (!flags.z())
- goto foundlinestart;
- _dec(cl);
- _inc(ch);
- _cmp(cl, 0);
- if (flags.z())
- return /* (endofthisline) */;
- _cmp(ch, data.byte(kMapysize));
- if (!flags.c())
- return /* (endofthisline) */;
- goto lookforlinestart;
-foundlinestart:
- es.word(di) = cx;
- bh = 1;
-lookforlineend:
- getblockofpixel();
- _cmp(al, 0);
- if (flags.z())
- goto foundlineend;
- _dec(cl);
- _inc(ch);
- _cmp(cl, 0);
- if (flags.z())
- goto foundlineend;
- _cmp(ch, data.byte(kMapysize));
- if (!flags.c())
- goto foundlineend;
- _inc(bh);
- goto lookforlineend;
-foundlineend:
- push(cx);
- es.byte(di+2) = bh;
- randomnumber();
- es.byte(di+3) = al;
- randomnumber();
- es.byte(di+4) = al;
- randomnumber();
- _and(al, 3);
- _add(al, 4);
- es.byte(di+5) = al;
- _add(di, 6);
- cx = pop();
- _cmp(cl, 0);
- if (flags.z())
- return /* (endofthisline) */;
- _cmp(ch, data.byte(kMapysize));
- if (!flags.c())
- return /* (endofthisline) */;
- goto lookforlinestart;
-}
-
-void DreamGenContext::liftnoise() {
- STACK_CHECK;
- _cmp(data.byte(kReallocation), 5);
- if (flags.z())
- goto hissnoise;
- _cmp(data.byte(kReallocation), 21);
- if (flags.z())
- goto hissnoise;
- playchannel1();
- return;
-hissnoise:
- al = 13;
- playchannel1();
-}
-
-void DreamGenContext::random() {
- STACK_CHECK;
- randomnum1();
- push(di);
- _and(ax, 7);
- _add(di, 18);
- _add(di, ax);
- al = ds.byte(di);
- di = pop();
- es.byte(bx+15) = al;
-}
-
-void DreamGenContext::steady() {
- STACK_CHECK;
- al = ds.byte(di+18);
- ds.byte(di+17) = al;
- es.byte(bx+15) = al;
-}
-
-void DreamGenContext::constant() {
- STACK_CHECK;
- _inc(es.byte(bx+19));
- cl = es.byte(bx+19);
- ch = 0;
- _add(di, cx);
- _cmp(ds.byte(di+18), 255);
- if (!flags.z())
- goto gotconst;
- _sub(di, cx);
- cx = 0;
- es.byte(bx+19) = cl;
-gotconst:
- al = ds.byte(di+18);
- _sub(di, cx);
- es.byte(bx+15) = al;
- ds.byte(di+17) = al;
-}
-
-void DreamGenContext::reelsonscreen() {
- STACK_CHECK;
- reconstruct();
- updatepeople();
- watchreel();
- showrain();
- usetimedtext();
-}
-
-void DreamGenContext::soundonreels() {
- STACK_CHECK;
- bl = data.byte(kReallocation);
- _add(bl, bl);
- _xor(bh, bh);
- _add(bx, 1214);
- si = cs.word(bx);
-reelsoundloop:
- al = cs.byte(si);
- _cmp(al, 255);
- if (flags.z())
- goto endreelsound;
- ax = cs.word(si+1);
- _cmp(ax, data.word(kReelpointer));
- if (!flags.z())
- goto skipreelsound;
- _cmp(ax, data.word(kLastsoundreel));
- if (flags.z())
- goto skipreelsound;
- data.word(kLastsoundreel) = ax;
- al = cs.byte(si);
- _cmp(al, 64);
- if (flags.c())
- { playchannel1(); return; };
- _cmp(al, 128);
- if (flags.c())
- goto channel0once;
- _and(al, 63);
- ah = 255;
- { playchannel0(); return; };
-channel0once:
- _and(al, 63);
- ah = 0;
- { playchannel0(); return; };
-skipreelsound:
- _add(si, 3);
- goto reelsoundloop;
-endreelsound:
- ax = data.word(kLastsoundreel);
- _cmp(ax, data.word(kReelpointer));
- if (flags.z())
- return /* (nochange2) */;
- data.word(kLastsoundreel) = -1;
-}
-
-void DreamGenContext::reconstruct() {
- STACK_CHECK;
- _cmp(data.byte(kHavedoneobs), 0);
- if (flags.z())
- return /* (noneedtorecon) */;
- data.byte(kNewobs) = 1;
- drawfloor();
- spriteupdate();
- printsprites();
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto notfudge;
- _cmp(data.byte(kReallocation), 20);
- if (!flags.z())
- goto notfudge;
- undertextline();
-notfudge:
- data.byte(kHavedoneobs) = 0;
-}
-
-void DreamGenContext::deleverything() {
- STACK_CHECK;
- al = data.byte(kMapysize);
- ah = 0;
- _add(ax, data.word(kMapoffsety));
- _cmp(ax, 182);
- if (!flags.c())
- goto bigroom;
- maptopanel();
- return;
-bigroom:
- _sub(data.byte(kMapysize), 8);
- maptopanel();
- _add(data.byte(kMapysize), 8);
-}
-
-void DreamGenContext::loadpalfromiff() {
- STACK_CHECK;
- dx = 2481;
- openfile();
- cx = 2000;
- ds = data.word(kMapstore);
- dx = 0;
- readfromfile();
- closefile();
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- ds = data.word(kMapstore);
- si = 0x30;
- cx = 768;
-palloop:
- _lodsb();
- _shr(al, 1);
- _shr(al, 1);
- _cmp(data.byte(kBrightness), 1);
- if (!flags.z())
- goto nought;
- _cmp(al, 0);
- if (flags.z())
- goto nought;
- ah = al;
- _shr(ah, 1);
- _add(al, ah);
- _shr(ah, 1);
- _add(al, ah);
- _cmp(al, 64);
- if (flags.c())
- goto nought;
- al = 63;
-nought:
- _stosb();
- if (--cx)
- goto palloop;
-}
-
-void DreamGenContext::createpanel() {
- STACK_CHECK;
- di = 0;
- bx = 8;
- ds = data.word(kIcons2);
- al = 0;
- ah = 2;
- showframe();
- di = 160;
- bx = 8;
- ds = data.word(kIcons2);
- al = 0;
- ah = 2;
- showframe();
- di = 0;
- bx = 104;
- ds = data.word(kIcons2);
- al = 0;
- ah = 2;
- showframe();
- di = 160;
- bx = 104;
- ds = data.word(kIcons2);
- al = 0;
- ah = 2;
- showframe();
-}
-
-void DreamGenContext::createpanel2() {
- STACK_CHECK;
- createpanel();
- di = 0;
- bx = 0;
- ds = data.word(kIcons2);
- al = 5;
- ah = 2;
- showframe();
- di = 160;
- bx = 0;
- ds = data.word(kIcons2);
- al = 5;
- ah = 2;
- showframe();
-}
-
-void DreamGenContext::transfermap() {
- STACK_CHECK;
- di = data.word(kExframepos);
- push(di);
- al = data.byte(kExpos);
- ah = 0;
- bx = ax;
- _add(ax, ax);
- _add(ax, bx);
- cx = 6;
- _mul(cx);
- es = data.word(kExtras);
- bx = (0);
- _add(bx, ax);
- _add(di, (0+2080));
- push(bx);
- al = data.byte(kItemtotran);
- ah = 0;
- bx = ax;
- _add(ax, ax);
- _add(ax, bx);
- cx = 6;
- _mul(cx);
- ds = data.word(kFreeframes);
- bx = (0);
- _add(bx, ax);
- si = (0+2080);
- al = ds.byte(bx);
- ah = 0;
- cl = ds.byte(bx+1);
- ch = 0;
- _add(si, ds.word(bx+2));
- dx = ds.word(bx+4);
- bx = pop();
- es.byte(bx+0) = al;
- es.byte(bx+1) = cl;
- es.word(bx+4) = dx;
- _mul(cx);
- cx = ax;
- push(cx);
- _movsb(cx, true);
- cx = pop();
- ax = pop();
- es.word(bx+2) = ax;
- _add(data.word(kExframepos), cx);
-}
-
-void DreamGenContext::dofade() {
- STACK_CHECK;
- _cmp(data.byte(kFadedirection), 0);
- if (flags.z())
- return /* (finishfade) */;
- cl = data.byte(kNumtofade);
- ch = 0;
- al = data.byte(kColourpos);
- ah = 0;
- ds = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3));
- _add(si, ax);
- _add(si, ax);
- _add(si, ax);
- showgroup();
- al = data.byte(kNumtofade);
- _add(al, data.byte(kColourpos));
- data.byte(kColourpos) = al;
- _cmp(al, 0);
- if (!flags.z())
- return /* (finishfade) */;
- fadecalculation();
-}
-
-void DreamGenContext::clearendpal() {
- STACK_CHECK;
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- cx = 768;
- al = 0;
- _stosb(cx, true);
-}
-
-void DreamGenContext::clearpalette() {
- STACK_CHECK;
- data.byte(kFadedirection) = 0;
- clearstartpal();
- dumpcurrent();
-}
-
-void DreamGenContext::fadescreenup() {
- STACK_CHECK;
- clearstartpal();
- paltoendpal();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
-}
-
-void DreamGenContext::fadetowhite() {
- STACK_CHECK;
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- cx = 768;
- al = 63;
- _stosb(cx, true);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- al = 0;
- _stosb(3);
- paltostartpal();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
-}
-
-void DreamGenContext::fadefromwhite() {
- STACK_CHECK;
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3));
- cx = 768;
- al = 63;
- _stosb(cx, true);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3));
- al = 0;
- _stosb(3);
- paltoendpal();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
-}
-
-void DreamGenContext::fadescreenups() {
- STACK_CHECK;
- clearstartpal();
- paltoendpal();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 64;
-}
-
-void DreamGenContext::fadescreendownhalf() {
- STACK_CHECK;
- paltostartpal();
- paltoendpal();
- cx = 768;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
-halfend:
- al = es.byte(bx);
- _shr(al, 1);
- es.byte(bx) = al;
- _inc(bx);
- if (--cx)
- goto halfend;
- ds = data.word(kBuffers);
- es = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(56*3);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(56*3);
- cx = 3*5;
- _movsb(cx, true);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(77*3);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(77*3);
- cx = 3*2;
- _movsb(cx, true);
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 31;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 32;
-}
-
-void DreamGenContext::fadescreenuphalf() {
- STACK_CHECK;
- endpaltostart();
- paltoendpal();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 31;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 32;
-}
-
-void DreamGenContext::fadescreendown() {
- STACK_CHECK;
- paltostartpal();
- clearendpal();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
-}
-
-void DreamGenContext::fadescreendowns() {
- STACK_CHECK;
- paltostartpal();
- clearendpal();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 64;
-}
-
-void DreamGenContext::clearstartpal() {
- STACK_CHECK;
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3));
- cx = 256;
-wholeloop1:
- ax = 0;
- _stosw();
- al = 0;
- _stosb();
- if (--cx)
- goto wholeloop1;
-}
-
-void DreamGenContext::showgun() {
- STACK_CHECK;
- data.byte(kAddtored) = 0;
- data.byte(kAddtogreen) = 0;
- data.byte(kAddtoblue) = 0;
- paltostartpal();
- paltoendpal();
- greyscalesum();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
- cx = 130;
- hangon();
- endpaltostart();
- clearendpal();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
- cx = 200;
- hangon();
- data.byte(kRoomssample) = 34;
- loadroomssample();
- data.byte(kVolume) = 0;
- dx = 2351;
- loadintotemp();
- createpanel2();
- ds = data.word(kTempgraphics);
- al = 0;
- ah = 0;
- di = 100;
- bx = 4;
- showframe();
- ds = data.word(kTempgraphics);
- al = 1;
- ah = 0;
- di = 158;
- bx = 106;
- showframe();
- worktoscreen();
- getridoftemp();
- fadescreenup();
- cx = 160;
- hangon();
- al = 12;
- ah = 0;
- playchannel0();
- dx = 2260;
- loadtemptext();
- rollendcredits2();
- getridoftemptext();
-}
-
-void DreamGenContext::rollendcredits2() {
- STACK_CHECK;
- rollem();
-}
-
-void DreamGenContext::rollem() {
- STACK_CHECK;
- cl = 160;
- ch = 160;
- di = 25;
- bx = 20;
- ds = data.word(kMapstore);
- si = 0;
- multiget();
- es = data.word(kTextfile1);
- si = 49*2;
- ax = es.word(si);
- si = ax;
- _add(si, (66*2));
- cx = 80;
-endcredits21:
- push(cx);
- bx = 10;
- cx = data.word(kLinespacing);
-endcredits22:
- push(cx);
- push(si);
- push(di);
- push(es);
- push(bx);
- vsync();
- cl = 160;
- ch = 160;
- di = 25;
- bx = 20;
- ds = data.word(kMapstore);
- si = 0;
- multiput();
- vsync();
- bx = pop();
- es = pop();
- di = pop();
- si = pop();
- push(si);
- push(di);
- push(es);
- push(bx);
- cx = 18;
-onelot2:
- push(cx);
- di = 25;
- dx = 161;
- ax = 0;
- printdirect();
- _add(bx, data.word(kLinespacing));
- cx = pop();
- if (--cx)
- goto onelot2;
- vsync();
- cl = 160;
- ch = 160;
- di = 25;
- bx = 20;
- multidump();
- bx = pop();
- es = pop();
- di = pop();
- si = pop();
- cx = pop();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto endearly2;
- _dec(bx);
- if (--cx)
- goto endcredits22;
- cx = pop();
-looknext2:
- al = es.byte(si);
- _inc(si);
- _cmp(al, ':');
- if (flags.z())
- goto gotnext2;
- _cmp(al, 0);
- if (flags.z())
- goto gotnext2;
- goto looknext2;
-gotnext2:
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- return /* (endearly) */;
- if (--cx)
- goto endcredits21;
- cx = 120;
- hangone();
- return;
-endearly2:
- cx = pop();
-}
-
-void DreamGenContext::fadecalculation() {
- STACK_CHECK;
- _cmp(data.byte(kFadecount), 0);
- if (flags.z())
- goto nomorefading;
- bl = data.byte(kFadecount);
- es = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3));
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- cx = 768;
-fadecolloop:
- al = es.byte(si);
- ah = es.byte(di);
- _cmp(al, ah);
- if (flags.z())
- goto gotthere;
- if (flags.c())
- goto lesscolour;
- _dec(es.byte(si));
- goto gotthere;
-lesscolour:
- _cmp(bl, ah);
- if (flags.z())
- goto withit;
- if (!flags.c())
- goto gotthere;
-withit:
- _inc(es.byte(si));
-gotthere:
- _inc(si);
- _inc(di);
- if (--cx)
- goto fadecolloop;
- _dec(data.byte(kFadecount));
- return;
-nomorefading:
- data.byte(kFadedirection) = 0;
-}
-
-void DreamGenContext::greyscalesum() {
- STACK_CHECK;
- es = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- cx = 256;
-greysumloop1:
- push(cx);
- bx = 0;
- al = es.byte(si);
- ah = 0;
- cx = 20;
- _mul(cx);
- _add(bx, ax);
- al = es.byte(si+1);
- ah = 0;
- cx = 59;
- _mul(cx);
- _add(bx, ax);
- al = es.byte(si+2);
- ah = 0;
- cx = 11;
- _mul(cx);
- _add(bx, ax);
- al = -1;
-greysumloop2:
- _inc(al);
- _sub(bx, 100);
- if (!flags.c())
- goto greysumloop2;
- bl = al;
- al = bl;
- ah = data.byte(kAddtored);
- _cmp(al, 0);
- _add(al, ah);
- _stosb();
- ah = data.byte(kAddtogreen);
- al = bl;
- _cmp(al, 0);
- if (flags.z())
- goto noaddg;
- _add(al, ah);
-noaddg:
- _stosb();
- ah = data.byte(kAddtoblue);
- al = bl;
- _cmp(al, 0);
- if (flags.z())
- goto noaddb;
- _add(al, ah);
-noaddb:
- _stosb();
- _add(si, 3);
- cx = pop();
- if (--cx)
- goto greysumloop1;
-}
-
-void DreamGenContext::paltostartpal() {
- STACK_CHECK;
- es = data.word(kBuffers);
- ds = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3));
- cx = 768/2;
- _movsw(cx, true);
-}
-
-void DreamGenContext::endpaltostart() {
- STACK_CHECK;
- es = data.word(kBuffers);
- ds = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3));
- cx = 768/2;
- _movsw(cx, true);
-}
-
-void DreamGenContext::startpaltoend() {
- STACK_CHECK;
- es = data.word(kBuffers);
- ds = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3));
- cx = 768/2;
- _movsw(cx, true);
-}
-
-void DreamGenContext::paltoendpal() {
- STACK_CHECK;
- es = data.word(kBuffers);
- ds = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- cx = 768/2;
- _movsw(cx, true);
-}
-
-void DreamGenContext::allpalette() {
- STACK_CHECK;
- es = data.word(kBuffers);
- ds = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3));
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- cx = 768/2;
- _movsw(cx, true);
- dumpcurrent();
-}
-
-void DreamGenContext::dumpcurrent() {
- STACK_CHECK;
- si = (0+(228*13)+32+60+(32*32)+(11*10*3));
- ds = data.word(kBuffers);
- vsync();
- al = 0;
- cx = 128;
- showgroup();
- vsync();
- al = 128;
- cx = 128;
- showgroup();
-}
-
-void DreamGenContext::fadedownmon() {
- STACK_CHECK;
- paltostartpal();
- paltoendpal();
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(231*3);
- cx = 3*8;
- ax = 0;
- _stosb(cx, true);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(246*3);
- _stosb();
- _stosw();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
- cx = 64;
- hangon();
-}
-
-void DreamGenContext::fadeupmon() {
- STACK_CHECK;
- paltostartpal();
- paltoendpal();
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(231*3);
- cx = 3*8;
- ax = 0;
- _stosb(cx, true);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
- _stosb();
- _stosw();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
- cx = 128;
- hangon();
-}
-
-void DreamGenContext::fadeupmonfirst() {
- STACK_CHECK;
- paltostartpal();
- paltoendpal();
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(231*3);
- cx = 3*8;
- ax = 0;
- _stosb(cx, true);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
- _stosb();
- _stosw();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
- cx = 64;
- hangon();
- al = 26;
- playchannel1();
- cx = 64;
- hangon();
-}
-
-void DreamGenContext::fadeupyellows() {
- STACK_CHECK;
- paltoendpal();
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(231*3);
- cx = 3*8;
- ax = 0;
- _stosb(cx, true);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(246*3);
- _stosb();
- _stosw();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
- cx = 128;
- hangon();
-}
-
-void DreamGenContext::initialmoncols() {
- STACK_CHECK;
- paltostartpal();
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(230*3);
- cx = 3*9;
- ax = 0;
- _stosb(cx, true);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
- _stosb();
- _stosw();
- ds = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(230*3);
- al = 230;
- cx = 18;
- showgroup();
-}
-
-void DreamGenContext::titles() {
- STACK_CHECK;
- clearpalette();
- biblequote();
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (titlesearly) */;
- intro();
-}
-
-void DreamGenContext::endgame() {
- STACK_CHECK;
- dx = 2260;
- loadtemptext();
- monkspeaking();
- gettingshot();
- getridoftemptext();
- data.byte(kVolumeto) = 7;
- data.byte(kVolumedirection) = 1;
- cx = 200;
- hangon();
-}
-
-void DreamGenContext::monkspeaking() {
- STACK_CHECK;
- data.byte(kRoomssample) = 35;
- loadroomssample();
- dx = 2364;
- loadintotemp();
- clearwork();
- showmonk();
- worktoscreen();
- data.byte(kVolume) = 7;
- data.byte(kVolumedirection) = -1;
- data.byte(kVolumeto) = 5;
- al = 12;
- ah = 255;
- playchannel0();
- fadescreenups();
- cx = 300;
- hangon();
- al = 40;
-loadspeech2:
- push(ax);
- dl = 'T';
- dh = 83;
- cl = 'T';
- ah = 0;
- loadspeech();
- al = 50+12;
- playchannel1();
-notloadspeech2:
- vsync();
- _cmp(data.byte(kCh1playing), 255);
- if (!flags.z())
- goto notloadspeech2;
- ax = pop();
- _inc(al);
- _cmp(al, 48);
- if (!flags.z())
- goto loadspeech2;
- data.byte(kVolumedirection) = 1;
- data.byte(kVolumeto) = 7;
- fadescreendowns();
- cx = 300;
- hangon();
- getridoftemp();
-}
-
-void DreamGenContext::showmonk() {
- STACK_CHECK;
- al = 0;
- ah = 128;
- di = 160;
- bx = 72;
- ds = data.word(kTempgraphics);
- showframe();
-}
-
-void DreamGenContext::gettingshot() {
- STACK_CHECK;
- data.byte(kNewlocation) = 55;
- clearpalette();
- loadintroroom();
- fadescreenups();
- data.byte(kVolumeto) = 0;
- data.byte(kVolumedirection) = -1;
- runendseq();
- clearbeforeload();
-}
-
-void DreamGenContext::credits() {
- STACK_CHECK;
- clearpalette();
- realcredits();
-}
-
-void DreamGenContext::biblequote() {
- STACK_CHECK;
- mode640x480();
- dx = 2377;
- showpcx();
- fadescreenups();
- cx = 80;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto biblequotearly;
- cx = 560;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto biblequotearly;
- fadescreendowns();
- cx = 200;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto biblequotearly;
- cancelch0();
-biblequotearly:
- data.byte(kLasthardkey) = 0;
-}
-
-void DreamGenContext::hangone() {
- STACK_CHECK;
-hangonloope:
- push(cx);
- vsync();
- cx = pop();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- return /* (hangonearly) */;
- if (--cx)
- goto hangonloope;
-}
-
-void DreamGenContext::intro() {
- STACK_CHECK;
- dx = 2247;
- loadtemptext();
- loadpalfromiff();
- setmode();
- data.byte(kNewlocation) = 50;
- clearpalette();
- loadintroroom();
- data.byte(kVolume) = 7;
- data.byte(kVolumedirection) = -1;
- data.byte(kVolumeto) = 4;
- al = 12;
- ah = 255;
- playchannel0();
- fadescreenups();
- runintroseq();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto introearly;
- clearbeforeload();
- data.byte(kNewlocation) = 52;
- loadintroroom();
- runintroseq();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto introearly;
- clearbeforeload();
- data.byte(kNewlocation) = 53;
- loadintroroom();
- runintroseq();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto introearly;
- clearbeforeload();
- allpalette();
- data.byte(kNewlocation) = 54;
- loadintroroom();
- runintroseq();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto introearly;
- getridoftemptext();
- clearbeforeload();
-introearly:
- data.byte(kLasthardkey) = 0;
-}
-
-void DreamGenContext::runintroseq() {
- STACK_CHECK;
- data.byte(kGetback) = 0;
-moreintroseq:
- vsync();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto earlyendrun;
- spriteupdate();
- vsync();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto earlyendrun;
- deleverything();
- printsprites();
- reelsonscreen();
- afterintroroom();
- usetimedtext();
- vsync();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto earlyendrun;
- dumpmap();
- dumptimedtext();
- vsync();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto earlyendrun;
- _cmp(data.byte(kGetback), 1);
- if (!flags.z())
- goto moreintroseq;
- return;
-earlyendrun:
- getridoftemptext();
- clearbeforeload();
-}
-
-void DreamGenContext::runendseq() {
- STACK_CHECK;
- atmospheres();
- data.byte(kGetback) = 0;
-moreendseq:
- vsync();
- spriteupdate();
- vsync();
- deleverything();
- printsprites();
- reelsonscreen();
- afterintroroom();
- usetimedtext();
- vsync();
- dumpmap();
- dumptimedtext();
- vsync();
- _cmp(data.byte(kGetback), 1);
- if (!flags.z())
- goto moreendseq;
-}
-
-void DreamGenContext::loadintroroom() {
- STACK_CHECK;
- data.byte(kIntrocount) = 0;
- data.byte(kLocation) = 255;
- loadroom();
- data.word(kMapoffsetx) = 72;
- data.word(kMapoffsety) = 16;
- clearsprites();
- data.byte(kThroughdoor) = 0;
- data.byte(kCurrentkey) = '0';
- data.byte(kMainmode) = 0;
- clearwork();
- data.byte(kNewobs) = 1;
- drawfloor();
- reelsonscreen();
- spriteupdate();
- printsprites();
- worktoscreen();
-}
-
-void DreamGenContext::realcredits() {
- STACK_CHECK;
- data.byte(kRoomssample) = 33;
- loadroomssample();
- data.byte(kVolume) = 0;
- mode640x480();
- cx = 35;
- hangon();
- dx = 2390;
- showpcx();
- al = 12;
- ah = 0;
- playchannel0();
- cx = 2;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- allpalette();
- cx = 80;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- fadescreendowns();
- cx = 256;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- dx = 2403;
- showpcx();
- al = 12;
- ah = 0;
- playchannel0();
- cx = 2;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- allpalette();
- cx = 80;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- fadescreendowns();
- cx = 256;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- dx = 2416;
- showpcx();
- al = 12;
- ah = 0;
- playchannel0();
- cx = 2;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- allpalette();
- cx = 80;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- fadescreendowns();
- cx = 256;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- dx = 2429;
- showpcx();
- al = 12;
- ah = 0;
- playchannel0();
- cx = 2;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- allpalette();
- cx = 80;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- fadescreendowns();
- cx = 256;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- dx = 2442;
- showpcx();
- al = 12;
- ah = 0;
- playchannel0();
- cx = 2;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- allpalette();
- cx = 80;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- fadescreendowns();
- cx = 256;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- dx = 2455;
- showpcx();
- fadescreenups();
- cx = 60;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- al = 13;
- ah = 0;
- playchannel0();
- cx = 350;
- hangone();
- _cmp(data.byte(kLasthardkey), 1);
- if (flags.z())
- goto realcreditsearly;
- fadescreendowns();
- cx = 256;
- hangone();
-realcreditsearly:
- data.byte(kLasthardkey) = 0;
-}
-
-void DreamGenContext::monprint() {
- STACK_CHECK;
- data.byte(kKerning) = 1;
- si = bx;
- dl = 166;
- di = data.word(kMonadx);
- bx = data.word(kMonady);
- ds = data.word(kTempcharset);
-printloop8:
- push(bx);
- push(di);
- push(dx);
- getnumber();
- ch = 0;
-printloop7:
- al = es.byte(si);
- _inc(si);
- _cmp(al, ':');
- if (flags.z())
- goto finishmon2;
- _cmp(al, 0);
- if (flags.z())
- goto finishmon;
- _cmp(al, 34);
- if (flags.z())
- goto finishmon;
- _cmp(al, '=');
- if (flags.z())
- goto finishmon;
- _cmp(al, '%');
- if (!flags.z())
- goto nottrigger;
- ah = es.byte(si);
- _inc(si);
- _inc(si);
- goto finishmon;
-nottrigger:
- push(cx);
- push(es);
- modifychar();
- printchar();
- data.word(kCurslocx) = di;
- data.word(kCurslocy) = bx;
- data.word(kMaintimer) = 1;
- printcurs();
- vsync();
- push(si);
- push(dx);
- push(ds);
- push(es);
- push(bx);
- push(di);
- lockmon();
- di = pop();
- bx = pop();
- es = pop();
- ds = pop();
- dx = pop();
- si = pop();
- delcurs();
- es = pop();
- cx = pop();
- if (--cx)
- goto printloop7;
-finishmon2:
- dx = pop();
- di = pop();
- bx = pop();
- scrollmonitor();
- data.word(kCurslocx) = di;
- goto printloop8;
-finishmon:
- dx = pop();
- di = pop();
- bx = pop();
- _cmp(al, '%');
- if (!flags.z())
- goto nottrigger2;
- data.byte(kLasttrigger) = ah;
-nottrigger2:
- data.word(kCurslocx) = di;
- scrollmonitor();
- bx = si;
- data.byte(kKerning) = 0;
-}
-
-void DreamGenContext::fillopen() {
- STACK_CHECK;
- deltextline();
- getopenedsize();
- _cmp(ah, 4);
- if (flags.c())
- goto lessthanapage;
- ah = 4;
-lessthanapage:
- al = 1;
- push(ax);
- es = data.word(kBuffers);
- di = (0+(228*13));
- findallopen();
- si = (0+(228*13));
- di = (80);
- bx = (58)+96;
- cx = pop();
-openloop1:
- push(cx);
- push(di);
- push(bx);
- ax = es.word(si);
- _add(si, 2);
- push(si);
- push(es);
- _cmp(ch, cl);
- if (flags.c())
- goto nextopenslot;
- obtoinv();
-nextopenslot:
- es = pop();
- si = pop();
- bx = pop();
- di = pop();
- cx = pop();
- _add(di, (44));
- _inc(cl);
- _cmp(cl, 5);
- if (!flags.z())
- goto openloop1;
- undertextline();
-}
-
-void DreamGenContext::findallopen() {
- STACK_CHECK;
- push(di);
- cx = 16;
- ax = 0x0ffff;
- _stosw(cx, true);
- di = pop();
- cl = data.byte(kOpenedob);
- dl = data.byte(kOpenedtype);
- ds = data.word(kExtras);
- bx = (0+2080+30000);
- ch = 0;
-findopen1:
- _cmp(ds.byte(bx+3), cl);
- if (!flags.z())
- goto findopen2;
- _cmp(ds.byte(bx+2), dl);
- if (!flags.z())
- goto findopen2;
- _cmp(data.byte(kOpenedtype), 4);
- if (flags.z())
- goto noloccheck;
- al = ds.byte(bx+5);
- _cmp(al, data.byte(kReallocation));
- if (!flags.z())
- goto findopen2;
-noloccheck:
- al = ds.byte(bx+4);
- ah = 0;
- push(di);
- _add(di, ax);
- _add(di, ax);
- al = ch;
- ah = 4;
- _stosw();
- di = pop();
-findopen2:
- _add(bx, 16);
- _inc(ch);
- _cmp(ch, (114));
- if (!flags.z())
- goto findopen1;
- cl = data.byte(kOpenedob);
- dl = data.byte(kOpenedtype);
- push(dx);
- ds = data.word(kFreedat);
- dx = pop();
- bx = 0;
- ch = 0;
-findopen1a:
- _cmp(ds.byte(bx+3), cl);
- if (!flags.z())
- goto findopen2a;
- _cmp(ds.byte(bx+2), dl);
- if (!flags.z())
- goto findopen2a;
- al = ds.byte(bx+4);
- ah = 0;
- push(di);
- _add(di, ax);
- _add(di, ax);
- al = ch;
- ah = 2;
- _stosw();
- di = pop();
-findopen2a:
- _add(bx, 16);
- _inc(ch);
- _cmp(ch, 80);
- if (!flags.z())
- goto findopen1a;
-}
-
-void DreamGenContext::examineob() {
- STACK_CHECK;
- data.byte(kPointermode) = 0;
- data.word(kTimecount) = 0;
-examineagain:
- data.byte(kInmaparea) = 0;
- data.byte(kExamagain) = 0;
- data.byte(kOpenedob) = 255;
- data.byte(kOpenedtype) = 255;
- data.byte(kInvopen) = 0;
- al = data.byte(kCommandtype);
- data.byte(kObjecttype) = al;
- data.byte(kItemframe) = 0;
- data.byte(kPointerframe) = 0;
- createpanel();
- showpanel();
- showman();
- showexit();
- obicons();
- obpicture();
- describeob();
- undertextline();
- data.byte(kCommandtype) = 255;
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
-waitexam:
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- delpointer();
- data.byte(kGetback) = 0;
- bx = offset_examlist;
- _cmp(data.byte(kInvopen), 0);
- if (flags.z())
- goto notuseinv;
- bx = offset_invlist1;
- _cmp(data.byte(kInvopen), 1);
- if (flags.z())
- goto notuseinv;
- bx = offset_withlist1;
-notuseinv:
- checkcoords();
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- goto stopwaiting;
- _cmp(data.byte(kExamagain), 0);
- if (flags.z())
- goto norex;
- goto examineagain;
-norex:
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto waitexam;
-stopwaiting:
- data.byte(kPickup) = 0;
- _cmp(data.word(kWatchingtime), 0);
- if (!flags.z())
- goto iswatching;
- _cmp(data.byte(kNewlocation), 255);
- if (!flags.z())
- goto justgetback;
-iswatching:
- makemainscreen();
- data.byte(kInvopen) = 0;
- data.byte(kOpenedob) = 255;
- return;
-justgetback:
- data.byte(kInvopen) = 0;
- data.byte(kOpenedob) = 255;
-}
-
-void DreamGenContext::makemainscreen() {
- STACK_CHECK;
- createpanel();
- data.byte(kNewobs) = 1;
- drawfloor();
- spriteupdate();
- printsprites();
- reelsonscreen();
- showicon();
- getunderzoom();
- undertextline();
- data.byte(kCommandtype) = 255;
- animpointer();
- worktoscreenm();
- data.byte(kCommandtype) = 200;
- data.byte(kManisoffscreen) = 0;
-}
-
-void DreamGenContext::getbackfromob() {
- STACK_CHECK;
- _cmp(data.byte(kPickup), 1);
- if (!flags.z())
- goto notheldob;
- blank();
- return;
-notheldob:
- getback1();
-}
-
-void DreamGenContext::incryanpage() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 222);
- if (flags.z())
- goto alreadyincryan;
- data.byte(kCommandtype) = 222;
- al = 31;
- commandonly();
-alreadyincryan:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (noincryan) */;
- _and(ax, 1);
- if (!flags.z())
- goto doincryan;
- return;
-doincryan:
- ax = data.word(kMousex);
- _sub(ax, (80)+167);
- data.byte(kRyanpage) = -1;
-findnewpage:
- _inc(data.byte(kRyanpage));
- _sub(ax, 18);
- if (!flags.c())
- goto findnewpage;
- delpointer();
- fillryan();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::openinv() {
- STACK_CHECK;
- data.byte(kInvopen) = 1;
- al = 61;
- di = (80);
- bx = (58)-10;
- dl = 240;
- printmessage();
- fillryan();
- data.byte(kCommandtype) = 255;
-}
-
-void DreamGenContext::openob() {
- STACK_CHECK;
- al = data.byte(kOpenedob);
- ah = data.byte(kOpenedtype);
- di = offset_commandline;
- copyname();
- di = (80);
- bx = (58)+86;
- al = 62;
- dl = 240;
- printmessage();
- di = data.word(kLastxpos);
- _add(di, 5);
- bx = (58)+86;
- es = cs;
- si = offset_commandline;
- dl = 220;
- al = 0;
- ah = 0;
- printdirect();
- fillopen();
- getopenedsize();
- al = ah;
- ah = 0;
- cx = (44);
- _mul(cx);
- _add(ax, (80));
- bx = offset_openchangesize;
- cs.word(bx) = ax;
-}
-
-void DreamGenContext::examicon() {
- STACK_CHECK;
- ds = data.word(kIcons2);
- di = 254;
- bx = 5;
- al = 3;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::describeob() {
- STACK_CHECK;
- getobtextstart();
- di = 33;
- bx = 92;
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto notsetd;
- _cmp(data.byte(kObjecttype), 1);
- if (!flags.z())
- goto notsetd;
- bx = 82;
-notsetd:
- dl = 241;
- ah = 16;
- data.word(kCharshift) = 91+91;
- printdirect();
- data.word(kCharshift) = 0;
- di = 36;
- bx = 104;
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto notsetd2;
- _cmp(data.byte(kObjecttype), 1);
- if (!flags.z())
- goto notsetd2;
- bx = 94;
-notsetd2:
- dl = 241;
- ah = 0;
- printdirect();
- push(bx);
- obsthatdothings();
- bx = pop();
- additionaltext();
-}
-
-void DreamGenContext::additionaltext() {
- STACK_CHECK;
- _add(bx, 10);
- push(bx);
- al = data.byte(kCommand);
- ah = data.byte(kObjecttype);
- cl = 'C';
- ch = 'U';
- dl = 'P';
- dh = 'E';
- compare();
- if (flags.z())
- goto emptycup;
- al = data.byte(kCommand);
- ah = data.byte(kObjecttype);
- cl = 'C';
- ch = 'U';
- dl = 'P';
- dh = 'F';
- compare();
- if (flags.z())
- goto fullcup;
- bx = pop();
- return;
-emptycup:
- al = 40;
- findpuztext();
- bx = pop();
- di = 36;
- dl = 241;
- ah = 0;
- printdirect();
- return;
-fullcup:
- al = 39;
- findpuztext();
- bx = pop();
- di = 36;
- dl = 241;
- ah = 0;
- printdirect();
-}
-
-void DreamGenContext::obsthatdothings() {
- STACK_CHECK;
- al = data.byte(kCommand);
- ah = data.byte(kObjecttype);
- cl = 'M';
- ch = 'E';
- dl = 'M';
- dh = 'B';
- compare();
- if (!flags.z())
- return /* (notlouiscard) */;
- al = 4;
- getlocation();
- _cmp(al, 1);
- if (flags.z())
- return /* (seencard) */;
- al = 4;
- setlocation();
- lookatcard();
-}
-
-void DreamGenContext::getobtextstart() {
- STACK_CHECK;
- es = data.word(kFreedesc);
- si = (0);
- cx = (0+(82*2));
- _cmp(data.byte(kObjecttype), 2);
- if (flags.z())
- goto describe;
- es = data.word(kSetdesc);
- si = (0);
- cx = (0+(130*2));
- _cmp(data.byte(kObjecttype), 1);
- if (flags.z())
- goto describe;
- es = data.word(kExtras);
- si = (0+2080+30000+(16*114));
- cx = (0+2080+30000+(16*114)+((114+2)*2));
-describe:
- al = data.byte(kCommand);
- ah = 0;
- _add(ax, ax);
- _add(si, ax);
- ax = es.word(si);
- _add(ax, cx);
- si = ax;
- bx = ax;
-tryagain:
- push(si);
- findnextcolon();
- al = es.byte(si);
- cx = si;
- si = pop();
- _cmp(data.byte(kObjecttype), 1);
- if (!flags.z())
- return /* (cantmakeoneup) */;
- _cmp(al, 0);
- if (flags.z())
- goto findsometext;
- _cmp(al, ':');
- if (flags.z())
- goto findsometext;
- return;
-findsometext:
- searchforsame();
- goto tryagain;
-}
-
-void DreamGenContext::searchforsame() {
- STACK_CHECK;
- si = cx;
-searchagain:
- _inc(si);
- al = es.byte(bx);
-search:
- _cmp(es.byte(si), al);
- if (flags.z())
- goto gotstartletter;
- _inc(cx);
- _inc(si);
- _cmp(si, 8000);
- if (flags.c())
- goto search;
- si = bx;
- ax = pop();
- return;
-gotstartletter:
- push(bx);
- push(si);
-keepchecking:
- _inc(si);
- _inc(bx);
- al = es.byte(bx);
- ah = es.byte(si);
- _cmp(al, ':');
- if (flags.z())
- goto foundmatch;
- _cmp(al, 0);
- if (flags.z())
- goto foundmatch;
- _cmp(al, ah);
- if (flags.z())
- goto keepchecking;
- si = pop();
- bx = pop();
- goto searchagain;
-foundmatch:
- si = pop();
- bx = pop();
-}
-
-void DreamGenContext::inventory() {
- STACK_CHECK;
- _cmp(data.byte(kMandead), 1);
- if (flags.z())
- goto iswatchinv;
- _cmp(data.word(kWatchingtime), 0);
- if (flags.z())
- goto notwatchinv;
-iswatchinv:
- blank();
- return;
-notwatchinv:
- _cmp(data.byte(kCommandtype), 239);
- if (flags.z())
- goto alreadyopinv;
- data.byte(kCommandtype) = 239;
- al = 32;
- commandonly();
-alreadyopinv:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (cantopinv) */;
- _and(ax, 1);
- if (!flags.z())
- goto doopeninv;
- return;
-doopeninv:
- data.word(kTimecount) = 0;
- data.byte(kPointermode) = 0;
- data.byte(kInmaparea) = 0;
- animpointer();
- createpanel();
- showpanel();
- examicon();
- showman();
- showexit();
- undertextline();
- data.byte(kPickup) = 0;
- data.byte(kInvopen) = 2;
- openinv();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
- data.byte(kOpenedob) = 255;
- goto waitexam;
- return;
-/*continuing to unbounded code: examineagain from examineob:3-69*/
-examineagain:
- data.byte(kInmaparea) = 0;
- data.byte(kExamagain) = 0;
- data.byte(kOpenedob) = 255;
- data.byte(kOpenedtype) = 255;
- data.byte(kInvopen) = 0;
- al = data.byte(kCommandtype);
- data.byte(kObjecttype) = al;
- data.byte(kItemframe) = 0;
- data.byte(kPointerframe) = 0;
- createpanel();
- showpanel();
- showman();
- showexit();
- obicons();
- obpicture();
- describeob();
- undertextline();
- data.byte(kCommandtype) = 255;
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
-waitexam:
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- delpointer();
- data.byte(kGetback) = 0;
- bx = offset_examlist;
- _cmp(data.byte(kInvopen), 0);
- if (flags.z())
- goto notuseinv;
- bx = offset_invlist1;
- _cmp(data.byte(kInvopen), 1);
- if (flags.z())
- goto notuseinv;
- bx = offset_withlist1;
-notuseinv:
- checkcoords();
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- goto stopwaiting;
- _cmp(data.byte(kExamagain), 0);
- if (flags.z())
- goto norex;
- goto examineagain;
-norex:
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto waitexam;
-stopwaiting:
- data.byte(kPickup) = 0;
- _cmp(data.word(kWatchingtime), 0);
- if (!flags.z())
- goto iswatching;
- _cmp(data.byte(kNewlocation), 255);
- if (!flags.z())
- goto justgetback;
-iswatching:
- makemainscreen();
- data.byte(kInvopen) = 0;
- data.byte(kOpenedob) = 255;
- return;
-justgetback:
- data.byte(kInvopen) = 0;
- data.byte(kOpenedob) = 255;
-}
-
-void DreamGenContext::setpickup() {
- STACK_CHECK;
- _cmp(data.byte(kObjecttype), 1);
- if (flags.z())
- goto cantpick;
- _cmp(data.byte(kObjecttype), 3);
- if (flags.z())
- goto cantpick;
- getanyad();
- al = es.byte(bx+2);
- _cmp(al, 4);
- if (!flags.z())
- goto canpick;
-cantpick:
- blank();
- return;
-canpick:
- _cmp(data.byte(kCommandtype), 209);
- if (flags.z())
- goto alreadysp;
- data.byte(kCommandtype) = 209;
- bl = data.byte(kCommand);
- bh = data.byte(kObjecttype);
- al = 33;
- commandwithob();
-alreadysp:
- ax = data.word(kMousebutton);
- _cmp(ax, 1);
- if (!flags.z())
- return /* (nosetpick) */;
- _cmp(ax, data.word(kOldbutton));
- if (!flags.z())
- goto dosetpick;
- return;
-dosetpick:
- createpanel();
- showpanel();
- showman();
- showexit();
- examicon();
- data.byte(kPickup) = 1;
- data.byte(kInvopen) = 2;
- _cmp(data.byte(kObjecttype), 4);
- if (flags.z())
- goto pickupexob;
- al = data.byte(kCommand);
- data.byte(kItemframe) = al;
- data.byte(kOpenedob) = 255;
- transfertoex();
- data.byte(kItemframe) = al;
- data.byte(kObjecttype) = 4;
- geteitherad();
- es.byte(bx+2) = 20;
- es.byte(bx+3) = 255;
- openinv();
- worktoscreenm();
- return;
-pickupexob:
- al = data.byte(kCommand);
- data.byte(kItemframe) = al;
- data.byte(kOpenedob) = 255;
- openinv();
- worktoscreenm();
-}
-
-void DreamGenContext::examinventory() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 249);
- if (flags.z())
- goto alreadyexinv;
- data.byte(kCommandtype) = 249;
- al = 32;
- commandonly();
-alreadyexinv:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (!flags.z())
- goto doexinv;
- return;
-doexinv:
- createpanel();
- showpanel();
- showman();
- showexit();
- examicon();
- data.byte(kPickup) = 0;
- data.byte(kInvopen) = 2;
- openinv();
- worktoscreenm();
-}
-
-void DreamGenContext::reexfrominv() {
- STACK_CHECK;
- findinvpos();
- ax = es.word(bx);
- data.byte(kCommandtype) = ah;
- data.byte(kCommand) = al;
- data.byte(kExamagain) = 1;
- data.byte(kPointermode) = 0;
-}
-
-void DreamGenContext::reexfromopen() {
- STACK_CHECK;
- return;
- findopenpos();
- ax = es.word(bx);
- data.byte(kCommandtype) = ah;
- data.byte(kCommand) = al;
- data.byte(kExamagain) = 1;
- data.byte(kPointermode) = 0;
-}
-
-void DreamGenContext::swapwithinv() {
- STACK_CHECK;
- al = data.byte(kItemframe);
- ah = data.byte(kObjecttype);
- _cmp(ax, data.word(kOldsubject));
- if (!flags.z())
- goto difsub7;
- _cmp(data.byte(kCommandtype), 243);
- if (flags.z())
- goto alreadyswap1;
- data.byte(kCommandtype) = 243;
-difsub7:
- data.word(kOldsubject) = ax;
- bx = ax;
- al = 34;
- commandwithob();
-alreadyswap1:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (cantswap1) */;
- _and(ax, 1);
- if (!flags.z())
- goto doswap1;
- return;
-doswap1:
- ah = data.byte(kObjecttype);
- al = data.byte(kItemframe);
- push(ax);
- findinvpos();
- ax = es.word(bx);
- data.byte(kItemframe) = al;
- data.byte(kObjecttype) = ah;
- geteitherad();
- es.byte(bx+2) = 20;
- es.byte(bx+3) = 255;
- bl = data.byte(kItemframe);
- bh = data.byte(kObjecttype);
- ax = pop();
- data.byte(kObjecttype) = ah;
- data.byte(kItemframe) = al;
- push(bx);
- findinvpos();
- delpointer();
- al = data.byte(kItemframe);
- geteitherad();
- es.byte(bx+2) = 4;
- es.byte(bx+3) = 255;
- al = data.byte(kLastinvpos);
- es.byte(bx+4) = al;
- ax = pop();
- data.byte(kObjecttype) = ah;
- data.byte(kItemframe) = al;
- fillryan();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::swapwithopen() {
- STACK_CHECK;
- al = data.byte(kItemframe);
- ah = data.byte(kObjecttype);
- _cmp(ax, data.word(kOldsubject));
- if (!flags.z())
- goto difsub8;
- _cmp(data.byte(kCommandtype), 242);
- if (flags.z())
- goto alreadyswap2;
- data.byte(kCommandtype) = 242;
-difsub8:
- data.word(kOldsubject) = ax;
- bx = ax;
- al = 34;
- commandwithob();
-alreadyswap2:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (cantswap2) */;
- _and(ax, 1);
- if (!flags.z())
- goto doswap2;
- return;
-doswap2:
- geteitherad();
- isitworn();
- if (!flags.z())
- goto notwornswap;
- wornerror();
- return;
-notwornswap:
- delpointer();
- al = data.byte(kItemframe);
- _cmp(al, data.byte(kOpenedob));
- if (!flags.z())
- goto isntsame2;
- al = data.byte(kObjecttype);
- _cmp(al, data.byte(kOpenedtype));
- if (!flags.z())
- goto isntsame2;
- errormessage1();
- return;
-isntsame2:
- checkobjectsize();
- _cmp(al, 0);
- if (flags.z())
- goto sizeok2;
- return;
-sizeok2:
- ah = data.byte(kObjecttype);
- al = data.byte(kItemframe);
- push(ax);
- findopenpos();
- ax = es.word(bx);
- data.byte(kItemframe) = al;
- data.byte(kObjecttype) = ah;
- _cmp(ah, 4);
- if (!flags.z())
- goto makeswapex;
- geteitherad();
- es.byte(bx+2) = 20;
- es.byte(bx+3) = 255;
- goto actuallyswap;
-makeswapex:
- transfertoex();
- data.byte(kItemframe) = al;
- data.byte(kObjecttype) = 4;
- geteitherad();
- es.byte(bx+2) = 20;
- es.byte(bx+3) = 255;
-actuallyswap:
- bl = data.byte(kItemframe);
- bh = data.byte(kObjecttype);
- ax = pop();
- data.byte(kObjecttype) = ah;
- data.byte(kItemframe) = al;
- push(bx);
- findopenpos();
- geteitherad();
- al = data.byte(kOpenedtype);
- es.byte(bx+2) = al;
- al = data.byte(kOpenedob);
- es.byte(bx+3) = al;
- al = data.byte(kLastinvpos);
- es.byte(bx+4) = al;
- al = data.byte(kReallocation);
- es.byte(bx+5) = al;
- ax = pop();
- data.byte(kObjecttype) = ah;
- data.byte(kItemframe) = al;
- fillopen();
- fillryan();
- undertextline();
- readmouse();
- useopened();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::intoinv() {
- STACK_CHECK;
- _cmp(data.byte(kPickup), 0);
- if (!flags.z())
- goto notout;
- outofinv();
- return;
-notout:
- findinvpos();
- ax = es.word(bx);
- _cmp(al, 255);
- if (flags.z())
- goto canplace1;
- swapwithinv();
- return;
-canplace1:
- al = data.byte(kItemframe);
- ah = data.byte(kObjecttype);
- _cmp(ax, data.word(kOldsubject));
- if (!flags.z())
- goto difsub1;
- _cmp(data.byte(kCommandtype), 220);
- if (flags.z())
- goto alreadyplce;
- data.byte(kCommandtype) = 220;
-difsub1:
- data.word(kOldsubject) = ax;
- bx = ax;
- al = 35;
- commandwithob();
-alreadyplce:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notletgo2) */;
- _and(ax, 1);
- if (!flags.z())
- goto doplace;
- return;
-doplace:
- delpointer();
- al = data.byte(kItemframe);
- getexad();
- es.byte(bx+2) = 4;
- es.byte(bx+3) = 255;
- al = data.byte(kLastinvpos);
- es.byte(bx+4) = al;
- data.byte(kPickup) = 0;
- fillryan();
- readmouse();
- showpointer();
- outofinv();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::outofinv() {
- STACK_CHECK;
- findinvpos();
- ax = es.word(bx);
- _cmp(al, 255);
- if (!flags.z())
- goto canpick2;
- blank();
- return;
-canpick2:
- bx = data.word(kMousebutton);
- _cmp(bx, 2);
- if (!flags.z())
- goto canpick2a;
- reexfrominv();
- return;
-canpick2a:
- _cmp(ax, data.word(kOldsubject));
- if (!flags.z())
- goto difsub3;
- _cmp(data.byte(kCommandtype), 221);
- if (flags.z())
- goto alreadygrab;
- data.byte(kCommandtype) = 221;
-difsub3:
- data.word(kOldsubject) = ax;
- bx = ax;
- al = 36;
- commandwithob();
-alreadygrab:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notletgo) */;
- _and(ax, 1);
- if (!flags.z())
- goto dograb;
- return;
-dograb:
- delpointer();
- data.byte(kPickup) = 1;
- findinvpos();
- ax = es.word(bx);
- data.byte(kItemframe) = al;
- data.byte(kObjecttype) = ah;
- getexad();
- es.byte(bx+2) = 20;
- es.byte(bx+3) = 255;
- fillryan();
- readmouse();
- showpointer();
- intoinv();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::getfreead() {
- STACK_CHECK;
- ah = 0;
- cl = 4;
- _shl(ax, cl);
- bx = ax;
- es = data.word(kFreedat);
-}
-
-void DreamGenContext::getexad() {
- STACK_CHECK;
- ah = 0;
- bx = 16;
- _mul(bx);
- bx = ax;
- es = data.word(kExtras);
- _add(bx, (0+2080+30000));
-}
-
-void DreamGenContext::geteitherad() {
- STACK_CHECK;
- _cmp(data.byte(kObjecttype), 4);
- if (flags.z())
- goto isinexlist;
- al = data.byte(kItemframe);
- getfreead();
- return;
-isinexlist:
- al = data.byte(kItemframe);
- getexad();
-}
-
-void DreamGenContext::getanyad() {
- STACK_CHECK;
- _cmp(data.byte(kObjecttype), 4);
- if (flags.z())
- goto isex;
- _cmp(data.byte(kObjecttype), 2);
- if (flags.z())
- goto isfree;
- al = data.byte(kCommand);
- getsetad();
- ax = es.word(bx+4);
- return;
-isfree:
- al = data.byte(kCommand);
- getfreead();
- ax = es.word(bx+7);
- return;
-isex:
- al = data.byte(kCommand);
- getexad();
- ax = es.word(bx+7);
-}
-
-void DreamGenContext::getanyaddir() {
- STACK_CHECK;
- _cmp(ah, 4);
- if (flags.z())
- goto isex3;
- _cmp(ah, 2);
- if (flags.z())
- goto isfree3;
- getsetad();
- return;
-isfree3:
- getfreead();
- return;
-isex3:
- getexad();
-}
-
-void DreamGenContext::getopenedsize() {
- STACK_CHECK;
- _cmp(data.byte(kOpenedtype), 4);
- if (flags.z())
- goto isex2;
- _cmp(data.byte(kOpenedtype), 2);
- if (flags.z())
- goto isfree2;
- al = data.byte(kOpenedob);
- getsetad();
- ax = es.word(bx+3);
- return;
-isfree2:
- al = data.byte(kOpenedob);
- getfreead();
- ax = es.word(bx+7);
- return;
-isex2:
- al = data.byte(kOpenedob);
- getexad();
- ax = es.word(bx+7);
-}
-
-void DreamGenContext::getsetad() {
- STACK_CHECK;
- ah = 0;
- bx = 64;
- _mul(bx);
- bx = ax;
- es = data.word(kSetdat);
-}
-
-void DreamGenContext::findinvpos() {
- STACK_CHECK;
- cx = data.word(kMousex);
- _sub(cx, (80));
- bx = -1;
-findinv1:
- _inc(bx);
- _sub(cx, (44));
- if (!flags.c())
- goto findinv1;
- cx = data.word(kMousey);
- _sub(cx, (58));
- _sub(bx, 5);
-findinv2:
- _add(bx, 5);
- _sub(cx, (44));
- if (!flags.c())
- goto findinv2;
- al = data.byte(kRyanpage);
- ah = 0;
- cx = 10;
- _mul(cx);
- _add(bx, ax);
- al = bl;
- data.byte(kLastinvpos) = al;
- _add(bx, bx);
- es = data.word(kBuffers);
- _add(bx, (0+(228*13)+32));
-}
-
-void DreamGenContext::findopenpos() {
- STACK_CHECK;
- cx = data.word(kMousex);
- _sub(cx, (80));
- bx = -1;
-findopenp1:
- _inc(bx);
- _sub(cx, (44));
- if (!flags.c())
- goto findopenp1;
- al = bl;
- data.byte(kLastinvpos) = al;
- _add(bx, bx);
- es = data.word(kBuffers);
- _add(bx, (0+(228*13)));
-}
-
-void DreamGenContext::dropobject() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 223);
- if (flags.z())
- goto alreadydrop;
- data.byte(kCommandtype) = 223;
- _cmp(data.byte(kPickup), 0);
- if (flags.z())
- { blank(); return; };
- bl = data.byte(kItemframe);
- bh = data.byte(kObjecttype);
- al = 37;
- commandwithob();
-alreadydrop:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nodrop) */;
- _and(ax, 1);
- if (!flags.z())
- goto dodrop;
- return;
-dodrop:
- geteitherad();
- isitworn();
- if (!flags.z())
- goto nowornerror;
- wornerror();
- return;
-nowornerror:
- _cmp(data.byte(kReallocation), 47);
- if (flags.z())
- goto nodrop2;
- cl = data.byte(kRyanx);
- _add(cl, 12);
- ch = data.byte(kRyany);
- _add(ch, 12);
- checkone();
- _cmp(cl, 2);
- if (flags.c())
- goto nodroperror;
-nodrop2:
- droperror();
- return;
-nodroperror:
- _cmp(data.byte(kMapxsize), 64);
- if (!flags.z())
- goto notinlift;
- _cmp(data.byte(kMapysize), 64);
- if (!flags.z())
- goto notinlift;
- droperror();
- return;
-notinlift:
- al = data.byte(kItemframe);
- ah = 4;
- cl = 'G';
- ch = 'U';
- dl = 'N';
- dh = 'A';
- compare();
- if (flags.z())
- { cantdrop(); return; };
- al = data.byte(kItemframe);
- ah = 4;
- cl = 'S';
- ch = 'H';
- dl = 'L';
- dh = 'D';
- compare();
- if (flags.z())
- { cantdrop(); return; };
- data.byte(kObjecttype) = 4;
- al = data.byte(kItemframe);
- getexad();
- es.byte(bx+2) = 0;
- al = data.byte(kRyanx);
- _add(al, 4);
- cl = 4;
- _shr(al, cl);
- _add(al, data.byte(kMapx));
- ah = data.byte(kRyany);
- _add(ah, 8);
- cl = 4;
- _shr(ah, cl);
- _add(ah, data.byte(kMapy));
- es.byte(bx+3) = al;
- es.byte(bx+5) = ah;
- al = data.byte(kRyanx);
- _add(al, 4);
- _and(al, 15);
- ah = data.byte(kRyany);
- _add(ah, 8);
- _and(ah, 15);
- es.byte(bx+4) = al;
- es.byte(bx+6) = ah;
- data.byte(kPickup) = 0;
- al = data.byte(kReallocation);
- es.byte(bx) = al;
-}
-
-void DreamGenContext::droperror() {
- STACK_CHECK;
- data.byte(kCommandtype) = 255;
- delpointer();
- di = 76;
- bx = 21;
- al = 56;
- dl = 240;
- printmessage();
- worktoscreenm();
- cx = 50;
- hangonp();
- showpanel();
- showman();
- examicon();
- data.byte(kCommandtype) = 255;
- worktoscreenm();
-}
-
-void DreamGenContext::cantdrop() {
- STACK_CHECK;
- data.byte(kCommandtype) = 255;
- delpointer();
- di = 76;
- bx = 21;
- al = 24;
- dl = 240;
- printmessage();
- worktoscreenm();
- cx = 50;
- hangonp();
- showpanel();
- showman();
- examicon();
- data.byte(kCommandtype) = 255;
- worktoscreenm();
-}
-
-void DreamGenContext::removeobfrominv() {
- STACK_CHECK;
- _cmp(data.byte(kCommand), 100);
- if (flags.z())
- return /* (obnotexist) */;
- getanyad();
- di = bx;
- cl = data.byte(kCommand);
- ch = 0;
- deleteexobject();
-}
-
-void DreamGenContext::selectopenob() {
- STACK_CHECK;
- al = data.byte(kCommand);
- getanyad();
- _cmp(al, 255);
- if (!flags.z())
- goto canopenit1;
- blank();
- return;
-canopenit1:
- _cmp(data.byte(kCommandtype), 224);
- if (flags.z())
- goto alreadyopob;
- data.byte(kCommandtype) = 224;
- bl = data.byte(kCommand);
- bh = data.byte(kObjecttype);
- al = 38;
- commandwithob();
-alreadyopob:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (noopenob) */;
- _and(ax, 1);
- if (!flags.z())
- goto doopenob;
- return;
-doopenob:
- al = data.byte(kCommand);
- data.byte(kOpenedob) = al;
- al = data.byte(kObjecttype);
- data.byte(kOpenedtype) = al;
- createpanel();
- showpanel();
- showman();
- examicon();
- showexit();
- openinv();
- openob();
- undertextline();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::useopened() {
- STACK_CHECK;
- _cmp(data.byte(kOpenedob), 255);
- if (flags.z())
- return /* (cannotuseopen) */;
- _cmp(data.byte(kPickup), 0);
- if (!flags.z())
- goto notout2;
- outofopen();
- return;
-notout2:
- findopenpos();
- ax = es.word(bx);
- _cmp(al, 255);
- if (flags.z())
- goto canplace3;
- swapwithopen();
- return;
-canplace3:
- _cmp(data.byte(kPickup), 1);
- if (flags.z())
- goto intoopen;
- blank();
- return;
-intoopen:
- al = data.byte(kItemframe);
- ah = data.byte(kObjecttype);
- _cmp(ax, data.word(kOldsubject));
- if (!flags.z())
- goto difsub2;
- _cmp(data.byte(kCommandtype), 227);
- if (flags.z())
- goto alreadyplc2;
- data.byte(kCommandtype) = 227;
-difsub2:
- data.word(kOldsubject) = ax;
- bx = ax;
- al = 35;
- commandwithob();
-alreadyplc2:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notletgo3) */;
- _cmp(ax, 1);
- if (flags.z())
- goto doplace2;
- return;
-doplace2:
- geteitherad();
- isitworn();
- if (!flags.z())
- goto notworntoopen;
- wornerror();
- return;
-notworntoopen:
- delpointer();
- al = data.byte(kItemframe);
- _cmp(al, data.byte(kOpenedob));
- if (!flags.z())
- goto isntsame;
- al = data.byte(kObjecttype);
- _cmp(al, data.byte(kOpenedtype));
- if (!flags.z())
- goto isntsame;
- errormessage1();
- return;
-isntsame:
- checkobjectsize();
- _cmp(al, 0);
- if (flags.z())
- goto sizeok1;
- return;
-sizeok1:
- data.byte(kPickup) = 0;
- al = data.byte(kItemframe);
- geteitherad();
- al = data.byte(kOpenedtype);
- es.byte(bx+2) = al;
- al = data.byte(kOpenedob);
- es.byte(bx+3) = al;
- al = data.byte(kLastinvpos);
- es.byte(bx+4) = al;
- al = data.byte(kReallocation);
- es.byte(bx+5) = al;
- fillopen();
- undertextline();
- readmouse();
- useopened();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::errormessage1() {
- STACK_CHECK;
- delpointer();
- di = 76;
- bx = 21;
- al = 58;
- dl = 240;
- printmessage();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
- cx = 50;
- hangonp();
- showpanel();
- showman();
- examicon();
- readmouse();
- useopened();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::errormessage2() {
- STACK_CHECK;
- data.byte(kCommandtype) = 255;
- delpointer();
- di = 76;
- bx = 21;
- al = 59;
- dl = 240;
- printmessage();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
- cx = 50;
- hangonp();
- showpanel();
- showman();
- examicon();
- readmouse();
- useopened();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::errormessage3() {
- STACK_CHECK;
- delpointer();
- di = 76;
- bx = 21;
- al = 60;
- dl = 240;
- printmessage();
- worktoscreenm();
- cx = 50;
- hangonp();
- showpanel();
- showman();
- examicon();
- readmouse();
- useopened();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::checkobjectsize() {
- STACK_CHECK;
- getopenedsize();
- push(ax);
- al = data.byte(kItemframe);
- geteitherad();
- al = es.byte(bx+9);
- cx = pop();
- _cmp(al, 255);
- if (!flags.z())
- goto notunsized;
- al = 6;
-notunsized:
- _cmp(al, 100);
- if (!flags.c())
- goto specialcase;
- _cmp(cl, 100);
- if (flags.c())
- goto isntspecial;
- errormessage3();
- goto sizewrong;
-isntspecial:
- _cmp(cl, al);
- if (!flags.c())
- goto sizeok;
-specialcase:
- _sub(al, 100);
- _cmp(cl, 100);
- if (!flags.c())
- goto bothspecial;
- _cmp(cl, al);
- if (!flags.c())
- goto sizeok;
- errormessage2();
- goto sizewrong;
-bothspecial:
- _sub(cl, 100);
- _cmp(al, cl);
- if (flags.z())
- goto sizeok;
- errormessage3();
-sizewrong:
- al = 1;
- return;
-sizeok:
- al = 0;
-}
-
-void DreamGenContext::outofopen() {
- STACK_CHECK;
- _cmp(data.byte(kOpenedob), 255);
- if (flags.z())
- goto cantuseopen;
- findopenpos();
- ax = es.word(bx);
- _cmp(al, 255);
- if (!flags.z())
- goto canpick4;
-cantuseopen:
- blank();
- return;
-canpick4:
- _cmp(ax, data.word(kOldsubject));
- if (!flags.z())
- goto difsub4;
- _cmp(data.byte(kCommandtype), 228);
- if (flags.z())
- goto alreadygrb;
- data.byte(kCommandtype) = 228;
-difsub4:
- data.word(kOldsubject) = ax;
- bx = ax;
- al = 36;
- commandwithob();
-alreadygrb:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notletgo4) */;
- _cmp(ax, 1);
- if (flags.z())
- goto dogrb;
- _cmp(ax, 2);
- if (!flags.z())
- return /* (notletgo4) */;
- reexfromopen();
- return;
-dogrb:
- delpointer();
- data.byte(kPickup) = 1;
- findopenpos();
- ax = es.word(bx);
- data.byte(kItemframe) = al;
- data.byte(kObjecttype) = ah;
- _cmp(ah, 4);
- if (!flags.z())
- goto makeintoex;
- geteitherad();
- es.byte(bx+2) = 20;
- es.byte(bx+3) = 255;
- goto actuallyout;
-makeintoex:
- transfertoex();
- data.byte(kItemframe) = al;
- data.byte(kObjecttype) = 4;
- geteitherad();
- es.byte(bx+2) = 20;
- es.byte(bx+3) = 255;
-actuallyout:
- fillopen();
- undertextline();
- readmouse();
- useopened();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::transfertoex() {
- STACK_CHECK;
- emergencypurge();
- getexpos();
- al = data.byte(kExpos);
- push(ax);
- push(di);
- al = data.byte(kItemframe);
- ah = 0;
- bx = 16;
- _mul(bx);
- ds = data.word(kFreedat);
- si = ax;
- cx = 8;
- _movsw(cx, true);
- di = pop();
- al = data.byte(kReallocation);
- es.byte(di) = al;
- es.byte(di+11) = al;
- al = data.byte(kItemframe);
- es.byte(di+1) = al;
- es.byte(di+2) = 4;
- es.byte(di+3) = 255;
- al = data.byte(kLastinvpos);
- es.byte(di+4) = al;
- al = data.byte(kItemframe);
- data.byte(kItemtotran) = al;
- transfermap();
- transferinv();
- transfertext();
- al = data.byte(kItemframe);
- ah = 0;
- bx = 16;
- _mul(bx);
- ds = data.word(kFreedat);
- si = ax;
- ds.byte(si+2) = 254;
- pickupconts();
- ax = pop();
-}
-
-void DreamGenContext::pickupconts() {
- STACK_CHECK;
- al = ds.byte(si+7);
- _cmp(al, 255);
- if (flags.z())
- return /* (notopenable) */;
- al = data.byte(kItemframe);
- ah = data.byte(kObjecttype);
- dl = data.byte(kExpos);
- es = data.word(kFreedat);
- bx = 0;
- cx = 0;
-pickupcontloop:
- push(cx);
- push(es);
- push(bx);
- push(dx);
- push(ax);
- _cmp(es.byte(bx+2), ah);
- if (!flags.z())
- goto notinsidethis;
- _cmp(es.byte(bx+3), al);
- if (!flags.z())
- goto notinsidethis;
- data.byte(kItemtotran) = cl;
- transfercontoex();
-notinsidethis:
- ax = pop();
- dx = pop();
- bx = pop();
- es = pop();
- cx = pop();
- _add(bx, 16);
- _inc(cx);
- _cmp(cx, 80);
- if (!flags.z())
- goto pickupcontloop;
-}
-
-void DreamGenContext::transfercontoex() {
- STACK_CHECK;
- push(es);
- push(bx);
- push(dx);
- push(es);
- push(bx);
- getexpos();
- si = pop();
- ds = pop();
- push(di);
- cx = 8;
- _movsw(cx, true);
- di = pop();
- dx = pop();
- al = data.byte(kReallocation);
- es.byte(di) = al;
- es.byte(di+11) = al;
- al = data.byte(kItemtotran);
- es.byte(di+1) = al;
- es.byte(di+3) = dl;
- es.byte(di+2) = 4;
- transfermap();
- transferinv();
- transfertext();
- si = pop();
- ds = pop();
- ds.byte(si+2) = 255;
-}
-
-void DreamGenContext::transfertext() {
- STACK_CHECK;
- es = data.word(kExtras);
- al = data.byte(kExpos);
- ah = 0;
- _add(ax, ax);
- bx = (0+2080+30000+(16*114));
- _add(bx, ax);
- di = data.word(kExtextpos);
- es.word(bx) = di;
- _add(di, (0+2080+30000+(16*114)+((114+2)*2)));
- al = data.byte(kItemtotran);
- ah = 0;
- _add(ax, ax);
- ds = data.word(kFreedesc);
- bx = (0);
- _add(bx, ax);
- si = (0+(82*2));
- ax = ds.word(bx);
- _add(si, ax);
-moretext:
- _lodsb();
- _stosb();
- _inc(data.word(kExtextpos));
- _cmp(al, 0);
- if (!flags.z())
- goto moretext;
-}
-
-void DreamGenContext::purgealocation() {
- STACK_CHECK;
- push(ax);
- es = data.word(kExtras);
- di = (0+2080+30000);
- bx = pop();
- cx = 0;
-purgeloc:
- _cmp(bl, es.byte(di+0));
- if (!flags.z())
- goto dontpurge;
- _cmp(es.byte(di+2), 0);
- if (!flags.z())
- goto dontpurge;
- push(di);
- push(es);
- push(bx);
- push(cx);
- deleteexobject();
- cx = pop();
- bx = pop();
- es = pop();
- di = pop();
-dontpurge:
- _add(di, 16);
- _inc(cx);
- _cmp(cx, (114));
- if (!flags.z())
- goto purgeloc;
-}
-
-void DreamGenContext::emergencypurge() {
- STACK_CHECK;
-checkpurgeagain:
- ax = data.word(kExframepos);
- _add(ax, 4000);
- _cmp(ax, (30000));
- if (flags.c())
- goto notnearframeend;
- purgeanitem();
- goto checkpurgeagain;
-notnearframeend:
- ax = data.word(kExtextpos);
- _add(ax, 400);
- _cmp(ax, (18000));
- if (flags.c())
- return /* (notneartextend) */;
- purgeanitem();
- goto checkpurgeagain;
-}
-
-void DreamGenContext::purgeanitem() {
- STACK_CHECK;
- es = data.word(kExtras);
- di = (0+2080+30000);
- bl = data.byte(kReallocation);
- cx = 0;
-lookforpurge:
- al = es.byte(di+2);
- _cmp(al, 0);
- if (!flags.z())
- goto cantpurge;
- _cmp(es.byte(di+12), 2);
- if (flags.z())
- goto iscup;
- _cmp(es.byte(di+12), 255);
- if (!flags.z())
- goto cantpurge;
-iscup:
- _cmp(es.byte(di+11), bl);
- if (flags.z())
- goto cantpurge;
- deleteexobject();
- return;
-cantpurge:
- _add(di, 16);
- _inc(cx);
- _cmp(cx, (114));
- if (!flags.z())
- goto lookforpurge;
- di = (0+2080+30000);
- bl = data.byte(kReallocation);
- cx = 0;
-lookforpurge2:
- al = es.byte(di+2);
- _cmp(al, 0);
- if (!flags.z())
- goto cantpurge2;
- _cmp(es.byte(di+12), 255);
- if (!flags.z())
- goto cantpurge2;
- deleteexobject();
- return;
-cantpurge2:
- _add(di, 16);
- _inc(cx);
- _cmp(cx, (114));
- if (!flags.z())
- goto lookforpurge2;
-}
-
-void DreamGenContext::deleteexobject() {
- STACK_CHECK;
- push(cx);
- push(cx);
- push(cx);
- push(cx);
- al = 255;
- cx = 16;
- _stosb(cx, true);
- ax = pop();
- cl = al;
- _add(al, al);
- _add(al, cl);
- deleteexframe();
- ax = pop();
- cl = al;
- _add(al, al);
- _add(al, cl);
- _inc(al);
- deleteexframe();
- ax = pop();
- deleteextext();
- bx = pop();
- bh = bl;
- bl = 4;
- di = (0+2080+30000);
- cx = 0;
-deleteconts:
- _cmp(es.word(di+2), bx);
- if (!flags.z())
- goto notinsideex;
- push(bx);
- push(cx);
- push(di);
- deleteexobject();
- di = pop();
- cx = pop();
- bx = pop();
-notinsideex:
- _add(di, 16);
- _inc(cx);
- _cmp(cx, (114));
- if (!flags.z())
- goto deleteconts;
-}
-
-void DreamGenContext::deleteexframe() {
- STACK_CHECK;
- di = (0);
- ah = 0;
- _add(ax, ax);
- _add(di, ax);
- _add(ax, ax);
- _add(di, ax);
- al = es.byte(di);
- ah = 0;
- cl = es.byte(di+1);
- ch = 0;
- _mul(cx);
- si = es.word(di+2);
- push(si);
- _add(si, (0+2080));
- cx = (30000);
- _sub(cx, es.word(di+2));
- di = si;
- _add(si, ax);
- push(ax);
- ds = es;
- _movsb(cx, true);
- bx = pop();
- _sub(data.word(kExframepos), bx);
- si = pop();
- cx = (114)*3;
- di = (0);
-shuffleadsdown:
- ax = es.word(di+2);
- _cmp(ax, si);
- if (flags.c())
- goto beforethisone;
- _sub(ax, bx);
-beforethisone:
- es.word(di+2) = ax;
- _add(di, 6);
- if (--cx)
- goto shuffleadsdown;
-}
-
-void DreamGenContext::deleteextext() {
- STACK_CHECK;
- di = (0+2080+30000+(16*114));
- ah = 0;
- _add(ax, ax);
- _add(di, ax);
- ax = es.word(di);
- si = ax;
- di = ax;
- _add(si, (0+2080+30000+(16*114)+((114+2)*2)));
- _add(di, (0+2080+30000+(16*114)+((114+2)*2)));
- ax = 0;
-findlenextext:
- cl = es.byte(si);
- _inc(ax);
- _inc(si);
- _cmp(cl, 0);
- if (!flags.z())
- goto findlenextext;
- cx = (18000);
- bx = si;
- _sub(bx, (0+2080+30000+(16*114)+((114+2)*2)));
- push(bx);
- push(ax);
- _sub(cx, bx);
- _movsb(cx, true);
- bx = pop();
- _sub(data.word(kExtextpos), bx);
- si = pop();
- cx = (114);
- di = (0+2080+30000+(16*114));
-shuffletextads:
- ax = es.word(di);
- _cmp(ax, si);
- if (flags.c())
- goto beforethistext;
- _sub(ax, bx);
-beforethistext:
- es.word(di) = ax;
- _add(di, 2);
- if (--cx)
- goto shuffletextads;
-}
-
-void DreamGenContext::blockget() {
- STACK_CHECK;
- ah = al;
- al = 0;
- ds = data.word(kBackdrop);
- si = (0+192);
- _add(si, ax);
-}
-
-void DreamGenContext::drawfloor() {
- STACK_CHECK;
- push(es);
- push(bx);
- eraseoldobs();
- drawflags();
- calcmapad();
- doblocks();
- showallobs();
- showallfree();
- showallex();
- paneltomap();
- initrain();
- data.byte(kNewobs) = 0;
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::autolook() {
- STACK_CHECK;
- ax = data.word(kMousex);
- _cmp(ax, data.word(kOldx));
- if (!flags.z())
- goto diffmouse;
- ax = data.word(kMousey);
- _cmp(ax, data.word(kOldy));
- if (!flags.z())
- goto diffmouse;
- _dec(data.word(kLookcounter));
- _cmp(data.word(kLookcounter), 0);
- if (!flags.z())
- return /* (noautolook) */;
- _cmp(data.word(kWatchingtime), 0);
- if (!flags.z())
- return /* (noautolook) */;
- dolook();
- return;
-diffmouse:
- data.word(kLookcounter) = 1000;
-}
-
-void DreamGenContext::look() {
- STACK_CHECK;
- _cmp(data.word(kWatchingtime), 0);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kPointermode), 2);
- if (flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 241);
- if (flags.z())
- goto alreadylook;
- data.byte(kCommandtype) = 241;
- al = 25;
- commandonly();
-alreadylook:
- _cmp(data.word(kMousebutton), 1);
- if (!flags.z())
- return /* (nolook) */;
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nolook) */;
- dolook();
-}
-
-void DreamGenContext::dolook() {
- STACK_CHECK;
- createpanel();
- showicon();
- undertextline();
- worktoscreenm();
- data.byte(kCommandtype) = 255;
- dumptextline();
- bl = data.byte(kRoomnum);
- _and(bl, 31);
- bh = 0;
- _add(bx, bx);
- es = data.word(kRoomdesc);
- _add(bx, (0));
- si = es.word(bx);
- _add(si, (0+(38*2)));
- findnextcolon();
- di = 66;
- _cmp(data.byte(kReallocation), 50);
- if (flags.c())
- goto notdream3;
- di = 40;
-notdream3:
- bx = 80;
- dl = 241;
- printslow();
- _cmp(al, 1);
- if (flags.z())
- goto afterlook;
- cx = 400;
- hangonp();
-afterlook:
- data.byte(kPointermode) = 0;
- data.byte(kCommandtype) = 0;
- redrawmainscrn();
- worktoscreenm();
-}
-
-void DreamGenContext::redrawmainscrn() {
- STACK_CHECK;
- data.word(kTimecount) = 0;
- createpanel();
- data.byte(kNewobs) = 0;
- drawfloor();
- printsprites();
- reelsonscreen();
- showicon();
- getunderzoom();
- undertextline();
- readmouse();
- data.byte(kCommandtype) = 255;
-}
-
-void DreamGenContext::getback1() {
- STACK_CHECK;
- _cmp(data.byte(kPickup), 0);
- if (flags.z())
- goto notgotobject;
- blank();
- return;
-notgotobject:
- _cmp(data.byte(kCommandtype), 202);
- if (flags.z())
- goto alreadyget;
- data.byte(kCommandtype) = 202;
- al = 26;
- commandonly();
-alreadyget:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nogetback) */;
- _and(ax, 1);
- if (!flags.z())
- goto dogetback;
- return;
-dogetback:
- data.byte(kGetback) = 1;
- data.byte(kPickup) = 0;
-}
-
-void DreamGenContext::talk() {
- STACK_CHECK;
- data.byte(kTalkpos) = 0;
- data.byte(kInmaparea) = 0;
- al = data.byte(kCommand);
- data.byte(kCharacter) = al;
- createpanel();
- showpanel();
- showman();
- showexit();
- undertextline();
- convicons();
- starttalk();
- data.byte(kCommandtype) = 255;
- readmouse();
- showpointer();
- worktoscreen();
-waittalk:
- delpointer();
- readmouse();
- animpointer();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- data.byte(kGetback) = 0;
- bx = offset_talklist;
- checkcoords();
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- goto finishtalk;
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto waittalk;
-finishtalk:
- bx = data.word(kPersondata);
- es = cs;
- _cmp(data.byte(kTalkpos), 4);
- if (flags.c())
- goto notnexttalk;
- al = es.byte(bx+7);
- _or(al, 128);
- es.byte(bx+7) = al;
-notnexttalk:
- redrawmainscrn();
- worktoscreenm();
- _cmp(data.byte(kSpeechloaded), 1);
- if (!flags.z())
- return /* (nospeech) */;
- cancelch1();
- data.byte(kVolumedirection) = -1;
- data.byte(kVolumeto) = 0;
-}
-
-void DreamGenContext::convicons() {
- STACK_CHECK;
- al = data.byte(kCharacter);
- _and(al, 127);
- getpersframe();
- di = 234;
- bx = 2;
- data.word(kCurrentframe) = ax;
- findsource();
- ax = data.word(kCurrentframe);
- _sub(ax, data.word(kTakeoff));
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::getpersframe() {
- STACK_CHECK;
- ah = 0;
- _add(ax, ax);
- bx = ax;
- es = data.word(kPeople);
- _add(bx, (0));
- ax = es.word(bx);
-}
-
-void DreamGenContext::starttalk() {
- STACK_CHECK;
- data.byte(kTalkmode) = 0;
- al = data.byte(kCharacter);
- _and(al, 127);
- getpersontext();
- data.word(kCharshift) = 91+91;
- di = 66;
- bx = 64;
- dl = 241;
- al = 0;
- ah = 79;
- printdirect();
- data.word(kCharshift) = 0;
- di = 66;
- bx = 80;
- dl = 241;
- al = 0;
- ah = 0;
- printdirect();
- data.byte(kSpeechloaded) = 0;
- al = data.byte(kCharacter);
- _and(al, 127);
- ah = 0;
- cx = 64;
- _mul(cx);
- cl = 'C';
- dl = 'R';
- dh = data.byte(kReallocation);
- loadspeech();
- _cmp(data.byte(kSpeechloaded), 1);
- if (!flags.z())
- return /* (nospeech1) */;
- data.byte(kVolumedirection) = 1;
- data.byte(kVolumeto) = 6;
- al = 50+12;
- playchannel1();
-}
-
-void DreamGenContext::getpersontext() {
- STACK_CHECK;
- ah = 0;
- cx = 64*2;
- _mul(cx);
- si = ax;
- es = data.word(kPeople);
- _add(si, (0+24));
- cx = (0+24+(1026*2));
- ax = es.word(si);
- _add(ax, cx);
- si = ax;
-}
-
-void DreamGenContext::moretalk() {
- STACK_CHECK;
- _cmp(data.byte(kTalkmode), 0);
- if (flags.z())
- goto canmore;
- redes();
- return;
-canmore:
- _cmp(data.byte(kCommandtype), 215);
- if (flags.z())
- goto alreadymore;
- data.byte(kCommandtype) = 215;
- al = 49;
- commandonly();
-alreadymore:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nomore) */;
- _and(ax, 1);
- if (!flags.z())
- goto domoretalk;
- return;
-domoretalk:
- data.byte(kTalkmode) = 2;
- data.byte(kTalkpos) = 4;
- _cmp(data.byte(kCharacter), 100);
- if (flags.c())
- goto notsecondpart;
- data.byte(kTalkpos) = 48;
-notsecondpart:
- dosometalk();
-}
-
-void DreamGenContext::dosometalk() {
- STACK_CHECK;
-dospeech:
- al = data.byte(kTalkpos);
- al = data.byte(kCharacter);
- _and(al, 127);
- ah = 0;
- cx = 64;
- _mul(cx);
- cx = ax;
- al = data.byte(kTalkpos);
- ah = 0;
- _add(ax, cx);
- _add(ax, ax);
- si = ax;
- es = data.word(kPeople);
- _add(si, (0+24));
- cx = (0+24+(1026*2));
- ax = es.word(si);
- _add(ax, cx);
- si = ax;
- _cmp(es.byte(si), 0);
- if (flags.z())
- goto endheartalk;
- push(es);
- push(si);
- createpanel();
- showpanel();
- showman();
- showexit();
- convicons();
- si = pop();
- es = pop();
- di = 164;
- bx = 64;
- dl = 144;
- al = 0;
- ah = 0;
- printdirect();
- al = data.byte(kCharacter);
- _and(al, 127);
- ah = 0;
- cx = 64;
- _mul(cx);
- cl = data.byte(kTalkpos);
- ch = 0;
- _add(ax, cx);
- cl = 'C';
- dl = 'R';
- dh = data.byte(kReallocation);
- loadspeech();
- _cmp(data.byte(kSpeechloaded), 0);
- if (flags.z())
- goto noplay1;
- al = 62;
- playchannel1();
-noplay1:
- data.byte(kPointermode) = 3;
- worktoscreenm();
- cx = 180;
- hangonpq();
- if (!flags.c())
- goto _tmp1;
- return;
-_tmp1:
- _inc(data.byte(kTalkpos));
- al = data.byte(kTalkpos);
- al = data.byte(kCharacter);
- _and(al, 127);
- ah = 0;
- cx = 64;
- _mul(cx);
- cx = ax;
- al = data.byte(kTalkpos);
- ah = 0;
- _add(ax, cx);
- _add(ax, ax);
- si = ax;
- es = data.word(kPeople);
- _add(si, (0+24));
- cx = (0+24+(1026*2));
- ax = es.word(si);
- _add(ax, cx);
- si = ax;
- _cmp(es.byte(si), 0);
- if (flags.z())
- goto endheartalk;
- _cmp(es.byte(si), ':');
- if (flags.z())
- goto skiptalk2;
- _cmp(es.byte(si), 32);
- if (flags.z())
- goto skiptalk2;
- push(es);
- push(si);
- createpanel();
- showpanel();
- showman();
- showexit();
- convicons();
- si = pop();
- es = pop();
- di = 48;
- bx = 128;
- dl = 144;
- al = 0;
- ah = 0;
- printdirect();
- al = data.byte(kCharacter);
- _and(al, 127);
- ah = 0;
- cx = 64;
- _mul(cx);
- cl = data.byte(kTalkpos);
- ch = 0;
- _add(ax, cx);
- cl = 'C';
- dl = 'R';
- dh = data.byte(kReallocation);
- loadspeech();
- _cmp(data.byte(kSpeechloaded), 0);
- if (flags.z())
- goto noplay2;
- al = 62;
- playchannel1();
-noplay2:
- data.byte(kPointermode) = 3;
- worktoscreenm();
- cx = 180;
- hangonpq();
- if (!flags.c())
- goto skiptalk2;
- return;
-skiptalk2:
- _inc(data.byte(kTalkpos));
- goto dospeech;
-endheartalk:
- data.byte(kPointermode) = 0;
-}
-
-void DreamGenContext::hangonpq() {
- STACK_CHECK;
- data.byte(kGetback) = 0;
- bx = 0;
-hangloopq:
- push(cx);
- push(bx);
- delpointer();
- readmouse();
- animpointer();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- bx = offset_quitlist;
- checkcoords();
- bx = pop();
- cx = pop();
- _cmp(data.byte(kGetback), 1);
- if (flags.z())
- goto quitconv;
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- goto quitconv;
- _cmp(data.byte(kSpeechloaded), 1);
- if (!flags.z())
- goto notspeaking;
- _cmp(data.byte(kCh1playing), 255);
- if (!flags.z())
- goto notspeaking;
- _inc(bx);
- _cmp(bx, 40);
- if (flags.z())
- goto finishconv;
-notspeaking:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- goto hangloopq;
- _cmp(data.word(kOldbutton), 0);
- if (!flags.z())
- goto hangloopq;
-finishconv:
- delpointer();
- data.byte(kPointermode) = 0;
- flags._c = false;
- return;
-quitconv:
- delpointer();
- data.byte(kPointermode) = 0;
- cancelch1();
- flags._c = true;
- }
-
-void DreamGenContext::redes() {
- STACK_CHECK;
- _cmp(data.byte(kCh1playing), 255);
- if (!flags.z())
- goto cantredes;
- _cmp(data.byte(kTalkmode), 2);
- if (flags.z())
- goto canredes;
-cantredes:
- blank();
- return;
-canredes:
- _cmp(data.byte(kCommandtype), 217);
- if (flags.z())
- goto alreadyreds;
- data.byte(kCommandtype) = 217;
- al = 50;
- commandonly();
-alreadyreds:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (!flags.z())
- goto doredes;
- return;
-doredes:
- delpointer();
- createpanel();
- showpanel();
- showman();
- showexit();
- convicons();
- starttalk();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::newplace() {
- STACK_CHECK;
- _cmp(data.byte(kNeedtotravel), 1);
- if (flags.z())
- goto istravel;
- _cmp(data.byte(kAutolocation), -1);
- if (!flags.z())
- goto isautoloc;
- return;
-isautoloc:
- al = data.byte(kAutolocation);
- data.byte(kNewlocation) = al;
- data.byte(kAutolocation) = -1;
- return;
-istravel:
- data.byte(kNeedtotravel) = 0;
- selectlocation();
-}
-
-void DreamGenContext::selectlocation() {
- STACK_CHECK;
- data.byte(kInmaparea) = 0;
- clearbeforeload();
- data.byte(kGetback) = 0;
- data.byte(kPointerframe) = 22;
- readcitypic();
- showcity();
- getridoftemp();
- readdesticon();
- loadtraveltext();
- showpanel();
- showman();
- showarrows();
- showexit();
- locationpic();
- undertextline();
- data.byte(kCommandtype) = 255;
- readmouse();
- data.byte(kPointerframe) = 0;
- showpointer();
- worktoscreen();
- al = 9;
- ah = 255;
- playchannel0();
- data.byte(kNewlocation) = 255;
-select:
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- goto quittravel;
- delpointer();
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- _cmp(data.byte(kGetback), 1);
- if (flags.z())
- goto quittravel;
- bx = offset_destlist;
- checkcoords();
- _cmp(data.byte(kNewlocation), 255);
- if (flags.z())
- goto select;
- al = data.byte(kNewlocation);
- _cmp(al, data.byte(kLocation));
- if (flags.z())
- goto quittravel;
- getridoftemp();
- getridoftemp2();
- getridoftemp3();
- es = data.word(kTraveltext);
- deallocatemem();
- return;
-quittravel:
- al = data.byte(kReallocation);
- data.byte(kNewlocation) = al;
- data.byte(kGetback) = 0;
- getridoftemp();
- getridoftemp2();
- getridoftemp3();
- es = data.word(kTraveltext);
- deallocatemem();
-}
-
-void DreamGenContext::showcity() {
- STACK_CHECK;
- clearwork();
- ds = data.word(kTempgraphics);
- di = 57;
- bx = 32;
- al = 0;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = 120+57;
- bx = 32;
- al = 1;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::lookatplace() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 224);
- if (flags.z())
- goto alreadyinfo;
- data.byte(kCommandtype) = 224;
- al = 27;
- commandonly();
-alreadyinfo:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (flags.z())
- return /* (noinfo) */;
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (noinfo) */;
- bl = data.byte(kDestpos);
- _cmp(bl, 15);
- if (!flags.c())
- return /* (noinfo) */;
- push(bx);
- delpointer();
- deltextline();
- getundercentre();
- ds = data.word(kTempgraphics3);
- al = 0;
- ah = 0;
- di = 60;
- bx = 72;
- showframe();
- al = 4;
- ah = 0;
- di = 60;
- bx = 72+55;
- showframe();
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp1;
- al = 4;
- ah = 0;
- di = 60;
- bx = 72+55+21;
- showframe();
-_tmp1:
- bx = pop();
- bh = 0;
- _add(bx, bx);
- es = data.word(kTraveltext);
- si = es.word(bx);
- _add(si, (66*2));
- findnextcolon();
- di = 63;
- bx = 84;
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp2;
- bx = 84+4;
-_tmp2:
- dl = 191;
- al = 0;
- ah = 0;
- printdirect();
- worktoscreenm();
- cx = 500;
- hangonp();
- data.byte(kPointermode) = 0;
- data.byte(kPointerframe) = 0;
- putundercentre();
- worktoscreenm();
-}
-
-void DreamGenContext::getundercentre() {
- STACK_CHECK;
- di = 58;
- bx = 72;
- ds = data.word(kMapstore);
- si = 0;
- cl = 254;
- ch = 110;
- multiget();
-}
-
-void DreamGenContext::putundercentre() {
- STACK_CHECK;
- di = 58;
- bx = 72;
- ds = data.word(kMapstore);
- si = 0;
- cl = 254;
- ch = 110;
- multiput();
-}
-
-void DreamGenContext::locationpic() {
- STACK_CHECK;
- getdestinfo();
- al = es.byte(si);
- push(es);
- push(si);
- di = 0;
- _cmp(al, 6);
- if (!flags.c())
- goto secondlot;
- ds = data.word(kTempgraphics);
- _add(al, 4);
- goto gotgraphic;
-secondlot:
- _sub(al, 6);
- ds = data.word(kTempgraphics2);
-gotgraphic:
- _add(di, 104);
- bx = 138+14;
- ah = 0;
- showframe();
- si = pop();
- es = pop();
- al = data.byte(kDestpos);
- _cmp(al, data.byte(kReallocation));
- if (!flags.z())
- goto notinthisone;
- al = 3;
- di = 104;
- bx = 140+14;
- ds = data.word(kTempgraphics);
- ah = 0;
- showframe();
-notinthisone:
- bl = data.byte(kDestpos);
- bh = 0;
- _add(bx, bx);
- es = data.word(kTraveltext);
- si = es.word(bx);
- _add(si, (66*2));
- di = 50;
- bx = 20;
- dl = 241;
- al = 0;
- ah = 0;
- printdirect();
-}
-
-void DreamGenContext::getdestinfo() {
- STACK_CHECK;
- al = data.byte(kDestpos);
- ah = 0;
- push(ax);
- dx = data;
- es = dx;
- si = 8011;
- _add(si, ax);
- cl = es.byte(si);
- ax = pop();
- push(cx);
- dx = data;
- es = dx;
- si = 8027;
- _add(si, ax);
- ax = pop();
-}
-
-void DreamGenContext::showarrows() {
- STACK_CHECK;
- di = 116-12;
- bx = 16;
- ds = data.word(kTempgraphics);
- al = 0;
- ah = 0;
- showframe();
- di = 226+12;
- bx = 16;
- ds = data.word(kTempgraphics);
- al = 1;
- ah = 0;
- showframe();
- di = 280;
- bx = 14;
- ds = data.word(kTempgraphics);
- al = 2;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::nextdest() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 218);
- if (flags.z())
- goto alreadydu;
- data.byte(kCommandtype) = 218;
- al = 28;
- commandonly();
-alreadydu:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (flags.z())
- return /* (nodu) */;
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nodu) */;
-searchdestup:
- _inc(data.byte(kDestpos));
- _cmp(data.byte(kDestpos), 15);
- if (!flags.z())
- goto notlastdest;
- data.byte(kDestpos) = 0;
-notlastdest:
- getdestinfo();
- _cmp(al, 0);
- if (flags.z())
- goto searchdestup;
- data.byte(kNewtextline) = 1;
- deltextline();
- delpointer();
- showpanel();
- showman();
- showarrows();
- locationpic();
- undertextline();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::lastdest() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 219);
- if (flags.z())
- goto alreadydd;
- data.byte(kCommandtype) = 219;
- al = 29;
- commandonly();
-alreadydd:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (flags.z())
- return /* (nodd) */;
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nodd) */;
-searchdestdown:
- _dec(data.byte(kDestpos));
- _cmp(data.byte(kDestpos), -1);
- if (!flags.z())
- goto notfirstdest;
- data.byte(kDestpos) = 15;
-notfirstdest:
- getdestinfo();
- _cmp(al, 0);
- if (flags.z())
- goto searchdestdown;
- data.byte(kNewtextline) = 1;
- deltextline();
- delpointer();
- showpanel();
- showman();
- showarrows();
- locationpic();
- undertextline();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::destselect() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 222);
- if (flags.z())
- goto alreadytrav;
- data.byte(kCommandtype) = 222;
- al = 30;
- commandonly();
-alreadytrav:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (flags.z())
- return /* (notrav) */;
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notrav) */;
- getdestinfo();
- al = data.byte(kDestpos);
- data.byte(kNewlocation) = al;
-}
-
-void DreamGenContext::getlocation() {
- STACK_CHECK;
- ah = 0;
- bx = ax;
- dx = data;
- es = dx;
- _add(bx, 8011);
- al = es.byte(bx);
-}
-
-void DreamGenContext::setlocation() {
- STACK_CHECK;
- ah = 0;
- bx = ax;
- dx = data;
- es = dx;
- _add(bx, 8011);
- es.byte(bx) = 1;
-}
-
-void DreamGenContext::resetlocation() {
- STACK_CHECK;
- push(ax);
- _cmp(al, 5);
- if (!flags.z())
- goto notdelhotel;
- purgealocation();
- al = 21;
- purgealocation();
- al = 22;
- purgealocation();
- al = 27;
- purgealocation();
- goto clearedlocations;
-notdelhotel:
- _cmp(al, 8);
- if (!flags.z())
- goto notdeltvstud;
- purgealocation();
- al = 28;
- purgealocation();
- goto clearedlocations;
-notdeltvstud:
- _cmp(al, 6);
- if (!flags.z())
- goto notdelsarters;
- purgealocation();
- al = 20;
- purgealocation();
- al = 25;
- purgealocation();
- goto clearedlocations;
-notdelsarters:
- _cmp(al, 13);
- if (!flags.z())
- goto notdelboathouse;
- purgealocation();
- al = 29;
- purgealocation();
- goto clearedlocations;
-notdelboathouse:
-clearedlocations:
- ax = pop();
- ah = 0;
- bx = ax;
- dx = data;
- es = dx;
- _add(bx, 8011);
- es.byte(bx) = 0;
-}
-
-void DreamGenContext::readdesticon() {
- STACK_CHECK;
- dx = 2013;
- loadintotemp();
- dx = 2026;
- loadintotemp2();
- dx = 1961;
- loadintotemp3();
-}
-
-void DreamGenContext::readcitypic() {
- STACK_CHECK;
- dx = 2000;
- loadintotemp();
-}
-
-void DreamGenContext::usemon() {
- STACK_CHECK;
- data.byte(kLasttrigger) = 0;
- es = cs;
- di = 2970+1;
- cx = 12;
- al = 32;
- _stosb(cx, true);
- es = cs;
- di = offset_operand1+1;
- cx = 12;
- al = 32;
- _stosb(cx, true);
- es = cs;
- di = offset_keys;
- es.byte(di) = 1;
- _add(di, 26);
- cx = 3;
-keyloop:
- es.byte(di) = 0;
- _add(di, 26);
- if (--cx)
- goto keyloop;
- createpanel();
- showpanel();
- showicon();
- drawfloor();
- getridofall();
- dx = 1974;
- loadintotemp();
- loadpersonal();
- loadnews();
- loadcart();
- dx = 1870;
- loadtempcharset();
- printoutermon();
- initialmoncols();
- printlogo();
- worktoscreen();
- turnonpower();
- fadeupyellows();
- fadeupmonfirst();
- data.word(kMonadx) = 76;
- data.word(kMonady) = 141;
- al = 1;
- monmessage();
- cx = 120;
- hangoncurs();
- al = 2;
- monmessage();
- cx = 60;
- randomaccess();
- al = 3;
- monmessage();
- cx = 100;
- hangoncurs();
- printlogo();
- scrollmonitor();
- data.word(kBufferin) = 0;
- data.word(kBufferout) = 0;
-moreinput:
- di = data.word(kMonadx);
- bx = data.word(kMonady);
- push(di);
- push(bx);
- input();
- bx = pop();
- di = pop();
- data.word(kMonadx) = di;
- data.word(kMonady) = bx;
- execcommand();
- _cmp(al, 0);
- if (flags.z())
- goto moreinput;
- getridoftemp();
- getridoftempcharset();
- es = data.word(kTextfile1);
- deallocatemem();
- es = data.word(kTextfile2);
- deallocatemem();
- es = data.word(kTextfile3);
- deallocatemem();
- data.byte(kGetback) = 1;
- al = 26;
- playchannel1();
- data.byte(kManisoffscreen) = 0;
- restoreall();
- redrawmainscrn();
- worktoscreenm();
-}
-
-void DreamGenContext::printoutermon() {
- STACK_CHECK;
- di = 40;
- bx = 32;
- ds = data.word(kTempgraphics);
- al = 1;
- ah = 0;
- showframe();
- di = 264;
- bx = 32;
- ds = data.word(kTempgraphics);
- al = 2;
- ah = 0;
- showframe();
- di = 40;
- bx = 12;
- ds = data.word(kTempgraphics);
- al = 3;
- ah = 0;
- showframe();
- di = 40;
- bx = 164;
- ds = data.word(kTempgraphics);
- al = 4;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::loadpersonal() {
- STACK_CHECK;
- al = data.byte(kLocation);
- dx = 2052;
- _cmp(al, 0);
- if (flags.z())
- goto foundpersonal;
- _cmp(al, 42);
- if (flags.z())
- goto foundpersonal;
- dx = 2065;
- _cmp(al, 2);
- if (flags.z())
- goto foundpersonal;
-foundpersonal:
- openfile();
- readheader();
- bx = es.word(di);
- push(bx);
- cl = 4;
- _shr(bx, cl);
- allocatemem();
- data.word(kTextfile1) = ax;
- ds = ax;
- cx = pop();
- dx = 0;
- readfromfile();
- closefile();
-}
-
-void DreamGenContext::loadnews() {
- STACK_CHECK;
- al = data.byte(kNewsitem);
- dx = 2078;
- _cmp(al, 0);
- if (flags.z())
- goto foundnews;
- dx = 2091;
- _cmp(al, 1);
- if (flags.z())
- goto foundnews;
- dx = 2104;
- _cmp(al, 2);
- if (flags.z())
- goto foundnews;
- dx = 2117;
-foundnews:
- openfile();
- readheader();
- bx = es.word(di);
- push(bx);
- cl = 4;
- _shr(bx, cl);
- allocatemem();
- data.word(kTextfile2) = ax;
- ds = ax;
- cx = pop();
- dx = 0;
- readfromfile();
- closefile();
-}
-
-void DreamGenContext::loadcart() {
- STACK_CHECK;
- lookininterface();
- dx = 2130;
- _cmp(al, 0);
- if (flags.z())
- goto gotcart;
- dx = 2143;
- _cmp(al, 1);
- if (flags.z())
- goto gotcart;
- dx = 2156;
- _cmp(al, 2);
- if (flags.z())
- goto gotcart;
- dx = 2169;
- _cmp(al, 3);
- if (flags.z())
- goto gotcart;
- dx = 2182;
-gotcart:
- openfile();
- readheader();
- bx = es.word(di);
- push(bx);
- cl = 4;
- _shr(bx, cl);
- allocatemem();
- data.word(kTextfile3) = ax;
- ds = ax;
- cx = pop();
- dx = 0;
- readfromfile();
- closefile();
-}
-
-void DreamGenContext::lookininterface() {
- STACK_CHECK;
- al = 'I';
- ah = 'N';
- cl = 'T';
- ch = 'F';
- findsetobject();
- ah = 1;
- checkinside();
- _cmp(cl, (114));
- if (flags.z())
- goto emptyinterface;
- al = es.byte(bx+15);
- _inc(al);
- return;
-emptyinterface:
- al = 0;
-}
-
-void DreamGenContext::turnonpower() {
- STACK_CHECK;
- cx = 3;
-powerloop:
- push(cx);
- powerlighton();
- cx = 30;
- hangon();
- powerlightoff();
- cx = 30;
- hangon();
- cx = pop();
- if (--cx)
- goto powerloop;
- powerlighton();
-}
-
-void DreamGenContext::randomaccess() {
- STACK_CHECK;
-accessloop:
- push(cx);
- vsync();
- vsync();
- randomnum1();
- _and(al, 15);
- _cmp(al, 10);
- if (flags.c())
- goto off;
- accesslighton();
- goto chosenaccess;
-off:
- accesslightoff();
-chosenaccess:
- cx = pop();
- if (--cx)
- goto accessloop;
- accesslightoff();
-}
-
-void DreamGenContext::powerlighton() {
- STACK_CHECK;
- di = 257+4;
- bx = 182;
- ds = data.word(kTempgraphics);
- al = 6;
- ah = 0;
- push(di);
- push(bx);
- showframe();
- bx = pop();
- di = pop();
- cl = 12;
- ch = 8;
- multidump();
-}
-
-void DreamGenContext::powerlightoff() {
- STACK_CHECK;
- di = 257+4;
- bx = 182;
- ds = data.word(kTempgraphics);
- al = 5;
- ah = 0;
- push(di);
- push(bx);
- showframe();
- bx = pop();
- di = pop();
- cl = 12;
- ch = 8;
- multidump();
-}
-
-void DreamGenContext::accesslighton() {
- STACK_CHECK;
- di = 74;
- bx = 182;
- ds = data.word(kTempgraphics);
- al = 8;
- ah = 0;
- push(di);
- push(bx);
- showframe();
- bx = pop();
- di = pop();
- cl = 12;
- ch = 8;
- multidump();
-}
-
-void DreamGenContext::accesslightoff() {
- STACK_CHECK;
- di = 74;
- bx = 182;
- ds = data.word(kTempgraphics);
- al = 7;
- ah = 0;
- push(di);
- push(bx);
- showframe();
- bx = pop();
- di = pop();
- cl = 12;
- ch = 8;
- multidump();
-}
-
-void DreamGenContext::locklighton() {
- STACK_CHECK;
- di = 56;
- bx = 182;
- ds = data.word(kTempgraphics);
- al = 10;
- ah = 0;
- push(di);
- push(bx);
- showframe();
- bx = pop();
- di = pop();
- cl = 12;
- ch = 8;
- multidump();
-}
-
-void DreamGenContext::locklightoff() {
- STACK_CHECK;
- di = 56;
- bx = 182;
- ds = data.word(kTempgraphics);
- al = 9;
- ah = 0;
- push(di);
- push(bx);
- showframe();
- bx = pop();
- di = pop();
- cl = 12;
- ch = 8;
- multidump();
-}
-
-void DreamGenContext::input() {
- STACK_CHECK;
- es = cs;
- di = 8045;
- cx = 64;
- al = 0;
- _stosb(cx, true);
- data.word(kCurpos) = 0;
- al = '>';
- di = data.word(kMonadx);
- bx = data.word(kMonady);
- ds = data.word(kTempcharset);
- ah = 0;
- printchar();
- di = data.word(kMonadx);
- bx = data.word(kMonady);
- cl = 6;
- ch = 8;
- multidump();
- _add(data.word(kMonadx), 6);
- ax = data.word(kMonadx);
- data.word(kCurslocx) = ax;
- ax = data.word(kMonady);
- data.word(kCurslocy) = ax;
-waitkey:
- printcurs();
- vsync();
- delcurs();
- readkey();
- al = data.byte(kCurrentkey);
- _cmp(al, 0);
- if (flags.z())
- goto waitkey;
- _cmp(al, 13);
- if (flags.z())
- return /* (endofinput) */;
- _cmp(al, 8);
- if (!flags.z())
- goto notdel;
- _cmp(data.word(kCurpos), 0);
- if (flags.z())
- goto waitkey;
- delchar();
- goto waitkey;
-notdel:
- _cmp(data.word(kCurpos), 28);
- if (flags.z())
- goto waitkey;
- _cmp(data.byte(kCurrentkey), 32);
- if (!flags.z())
- goto notleadingspace;
- _cmp(data.word(kCurpos), 0);
- if (flags.z())
- goto waitkey;
-notleadingspace:
- makecaps();
- es = cs;
- si = data.word(kCurpos);
- _add(si, si);
- _add(si, 8045);
- es.byte(si) = al;
- _cmp(al, 'Z'+1);
- if (!flags.c())
- goto waitkey;
- push(ax);
- push(es);
- push(si);
- di = data.word(kMonadx);
- bx = data.word(kMonady);
- ds = data.word(kMapstore);
- ax = data.word(kCurpos);
- _xchg(al, ah);
- si = ax;
- cl = 8;
- ch = 8;
- multiget();
- si = pop();
- es = pop();
- ax = pop();
- push(es);
- push(si);
- di = data.word(kMonadx);
- bx = data.word(kMonady);
- ds = data.word(kTempcharset);
- ah = 0;
- printchar();
- si = pop();
- es = pop();
- es.byte(si+1) = cl;
- ch = 0;
- _add(data.word(kMonadx), cx);
- _inc(data.word(kCurpos));
- _add(data.word(kCurslocx), cx);
- goto waitkey;
-}
-
-void DreamGenContext::makecaps() {
- STACK_CHECK;
- _cmp(al, 'a');
- if (flags.c())
- return /* (notupperc) */;
- _sub(al, 32);
-}
-
-void DreamGenContext::delchar() {
- STACK_CHECK;
- _dec(data.word(kCurpos));
- si = data.word(kCurpos);
- _add(si, si);
- es = cs;
- _add(si, 8045);
- es.byte(si) = 0;
- al = es.byte(si+1);
- ah = 0;
- _sub(data.word(kMonadx), ax);
- _sub(data.word(kCurslocx), ax);
- di = data.word(kMonadx);
- bx = data.word(kMonady);
- ds = data.word(kMapstore);
- ax = data.word(kCurpos);
- _xchg(al, ah);
- si = ax;
- cl = 8;
- ch = 8;
- multiput();
- di = data.word(kMonadx);
- bx = data.word(kMonady);
- cl = al;
- ch = 8;
- multidump();
-}
-
-void DreamGenContext::execcommand() {
- STACK_CHECK;
- es = cs;
- bx = offset_comlist;
- ds = cs;
- si = 8045;
- al = ds.byte(si);
- _cmp(al, 0);
- if (!flags.z())
- goto notblankinp;
- scrollmonitor();
- return;
-notblankinp:
- cl = 0;
-comloop:
- push(bx);
- push(si);
-comloop2:
- al = ds.byte(si);
- _add(si, 2);
- ah = es.byte(bx);
- _inc(bx);
- _cmp(ah, 32);
- if (flags.z())
- goto foundcom;
- _cmp(al, ah);
- if (flags.z())
- goto comloop2;
- si = pop();
- bx = pop();
- _add(bx, 10);
- _inc(cl);
- _cmp(cl, 6);
- if (!flags.z())
- goto comloop;
- neterror();
- al = 0;
- return;
-foundcom:
- si = pop();
- bx = pop();
- _cmp(cl, 1);
- if (flags.z())
- goto testcom;
- _cmp(cl, 2);
- if (flags.z())
- goto directory;
- _cmp(cl, 3);
- if (flags.z())
- goto accesscom;
- _cmp(cl, 4);
- if (flags.z())
- goto signoncom;
- _cmp(cl, 5);
- if (flags.z())
- goto keyscom;
- goto quitcom;
-directory:
- dircom();
- al = 0;
- return;
-signoncom:
- signon();
- al = 0;
- return;
-accesscom:
- read();
- al = 0;
- return;
-keyscom:
- showkeys();
- al = 0;
- return;
-testcom:
- al = 6;
- monmessage();
- al = 0;
- return;
-quitcom:
- al = 1;
-}
-
-void DreamGenContext::neterror() {
- STACK_CHECK;
- al = 5;
- monmessage();
- scrollmonitor();
-}
-
-void DreamGenContext::dircom() {
- STACK_CHECK;
- cx = 30;
- randomaccess();
- parser();
- _cmp(es.byte(di+1), 0);
- if (flags.z())
- goto dirroot;
- dirfile();
- return;
-dirroot:
- data.byte(kLogonum) = 0;
- ds = cs;
- si = offset_rootdir;
- _inc(si);
- es = cs;
- di = 2970;
- _inc(di);
- cx = 12;
- _movsb(cx, true);
- monitorlogo();
- scrollmonitor();
- al = 9;
- monmessage();
- es = data.word(kTextfile1);
- searchforfiles();
- es = data.word(kTextfile2);
- searchforfiles();
- es = data.word(kTextfile3);
- searchforfiles();
- scrollmonitor();
-}
-
-void DreamGenContext::searchforfiles() {
- STACK_CHECK;
- bx = (66*2);
-directloop1:
- al = es.byte(bx);
- _inc(bx);
- _cmp(al, '*');
- if (flags.z())
- return /* (endofdir) */;
- _cmp(al, 34);
- if (!flags.z())
- goto directloop1;
- monprint();
- goto directloop1;
-}
-
-void DreamGenContext::signon() {
- STACK_CHECK;
- parser();
- _inc(di);
- ds = cs;
- si = offset_keys;
- cx = 4;
-signonloop:
- push(cx);
- push(si);
- push(di);
- _add(si, 14);
- cx = 11;
-signonloop2:
- _lodsb();
- _cmp(al, 32);
- if (flags.z())
- goto foundsign;
- makecaps();
- ah = es.byte(di);
- _inc(di);
- _cmp(al, ah);
- if (!flags.z())
- goto nomatch;
- if (--cx)
- goto signonloop2;
-nomatch:
- di = pop();
- si = pop();
- cx = pop();
- _add(si, 26);
- if (--cx)
- goto signonloop;
- al = 13;
- monmessage();
- return;
-foundsign:
- di = pop();
- si = pop();
- cx = pop();
- bx = si;
- es = ds;
- _cmp(es.byte(bx), 0);
- if (flags.z())
- goto notyetassigned;
- al = 17;
- monmessage();
- return;
-notyetassigned:
- push(es);
- push(bx);
- scrollmonitor();
- al = 15;
- monmessage();
- di = data.word(kMonadx);
- bx = data.word(kMonady);
- push(di);
- push(bx);
- input();
- bx = pop();
- di = pop();
- data.word(kMonadx) = di;
- data.word(kMonady) = bx;
- bx = pop();
- es = pop();
- push(es);
- push(bx);
- _add(bx, 2);
- ds = cs;
- si = 8045;
-checkpass:
- _lodsw();
- ah = es.byte(bx);
- _inc(bx);
- _cmp(ah, 32);
- if (flags.z())
- goto passpassed;
- _cmp(al, ah);
- if (flags.z())
- goto checkpass;
- bx = pop();
- es = pop();
- scrollmonitor();
- al = 16;
- monmessage();
- return;
-passpassed:
- al = 14;
- monmessage();
- bx = pop();
- es = pop();
- push(es);
- push(bx);
- _add(bx, 14);
- monprint();
- scrollmonitor();
- bx = pop();
- es = pop();
- es.byte(bx) = 1;
-}
-
-void DreamGenContext::showkeys() {
- STACK_CHECK;
- cx = 10;
- randomaccess();
- scrollmonitor();
- al = 18;
- monmessage();
- es = cs;
- bx = offset_keys;
- cx = 4;
-keysloop:
- push(cx);
- push(bx);
- _cmp(es.byte(bx), 0);
- if (flags.z())
- goto notheld;
- _add(bx, 14);
- monprint();
-notheld:
- bx = pop();
- cx = pop();
- _add(bx, 26);
- if (--cx)
- goto keysloop;
- scrollmonitor();
-}
-
-void DreamGenContext::read() {
- STACK_CHECK;
- cx = 40;
- randomaccess();
- parser();
- _cmp(es.byte(di+1), 0);
- if (!flags.z())
- goto okcom;
- neterror();
- return;
-okcom:
- es = cs;
- di = 2970;
- ax = data.word(kTextfile1);
- data.word(kMonsource) = ax;
- ds = ax;
- si = (66*2);
- searchforstring();
- _cmp(al, 0);
- if (flags.z())
- goto foundfile2;
- ax = data.word(kTextfile2);
- data.word(kMonsource) = ax;
- ds = ax;
- si = (66*2);
- searchforstring();
- _cmp(al, 0);
- if (flags.z())
- goto foundfile2;
- ax = data.word(kTextfile3);
- data.word(kMonsource) = ax;
- ds = ax;
- si = (66*2);
- searchforstring();
- _cmp(al, 0);
- if (flags.z())
- goto foundfile2;
- al = 7;
- monmessage();
- return;
-foundfile2:
- getkeyandlogo();
- _cmp(al, 0);
- if (flags.z())
- goto keyok1;
- return;
-keyok1:
- es = cs;
- di = offset_operand1;
- ds = data.word(kMonsource);
- searchforstring();
- _cmp(al, 0);
- if (flags.z())
- goto findtopictext;
- al = data.byte(kOldlogonum);
- data.byte(kLogonum) = al;
- al = 11;
- monmessage();
- return;
-findtopictext:
- _inc(bx);
- push(es);
- push(bx);
- monitorlogo();
- scrollmonitor();
- bx = pop();
- es = pop();
-moretopic:
- monprint();
- al = es.byte(bx);
- _cmp(al, 34);
- if (flags.z())
- goto endoftopic;
- _cmp(al, '=');
- if (flags.z())
- goto endoftopic;
- _cmp(al, '*');
- if (flags.z())
- goto endoftopic;
- push(es);
- push(bx);
- processtrigger();
- cx = 24;
- randomaccess();
- bx = pop();
- es = pop();
- goto moretopic;
-endoftopic:
- scrollmonitor();
-}
-
-void DreamGenContext::dirfile() {
- STACK_CHECK;
- al = 34;
- es.byte(di) = al;
- push(es);
- push(di);
- ds = data.word(kTextfile1);
- si = (66*2);
- searchforstring();
- _cmp(al, 0);
- if (flags.z())
- goto foundfile;
- di = pop();
- es = pop();
- push(es);
- push(di);
- ds = data.word(kTextfile2);
- si = (66*2);
- searchforstring();
- _cmp(al, 0);
- if (flags.z())
- goto foundfile;
- di = pop();
- es = pop();
- push(es);
- push(di);
- ds = data.word(kTextfile3);
- si = (66*2);
- searchforstring();
- _cmp(al, 0);
- if (flags.z())
- goto foundfile;
- di = pop();
- es = pop();
- al = 7;
- monmessage();
- return;
-foundfile:
- ax = pop();
- ax = pop();
- getkeyandlogo();
- _cmp(al, 0);
- if (flags.z())
- goto keyok2;
- return;
-keyok2:
- push(es);
- push(bx);
- ds = cs;
- si = offset_operand1+1;
- es = cs;
- di = 2970+1;
- cx = 12;
- _movsb(cx, true);
- monitorlogo();
- scrollmonitor();
- al = 10;
- monmessage();
- bx = pop();
- es = pop();
-directloop2:
- al = es.byte(bx);
- _inc(bx);
- _cmp(al, 34);
- if (flags.z())
- goto endofdir2;
- _cmp(al, '*');
- if (flags.z())
- goto endofdir2;
- _cmp(al, '=');
- if (!flags.z())
- goto directloop2;
- monprint();
- goto directloop2;
-endofdir2:
- scrollmonitor();
-}
-
-void DreamGenContext::getkeyandlogo() {
- STACK_CHECK;
- _inc(bx);
- al = es.byte(bx);
- _sub(al, 48);
- data.byte(kNewlogonum) = al;
- _add(bx, 2);
- al = es.byte(bx);
- _sub(al, 48);
- data.byte(kKeynum) = al;
- _inc(bx);
- push(es);
- push(bx);
- al = data.byte(kKeynum);
- ah = 0;
- cx = 26;
- _mul(cx);
- es = cs;
- bx = offset_keys;
- _add(bx, ax);
- al = es.byte(bx);
- _cmp(al, 1);
- if (flags.z())
- goto keyok;
- push(bx);
- push(es);
- al = 12;
- monmessage();
- es = pop();
- bx = pop();
- _add(bx, 14);
- monprint();
- scrollmonitor();
- bx = pop();
- es = pop();
- al = 1;
- return;
-keyok:
- bx = pop();
- es = pop();
- al = data.byte(kNewlogonum);
- data.byte(kLogonum) = al;
- al = 0;
-}
-
-void DreamGenContext::searchforstring() {
- STACK_CHECK;
- dl = es.byte(di);
- cx = di;
-restartlook:
- di = cx;
- bx = si;
- dh = 0;
-keeplooking:
- _lodsb();
- makecaps();
- _cmp(al, '*');
- if (flags.z())
- goto notfound;
- _cmp(dl, '=');
- if (!flags.z())
- goto nofindingtopic;
- _cmp(al, 34);
- if (flags.z())
- goto notfound;
-nofindingtopic:
- ah = es.byte(di);
- _cmp(al, dl);
- if (!flags.z())
- goto notbracket;
- _inc(dh);
- _cmp(dh, 2);
- if (flags.z())
- goto complete;
-notbracket:
- _cmp(al, ah);
- if (!flags.z())
- goto restartlook;
- _inc(di);
- goto keeplooking;
-complete:
- es = ds;
- al = 0;
- bx = si;
- return;
-notfound:
- al = 1;
-}
-
-void DreamGenContext::parser() {
- STACK_CHECK;
- es = cs;
- di = offset_operand1;
- cx = 13;
- al = 0;
- _stosb(cx, true);
- di = offset_operand1;
- al = '=';
- _stosb();
- ds = cs;
- si = 8045;
-notspace1:
- _lodsw();
- _cmp(al, 32);
- if (flags.z())
- goto stillspace1;
- _cmp(al, 0);
- if (!flags.z())
- goto notspace1;
- goto finishpars;
-stillspace1:
- _lodsw();
- _cmp(al, 32);
- if (flags.z())
- goto stillspace1;
-copyin1:
- _stosb();
- _lodsw();
- _cmp(al, 0);
- if (flags.z())
- goto finishpars;
- _cmp(al, 32);
- if (!flags.z())
- goto copyin1;
-finishpars:
- di = offset_operand1;
-}
-
-void DreamGenContext::scrollmonitor() {
- STACK_CHECK;
- push(ax);
- push(bx);
- push(cx);
- push(dx);
- push(di);
- push(si);
- push(es);
- push(ds);
- printlogo();
- di = data.word(kMonadx);
- bx = data.word(kMonady);
- printundermon();
- ax = data.word(kMonady);
- worktoscreen();
- al = 25;
- playchannel1();
- ds = pop();
- es = pop();
- si = pop();
- di = pop();
- dx = pop();
- cx = pop();
- bx = pop();
- ax = pop();
-}
-
-void DreamGenContext::monitorlogo() {
- STACK_CHECK;
- al = data.byte(kLogonum);
- _cmp(al, data.byte(kOldlogonum));
- if (flags.z())
- goto notnewlogo;
- data.byte(kOldlogonum) = al;
- printlogo();
- printundermon();
- worktoscreen();
- printlogo();
- printlogo();
- al = 26;
- playchannel1();
- cx = 20;
- randomaccess();
- return;
-notnewlogo:
- printlogo();
-}
-
-void DreamGenContext::printlogo() {
- STACK_CHECK;
- di = 56;
- bx = 32;
- ds = data.word(kTempgraphics);
- al = 0;
- ah = 0;
- showframe();
- showcurrentfile();
-}
-
-void DreamGenContext::showcurrentfile() {
- STACK_CHECK;
- di = 178;
- bx = 37;
- si = 2970+1;
-curfileloop:
- al = cs.byte(si);
- _cmp(al, 0);
- if (flags.z())
- return /* (finishfile) */;
- _inc(si);
- push(si);
- modifychar();
- ds = data.word(kTempcharset);
- ah = 0;
- printchar();
- si = pop();
- goto curfileloop;
-}
-
-void DreamGenContext::monmessage() {
- STACK_CHECK;
- es = data.word(kTextfile1);
- bx = (66*2);
- cl = al;
- ch = 0;
-monmessageloop:
- al = es.byte(bx);
- _inc(bx);
- _cmp(al, '+');
- if (!flags.z())
- goto monmessageloop;
- if (--cx)
- goto monmessageloop;
- monprint();
-}
-
-void DreamGenContext::processtrigger() {
- STACK_CHECK;
- _cmp(data.byte(kLasttrigger), '1');
- if (!flags.z())
- goto notfirsttrigger;
- al = 8;
- setlocation();
- al = 45;
- triggermessage();
- return;
-notfirsttrigger:
- _cmp(data.byte(kLasttrigger), '2');
- if (!flags.z())
- goto notsecondtrigger;
- al = 9;
- setlocation();
- al = 55;
- triggermessage();
- return;
-notsecondtrigger:
- _cmp(data.byte(kLasttrigger), '3');
- if (!flags.z())
- return /* (notthirdtrigger) */;
- al = 2;
- setlocation();
- al = 59;
- triggermessage();
-}
-
-void DreamGenContext::triggermessage() {
- STACK_CHECK;
- push(ax);
- di = 174;
- bx = 153;
- cl = 200;
- ch = 63;
- ds = data.word(kMapstore);
- si = 0;
- multiget();
- ax = pop();
- findpuztext();
- di = 174;
- bx = 156;
- dl = 141;
- ah = 16;
- printdirect();
- cx = 140;
- hangon();
- worktoscreen();
- cx = 340;
- hangon();
- di = 174;
- bx = 153;
- cl = 200;
- ch = 63;
- ds = data.word(kMapstore);
- si = 0;
- multiput();
- worktoscreen();
- data.byte(kLasttrigger) = 0;
-}
-
-void DreamGenContext::printcurs() {
- STACK_CHECK;
- push(si);
- push(di);
- push(ds);
- push(dx);
- push(bx);
- push(es);
- di = data.word(kCurslocx);
- bx = data.word(kCurslocy);
- cl = 6;
- ch = 8;
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp1;
- _sub(bx, 3);
- ch = 11;
-_tmp1:
- ds = data.word(kBuffers);
- si = (0);
- push(di);
- push(bx);
- multiget();
- bx = pop();
- di = pop();
- push(bx);
- push(di);
- _inc(data.word(kMaintimer));
- ax = data.word(kMaintimer);
- _and(al, 16);
- if (!flags.z())
- goto flashcurs;
- al = '/';
- _sub(al, 32);
- ah = 0;
- ds = data.word(kTempcharset);
- showframe();
-flashcurs:
- di = pop();
- bx = pop();
- _sub(di, 6);
- cl = 12;
- ch = 8;
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp2;
- ch = 11;
-_tmp2:
- multidump();
- es = pop();
- bx = pop();
- dx = pop();
- ds = pop();
- di = pop();
- si = pop();
-}
-
-void DreamGenContext::delcurs() {
- STACK_CHECK;
- push(es);
- push(bx);
- push(di);
- push(ds);
- push(dx);
- push(si);
- di = data.word(kCurslocx);
- bx = data.word(kCurslocy);
- cl = 6;
- ch = 8;
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp1;
- _sub(bx, 3);
- ch = 11;
-_tmp1:
- push(di);
- push(bx);
- push(cx);
- ds = data.word(kBuffers);
- si = (0);
- multiput();
- cx = pop();
- bx = pop();
- di = pop();
- multidump();
- si = pop();
- dx = pop();
- ds = pop();
- di = pop();
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::useobject() {
- STACK_CHECK;
- data.byte(kWithobject) = 255;
- _cmp(data.byte(kCommandtype), 229);
- if (flags.z())
- goto alreadyuse;
- data.byte(kCommandtype) = 229;
- bl = data.byte(kCommand);
- bh = data.byte(kObjecttype);
- al = 51;
- commandwithob();
-alreadyuse:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nouse) */;
- _and(ax, 1);
- if (!flags.z())
- goto douse;
- return;
-douse:
- useroutine();
-}
-
-void DreamGenContext::wheelsound() {
- STACK_CHECK;
- al = 17;
- playchannel1();
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::runtap() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto tapwith;
- withwhat();
- return;
-tapwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'C';
- ch = 'U';
- dl = 'P';
- dh = 'E';
- compare();
- if (flags.z())
- goto fillcupfromtap;
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'C';
- ch = 'U';
- dl = 'P';
- dh = 'F';
- compare();
- if (flags.z())
- goto cupfromtapfull;
- cx = 300;
- al = 56;
- showpuztext();
- putbackobstuff();
- return;
-fillcupfromtap:
- al = data.byte(kWithobject);
- getexad();
- es.byte(bx+15) = 'F'-'A';
- al = 8;
- playchannel1();
- cx = 300;
- al = 57;
- showpuztext();
- putbackobstuff();
- return;
-cupfromtapfull:
- cx = 300;
- al = 58;
- showpuztext();
- putbackobstuff();
-}
-
-void DreamGenContext::playguitar() {
- STACK_CHECK;
- al = 14;
- playchannel1();
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::hotelcontrol() {
- STACK_CHECK;
- _cmp(data.byte(kReallocation), 21);
- if (!flags.z())
- goto notrightcont;
- _cmp(data.byte(kMapx), 33);
- if (!flags.z())
- goto notrightcont;
- showfirstuse();
- putbackobstuff();
- return;
-notrightcont:
- showseconduse();
- putbackobstuff();
-}
-
-void DreamGenContext::hotelbell() {
- STACK_CHECK;
- al = 12;
- playchannel1();
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::opentomb() {
- STACK_CHECK;
- _inc(data.byte(kProgresspoints));
- showfirstuse();
- data.word(kWatchingtime) = 35*2;
- data.word(kReeltowatch) = 1;
- data.word(kEndwatchreel) = 33;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::usetrainer() {
- STACK_CHECK;
- getanyad();
- _cmp(es.byte(bx+2), 4);
- if (!flags.z())
- goto notheldtrainer;
- _inc(data.byte(kProgresspoints));
- makeworn();
- showseconduse();
- putbackobstuff();
- return;
-notheldtrainer:
- nothelderror();
-}
-
-void DreamGenContext::nothelderror() {
- STACK_CHECK;
- createpanel();
- showpanel();
- showman();
- showexit();
- obicons();
- di = 64;
- bx = 100;
- al = 63;
- ah = 1;
- dl = 201;
- printmessage2();
- worktoscreenm();
- cx = 50;
- hangonp();
- putbackobstuff();
-}
-
-void DreamGenContext::usepipe() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto pipewith;
- withwhat();
- return;
-pipewith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'C';
- ch = 'U';
- dl = 'P';
- dh = 'E';
- compare();
- if (flags.z())
- goto fillcup;
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'C';
- ch = 'U';
- dl = 'P';
- dh = 'F';
- compare();
- if (flags.z())
- goto alreadyfull;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-fillcup:
- cx = 300;
- al = 36;
- showpuztext();
- putbackobstuff();
- al = data.byte(kWithobject);
- getexad();
- es.byte(bx+15) = 'F'-'A';
- return;
-alreadyfull:
- cx = 300;
- al = 35;
- showpuztext();
- putbackobstuff();
-}
-
-void DreamGenContext::usefullcart() {
- STACK_CHECK;
- _inc(data.byte(kProgresspoints));
- al = 2;
- ah = data.byte(kRoomnum);
- _add(ah, 6);
- turnanypathon();
- data.byte(kManspath) = 4;
- data.byte(kFacing) = 4;
- data.byte(kTurntoface) = 4;
- data.byte(kFinaldest) = 4;
- findxyfrompath();
- data.byte(kResetmanxy) = 1;
- showfirstuse();
- data.word(kWatchingtime) = 72*2;
- data.word(kReeltowatch) = 58;
- data.word(kEndwatchreel) = 142;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::useplinth() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto plinthwith;
- withwhat();
- return;
-plinthwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'D';
- ch = 'K';
- dl = 'E';
- dh = 'Y';
- compare();
- if (flags.z())
- goto isrightkey;
- showfirstuse();
- putbackobstuff();
- return;
-isrightkey:
- _inc(data.byte(kProgresspoints));
- showseconduse();
- data.word(kWatchingtime) = 220;
- data.word(kReeltowatch) = 0;
- data.word(kEndwatchreel) = 104;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
- al = data.byte(kRoomafterdream);
- data.byte(kNewlocation) = al;
-}
-
-void DreamGenContext::chewy() {
- STACK_CHECK;
- showfirstuse();
- getanyad();
- es.byte(bx+2) = 255;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::useladder() {
- STACK_CHECK;
- showfirstuse();
- _sub(data.byte(kMapx), 11);
- findroominloc();
- data.byte(kFacing) = 6;
- data.byte(kTurntoface) = 6;
- data.byte(kManspath) = 0;
- data.byte(kDestination) = 0;
- data.byte(kFinaldest) = 0;
- findxyfrompath();
- data.byte(kResetmanxy) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::useladderb() {
- STACK_CHECK;
- showfirstuse();
- _add(data.byte(kMapx), 11);
- findroominloc();
- data.byte(kFacing) = 2;
- data.byte(kTurntoface) = 2;
- data.byte(kManspath) = 1;
- data.byte(kDestination) = 1;
- data.byte(kFinaldest) = 1;
- findxyfrompath();
- data.byte(kResetmanxy) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::slabdoora() {
- STACK_CHECK;
- showfirstuse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 13;
- _cmp(data.byte(kDreamnumber), 3);
- if (!flags.z())
- goto slabawrong;
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 42;
- data.byte(kNewlocation) = 47;
- return;
-slabawrong:
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 34;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
-void DreamGenContext::slabdoorb() {
- STACK_CHECK;
- _cmp(data.byte(kDreamnumber), 1);
- if (!flags.z())
- goto slabbwrong;
- al = 'S';
- ah = 'H';
- cl = 'L';
- ch = 'D';
- isryanholding();
- if (!flags.z())
- goto gotcrystal;
- al = 44;
- cx = 200;
- showpuztext();
- putbackobstuff();
- return;
-gotcrystal:
- showfirstuse();
- _inc(data.byte(kProgresspoints));
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 44;
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 71;
- data.byte(kNewlocation) = 47;
- return;
-slabbwrong:
- showfirstuse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 44;
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 63;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
-void DreamGenContext::slabdoord() {
- STACK_CHECK;
- showfirstuse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 75;
- _cmp(data.byte(kDreamnumber), 0);
- if (!flags.z())
- goto slabcwrong;
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 102;
- data.byte(kNewlocation) = 47;
- return;
-slabcwrong:
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 94;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
-void DreamGenContext::slabdoorc() {
- STACK_CHECK;
- showfirstuse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 108;
- _cmp(data.byte(kDreamnumber), 4);
- if (!flags.z())
- goto slabdwrong;
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 135;
- data.byte(kNewlocation) = 47;
- return;
-slabdwrong:
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 127;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
-void DreamGenContext::slabdoore() {
- STACK_CHECK;
- showfirstuse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 141;
- _cmp(data.byte(kDreamnumber), 5);
- if (!flags.z())
- goto slabewrong;
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 168;
- data.byte(kNewlocation) = 47;
- return;
-slabewrong:
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 160;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
-void DreamGenContext::slabdoorf() {
- STACK_CHECK;
- showfirstuse();
- data.byte(kGetback) = 1;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kReeltowatch) = 171;
- _cmp(data.byte(kDreamnumber), 2);
- if (!flags.z())
- goto slabfwrong;
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 60;
- data.word(kEndwatchreel) = 197;
- data.byte(kNewlocation) = 47;
- return;
-slabfwrong:
- data.word(kWatchingtime) = 40;
- data.word(kEndwatchreel) = 189;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
-void DreamGenContext::useslab() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto slabwith;
- withwhat();
- return;
-slabwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'J';
- ch = 'E';
- dl = 'W';
- dh = 'L';
- compare();
- if (flags.z())
- goto nextslab;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-nextslab:
- al = data.byte(kWithobject);
- getexad();
- es.byte(bx+2) = 0;
- al = data.byte(kCommand);
- push(ax);
- removesetobject();
- ax = pop();
- _inc(al);
- push(ax);
- placesetobject();
- ax = pop();
- _cmp(al, 54);
- if (!flags.z())
- goto notlastslab;
- al = 0;
- turnpathon();
- data.word(kWatchingtime) = 22;
- data.word(kReeltowatch) = 35;
- data.word(kEndwatchreel) = 48;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-notlastslab:
- _inc(data.byte(kProgresspoints));
- showfirstuse();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::usecart() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto cartwith;
- withwhat();
- return;
-cartwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'R';
- ch = 'O';
- dl = 'C';
- dh = 'K';
- compare();
- if (flags.z())
- goto nextcart;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-nextcart:
- al = data.byte(kWithobject);
- getexad();
- es.byte(bx+2) = 0;
- al = data.byte(kCommand);
- push(ax);
- removesetobject();
- ax = pop();
- _inc(al);
- placesetobject();
- _inc(data.byte(kProgresspoints));
- al = 17;
- playchannel1();
- showfirstuse();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::useclearbox() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto clearboxwith;
- withwhat();
- return;
-clearboxwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'R';
- ch = 'A';
- dl = 'I';
- dh = 'L';
- compare();
- if (flags.z())
- goto openbox;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-openbox:
- _inc(data.byte(kProgresspoints));
- showfirstuse();
- data.word(kWatchingtime) = 80;
- data.word(kReeltowatch) = 67;
- data.word(kEndwatchreel) = 105;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::usecoveredbox() {
- STACK_CHECK;
- _inc(data.byte(kProgresspoints));
- showfirstuse();
- data.word(kWatchingtime) = 50;
- data.word(kReeltowatch) = 41;
- data.word(kEndwatchreel) = 66;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::userailing() {
- STACK_CHECK;
- showfirstuse();
- data.word(kWatchingtime) = 80;
- data.word(kReeltowatch) = 0;
- data.word(kEndwatchreel) = 30;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
- data.byte(kMandead) = 4;
-}
-
-void DreamGenContext::useopenbox() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto openboxwith;
- withwhat();
- return;
-openboxwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'C';
- ch = 'U';
- dl = 'P';
- dh = 'F';
- compare();
- if (flags.z())
- goto destoryopenbox;
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'C';
- ch = 'U';
- dl = 'P';
- dh = 'E';
- compare();
- if (flags.z())
- goto openboxwrong;
- showfirstuse();
- return;
-destoryopenbox:
- _inc(data.byte(kProgresspoints));
- cx = 300;
- al = 37;
- showpuztext();
- al = data.byte(kWithobject);
- getexad();
- es.byte(bx+15) = 'E'-'A';
- data.word(kWatchingtime) = 140;
- data.word(kReeltowatch) = 105;
- data.word(kEndwatchreel) = 181;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- al = 4;
- turnpathon();
- data.byte(kGetback) = 1;
- return;
-openboxwrong:
- cx = 300;
- al = 38;
- showpuztext();
- putbackobstuff();
-}
-
-void DreamGenContext::wearwatch() {
- STACK_CHECK;
- _cmp(data.byte(kWatchon), 1);
- if (flags.z())
- goto wearingwatch;
- showfirstuse();
- data.byte(kWatchon) = 1;
- data.byte(kGetback) = 1;
- getanyad();
- makeworn();
- return;
-wearingwatch:
- showseconduse();
- putbackobstuff();
-}
-
-void DreamGenContext::wearshades() {
- STACK_CHECK;
- _cmp(data.byte(kShadeson), 1);
- if (flags.z())
- goto wearingshades;
- data.byte(kShadeson) = 1;
- showfirstuse();
- data.byte(kGetback) = 1;
- getanyad();
- makeworn();
- return;
-wearingshades:
- showseconduse();
- putbackobstuff();
-}
-
-void DreamGenContext::sitdowninbar() {
- STACK_CHECK;
- _cmp(data.byte(kWatchmode), -1);
- if (!flags.z())
- goto satdown;
- showfirstuse();
- data.word(kWatchingtime) = 50;
- data.word(kReeltowatch) = 55;
- data.word(kEndwatchreel) = 71;
- data.word(kReeltohold) = 73;
- data.word(kEndofholdreel) = 83;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
- return;
-satdown:
- showseconduse();
- putbackobstuff();
-}
-
-void DreamGenContext::usechurchhole() {
- STACK_CHECK;
- showfirstuse();
- data.byte(kGetback) = 1;
- data.word(kWatchingtime) = 28;
- data.word(kReeltowatch) = 13;
- data.word(kEndwatchreel) = 26;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
-}
-
-void DreamGenContext::usehole() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto holewith;
- withwhat();
- return;
-holewith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'H';
- ch = 'N';
- dl = 'D';
- dh = 'A';
- compare();
- if (flags.z())
- goto righthand;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-righthand:
- showfirstuse();
- al = 86;
- removesetobject();
- al = data.byte(kWithobject);
- getexad();
- es.byte(bx+2) = 255;
- data.byte(kCanmovealtar) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::usealtar() {
- STACK_CHECK;
- al = 'C';
- ah = 'N';
- cl = 'D';
- ch = 'A';
- findexobject();
- _cmp(al, (114));
- if (flags.z())
- goto thingsonaltar;
- al = 'C';
- ah = 'N';
- cl = 'D';
- ch = 'B';
- findexobject();
- _cmp(al, (114));
- if (flags.z())
- goto thingsonaltar;
- _cmp(data.byte(kCanmovealtar), 1);
- if (flags.z())
- goto movealtar;
- cx = 300;
- al = 23;
- showpuztext();
- data.byte(kGetback) = 1;
- return;
-movealtar:
- _inc(data.byte(kProgresspoints));
- showseconduse();
- data.word(kWatchingtime) = 160;
- data.word(kReeltowatch) = 81;
- data.word(kEndwatchreel) = 174;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- al = 47;
- bl = 52;
- bh = 76;
- cx = 32;
- dx = 98;
- setuptimeduse();
- data.byte(kGetback) = 1;
- return;
-thingsonaltar:
- showfirstuse();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::opentvdoor() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto tvdoorwith;
- withwhat();
- return;
-tvdoorwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'U';
- ch = 'L';
- dl = 'O';
- dh = 'K';
- compare();
- if (flags.z())
- goto keyontv;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-keyontv:
- showfirstuse();
- data.byte(kLockstatus) = 0;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::usedryer() {
- STACK_CHECK;
- al = 12;
- playchannel1();
- showfirstuse();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::openlouis() {
- STACK_CHECK;
- al = 5;
- ah = 2;
- cl = 3;
- ch = 8;
- entercode();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::nextcolon() {
- STACK_CHECK;
-lookcolon:
- al = es.byte(si);
- _inc(si);
- _cmp(al, ':');
- if (!flags.z())
- goto lookcolon;
-}
-
-void DreamGenContext::openyourneighbour() {
- STACK_CHECK;
- al = 255;
- ah = 255;
- cl = 255;
- ch = 255;
- entercode();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::usewindow() {
- STACK_CHECK;
- _cmp(data.byte(kManspath), 6);
- if (!flags.z())
- goto notonbalc;
- _inc(data.byte(kProgresspoints));
- showfirstuse();
- data.byte(kNewlocation) = 29;
- data.byte(kGetback) = 1;
- return;
-notonbalc:
- showseconduse();
- putbackobstuff();
-}
-
-void DreamGenContext::usebalcony() {
- STACK_CHECK;
- showfirstuse();
- al = 6;
- turnpathon();
- al = 0;
- turnpathoff();
- al = 1;
- turnpathoff();
- al = 2;
- turnpathoff();
- al = 3;
- turnpathoff();
- al = 4;
- turnpathoff();
- al = 5;
- turnpathoff();
- _inc(data.byte(kProgresspoints));
- data.byte(kManspath) = 6;
- data.byte(kDestination) = 6;
- data.byte(kFinaldest) = 6;
- findxyfrompath();
- switchryanoff();
- data.byte(kResetmanxy) = 1;
- data.word(kWatchingtime) = 30*2;
- data.word(kReeltowatch) = 183;
- data.word(kEndwatchreel) = 212;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::openryan() {
- STACK_CHECK;
- al = 5;
- ah = 1;
- cl = 0;
- ch = 6;
- entercode();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::openpoolboss() {
- STACK_CHECK;
- al = 5;
- ah = 2;
- cl = 2;
- ch = 2;
- entercode();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::openeden() {
- STACK_CHECK;
- al = 2;
- ah = 8;
- cl = 6;
- ch = 5;
- entercode();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::opensarters() {
- STACK_CHECK;
- al = 7;
- ah = 8;
- cl = 3;
- ch = 3;
- entercode();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::isitright() {
- STACK_CHECK;
- bx = data;
- es = bx;
- bx = 8573;
- _cmp(es.byte(bx+0), al);
- if (!flags.z())
- return /* (notright) */;
- _cmp(es.byte(bx+1), ah);
- if (!flags.z())
- return /* (notright) */;
- _cmp(es.byte(bx+2), cl);
- if (!flags.z())
- return /* (notright) */;
- _cmp(es.byte(bx+3), ch);
-}
-
-void DreamGenContext::drawitall() {
- STACK_CHECK;
- createpanel();
- drawfloor();
- printsprites();
- showicon();
-}
-
-void DreamGenContext::openhoteldoor() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto hoteldoorwith;
- withwhat();
- return;
-hoteldoorwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'K';
- ch = 'E';
- dl = 'Y';
- dh = 'A';
- compare();
- if (flags.z())
- goto keyonhotel1;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-keyonhotel1:
- al = 16;
- playchannel1();
- showfirstuse();
- data.byte(kLockstatus) = 0;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::openhoteldoor2() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto hoteldoorwith2;
- withwhat();
- return;
-hoteldoorwith2:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'K';
- ch = 'E';
- dl = 'Y';
- dh = 'A';
- compare();
- if (flags.z())
- goto keyonhotel2;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-keyonhotel2:
- al = 16;
- playchannel1();
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::grafittidoor() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto grafwith;
- withwhat();
- return;
-grafwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'A';
- ch = 'P';
- dl = 'E';
- dh = 'N';
- compare();
- if (flags.z())
- goto dograf;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-dograf:
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::trapdoor() {
- STACK_CHECK;
- _inc(data.byte(kProgresspoints));
- showfirstuse();
- switchryanoff();
- data.word(kWatchingtime) = 20*2;
- data.word(kReeltowatch) = 181;
- data.word(kEndwatchreel) = 197;
- data.byte(kNewlocation) = 26;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::callhotellift() {
- STACK_CHECK;
- al = 12;
- playchannel1();
- showfirstuse();
- data.byte(kCounttoopen) = 8;
- data.byte(kGetback) = 1;
- data.byte(kDestination) = 5;
- data.byte(kFinaldest) = 5;
- autosetwalk();
- al = 4;
- turnpathon();
-}
-
-void DreamGenContext::calledenslift() {
- STACK_CHECK;
- showfirstuse();
- data.byte(kCounttoopen) = 8;
- data.byte(kGetback) = 1;
- al = 2;
- turnpathon();
-}
-
-void DreamGenContext::calledensdlift() {
- STACK_CHECK;
- _cmp(data.byte(kLiftflag), 1);
- if (flags.z())
- goto edensdhere;
- showfirstuse();
- data.byte(kCounttoopen) = 8;
- data.byte(kGetback) = 1;
- al = 2;
- turnpathon();
- return;
-edensdhere:
- showseconduse();
- putbackobstuff();
-}
-
-void DreamGenContext::usepoolreader() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto poolwith;
- withwhat();
- return;
-poolwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'M';
- ch = 'E';
- dl = 'M';
- dh = 'B';
- compare();
- if (flags.z())
- goto openpool;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-openpool:
- _cmp(data.byte(kTalkedtoattendant), 1);
- if (flags.z())
- goto canopenpool;
- showseconduse();
- putbackobstuff();
- return;
-canopenpool:
- al = 17;
- playchannel1();
- showfirstuse();
- data.byte(kCounttoopen) = 6;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::uselighter() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto gotlighterwith;
- withwhat();
- return;
-gotlighterwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'S';
- ch = 'M';
- dl = 'K';
- dh = 'E';
- compare();
- if (flags.z())
- goto cigarette;
- showfirstuse();
- putbackobstuff();
- return;
-cigarette:
- cx = 300;
- al = 9;
- showpuztext();
- al = data.byte(kWithobject);
- getexad();
- es.byte(bx+2) = 255;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::showseconduse() {
- STACK_CHECK;
- getobtextstart();
- nextcolon();
- nextcolon();
- nextcolon();
- usetext();
- cx = 400;
- hangonp();
-}
-
-void DreamGenContext::usecardreader1() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto gotreader1with;
- withwhat();
- return;
-gotreader1with:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'C';
- ch = 'S';
- dl = 'H';
- dh = 'R';
- compare();
- if (flags.z())
- goto correctcard;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-correctcard:
- _cmp(data.byte(kTalkedtosparky), 0);
- if (flags.z())
- goto notyet;
- _cmp(data.word(kCard1money), 0);
- if (flags.z())
- goto getscash;
- cx = 300;
- al = 17;
- showpuztext();
- putbackobstuff();
- return;
-getscash:
- al = 16;
- playchannel1();
- cx = 300;
- al = 18;
- showpuztext();
- _inc(data.byte(kProgresspoints));
- data.word(kCard1money) = 12432;
- data.byte(kGetback) = 1;
- return;
-notyet:
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::usecardreader2() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto gotreader2with;
- withwhat();
- return;
-gotreader2with:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'C';
- ch = 'S';
- dl = 'H';
- dh = 'R';
- compare();
- if (flags.z())
- goto correctcard2;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-correctcard2:
- _cmp(data.byte(kTalkedtoboss), 0);
- if (flags.z())
- goto notyetboss;
- _cmp(data.word(kCard1money), 0);
- if (flags.z())
- goto nocash;
- _cmp(data.byte(kGunpassflag), 2);
- if (flags.z())
- goto alreadygotnew;
- al = 18;
- playchannel1();
- cx = 300;
- al = 19;
- showpuztext();
- al = 94;
- placesetobject();
- data.byte(kGunpassflag) = 1;
- _sub(data.word(kCard1money), 2000);
- _inc(data.byte(kProgresspoints));
- data.byte(kGetback) = 1;
- return;
-nocash:
- cx = 300;
- al = 20;
- showpuztext();
- putbackobstuff();
- return;
-alreadygotnew:
- cx = 300;
- al = 22;
- showpuztext();
- putbackobstuff();
- return;
-notyetboss:
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::usecardreader3() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto gotreader3with;
- withwhat();
- return;
-gotreader3with:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'C';
- ch = 'S';
- dl = 'H';
- dh = 'R';
- compare();
- if (flags.z())
- goto rightcard;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-rightcard:
- _cmp(data.byte(kTalkedtorecep), 0);
- if (flags.z())
- goto notyetrecep;
- _cmp(data.byte(kCardpassflag), 0);
- if (!flags.z())
- goto alreadyusedit;
- al = 16;
- playchannel1();
- cx = 300;
- al = 25;
- showpuztext();
- _inc(data.byte(kProgresspoints));
- _sub(data.word(kCard1money), 8300);
- data.byte(kCardpassflag) = 1;
- data.byte(kGetback) = 1;
- return;
-alreadyusedit:
- cx = 300;
- al = 26;
- showpuztext();
- putbackobstuff();
- return;
-notyetrecep:
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::usecashcard() {
- STACK_CHECK;
- getridofreels();
- loadkeypad();
- createpanel();
- showpanel();
- showexit();
- showman();
- di = 114;
- bx = 120;
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp1;
- bx = 120-3;
-_tmp1:
- ds = data.word(kTempgraphics);
- al = 39;
- ah = 0;
- showframe();
- ax = data.word(kCard1money);
- moneypoke();
- getobtextstart();
- nextcolon();
- nextcolon();
- di = 36;
- bx = 98;
- dl = 241;
- al = 0;
- ah = 0;
- printdirect();
- di = 160;
- bx = 155;
- es = cs;
- si = offset_money1poke;
- data.word(kCharshift) = 91*2+75;
- al = 0;
- ah = 0;
- dl = 240;
- printdirect();
- di = 187;
- bx = 155;
- es = cs;
- si = offset_money2poke;
- data.word(kCharshift) = 91*2+85;
- al = 0;
- ah = 0;
- dl = 240;
- printdirect();
- data.word(kCharshift) = 0;
- worktoscreenm();
- cx = 400;
- hangonp();
- getridoftemp();
- restorereels();
- putbackobstuff();
-}
-
-void DreamGenContext::lookatcard() {
- STACK_CHECK;
- data.byte(kManisoffscreen) = 1;
- getridofreels();
- loadkeypad();
- createpanel2();
- di = 160;
- bx = 80;
- ds = data.word(kTempgraphics);
- al = 42;
- ah = 128;
- showframe();
- getobtextstart();
- findnextcolon();
- findnextcolon();
- findnextcolon();
- di = 36;
- bx = 124;
- dl = 241;
- al = 0;
- ah = 0;
- printdirect();
- push(es);
- push(si);
- worktoscreenm();
- cx = 280;
- hangonw();
- createpanel2();
- di = 160;
- bx = 80;
- ds = data.word(kTempgraphics);
- al = 42;
- ah = 128;
- showframe();
- si = pop();
- es = pop();
- di = 36;
- bx = 130;
- dl = 241;
- al = 0;
- ah = 0;
- printdirect();
- worktoscreenm();
- cx = 200;
- hangonw();
- data.byte(kManisoffscreen) = 0;
- getridoftemp();
- restorereels();
- putbackobstuff();
-}
-
-void DreamGenContext::moneypoke() {
- STACK_CHECK;
- bx = offset_money1poke;
- cl = 48-1;
-numberpoke0:
- _inc(cl);
- _sub(ax, 10000);
- if (!flags.c())
- goto numberpoke0;
- _add(ax, 10000);
- cs.byte(bx) = cl;
- _inc(bx);
- cl = 48-1;
-numberpoke1:
- _inc(cl);
- _sub(ax, 1000);
- if (!flags.c())
- goto numberpoke1;
- _add(ax, 1000);
- cs.byte(bx) = cl;
- _inc(bx);
- cl = 48-1;
-numberpoke2:
- _inc(cl);
- _sub(ax, 100);
- if (!flags.c())
- goto numberpoke2;
- _add(ax, 100);
- cs.byte(bx) = cl;
- _inc(bx);
- cl = 48-1;
-numberpoke3:
- _inc(cl);
- _sub(ax, 10);
- if (!flags.c())
- goto numberpoke3;
- _add(ax, 10);
- cs.byte(bx) = cl;
- bx = offset_money2poke;
- _add(al, 48);
- cs.byte(bx) = al;
-}
-
-void DreamGenContext::usecontrol() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto gotcontrolwith;
- withwhat();
- return;
-gotcontrolwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'K';
- ch = 'E';
- dl = 'Y';
- dh = 'A';
- compare();
- if (flags.z())
- goto rightkey;
- _cmp(data.byte(kReallocation), 21);
- if (!flags.z())
- goto balls;
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'K';
- ch = 'N';
- dl = 'F';
- dh = 'E';
- compare();
- if (flags.z())
- goto jimmycontrols;
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'A';
- ch = 'X';
- dl = 'E';
- dh = 'D';
- compare();
- if (flags.z())
- goto axeoncontrols;
-balls:
- showfirstuse();
- putbackobstuff();
- return;
-rightkey:
- al = 16;
- playchannel1();
- _cmp(data.byte(kLocation), 21);
- if (flags.z())
- goto goingdown;
- cx = 300;
- al = 0;
- showpuztext();
- data.byte(kNewlocation) = 21;
- data.byte(kCounttoclose) = 8;
- data.byte(kCounttoopen) = 0;
- data.word(kWatchingtime) = 80;
- data.byte(kGetback) = 1;
- return;
-goingdown:
- cx = 300;
- al = 3;
- showpuztext();
- data.byte(kNewlocation) = 30;
- data.byte(kCounttoclose) = 8;
- data.byte(kCounttoopen) = 0;
- data.word(kWatchingtime) = 80;
- data.byte(kGetback) = 1;
- return;
-jimmycontrols:
- al = 50;
- placesetobject();
- al = 51;
- placesetobject();
- al = 26;
- placesetobject();
- al = 30;
- placesetobject();
- al = 16;
- removesetobject();
- al = 17;
- removesetobject();
- al = 14;
- playchannel1();
- cx = 300;
- al = 10;
- showpuztext();
- _inc(data.byte(kProgresspoints));
- data.byte(kGetback) = 1;
- return;
-axeoncontrols:
- cx = 300;
- al = 16;
- showpuztext();
- _inc(data.byte(kProgresspoints));
- putbackobstuff();
-}
-
-void DreamGenContext::usehatch() {
- STACK_CHECK;
- showfirstuse();
- data.byte(kNewlocation) = 40;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::usewire() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto gotwirewith;
- withwhat();
- return;
-gotwirewith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'K';
- ch = 'N';
- dl = 'F';
- dh = 'E';
- compare();
- if (flags.z())
- goto wireknife;
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'A';
- ch = 'X';
- dl = 'E';
- dh = 'D';
- compare();
- if (flags.z())
- goto wireaxe;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-wireaxe:
- cx = 300;
- al = 16;
- showpuztext();
- putbackobstuff();
- return;
-wireknife:
- al = 51;
- removesetobject();
- al = 52;
- placesetobject();
- cx = 300;
- al = 11;
- showpuztext();
- _inc(data.byte(kProgresspoints));
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::usehandle() {
- STACK_CHECK;
- al = 'C';
- ah = 'U';
- cl = 'T';
- ch = 'W';
- findsetobject();
- al = es.byte(bx+58);
- _cmp(al, 255);
- if (!flags.z())
- goto havecutwire;
- cx = 300;
- al = 12;
- showpuztext();
- data.byte(kGetback) = 1;
- return;
-havecutwire:
- cx = 300;
- al = 13;
- showpuztext();
- data.byte(kNewlocation) = 22;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::useelevator1() {
- STACK_CHECK;
- showfirstuse();
- selectlocation();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::showfirstuse() {
- STACK_CHECK;
- getobtextstart();
- findnextcolon();
- findnextcolon();
- usetext();
- cx = 400;
- hangonp();
-}
-
-void DreamGenContext::useelevator3() {
- STACK_CHECK;
- showfirstuse();
- data.byte(kCounttoclose) = 20;
- data.byte(kNewlocation) = 34;
- data.word(kReeltowatch) = 46;
- data.word(kEndwatchreel) = 63;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.word(kWatchingtime) = 80;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::useelevator4() {
- STACK_CHECK;
- showfirstuse();
- data.word(kReeltowatch) = 0;
- data.word(kEndwatchreel) = 11;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kCounttoclose) = 20;
- data.word(kWatchingtime) = 80;
- data.byte(kGetback) = 1;
- data.byte(kNewlocation) = 24;
-}
-
-void DreamGenContext::useelevator2() {
- STACK_CHECK;
- _cmp(data.byte(kLocation), 23);
- if (flags.z())
- goto inpoolhall;
- showfirstuse();
- data.byte(kNewlocation) = 23;
- data.byte(kCounttoclose) = 20;
- data.byte(kCounttoopen) = 0;
- data.word(kWatchingtime) = 80;
- data.byte(kGetback) = 1;
- return;
-inpoolhall:
- showfirstuse();
- data.byte(kNewlocation) = 31;
- data.byte(kCounttoclose) = 20;
- data.byte(kCounttoopen) = 0;
- data.word(kWatchingtime) = 80;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::useelevator5() {
- STACK_CHECK;
- al = 4;
- placesetobject();
- al = 0;
- removesetobject();
- data.byte(kNewlocation) = 20;
- data.word(kWatchingtime) = 80;
- data.byte(kLiftflag) = 1;
- data.byte(kCounttoclose) = 8;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::usekey() {
- STACK_CHECK;
- _cmp(data.byte(kLocation), 5);
- if (flags.z())
- goto usekey1;
- _cmp(data.byte(kLocation), 30);
- if (flags.z())
- goto usekey1;
- _cmp(data.byte(kLocation), 21);
- if (flags.z())
- goto usekey2;
- cx = 200;
- al = 1;
- showpuztext();
- putbackobstuff();
- return;
-usekey1:
- _cmp(data.byte(kMapx), 22);
- if (!flags.z())
- goto wrongroom1;
- _cmp(data.byte(kMapy), 10);
- if (!flags.z())
- goto wrongroom1;
- cx = 300;
- al = 0;
- showpuztext();
- data.byte(kCounttoclose) = 100;
- data.byte(kGetback) = 1;
- return;
-usekey2:
- _cmp(data.byte(kMapx), 11);
- if (!flags.z())
- goto wrongroom1;
- _cmp(data.byte(kMapy), 10);
- if (!flags.z())
- goto wrongroom1;
- cx = 300;
- al = 3;
- showpuztext();
- data.byte(kNewlocation) = 30;
- al = 2;
- fadescreendown();
- showfirstuse();
- putbackobstuff();
- return;
-wrongroom1:
- cx = 200;
- al = 2;
- showpuztext();
- putbackobstuff();
-}
-
-void DreamGenContext::usestereo() {
- STACK_CHECK;
- _cmp(data.byte(kLocation), 0);
- if (flags.z())
- goto stereook;
- cx = 400;
- al = 4;
- showpuztext();
- putbackobstuff();
- return;
-stereook:
- _cmp(data.byte(kMapx), 11);
- if (!flags.z())
- goto stereonotok;
- _cmp(data.byte(kMapy), 0);
- if (flags.z())
- goto stereook2;
-stereonotok:
- cx = 400;
- al = 5;
- showpuztext();
- putbackobstuff();
- return;
-stereook2:
- al = 'C';
- ah = 'D';
- cl = 'P';
- ch = 'L';
- findsetobject();
- ah = 1;
- checkinside();
- _cmp(cl, (114));
- if (!flags.z())
- goto cdinside;
- al = 6;
- cx = 400;
- showpuztext();
- putbackobstuff();
- getanyad();
- al = 255;
- es.byte(bx+10) = al;
- return;
-cdinside:
- getanyad();
- al = es.byte(bx+10);
- _xor(al, 1);
- es.byte(bx+10) = al;
- _cmp(al, 255);
- if (flags.z())
- goto stereoon;
- al = 7;
- cx = 400;
- showpuztext();
- putbackobstuff();
- return;
-stereoon:
- al = 8;
- cx = 400;
- showpuztext();
- putbackobstuff();
-}
-
-void DreamGenContext::usecooker() {
- STACK_CHECK;
- al = data.byte(kCommand);
- ah = data.byte(kObjecttype);
- checkinside();
- _cmp(cl, (114));
- if (!flags.z())
- goto foodinside;
- showfirstuse();
- putbackobstuff();
- return;
-foodinside:
- showseconduse();
- putbackobstuff();
-}
-
-void DreamGenContext::useaxe() {
- STACK_CHECK;
- _cmp(data.byte(kReallocation), 22);
- if (!flags.z())
- goto notinpool;
- _cmp(data.byte(kMapy), 10);
- if (flags.z())
- goto axeondoor;
- showseconduse();
- _inc(data.byte(kProgresspoints));
- data.byte(kLastweapon) = 2;
- data.byte(kGetback) = 1;
- removeobfrominv();
- return;
-notinpool:
- showfirstuse();
- return;
-/*continuing to unbounded code: axeondoor from useelvdoor:19-30*/
-axeondoor:
- al = 15;
- cx = 300;
- showpuztext();
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 46*2;
- data.word(kReeltowatch) = 31;
- data.word(kEndwatchreel) = 77;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::useelvdoor() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto gotdoorwith;
- withwhat();
- return;
-gotdoorwith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'A';
- ch = 'X';
- dl = 'E';
- dh = 'D';
- compare();
- if (flags.z())
- goto axeondoor;
- al = 14;
- cx = 300;
- showpuztext();
- putbackobstuff();
- return;
-axeondoor:
- al = 15;
- cx = 300;
- showpuztext();
- _inc(data.byte(kProgresspoints));
- data.word(kWatchingtime) = 46*2;
- data.word(kReeltowatch) = 31;
- data.word(kEndwatchreel) = 77;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::withwhat() {
- STACK_CHECK;
- createpanel();
- showpanel();
- showman();
- showexit();
- al = data.byte(kCommand);
- ah = data.byte(kObjecttype);
- es = cs;
- di = offset_commandline;
- copyname();
- di = 100;
- bx = 21;
- dl = 200;
- al = 63;
- ah = 2;
- printmessage2();
- di = data.word(kLastxpos);
- _add(di, 5);
- bx = 21;
- es = cs;
- si = offset_commandline;
- dl = 220;
- al = 0;
- ah = 0;
- printdirect();
- di = data.word(kLastxpos);
- _add(di, 5);
- bx = 21;
- dl = 200;
- al = 63;
- ah = 3;
- printmessage2();
- fillryan();
- data.byte(kCommandtype) = 255;
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
- data.byte(kInvopen) = 2;
-}
-
-void DreamGenContext::selectob() {
- STACK_CHECK;
- findinvpos();
- ax = es.word(bx);
- _cmp(al, 255);
- if (!flags.z())
- goto canselectob;
- blank();
- return;
-canselectob:
- data.byte(kWithobject) = al;
- data.byte(kWithtype) = ah;
- _cmp(ax, data.word(kOldsubject));
- if (!flags.z())
- goto diffsub3;
- _cmp(data.byte(kCommandtype), 221);
- if (flags.z())
- goto alreadyselob;
- data.byte(kCommandtype) = 221;
-diffsub3:
- data.word(kOldsubject) = ax;
- bx = ax;
- al = 0;
- commandwithob();
-alreadyselob:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notselob) */;
- _and(ax, 1);
- if (!flags.z())
- goto doselob;
- return;
-doselob:
- delpointer();
- data.byte(kInvopen) = 0;
- useroutine();
-}
-
-void DreamGenContext::findsetobject() {
- STACK_CHECK;
- _sub(al, 'A');
- _sub(ah, 'A');
- _sub(cl, 'A');
- _sub(ch, 'A');
- es = data.word(kSetdat);
- bx = 0;
- dl = 0;
-findsetloop:
- _cmp(al, es.byte(bx+12));
- if (!flags.z())
- goto nofind;
- _cmp(ah, es.byte(bx+13));
- if (!flags.z())
- goto nofind;
- _cmp(cl, es.byte(bx+14));
- if (!flags.z())
- goto nofind;
- _cmp(ch, es.byte(bx+15));
- if (!flags.z())
- goto nofind;
- al = dl;
- return;
-nofind:
- _add(bx, 64);
- _inc(dl);
- _cmp(dl, 128);
- if (!flags.z())
- goto findsetloop;
- al = dl;
-}
-
-void DreamGenContext::findexobject() {
- STACK_CHECK;
- _sub(al, 'A');
- _sub(ah, 'A');
- _sub(cl, 'A');
- _sub(ch, 'A');
- es = data.word(kExtras);
- bx = (0+2080+30000);
- dl = 0;
-findexloop:
- _cmp(al, es.byte(bx+12));
- if (!flags.z())
- goto nofindex;
- _cmp(ah, es.byte(bx+13));
- if (!flags.z())
- goto nofindex;
- _cmp(cl, es.byte(bx+14));
- if (!flags.z())
- goto nofindex;
- _cmp(ch, es.byte(bx+15));
- if (!flags.z())
- goto nofindex;
- al = dl;
- return;
-nofindex:
- _add(bx, 16);
- _inc(dl);
- _cmp(dl, (114));
- if (!flags.z())
- goto findexloop;
- al = dl;
-}
-
-void DreamGenContext::isryanholding() {
- STACK_CHECK;
- _sub(al, 'A');
- _sub(ah, 'A');
- _sub(cl, 'A');
- _sub(ch, 'A');
- es = data.word(kExtras);
- bx = (0+2080+30000);
- dl = 0;
-searchinv:
- _cmp(es.byte(bx+2), 4);
- if (!flags.z())
- goto nofindininv;
- _cmp(al, es.byte(bx+12));
- if (!flags.z())
- goto nofindininv;
- _cmp(ah, es.byte(bx+13));
- if (!flags.z())
- goto nofindininv;
- _cmp(cl, es.byte(bx+14));
- if (!flags.z())
- goto nofindininv;
- _cmp(ch, es.byte(bx+15));
- if (!flags.z())
- goto nofindininv;
- al = dl;
- _cmp(al, (114));
- return;
-nofindininv:
- _add(bx, 16);
- _inc(dl);
- _cmp(dl, (114));
- if (!flags.z())
- goto searchinv;
- al = dl;
- _cmp(al, (114));
-}
-
-void DreamGenContext::checkinside() {
- STACK_CHECK;
- es = data.word(kExtras);
- bx = (0+2080+30000);
- cl = 0;
-insideloop:
- _cmp(al, es.byte(bx+3));
- if (!flags.z())
- goto notfoundinside;
- _cmp(ah, es.byte(bx+2));
- if (!flags.z())
- goto notfoundinside;
- return;
-notfoundinside:
- _add(bx, 16);
- _inc(cl);
- _cmp(cl, (114));
- if (!flags.z())
- goto insideloop;
-}
-
-void DreamGenContext::putbackobstuff() {
- STACK_CHECK;
- createpanel();
- showpanel();
- showman();
- obicons();
- showexit();
- obpicture();
- describeob();
- undertextline();
- data.byte(kCommandtype) = 255;
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::showpuztext() {
- STACK_CHECK;
- push(cx);
- findpuztext();
- push(es);
- push(si);
- createpanel();
- showpanel();
- showman();
- showexit();
- obicons();
- si = pop();
- es = pop();
- di = 36;
- bx = 104;
- dl = 241;
- ah = 0;
- printdirect();
- worktoscreenm();
- cx = pop();
- hangonp();
-}
-
-void DreamGenContext::findpuztext() {
- STACK_CHECK;
- ah = 0;
- si = ax;
- _add(si, si);
- es = data.word(kPuzzletext);
- ax = es.word(si);
- _add(ax, (66*2));
- si = ax;
-}
-
-void DreamGenContext::issetobonmap() {
- STACK_CHECK;
- push(es);
- push(bx);
- getsetad();
- al = es.byte(bx+58);
- bx = pop();
- es = pop();
- _cmp(al, 0);
-}
-
-void DreamGenContext::placefreeobject() {
- STACK_CHECK;
- push(es);
- push(bx);
- cl = 0;
- ch = 1;
- findormake();
- getfreead();
- es.byte(bx+2) = 0;
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::removefreeobject() {
- STACK_CHECK;
- push(es);
- push(bx);
- getfreead();
- es.byte(bx+2) = 255;
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::switchryanon() {
- STACK_CHECK;
- data.byte(kRyanon) = 255;
-}
-
-void DreamGenContext::switchryanoff() {
- STACK_CHECK;
- data.byte(kRyanon) = 1;
-}
-
-void DreamGenContext::autoappear() {
- STACK_CHECK;
- _cmp(data.byte(kLocation), 32);
- if (!flags.z())
- goto notinalley;
- al = 5;
- resetlocation();
- al = 10;
- setlocation();
- data.byte(kDestpos) = 10;
- return;
-notinalley:
- _cmp(data.byte(kReallocation), 24);
- if (!flags.z())
- goto notinedens;
- _cmp(data.byte(kGeneraldead), 1);
- if (!flags.z())
- goto edenspart2;
- _inc(data.byte(kGeneraldead));
- al = 44;
- placesetobject();
- al = 18;
- placesetobject();
- al = 93;
- placesetobject();
- al = 92;
- removesetobject();
- al = 55;
- removesetobject();
- al = 75;
- removesetobject();
- al = 84;
- removesetobject();
- al = 85;
- removesetobject();
- return;
-edenspart2:
- _cmp(data.byte(kSartaindead), 1);
- if (!flags.z())
- return /* (notedens2) */;
- al = 44;
- removesetobject();
- al = 93;
- removesetobject();
- al = 55;
- placesetobject();
- _inc(data.byte(kSartaindead));
- return;
-notinedens:
- _cmp(data.byte(kReallocation), 25);
- if (!flags.z())
- goto notonsartroof;
- data.byte(kNewsitem) = 3;
- al = 6;
- resetlocation();
- al = 11;
- setlocation();
- data.byte(kDestpos) = 11;
- return;
-notonsartroof:
- _cmp(data.byte(kReallocation), 2);
- if (!flags.z())
- return /* (notinlouiss) */;
- _cmp(data.byte(kRockstardead), 0);
- if (flags.z())
- return /* (notinlouiss) */;
- al = 23;
- placesetobject();
-}
-
-void DreamGenContext::setuptimeduse() {
- STACK_CHECK;
- _cmp(data.word(kTimecount), 0);
- if (!flags.z())
- return /* (cantsetup) */;
- 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(kPuzzletext);
- cx = (66*2);
- ax = es.word(bx);
- _add(ax, cx);
- bx = ax;
- data.word(kTimedseg) = es;
- data.word(kTimedoffset) = bx;
-}
-
-void DreamGenContext::edenscdplayer() {
- STACK_CHECK;
- showfirstuse();
- data.word(kWatchingtime) = 18*2;
- data.word(kReeltowatch) = 25;
- data.word(kEndwatchreel) = 42;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::usewall() {
- STACK_CHECK;
- showfirstuse();
- _cmp(data.byte(kManspath), 3);
- if (flags.z())
- goto gobackover;
- data.word(kWatchingtime) = 30*2;
- data.word(kReeltowatch) = 2;
- data.word(kEndwatchreel) = 31;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
- al = 3;
- turnpathon();
- al = 4;
- turnpathon();
- al = 0;
- turnpathoff();
- al = 1;
- turnpathoff();
- al = 2;
- turnpathoff();
- al = 5;
- turnpathoff();
- data.byte(kManspath) = 3;
- data.byte(kFinaldest) = 3;
- findxyfrompath();
- data.byte(kResetmanxy) = 1;
- switchryanoff();
- return;
-gobackover:
- data.word(kWatchingtime) = 30*2;
- data.word(kReeltowatch) = 34;
- data.word(kEndwatchreel) = 60;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
- al = 3;
- turnpathoff();
- al = 4;
- turnpathoff();
- al = 0;
- turnpathon();
- al = 1;
- turnpathon();
- al = 2;
- turnpathon();
- al = 5;
- turnpathon();
- data.byte(kManspath) = 5;
- data.byte(kFinaldest) = 5;
- findxyfrompath();
- data.byte(kResetmanxy) = 1;
- switchryanoff();
-}
-
-void DreamGenContext::usechurchgate() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto gatewith;
- withwhat();
- return;
-gatewith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'C';
- ch = 'U';
- dl = 'T';
- dh = 'T';
- compare();
- if (flags.z())
- goto cutgate;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-cutgate:
- showfirstuse();
- data.word(kWatchingtime) = 64*2;
- data.word(kReeltowatch) = 4;
- data.word(kEndwatchreel) = 70;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
- _inc(data.byte(kProgresspoints));
- al = 3;
- turnpathon();
- _cmp(data.byte(kAidedead), 0);
- if (flags.z())
- return /* (notopenchurch) */;
- al = 2;
- turnpathon();
-}
-
-void DreamGenContext::usegun() {
- STACK_CHECK;
- _cmp(data.byte(kObjecttype), 4);
- if (flags.z())
- goto istakengun;
- showseconduse();
- putbackobstuff();
- return;
-istakengun:
- _cmp(data.byte(kReallocation), 22);
- if (!flags.z())
- goto notinpoolroom;
- cx = 300;
- al = 34;
- showpuztext();
- data.byte(kLastweapon) = 1;
- data.byte(kCombatcount) = 39;
- data.byte(kGetback) = 1;
- _inc(data.byte(kProgresspoints));
- return;
-notinpoolroom:
- _cmp(data.byte(kReallocation), 25);
- if (!flags.z())
- goto nothelicopter;
- cx = 300;
- al = 34;
- showpuztext();
- data.byte(kLastweapon) = 1;
- data.byte(kCombatcount) = 19;
- data.byte(kGetback) = 1;
- data.byte(kDreamnumber) = 2;
- data.byte(kRoomafterdream) = 38;
- data.byte(kSartaindead) = 1;
- _inc(data.byte(kProgresspoints));
- return;
-nothelicopter:
- _cmp(data.byte(kReallocation), 27);
- if (!flags.z())
- goto notinrockroom;
- cx = 300;
- al = 46;
- showpuztext();
- data.byte(kPointermode) = 2;
- data.byte(kRockstardead) = 1;
- data.byte(kLastweapon) = 1;
- data.byte(kNewsitem) = 1;
- data.byte(kGetback) = 1;
- data.byte(kRoomafterdream) = 32;
- data.byte(kDreamnumber) = 0;
- _inc(data.byte(kProgresspoints));
- return;
-notinrockroom:
- _cmp(data.byte(kReallocation), 8);
- if (!flags.z())
- goto notbystudio;
- _cmp(data.byte(kMapx), 22);
- if (!flags.z())
- goto notbystudio;
- _cmp(data.byte(kMapy), 40);
- if (!flags.z())
- goto notbystudio;
- al = 92;
- issetobonmap();
- if (flags.z())
- goto notbystudio;
- _cmp(data.byte(kManspath), 9);
- if (flags.z())
- goto notbystudio;
- data.byte(kDestination) = 9;
- data.byte(kFinaldest) = 9;
- autosetwalk();
- data.byte(kLastweapon) = 1;
- data.byte(kGetback) = 1;
- _inc(data.byte(kProgresspoints));
- return;
-notbystudio:
- _cmp(data.byte(kReallocation), 6);
- if (!flags.z())
- goto notsarters;
- _cmp(data.byte(kMapx), 11);
- if (!flags.z())
- goto notsarters;
- _cmp(data.byte(kMapy), 20);
- if (!flags.z())
- goto notsarters;
- al = 5;
- issetobonmap();
- if (!flags.z())
- goto notsarters;
- data.byte(kDestination) = 1;
- data.byte(kFinaldest) = 1;
- autosetwalk();
- al = 5;
- removesetobject();
- al = 6;
- placesetobject();
- al = 1;
- ah = data.byte(kRoomnum);
- _dec(ah);
- turnanypathon();
- data.byte(kLiftflag) = 1;
- data.word(kWatchingtime) = 40*2;
- data.word(kReeltowatch) = 4;
- data.word(kEndwatchreel) = 43;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
- _inc(data.byte(kProgresspoints));
- return;
-notsarters:
- _cmp(data.byte(kReallocation), 29);
- if (!flags.z())
- goto notaide;
- data.byte(kGetback) = 1;
- al = 13;
- resetlocation();
- al = 12;
- setlocation();
- data.byte(kDestpos) = 12;
- data.byte(kDestination) = 2;
- data.byte(kFinaldest) = 2;
- autosetwalk();
- data.word(kWatchingtime) = 164*2;
- data.word(kReeltowatch) = 3;
- data.word(kEndwatchreel) = 164;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kAidedead) = 1;
- data.byte(kDreamnumber) = 3;
- data.byte(kRoomafterdream) = 33;
- _inc(data.byte(kProgresspoints));
- return;
-notaide:
- _cmp(data.byte(kReallocation), 23);
- if (!flags.z())
- goto notwithboss;
- _cmp(data.byte(kMapx), 0);
- if (!flags.z())
- goto notwithboss;
- _cmp(data.byte(kMapy), 50);
- if (!flags.z())
- goto notwithboss;
- _cmp(data.byte(kManspath), 5);
- if (flags.z())
- goto pathokboss;
- data.byte(kDestination) = 5;
- data.byte(kFinaldest) = 5;
- autosetwalk();
-pathokboss:
- data.byte(kLastweapon) = 1;
- data.byte(kGetback) = 1;
- return;
-notwithboss:
- _cmp(data.byte(kReallocation), 8);
- if (!flags.z())
- goto nottvsoldier;
- _cmp(data.byte(kMapx), 11);
- if (!flags.z())
- goto nottvsoldier;
- _cmp(data.byte(kMapy), 10);
- if (!flags.z())
- goto nottvsoldier;
- _cmp(data.byte(kManspath), 2);
- if (flags.z())
- goto pathoktv;
- data.byte(kDestination) = 2;
- data.byte(kFinaldest) = 2;
- autosetwalk();
-pathoktv:
- data.byte(kLastweapon) = 1;
- data.byte(kGetback) = 1;
- return;
-nottvsoldier:
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::useshield() {
- STACK_CHECK;
- _cmp(data.byte(kReallocation), 20);
- if (!flags.z())
- goto notinsartroom;
- _cmp(data.byte(kCombatcount), 0);
- if (flags.z())
- goto notinsartroom;
- data.byte(kLastweapon) = 3;
- showseconduse();
- data.byte(kGetback) = 1;
- _inc(data.byte(kProgresspoints));
- removeobfrominv();
- return;
-notinsartroom:
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::usebuttona() {
- STACK_CHECK;
- al = 95;
- issetobonmap();
- if (flags.z())
- goto donethisbit;
- showfirstuse();
- al = 0;
- ah = data.byte(kRoomnum);
- _dec(ah);
- turnanypathon();
- al = 9;
- removesetobject();
- al = 95;
- placesetobject();
- data.word(kWatchingtime) = 15*2;
- data.word(kReeltowatch) = 71;
- data.word(kEndwatchreel) = 85;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kGetback) = 1;
- _inc(data.byte(kProgresspoints));
- return;
-donethisbit:
- showseconduse();
- putbackobstuff();
-}
-
-void DreamGenContext::useplate() {
- STACK_CHECK;
- _cmp(data.byte(kWithobject), 255);
- if (!flags.z())
- goto platewith;
- withwhat();
- return;
-platewith:
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'S';
- ch = 'C';
- dl = 'R';
- dh = 'W';
- compare();
- if (flags.z())
- goto unscrewplate;
- al = data.byte(kWithobject);
- ah = data.byte(kWithtype);
- cl = 'K';
- ch = 'N';
- dl = 'F';
- dh = 'E';
- compare();
- if (flags.z())
- goto triedknife;
- cx = 300;
- al = 14;
- showpuztext();
- putbackobstuff();
- return;
-unscrewplate:
- al = 20;
- playchannel1();
- showfirstuse();
- al = 28;
- placesetobject();
- al = 24;
- placesetobject();
- al = 25;
- removesetobject();
- al = 0;
- placefreeobject();
- _inc(data.byte(kProgresspoints));
- data.byte(kGetback) = 1;
- return;
-triedknife:
- cx = 300;
- al = 54;
- showpuztext();
- putbackobstuff();
-}
-
-void DreamGenContext::usewinch() {
- STACK_CHECK;
- al = 40;
- ah = 1;
- checkinside();
- _cmp(cl, (114));
- if (flags.z())
- goto nowinch;
- al = cl;
- ah = 4;
- cl = 'F';
- ch = 'U';
- dl = 'S';
- dh = 'E';
- compare();
- if (!flags.z())
- goto nowinch;
- data.word(kWatchingtime) = 217*2;
- data.word(kReeltowatch) = 0;
- data.word(kEndwatchreel) = 217;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- data.byte(kDestpos) = 1;
- data.byte(kNewlocation) = 45;
- data.byte(kDreamnumber) = 1;
- data.byte(kRoomafterdream) = 44;
- data.byte(kGeneraldead) = 1;
- data.byte(kNewsitem) = 2;
- data.byte(kGetback) = 1;
- _inc(data.byte(kProgresspoints));
- return;
-nowinch:
- showfirstuse();
- putbackobstuff();
-}
-
-void DreamGenContext::entercode() {
- STACK_CHECK;
- data.word(kKeypadax) = ax;
- data.word(kKeypadcx) = cx;
- getridofreels();
- loadkeypad();
- createpanel();
- showicon();
- showouterpad();
- showkeypad();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
- data.word(kPresspointer) = 0;
- data.byte(kGetback) = 0;
-keypadloop:
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- goto numberright;
- delpointer();
- readmouse();
- showkeypad();
- showpointer();
- vsync();
- _cmp(data.byte(kPresscount), 0);
- if (flags.z())
- goto nopresses;
- _dec(data.byte(kPresscount));
- goto afterpress;
-nopresses:
- data.byte(kPressed) = 255;
- data.byte(kGraphicpress) = 255;
- vsync();
-afterpress:
- dumppointer();
- dumpkeypad();
- dumptextline();
- bx = offset_keypadlist;
- checkcoords();
- _cmp(data.byte(kGetback), 1);
- if (flags.z())
- goto numberright;
- _cmp(data.byte(kLightcount), 1);
- if (!flags.z())
- goto notendkey;
- _cmp(data.byte(kLockstatus), 0);
- if (flags.z())
- goto numberright;
- goto keypadloop;
-notendkey:
- _cmp(data.byte(kPresscount), 40);
- if (!flags.z())
- goto keypadloop;
- addtopresslist();
- _cmp(data.byte(kPressed), 11);
- if (!flags.z())
- goto keypadloop;
- ax = data.word(kKeypadax);
- cx = data.word(kKeypadcx);
- isitright();
- if (!flags.z())
- goto incorrect;
- data.byte(kLockstatus) = 0;
- al = 11;
- playchannel1();
- data.byte(kLightcount) = 120;
- data.word(kPresspointer) = 0;
- goto keypadloop;
-incorrect:
- al = 11;
- playchannel1();
- data.byte(kLightcount) = 120;
- data.word(kPresspointer) = 0;
- goto keypadloop;
-numberright:
- data.byte(kManisoffscreen) = 0;
- getridoftemp();
- restorereels();
- redrawmainscrn();
- worktoscreenm();
-}
-
-void DreamGenContext::loadkeypad() {
- STACK_CHECK;
- dx = 1948;
- loadintotemp();
-}
-
-void DreamGenContext::quitkey() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 222);
- if (flags.z())
- goto alreadyqk;
- data.byte(kCommandtype) = 222;
- al = 4;
- commandonly();
-alreadyqk:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notqk) */;
- _and(ax, 1);
- if (!flags.z())
- goto doqk;
- return;
-doqk:
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::addtopresslist() {
- STACK_CHECK;
- _cmp(data.word(kPresspointer), 5);
- if (flags.z())
- return /* (nomorekeys) */;
- al = data.byte(kPressed);
- _cmp(al, 10);
- if (!flags.z())
- goto not10;
- al = 0;
-not10:
- bx = data.word(kPresspointer);
- dx = data;
- es = dx;
- _add(bx, 8573);
- es.byte(bx) = al;
- _inc(data.word(kPresspointer));
-}
-
-void DreamGenContext::buttonone() {
- STACK_CHECK;
- cl = 1;
- buttonpress();
-}
-
-void DreamGenContext::buttontwo() {
- STACK_CHECK;
- cl = 2;
- buttonpress();
-}
-
-void DreamGenContext::buttonthree() {
- STACK_CHECK;
- cl = 3;
- buttonpress();
-}
-
-void DreamGenContext::buttonfour() {
- STACK_CHECK;
- cl = 4;
- buttonpress();
-}
-
-void DreamGenContext::buttonfive() {
- STACK_CHECK;
- cl = 5;
- buttonpress();
-}
-
-void DreamGenContext::buttonsix() {
- STACK_CHECK;
- cl = 6;
- buttonpress();
-}
-
-void DreamGenContext::buttonseven() {
- STACK_CHECK;
- cl = 7;
- buttonpress();
-}
-
-void DreamGenContext::buttoneight() {
- STACK_CHECK;
- cl = 8;
- buttonpress();
-}
-
-void DreamGenContext::buttonnine() {
- STACK_CHECK;
- cl = 9;
- buttonpress();
-}
-
-void DreamGenContext::buttonnought() {
- STACK_CHECK;
- cl = 10;
- buttonpress();
-}
-
-void DreamGenContext::buttonenter() {
- STACK_CHECK;
- cl = 11;
- buttonpress();
-}
-
-void DreamGenContext::buttonpress() {
- STACK_CHECK;
- ch = cl;
- _add(ch, 100);
- _cmp(data.byte(kCommandtype), ch);
- if (flags.z())
- goto alreadyb;
- data.byte(kCommandtype) = ch;
- al = cl;
- _add(al, 4);
- push(cx);
- commandonly();
- cx = pop();
-alreadyb:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notb) */;
- _and(ax, 1);
- if (!flags.z())
- goto dob;
- return;
-dob:
- data.byte(kPressed) = cl;
- _add(cl, 21);
- data.byte(kGraphicpress) = cl;
- data.byte(kPresscount) = 40;
- _cmp(cl, 32);
- if (flags.z())
- return /* (nonoise) */;
- al = 10;
- playchannel1();
-}
-
-void DreamGenContext::showouterpad() {
- STACK_CHECK;
- di = (36+112)-3;
- bx = (72)-4;
- ds = data.word(kTempgraphics);
- al = 1;
- ah = 0;
- showframe();
- di = (36+112)+74;
- bx = (72)+76;
- ds = data.word(kTempgraphics);
- al = 37;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::showkeypad() {
- STACK_CHECK;
- al = 22;
- di = (36+112)+9;
- bx = (72)+5;
- singlekey();
- al = 23;
- di = (36+112)+31;
- bx = (72)+5;
- singlekey();
- al = 24;
- di = (36+112)+53;
- bx = (72)+5;
- singlekey();
- al = 25;
- di = (36+112)+9;
- bx = (72)+23;
- singlekey();
- al = 26;
- di = (36+112)+31;
- bx = (72)+23;
- singlekey();
- al = 27;
- di = (36+112)+53;
- bx = (72)+23;
- singlekey();
- al = 28;
- di = (36+112)+9;
- bx = (72)+41;
- singlekey();
- al = 29;
- di = (36+112)+31;
- bx = (72)+41;
- singlekey();
- al = 30;
- di = (36+112)+53;
- bx = (72)+41;
- singlekey();
- al = 31;
- di = (36+112)+9;
- bx = (72)+59;
- singlekey();
- al = 32;
- di = (36+112)+31;
- bx = (72)+59;
- singlekey();
- _cmp(data.byte(kLightcount), 0);
- if (flags.z())
- return /* (notenter) */;
- _dec(data.byte(kLightcount));
- al = 36;
- bx = (72)-1+63;
- _cmp(data.byte(kLockstatus), 0);
- if (!flags.z())
- goto changelight;
- al = 41;
- bx = (72)+4+63;
-changelight:
- _cmp(data.byte(kLightcount), 60);
- if (flags.c())
- goto gotlight;
- _cmp(data.byte(kLightcount), 100);
- if (!flags.c())
- goto gotlight;
- _dec(al);
-gotlight:
- ds = data.word(kTempgraphics);
- ah = 0;
- di = (36+112)+60;
- showframe();
-}
-
-void DreamGenContext::singlekey() {
- STACK_CHECK;
- _cmp(data.byte(kGraphicpress), al);
- if (!flags.z())
- goto gotkey;
- _add(al, 11);
- _cmp(data.byte(kPresscount), 8);
- if (!flags.c())
- goto gotkey;
- _sub(al, 11);
-gotkey:
- ds = data.word(kTempgraphics);
- _sub(al, 20);
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::dumpkeypad() {
- STACK_CHECK;
- di = (36+112)-3;
- bx = (72)-4;
- cl = 120;
- ch = 90;
- multidump();
-}
-
-void DreamGenContext::usemenu() {
- STACK_CHECK;
- getridofreels();
- loadmenu();
- createpanel();
- showpanel();
- showicon();
- data.byte(kNewobs) = 0;
- drawfloor();
- printsprites();
- al = 4;
- ah = 0;
- di = (80+40)-48;
- bx = (60)-4;
- ds = data.word(kTempgraphics2);
- showframe();
- getundermenu();
- al = 5;
- ah = 0;
- di = (80+40)+54;
- bx = (60)+72;
- ds = data.word(kTempgraphics2);
- showframe();
- worktoscreenm();
- data.byte(kGetback) = 0;
-menuloop:
- delpointer();
- putundermenu();
- showmenu();
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumpmenu();
- dumptextline();
- bx = offset_menulist;
- checkcoords();
- _cmp(data.byte(kGetback), 1);
- if (!flags.z())
- goto menuloop;
- data.byte(kManisoffscreen) = 0;
- redrawmainscrn();
- getridoftemp();
- getridoftemp2();
- restorereels();
- worktoscreenm();
-}
-
-void DreamGenContext::dumpmenu() {
- STACK_CHECK;
- di = (80+40);
- bx = (60);
- cl = 48;
- ch = 48;
- multidump();
-}
-
-void DreamGenContext::getundermenu() {
- STACK_CHECK;
- di = (80+40);
- bx = (60);
- cl = 48;
- ch = 48;
- 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::putundermenu() {
- STACK_CHECK;
- di = (80+40);
- bx = (60);
- cl = 48;
- ch = 48;
- 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::showoutermenu() {
- STACK_CHECK;
- al = 40;
- ah = 0;
- di = (80+40)-34;
- bx = (60)-40;
- ds = data.word(kTempgraphics);
- showframe();
- al = 41;
- ah = 0;
- di = (80+40)+64-34;
- bx = (60)-40;
- ds = data.word(kTempgraphics);
- showframe();
- al = 42;
- ah = 0;
- di = (80+40)-26;
- bx = (60)+57-40;
- ds = data.word(kTempgraphics);
- showframe();
- al = 43;
- ah = 0;
- di = (80+40)+64-26;
- bx = (60)+57-40;
- ds = data.word(kTempgraphics);
- showframe();
-}
-
-void DreamGenContext::showmenu() {
- STACK_CHECK;
- _inc(data.byte(kMenucount));
- _cmp(data.byte(kMenucount), 37*2);
- if (!flags.z())
- goto menuframeok;
- data.byte(kMenucount) = 0;
-menuframeok:
- al = data.byte(kMenucount);
- _shr(al, 1);
- ah = 0;
- di = (80+40);
- bx = (60);
- ds = data.word(kTempgraphics);
- showframe();
-}
-
-void DreamGenContext::loadmenu() {
- STACK_CHECK;
- dx = 1832;
- loadintotemp();
- dx = 1987;
- loadintotemp2();
-}
-
-void DreamGenContext::viewfolder() {
- STACK_CHECK;
- data.byte(kManisoffscreen) = 1;
- getridofall();
- loadfolder();
- data.byte(kFolderpage) = 0;
- showfolder();
- worktoscreenm();
- data.byte(kGetback) = 0;
-folderloop:
- delpointer();
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- bx = offset_folderlist;
- checkcoords();
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto folderloop;
- data.byte(kManisoffscreen) = 0;
- getridoftemp();
- getridoftemp2();
- getridoftemp3();
- getridoftempcharset();
- restoreall();
- redrawmainscrn();
- worktoscreenm();
-}
-
-void DreamGenContext::nextfolder() {
- STACK_CHECK;
- _cmp(data.byte(kFolderpage), 12);
- if (!flags.z())
- goto cannextf;
- blank();
- return;
-cannextf:
- _cmp(data.byte(kCommandtype), 201);
- if (flags.z())
- goto alreadynextf;
- data.byte(kCommandtype) = 201;
- al = 16;
- commandonly();
-alreadynextf:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notnextf) */;
- _cmp(ax, 1);
- if (flags.z())
- goto donextf;
- return;
-donextf:
- _inc(data.byte(kFolderpage));
- folderhints();
- delpointer();
- showfolder();
- data.word(kMousebutton) = 0;
- bx = offset_folderlist;
- checkcoords();
- worktoscreenm();
-}
-
-void DreamGenContext::folderhints() {
- STACK_CHECK;
- _cmp(data.byte(kFolderpage), 5);
- if (!flags.z())
- goto notaideadd;
- _cmp(data.byte(kAidedead), 1);
- if (flags.z())
- goto notaideadd;
- al = 13;
- getlocation();
- _cmp(al, 1);
- if (flags.z())
- goto notaideadd;
- al = 13;
- setlocation();
- showfolder();
- al = 30;
- findtext1();
- di = 0;
- bx = 86;
- dl = 141;
- ah = 16;
- printdirect();
- worktoscreenm();
- cx = 200;
- hangonp();
- return;
-notaideadd:
- _cmp(data.byte(kFolderpage), 9);
- if (!flags.z())
- return /* (notaristoadd) */;
- al = 7;
- getlocation();
- _cmp(al, 1);
- if (flags.z())
- return /* (notaristoadd) */;
- al = 7;
- setlocation();
- showfolder();
- al = 31;
- findtext1();
- di = 0;
- bx = 86;
- dl = 141;
- ah = 16;
- printdirect();
- worktoscreenm();
- cx = 200;
- hangonp();
-}
-
-void DreamGenContext::lastfolder() {
- STACK_CHECK;
- _cmp(data.byte(kFolderpage), 0);
- if (!flags.z())
- goto canlastf;
- blank();
- return;
-canlastf:
- _cmp(data.byte(kCommandtype), 202);
- if (flags.z())
- goto alreadylastf;
- data.byte(kCommandtype) = 202;
- al = 17;
- commandonly();
-alreadylastf:
- _cmp(data.byte(kFolderpage), 0);
- if (flags.z())
- return /* (notlastf) */;
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notlastf) */;
- _cmp(ax, 1);
- if (flags.z())
- goto dolastf;
- return;
-dolastf:
- _dec(data.byte(kFolderpage));
- delpointer();
- showfolder();
- data.word(kMousebutton) = 0;
- bx = offset_folderlist;
- checkcoords();
- worktoscreenm();
-}
-
-void DreamGenContext::loadfolder() {
- STACK_CHECK;
- dx = 2299;
- loadintotemp();
- dx = 2312;
- loadintotemp2();
- dx = 2325;
- loadintotemp3();
- dx = 1883;
- loadtempcharset();
- dx = 2195;
- loadtemptext();
-}
-
-void DreamGenContext::showfolder() {
- STACK_CHECK;
- data.byte(kCommandtype) = 255;
- _cmp(data.byte(kFolderpage), 0);
- if (flags.z())
- goto closedfolder;
- usetempcharset();
- createpanel2();
- ds = data.word(kTempgraphics);
- di = 0;
- bx = 0;
- al = 0;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = 143;
- bx = 0;
- al = 1;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = 0;
- bx = 92;
- al = 2;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = 143;
- bx = 92;
- al = 3;
- ah = 0;
- showframe();
- folderexit();
- _cmp(data.byte(kFolderpage), 1);
- if (flags.z())
- goto noleftpage;
- showleftpage();
-noleftpage:
- _cmp(data.byte(kFolderpage), 12);
- if (flags.z())
- goto norightpage;
- showrightpage();
-norightpage:
- usecharset1();
- undertextline();
- return;
-closedfolder:
- createpanel2();
- ds = data.word(kTempgraphics3);
- di = 143-28;
- bx = 0;
- al = 0;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics3);
- di = 143-28;
- bx = 92;
- al = 1;
- ah = 0;
- showframe();
- folderexit();
- undertextline();
-}
-
-void DreamGenContext::folderexit() {
- STACK_CHECK;
- ds = data.word(kTempgraphics2);
- di = 296;
- bx = 178;
- al = 6;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::showleftpage() {
- STACK_CHECK;
- ds = data.word(kTempgraphics2);
- di = 0;
- bx = 12;
- al = 3;
- ah = 0;
- showframe();
- bx = 12+5;
- cx = 9;
-leftpageloop:
- push(cx);
- push(bx);
- ds = data.word(kTempgraphics2);
- di = 0;
- al = 4;
- ah = 0;
- showframe();
- bx = pop();
- cx = pop();
- _add(bx, 16);
- if (--cx)
- goto leftpageloop;
- ds = data.word(kTempgraphics2);
- di = 0;
- al = 5;
- ah = 0;
- showframe();
- data.word(kLinespacing) = 8;
- data.word(kCharshift) = 91;
- data.byte(kKerning) = 1;
- bl = data.byte(kFolderpage);
- _dec(bl);
- _dec(bl);
- _add(bl, bl);
- bh = 0;
- _add(bx, bx);
- es = data.word(kTextfile1);
- si = es.word(bx);
- _add(si, 66*2);
- di = 2;
- bx = 48;
- dl = 140;
- cx = 2;
-twolotsleft:
- push(cx);
-contleftpage:
- printdirect();
- _add(bx, data.word(kLinespacing));
- _cmp(al, 0);
- if (!flags.z())
- goto contleftpage;
- cx = pop();
- if (--cx)
- goto twolotsleft;
- data.byte(kKerning) = 0;
- data.word(kCharshift) = 0;
- data.word(kLinespacing) = 10;
- es = data.word(kWorkspace);
- ds = data.word(kWorkspace);
- di = (48*320)+2;
- si = (48*320)+2+130;
- cx = 120;
-flipfolder:
- push(cx);
- push(di);
- push(si);
- cx = 65;
-flipfolderline:
- al = es.byte(di);
- ah = es.byte(si);
- es.byte(di) = ah;
- es.byte(si) = al;
- _dec(si);
- _inc(di);
- if (--cx)
- goto flipfolderline;
- si = pop();
- di = pop();
- cx = pop();
- _add(si, 320);
- _add(di, 320);
- if (--cx)
- goto flipfolder;
-}
-
-void DreamGenContext::showrightpage() {
- STACK_CHECK;
- ds = data.word(kTempgraphics2);
- di = 143;
- bx = 12;
- al = 0;
- ah = 0;
- showframe();
- bx = 12+37;
- cx = 7;
-rightpageloop:
- push(cx);
- push(bx);
- ds = data.word(kTempgraphics2);
- di = 143;
- al = 1;
- ah = 0;
- showframe();
- bx = pop();
- cx = pop();
- _add(bx, 16);
- if (--cx)
- goto rightpageloop;
- ds = data.word(kTempgraphics2);
- di = 143;
- al = 2;
- ah = 0;
- showframe();
- data.word(kLinespacing) = 8;
- data.byte(kKerning) = 1;
- bl = data.byte(kFolderpage);
- _dec(bl);
- _add(bl, bl);
- bh = 0;
- _add(bx, bx);
- es = data.word(kTextfile1);
- si = es.word(bx);
- _add(si, 66*2);
- di = 152;
- bx = 48;
- dl = 140;
- cx = 2;
-twolotsright:
- push(cx);
-contrightpage:
- printdirect();
- _add(bx, data.word(kLinespacing));
- _cmp(al, 0);
- if (!flags.z())
- goto contrightpage;
- cx = pop();
- if (--cx)
- goto twolotsright;
- data.byte(kKerning) = 0;
- data.word(kLinespacing) = 10;
-}
-
-void DreamGenContext::entersymbol() {
- STACK_CHECK;
- data.byte(kManisoffscreen) = 1;
- getridofreels();
- dx = 2338;
- loadintotemp();
- data.byte(kSymboltopx) = 24;
- data.byte(kSymboltopdir) = 0;
- data.byte(kSymbolbotx) = 24;
- data.byte(kSymbolbotdir) = 0;
- redrawmainscrn();
- showsymbol();
- undertextline();
- worktoscreenm();
- data.byte(kGetback) = 0;
-symbolloop:
- delpointer();
- updatesymboltop();
- updatesymbolbot();
- showsymbol();
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- dumpsymbol();
- bx = offset_symbollist;
- checkcoords();
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto symbolloop;
- _cmp(data.byte(kSymbolbotnum), 3);
- if (!flags.z())
- goto symbolwrong;
- _cmp(data.byte(kSymboltopnum), 5);
- if (!flags.z())
- goto symbolwrong;
- al = 43;
- removesetobject();
- al = 46;
- placesetobject();
- ah = data.byte(kRoomnum);
- _add(ah, 12);
- al = 0;
- turnanypathon();
- data.byte(kManisoffscreen) = 0;
- redrawmainscrn();
- getridoftemp();
- restorereels();
- worktoscreenm();
- al = 13;
- playchannel1();
- return;
-symbolwrong:
- al = 46;
- removesetobject();
- al = 43;
- placesetobject();
- ah = data.byte(kRoomnum);
- _add(ah, 12);
- al = 0;
- turnanypathoff();
- data.byte(kManisoffscreen) = 0;
- redrawmainscrn();
- getridoftemp();
- restorereels();
- worktoscreenm();
-}
-
-void DreamGenContext::quitsymbol() {
- STACK_CHECK;
- _cmp(data.byte(kSymboltopx), 24);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kSymbolbotx), 24);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 222);
- if (flags.z())
- goto alreadyqs;
- data.byte(kCommandtype) = 222;
- al = 18;
- commandonly();
-alreadyqs:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notqs) */;
- _and(ax, 1);
- if (!flags.z())
- goto doqs;
- return;
-doqs:
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::settopleft() {
- STACK_CHECK;
- _cmp(data.byte(kSymboltopdir), 0);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 210);
- if (flags.z())
- goto alreadytopl;
- data.byte(kCommandtype) = 210;
- al = 19;
- commandonly();
-alreadytopl:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- return /* (notopleft) */;
- data.byte(kSymboltopdir) = -1;
-}
-
-void DreamGenContext::settopright() {
- STACK_CHECK;
- _cmp(data.byte(kSymboltopdir), 0);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 211);
- if (flags.z())
- goto alreadytopr;
- data.byte(kCommandtype) = 211;
- al = 20;
- commandonly();
-alreadytopr:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- return /* (notopright) */;
- data.byte(kSymboltopdir) = 1;
-}
-
-void DreamGenContext::setbotleft() {
- STACK_CHECK;
- _cmp(data.byte(kSymbolbotdir), 0);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 212);
- if (flags.z())
- goto alreadybotl;
- data.byte(kCommandtype) = 212;
- al = 21;
- commandonly();
-alreadybotl:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- return /* (nobotleft) */;
- data.byte(kSymbolbotdir) = -1;
-}
-
-void DreamGenContext::setbotright() {
- STACK_CHECK;
- _cmp(data.byte(kSymbolbotdir), 0);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 213);
- if (flags.z())
- goto alreadybotr;
- data.byte(kCommandtype) = 213;
- al = 22;
- commandonly();
-alreadybotr:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- return /* (nobotright) */;
- data.byte(kSymbolbotdir) = 1;
-}
-
-void DreamGenContext::dumpsymbol() {
- STACK_CHECK;
- data.byte(kNewtextline) = 0;
- di = (64);
- bx = (56)+20;
- cl = 104;
- ch = 60;
- multidump();
-}
-
-void DreamGenContext::showsymbol() {
- STACK_CHECK;
- al = 12;
- ah = 0;
- di = (64);
- bx = (56);
- ds = data.word(kTempgraphics);
- showframe();
- al = data.byte(kSymboltopx);
- ah = 0;
- di = ax;
- _add(di, (64)-44);
- al = data.byte(kSymboltopnum);
- bx = (56)+20;
- ds = data.word(kTempgraphics);
- ah = 32;
- push(ax);
- push(di);
- push(bx);
- push(ds);
- showframe();
- ds = pop();
- bx = pop();
- di = pop();
- ax = pop();
- nextsymbol();
- _add(di, 49);
- push(ax);
- push(di);
- push(bx);
- push(ds);
- showframe();
- ds = pop();
- bx = pop();
- di = pop();
- ax = pop();
- nextsymbol();
- _add(di, 49);
- showframe();
- al = data.byte(kSymbolbotx);
- ah = 0;
- di = ax;
- _add(di, (64)-44);
- al = data.byte(kSymbolbotnum);
- _add(al, 6);
- bx = (56)+49;
- ds = data.word(kTempgraphics);
- ah = 32;
- push(ax);
- push(di);
- push(bx);
- push(ds);
- showframe();
- ds = pop();
- bx = pop();
- di = pop();
- ax = pop();
- nextsymbol();
- _add(di, 49);
- push(ax);
- push(di);
- push(bx);
- push(ds);
- showframe();
- ds = pop();
- bx = pop();
- di = pop();
- ax = pop();
- nextsymbol();
- _add(di, 49);
- showframe();
-}
-
-void DreamGenContext::nextsymbol() {
- STACK_CHECK;
- _inc(al);
- _cmp(al, 6);
- if (flags.z())
- goto topwrap;
- _cmp(al, 12);
- if (flags.z())
- goto botwrap;
- return;
-topwrap:
- al = 0;
- return;
-botwrap:
- al = 6;
-}
-
-void DreamGenContext::updatesymboltop() {
- STACK_CHECK;
- _cmp(data.byte(kSymboltopdir), 0);
- if (flags.z())
- return /* (topfinished) */;
- _cmp(data.byte(kSymboltopdir), -1);
- if (flags.z())
- goto backwards;
- _inc(data.byte(kSymboltopx));
- _cmp(data.byte(kSymboltopx), 49);
- if (!flags.z())
- goto notwrapfor;
- data.byte(kSymboltopx) = 0;
- _dec(data.byte(kSymboltopnum));
- _cmp(data.byte(kSymboltopnum), -1);
- if (!flags.z())
- return /* (topfinished) */;
- data.byte(kSymboltopnum) = 5;
- return;
-notwrapfor:
- _cmp(data.byte(kSymboltopx), 24);
- if (!flags.z())
- return /* (topfinished) */;
- data.byte(kSymboltopdir) = 0;
- return;
-backwards:
- _dec(data.byte(kSymboltopx));
- _cmp(data.byte(kSymboltopx), -1);
- if (!flags.z())
- goto notwrapback;
- data.byte(kSymboltopx) = 48;
- _inc(data.byte(kSymboltopnum));
- _cmp(data.byte(kSymboltopnum), 6);
- if (!flags.z())
- return /* (topfinished) */;
- data.byte(kSymboltopnum) = 0;
- return;
-notwrapback:
- _cmp(data.byte(kSymboltopx), 24);
- if (!flags.z())
- return /* (topfinished) */;
- data.byte(kSymboltopdir) = 0;
-}
-
-void DreamGenContext::updatesymbolbot() {
- STACK_CHECK;
- _cmp(data.byte(kSymbolbotdir), 0);
- if (flags.z())
- return /* (botfinished) */;
- _cmp(data.byte(kSymbolbotdir), -1);
- if (flags.z())
- goto backwardsbot;
- _inc(data.byte(kSymbolbotx));
- _cmp(data.byte(kSymbolbotx), 49);
- if (!flags.z())
- goto notwrapforb;
- data.byte(kSymbolbotx) = 0;
- _dec(data.byte(kSymbolbotnum));
- _cmp(data.byte(kSymbolbotnum), -1);
- if (!flags.z())
- return /* (botfinished) */;
- data.byte(kSymbolbotnum) = 5;
- return;
-notwrapforb:
- _cmp(data.byte(kSymbolbotx), 24);
- if (!flags.z())
- return /* (botfinished) */;
- data.byte(kSymbolbotdir) = 0;
- return;
-backwardsbot:
- _dec(data.byte(kSymbolbotx));
- _cmp(data.byte(kSymbolbotx), -1);
- if (!flags.z())
- goto notwrapbackb;
- data.byte(kSymbolbotx) = 48;
- _inc(data.byte(kSymbolbotnum));
- _cmp(data.byte(kSymbolbotnum), 6);
- if (!flags.z())
- return /* (botfinished) */;
- data.byte(kSymbolbotnum) = 0;
- return;
-notwrapbackb:
- _cmp(data.byte(kSymbolbotx), 24);
- if (!flags.z())
- return /* (botfinished) */;
- data.byte(kSymbolbotdir) = 0;
-}
-
-void DreamGenContext::dumpsymbox() {
- STACK_CHECK;
- _cmp(data.word(kDumpx), -1);
- if (flags.z())
- return /* (nodumpsym) */;
- di = data.word(kDumpx);
- bx = data.word(kDumpy);
- cl = 30;
- ch = 77;
- multidump();
- data.word(kDumpx) = -1;
-}
-
-void DreamGenContext::usediary() {
- STACK_CHECK;
- getridofreels();
- dx = 2039;
- loadintotemp();
- dx = 2208;
- loadtemptext();
- dx = 1883;
- loadtempcharset();
- createpanel();
- showicon();
- showdiary();
- undertextline();
- showdiarypage();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
- data.byte(kGetback) = 0;
-diaryloop:
- delpointer();
- readmouse();
- showdiarykeys();
- showpointer();
- vsync();
- dumppointer();
- dumpdiarykeys();
- dumptextline();
- bx = offset_diarylist;
- checkcoords();
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto diaryloop;
- getridoftemp();
- getridoftemptext();
- getridoftempcharset();
- restorereels();
- data.byte(kManisoffscreen) = 0;
- redrawmainscrn();
- worktoscreenm();
-}
-
-void DreamGenContext::showdiary() {
- STACK_CHECK;
- al = 1;
- ah = 0;
- di = (68+24);
- bx = (48+12)+37;
- ds = data.word(kTempgraphics);
- showframe();
- al = 2;
- ah = 0;
- di = (68+24)+176;
- bx = (48+12)+108;
- ds = data.word(kTempgraphics);
- showframe();
-}
-
-void DreamGenContext::showdiarykeys() {
- STACK_CHECK;
- _cmp(data.byte(kPresscount), 0);
- if (flags.z())
- return /* (nokeyatall) */;
- _dec(data.byte(kPresscount));
- _cmp(data.byte(kPresscount), 0);
- if (flags.z())
- return /* (nokeyatall) */;
- _cmp(data.byte(kPressed), 'N');
- if (!flags.z())
- goto nokeyn;
- al = 3;
- _cmp(data.byte(kPresscount), 1);
- if (flags.z())
- goto gotkeyn;
- al = 4;
-gotkeyn:
- ah = 0;
- di = (68+24)+94;
- bx = (48+12)+97;
- ds = data.word(kTempgraphics);
- showframe();
- _cmp(data.byte(kPresscount), 1);
- if (!flags.z())
- return /* (notshown) */;
- showdiarypage();
- return;
-nokeyn:
- al = 5;
- _cmp(data.byte(kPresscount), 1);
- if (flags.z())
- goto gotkeyp;
- al = 6;
-gotkeyp:
- ah = 0;
- di = (68+24)+151;
- bx = (48+12)+71;
- ds = data.word(kTempgraphics);
- showframe();
- _cmp(data.byte(kPresscount), 1);
- if (!flags.z())
- return /* (notshowp) */;
- showdiarypage();
-}
-
-void DreamGenContext::dumpdiarykeys() {
- STACK_CHECK;
- _cmp(data.byte(kPresscount), 1);
- if (!flags.z())
- goto notdumpdiary;
- _cmp(data.byte(kSartaindead), 1);
- if (flags.z())
- goto notsartadd;
- _cmp(data.byte(kDiarypage), 5);
- if (!flags.z())
- goto notsartadd;
- _cmp(data.byte(kDiarypage), 5);
- if (!flags.z())
- goto notsartadd;
- al = 6;
- getlocation();
- _cmp(al, 1);
- if (flags.z())
- goto notsartadd;
- al = 6;
- setlocation();
- delpointer();
- al = 12;
- findtext1();
- di = 70;
- bx = 106;
- dl = 241;
- ah = 16;
- printdirect();
- worktoscreenm();
- cx = 200;
- hangonp();
- createpanel();
- showicon();
- showdiary();
- showdiarypage();
- worktoscreenm();
- showpointer();
- return;
-notsartadd:
- di = (68+24)+48;
- bx = (48+12)+15;
- cl = 200;
- ch = 16;
- multidump();
-notdumpdiary:
- di = (68+24)+94;
- bx = (48+12)+97;
- cl = 16;
- ch = 16;
- multidump();
- di = (68+24)+151;
- bx = (48+12)+71;
- cl = 16;
- ch = 16;
- multidump();
-}
-
-void DreamGenContext::diarykeyp() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 214);
- if (flags.z())
- goto alreadykeyp;
- data.byte(kCommandtype) = 214;
- al = 23;
- commandonly();
-alreadykeyp:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- return /* (notkeyp) */;
- ax = data.word(kOldbutton);
- _cmp(ax, data.word(kMousebutton));
- if (flags.z())
- return /* (notkeyp) */;
- _cmp(data.byte(kPresscount), 0);
- if (!flags.z())
- return /* (notkeyp) */;
- al = 16;
- playchannel1();
- data.byte(kPresscount) = 12;
- data.byte(kPressed) = 'P';
- _dec(data.byte(kDiarypage));
- _cmp(data.byte(kDiarypage), -1);
- if (!flags.z())
- return /* (notkeyp) */;
- data.byte(kDiarypage) = 11;
-}
-
-void DreamGenContext::diarykeyn() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 213);
- if (flags.z())
- goto alreadykeyn;
- data.byte(kCommandtype) = 213;
- al = 23;
- commandonly();
-alreadykeyn:
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- return /* (notkeyn) */;
- ax = data.word(kOldbutton);
- _cmp(ax, data.word(kMousebutton));
- if (flags.z())
- return /* (notkeyn) */;
- _cmp(data.byte(kPresscount), 0);
- if (!flags.z())
- return /* (notkeyn) */;
- al = 16;
- playchannel1();
- data.byte(kPresscount) = 12;
- data.byte(kPressed) = 'N';
- _inc(data.byte(kDiarypage));
- _cmp(data.byte(kDiarypage), 12);
- if (!flags.z())
- return /* (notkeyn) */;
- data.byte(kDiarypage) = 0;
-}
-
-void DreamGenContext::showdiarypage() {
- STACK_CHECK;
- al = 0;
- ah = 0;
- di = (68+24);
- bx = (48+12);
- ds = data.word(kTempgraphics);
- showframe();
- al = data.byte(kDiarypage);
- findtext1();
- data.byte(kKerning) = 1;
- usetempcharset();
- di = (68+24)+48;
- bx = (48+12)+16;
- dl = 240;
- ah = 16;
- data.word(kCharshift) = 91+91;
- printdirect();
- di = (68+24)+129;
- bx = (48+12)+16;
- dl = 240;
- ah = 16;
- printdirect();
- di = (68+24)+48;
- bx = (48+12)+23;
- dl = 240;
- ah = 16;
- printdirect();
- data.byte(kKerning) = 0;
- data.word(kCharshift) = 0;
- usecharset1();
-}
-
-void DreamGenContext::findtext1() {
- STACK_CHECK;
- ah = 0;
- si = ax;
- _add(si, si);
- es = data.word(kTextfile1);
- ax = es.word(si);
- _add(ax, (66*2));
- si = ax;
-}
-
-void DreamGenContext::saveload() {
- STACK_CHECK;
- _cmp(data.word(kWatchingtime), 0);
- if (!flags.z())
- { blank(); return; };
- _cmp(data.byte(kPointermode), 2);
- if (flags.z())
- { blank(); return; };
- _cmp(data.byte(kCommandtype), 253);
- if (flags.z())
- goto alreadyops;
- data.byte(kCommandtype) = 253;
- al = 43;
- commandonly();
-alreadyops:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (noops) */;
- _and(ax, 1);
- if (flags.z())
- return /* (noops) */;
- dosaveload();
-}
-
-void DreamGenContext::dosaveload() {
- STACK_CHECK;
- data.byte(kPointerframe) = 0;
- data.word(kTextaddressx) = 70;
- data.word(kTextaddressy) = 182-8;
- data.byte(kTextlen) = 181;
- data.byte(kManisoffscreen) = 1;
- clearwork();
- createpanel2();
- undertextline();
- getridofall();
- loadsavebox();
- showopbox();
- showmainops();
- worktoscreen();
- goto donefirstops;
-restartops:
- showopbox();
- showmainops();
- worktoscreenm();
-donefirstops:
- data.byte(kGetback) = 0;
-waitops:
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- goto justret;
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- delpointer();
- bx = offset_opslist;
- checkcoords();
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto waitops;
- _cmp(data.byte(kGetback), 2);
- if (flags.z())
- goto restartops;
- data.word(kTextaddressx) = 13;
- data.word(kTextaddressy) = 182;
- data.byte(kTextlen) = 240;
- _cmp(data.byte(kGetback), 4);
- if (flags.z())
- goto justret;
- getridoftemp();
- restoreall();
- redrawmainscrn();
- worktoscreenm();
- data.byte(kCommandtype) = 200;
-justret:
- data.byte(kManisoffscreen) = 0;
-}
-
-void DreamGenContext::getbackfromops() {
- STACK_CHECK;
- _cmp(data.byte(kMandead), 2);
- if (flags.z())
- goto opsblock1;
- getback1();
- return;
-opsblock1:
- blank();
-}
-
-void DreamGenContext::showmainops() {
- STACK_CHECK;
- ds = data.word(kTempgraphics);
- di = (60)+10;
- bx = (52)+10;
- al = 8;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = (60)+59;
- bx = (52)+30;
- al = 7;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = (60)+128+4;
- bx = (52)+12;
- al = 1;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::showdiscops() {
- STACK_CHECK;
- ds = data.word(kTempgraphics);
- di = (60)+128+4;
- bx = (52)+12;
- al = 1;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = (60)+10;
- bx = (52)+10;
- al = 9;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = (60)+59;
- bx = (52)+30;
- al = 10;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = (60)+176+2;
- bx = (52)+60-4;
- al = 5;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::loadsavebox() {
- STACK_CHECK;
- dx = 1961;
- loadintotemp();
-}
-
-void DreamGenContext::getbacktoops() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 201);
- if (flags.z())
- goto alreadygetops;
- data.byte(kCommandtype) = 201;
- al = 42;
- commandonly();
-alreadygetops:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nogetbackops) */;
- _and(ax, 1);
- if (!flags.z())
- goto dogetbackops;
- return;
-dogetbackops:
- oldtonames();
- data.byte(kGetback) = 2;
-}
-
-void DreamGenContext::discops() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 249);
- if (flags.z())
- goto alreadydiscops;
- data.byte(kCommandtype) = 249;
- al = 43;
- commandonly();
-alreadydiscops:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (nodiscops) */;
- _and(ax, 1);
- if (!flags.z())
- goto dodiscops;
- return;
-dodiscops:
- scanfornames();
- data.byte(kLoadingorsave) = 2;
- showopbox();
- showdiscops();
- data.byte(kCurrentslot) = 0;
- worktoscreenm();
- data.byte(kGetback) = 0;
-discopsloop:
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (quitdiscops) */;
- delpointer();
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- bx = offset_discopslist;
- checkcoords();
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto discopsloop;
-}
-
-void DreamGenContext::actualsave() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 222);
- if (flags.z())
- goto alreadyactsave;
- data.byte(kCommandtype) = 222;
- al = 44;
- commandonly();
-alreadyactsave:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (flags.z())
- return /* (noactsave) */;
- dx = data;
- ds = dx;
- si = 8579;
- al = data.byte(kCurrentslot);
- ah = 0;
- cx = 17;
- _mul(cx);
- _add(si, ax);
- _inc(si);
- _cmp(ds.byte(si), 0);
- if (flags.z())
- return /* (noactsave) */;
- al = data.byte(kLocation);
- ah = 0;
- cx = 32;
- _mul(cx);
- ds = cs;
- si = 6187;
- _add(si, ax);
- di = 7979;
- bx = di;
- es = cs;
- cx = 16;
- _movsw(cx, true);
- al = data.byte(kRoomssample);
- es.byte(bx+13) = al;
- al = data.byte(kMapx);
- es.byte(bx+15) = al;
- al = data.byte(kMapy);
- es.byte(bx+16) = al;
- al = data.byte(kLiftflag);
- es.byte(bx+20) = al;
- al = data.byte(kManspath);
- es.byte(bx+21) = al;
- al = data.byte(kFacing);
- es.byte(bx+22) = al;
- al = 255;
- es.byte(bx+27) = al;
- saveposition();
- getridoftemp();
- restoreall();
- data.word(kTextaddressx) = 13;
- data.word(kTextaddressy) = 182;
- data.byte(kTextlen) = 240;
- redrawmainscrn();
- worktoscreenm();
- data.byte(kGetback) = 4;
-}
-
-void DreamGenContext::actualload() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 221);
- if (flags.z())
- goto alreadyactload;
- data.byte(kCommandtype) = 221;
- al = 41;
- commandonly();
-alreadyactload:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notactload) */;
- _cmp(ax, 1);
- if (!flags.z())
- return /* (notactload) */;
- dx = data;
- ds = dx;
- si = 8579;
- al = data.byte(kCurrentslot);
- ah = 0;
- cx = 17;
- _mul(cx);
- _add(si, ax);
- _inc(si);
- _cmp(ds.byte(si), 0);
- if (flags.z())
- return /* (notactload) */;
- loadposition();
- data.byte(kGetback) = 1;
-}
-
-void DreamGenContext::selectslot2() {
- STACK_CHECK;
- _cmp(data.word(kMousebutton), 0);
- if (flags.z())
- goto noselslot2;
- data.byte(kLoadingorsave) = 2;
-noselslot2:
- selectslot();
-}
-
-void DreamGenContext::checkinput() {
- STACK_CHECK;
- _cmp(data.byte(kLoadingorsave), 3);
- if (flags.z())
- return /* (nokeypress) */;
- readkey();
- al = data.byte(kCurrentkey);
- _cmp(al, 0);
- if (flags.z())
- return /* (nokeypress) */;
- _cmp(al, 13);
- if (!flags.z())
- goto notret;
- data.byte(kLoadingorsave) = 3;
- goto afterkey;
-notret:
- _cmp(al, 8);
- if (!flags.z())
- goto nodel2;
- _cmp(data.byte(kCursorpos), 0);
- if (flags.z())
- return /* (nokeypress) */;
- getnamepos();
- _dec(data.byte(kCursorpos));
- es.byte(bx) = 0;
- es.byte(bx+1) = 1;
- goto afterkey;
-nodel2:
- _cmp(data.byte(kCursorpos), 14);
- if (flags.z())
- return /* (nokeypress) */;
- getnamepos();
- _inc(data.byte(kCursorpos));
- al = data.byte(kCurrentkey);
- es.byte(bx+1) = al;
- es.byte(bx+2) = 0;
- es.byte(bx+3) = 1;
- goto afterkey;
- return;
-afterkey:
- showopbox();
- shownames();
- showslots();
- showsaveops();
- worktoscreenm();
-}
-
-void DreamGenContext::getnamepos() {
- STACK_CHECK;
- al = data.byte(kCurrentslot);
- ah = 0;
- cx = 17;
- _mul(cx);
- dx = data;
- es = dx;
- bx = 8579;
- _add(bx, ax);
- al = data.byte(kCursorpos);
- ah = 0;
- _add(bx, ax);
-}
-
-void DreamGenContext::showopbox() {
- STACK_CHECK;
- ds = data.word(kTempgraphics);
- di = (60);
- bx = (52);
- al = 0;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = (60);
- bx = (52)+55;
- al = 4;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::showloadops() {
- STACK_CHECK;
- ds = data.word(kTempgraphics);
- di = (60)+128+4;
- bx = (52)+12;
- al = 1;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = (60)+176+2;
- bx = (52)+60-4;
- al = 5;
- ah = 0;
- showframe();
- di = (60)+104;
- bx = (52)+14;
- al = 55;
- dl = 101;
- printmessage();
-}
-
-void DreamGenContext::showsaveops() {
- STACK_CHECK;
- ds = data.word(kTempgraphics);
- di = (60)+128+4;
- bx = (52)+12;
- al = 1;
- ah = 0;
- showframe();
- ds = data.word(kTempgraphics);
- di = (60)+176+2;
- bx = (52)+60-4;
- al = 5;
- ah = 0;
- showframe();
- di = (60)+104;
- bx = (52)+14;
- al = 54;
- dl = 101;
- printmessage();
-}
-
-void DreamGenContext::selectslot() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 244);
- if (flags.z())
- goto alreadysel;
- data.byte(kCommandtype) = 244;
- al = 45;
- commandonly();
-alreadysel:
- ax = data.word(kMousebutton);
- _cmp(ax, 1);
- if (!flags.z())
- return /* (noselslot) */;
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (noselslot) */;
- _cmp(data.byte(kLoadingorsave), 3);
- if (!flags.z())
- goto notnocurs;
- _dec(data.byte(kLoadingorsave));
-notnocurs:
- oldtonames();
- ax = data.word(kMousey);
- _sub(ax, (52)+4);
- cl = -1;
-getslotnum:
- _inc(cl);
- _sub(ax, 11);
- if (!flags.c())
- goto getslotnum;
- data.byte(kCurrentslot) = cl;
- delpointer();
- showopbox();
- showslots();
- shownames();
- _cmp(data.byte(kLoadingorsave), 1);
- if (flags.z())
- goto isloadmode;
- showsaveops();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
- return;
-isloadmode:
- showloadops();
- readmouse();
- showpointer();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::showslots() {
- STACK_CHECK;
- di = (60)+7;
- bx = (52)+8;
- al = 2;
- ds = data.word(kTempgraphics);
- ah = 0;
- showframe();
- di = (60)+10;
- bx = (52)+11;
- cl = 0;
-slotloop:
- push(cx);
- push(di);
- push(bx);
- _cmp(cl, data.byte(kCurrentslot));
- if (!flags.z())
- goto nomatchslot;
- al = 3;
- ds = data.word(kTempgraphics);
- ah = 0;
- showframe();
-nomatchslot:
- bx = pop();
- di = pop();
- cx = pop();
- _add(bx, 10);
- _inc(cl);
- _cmp(cl, 7);
- if (!flags.z())
- goto slotloop;
-}
-
-void DreamGenContext::shownames() {
- STACK_CHECK;
- dx = data;
- es = dx;
- si = 8579+1;
- di = (60)+21;
- bx = (52)+10;
- cl = 0;
-shownameloop:
- push(cx);
- push(di);
- push(es);
- push(bx);
- push(si);
- al = 4;
- _cmp(cl, data.byte(kCurrentslot));
- if (!flags.z())
- goto nomatchslot2;
- _cmp(data.byte(kLoadingorsave), 2);
- if (!flags.z())
- goto loadmode;
- dx = si;
- cx = 15;
- _add(si, 15);
-zerostill:
- _dec(si);
- _dec(cl);
- _cmp(es.byte(si), 1);
- if (!flags.z())
- goto foundcharacter;
- goto zerostill;
-foundcharacter:
- data.byte(kCursorpos) = cl;
- es.byte(si) = '/';
- es.byte(si+1) = 0;
- push(si);
- si = dx;
- dl = 200;
- ah = 0;
- printdirect();
- si = pop();
- es.byte(si) = 0;
- es.byte(si+1) = 1;
- goto afterprintname;
-loadmode:
- al = 0;
- dl = 200;
- ah = 0;
- data.word(kCharshift) = 91;
- printdirect();
- data.word(kCharshift) = 0;
- goto afterprintname;
-nomatchslot2:
- dl = 200;
- ah = 0;
- printdirect();
-afterprintname:
- si = pop();
- bx = pop();
- es = pop();
- di = pop();
- cx = pop();
- _add(si, 17);
- _add(bx, 10);
- _inc(cl);
- _cmp(cl, 7);
- if (!flags.z())
- goto shownameloop;
-}
-
-void DreamGenContext::namestoold() {
- STACK_CHECK;
- ds = cs;
- si = 8579;
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
- es = data.word(kBuffers);
- cx = 17*4;
- _movsb(cx, true);
-}
-
-void DreamGenContext::oldtonames() {
- STACK_CHECK;
- es = cs;
- di = 8579;
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
- ds = data.word(kBuffers);
- cx = 17*4;
- _movsb(cx, true);
-}
-
-void DreamGenContext::saveposition() {
- STACK_CHECK;
- makeheader();
- al = data.byte(kCurrentslot);
- ah = 0;
- push(ax);
- cx = 13;
- _mul(cx);
- dx = data;
- ds = dx;
- dx = 8698;
- _add(dx, ax);
- openforsave();
- dx = data;
- ds = dx;
- dx = 6091;
- cx = (6187-6091);
- savefilewrite();
- dx = data;
- es = dx;
- di = 6141;
- ax = pop();
- cx = 17;
- _mul(cx);
- dx = data;
- ds = dx;
- dx = 8579;
- _add(dx, ax);
- saveseg();
- dx = data;
- ds = dx;
- dx = 0;
- saveseg();
- ds = data.word(kExtras);
- dx = (0);
- saveseg();
- ds = data.word(kBuffers);
- dx = (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));
- saveseg();
- dx = data;
- ds = dx;
- dx = 7979;
- saveseg();
- dx = data;
- ds = dx;
- dx = 534;
- saveseg();
- closefile();
-}
-
-void DreamGenContext::loadposition() {
- STACK_CHECK;
- data.word(kTimecount) = 0;
- clearchanges();
- al = data.byte(kCurrentslot);
- ah = 0;
- push(ax);
- cx = 13;
- _mul(cx);
- dx = data;
- ds = dx;
- dx = 8698;
- _add(dx, ax);
- openfilefromc();
- ds = cs;
- dx = 6091;
- cx = (6187-6091);
- savefileread();
- es = cs;
- di = 6141;
- ax = pop();
- cx = 17;
- _mul(cx);
- dx = data;
- ds = dx;
- dx = 8579;
- _add(dx, ax);
- loadseg();
- dx = data;
- ds = dx;
- dx = 0;
- loadseg();
- ds = data.word(kExtras);
- dx = (0);
- loadseg();
- ds = data.word(kBuffers);
- dx = (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));
- loadseg();
- dx = data;
- ds = dx;
- dx = 7979;
- loadseg();
- ds = cs;
- dx = 534;
- loadseg();
- closefile();
-}
-
-void DreamGenContext::makeheader() {
- STACK_CHECK;
- dx = data;
- es = dx;
- di = 6141;
- ax = 17;
- storeit();
- ax = (68-0);
- storeit();
- ax = (0+2080+30000+(16*114)+((114+2)*2)+18000);
- storeit();
- ax = (250)*4;
- storeit();
- ax = 48;
- storeit();
- ax = (991-534);
- storeit();
-}
-
-void DreamGenContext::storeit() {
- STACK_CHECK;
- _cmp(ax, 0);
- if (!flags.z())
- goto isntblank;
- _inc(ax);
-isntblank:
- _stosw();
-}
-
-void DreamGenContext::scanfornames() {
- STACK_CHECK;
- dx = data;
- es = dx;
- di = 8579;
- dx = data;
- ds = dx;
- dx = 8698;
- cx = 7;
-scanloop:
- push(es);
- push(ds);
- push(di);
- push(dx);
- push(cx);
- openfilefromc();
- if (flags.c())
- goto notexist;
- cx = pop();
- _inc(ch);
- push(cx);
- push(di);
- push(es);
- dx = data;
- ds = dx;
- dx = 6091;
- cx = (6187-6091);
- savefileread();
- dx = data;
- es = dx;
- di = 6141;
- ds = pop();
- dx = pop();
- loadseg();
- bx = data.word(kHandle);
- closefile();
-notexist:
- cx = pop();
- dx = pop();
- di = pop();
- ds = pop();
- es = pop();
- _add(dx, 13);
- _add(di, 17);
- _dec(cl);
- if (!flags.z())
- goto scanloop;
- al = ch;
-}
-
-void DreamGenContext::decide() {
- STACK_CHECK;
- setmode();
- loadpalfromiff();
- clearpalette();
- data.byte(kPointermode) = 0;
- data.word(kWatchingtime) = 0;
- data.byte(kPointerframe) = 0;
- data.word(kTextaddressx) = 70;
- data.word(kTextaddressy) = 182-8;
- data.byte(kTextlen) = 181;
- data.byte(kManisoffscreen) = 1;
- loadsavebox();
- showdecisions();
- worktoscreen();
- fadescreenup();
- data.byte(kGetback) = 0;
-waitdecide:
- _cmp(data.byte(kQuitrequested), 0);
- if (flags.z())
- goto _tmp1;
- return;
-_tmp1:
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- delpointer();
- bx = offset_decidelist;
- checkcoords();
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto waitdecide;
- _cmp(data.byte(kGetback), 4);
- if (flags.z())
- goto hasloadedroom;
- getridoftemp();
-hasloadedroom:
- data.word(kTextaddressx) = 13;
- data.word(kTextaddressy) = 182;
- data.byte(kTextlen) = 240;
-}
-
-void DreamGenContext::showdecisions() {
- STACK_CHECK;
- createpanel2();
- showopbox();
- ds = data.word(kTempgraphics);
- di = (60)+17;
- bx = (52)+13;
- al = 6;
- ah = 0;
- showframe();
- undertextline();
-}
-
-void DreamGenContext::newgame() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 251);
- if (flags.z())
- goto alreadynewgame;
- data.byte(kCommandtype) = 251;
- al = 47;
- commandonly();
-alreadynewgame:
- ax = data.word(kMousebutton);
- _cmp(ax, 1);
- if (!flags.z())
- return /* (nonewgame) */;
- data.byte(kGetback) = 3;
-}
-
-void DreamGenContext::loadold() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 252);
- if (flags.z())
- goto alreadyloadold;
- data.byte(kCommandtype) = 252;
- al = 48;
- commandonly();
-alreadyloadold:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (flags.z())
- return /* (noloadold) */;
- ax = 0x0ffff;
- doload();
- _cmp(data.byte(kGetback), 4);
- if (flags.z())
- return /* (noloadold) */;
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (noloadold) */;
- showdecisions();
- worktoscreenm();
- data.byte(kGetback) = 0;
-}
-
-void DreamGenContext::createname() {
- STACK_CHECK;
- push(ax);
- di = offset_speechfile;
- cs.byte(di+0) = dl;
- cs.byte(di+3) = cl;
- al = dh;
- ah = '0'-1;
-findten:
- _inc(ah);
- _sub(al, 10);
- if (!flags.c())
- goto findten;
- cs.byte(di+1) = ah;
- _add(al, 10+'0');
- cs.byte(di+2) = al;
- ax = pop();
- cl = '0'-1;
-thousandsc:
- _inc(cl);
- _sub(ax, 1000);
- if (!flags.c())
- goto thousandsc;
- _add(ax, 1000);
- cs.byte(di+4) = cl;
- cl = '0'-1;
-hundredsc:
- _inc(cl);
- _sub(ax, 100);
- if (!flags.c())
- goto hundredsc;
- _add(ax, 100);
- cs.byte(di+5) = cl;
- cl = '0'-1;
-tensc:
- _inc(cl);
- _sub(ax, 10);
- if (!flags.c())
- goto tensc;
- _add(ax, 10);
- cs.byte(di+6) = cl;
- _add(al, '0');
- cs.byte(di+7) = al;
-}
-
-void DreamGenContext::trysoundalloc() {
- STACK_CHECK;
- _cmp(data.byte(kNeedsoundbuff), 1);
- if (flags.z())
- return /* (gotsoundbuff) */;
- _inc(data.byte(kSoundtimes));
- bx = (16384+2048)/16;
- allocatemem();
- data.word(kSoundbuffer) = ax;
- push(ax);
- al = ah;
- cl = 4;
- _shr(al, cl);
- data.byte(kSoundbufferpage) = al;
- ax = pop();
- cl = 4;
- _shl(ax, cl);
- data.word(kSoundbufferad) = ax;
- _cmp(ax, 0x0b7ff);
- if (!flags.c())
- goto soundfail;
- es = data.word(kSoundbuffer);
- di = 0;
- cx = 16384/2;
- ax = 0x7f7f;
- _stosw(cx, true);
- data.byte(kNeedsoundbuff) = 1;
- return;
-soundfail:
- es = data.word(kSoundbuffer);
- deallocatemem();
-}
-
-void DreamGenContext::playchannel0() {
- STACK_CHECK;
- _cmp(data.byte(kSoundint), 255);
- if (flags.z())
- return /* (dontbother4) */;
- push(es);
- push(ds);
- push(bx);
- push(cx);
- push(di);
- push(si);
- data.byte(kCh0playing) = al;
- es = data.word(kSounddata);
- _cmp(al, 12);
- if (flags.c())
- goto notsecondbank;
- es = data.word(kSounddata2);
- _sub(al, 12);
-notsecondbank:
- data.byte(kCh0repeat) = ah;
- ah = 0;
- _add(ax, ax);
- bx = ax;
- _add(ax, ax);
- _add(bx, ax);
- al = es.byte(bx);
- ah = 0;
- data.word(kCh0emmpage) = ax;
- ax = es.word(bx+1);
- data.word(kCh0offset) = ax;
- ax = es.word(bx+3);
- data.word(kCh0blockstocopy) = ax;
- _cmp(data.byte(kCh0repeat), 0);
- if (flags.z())
- goto nosetloop;
- ax = data.word(kCh0emmpage);
- data.word(kCh0oldemmpage) = ax;
- ax = data.word(kCh0offset);
- data.word(kCh0oldoffset) = ax;
- ax = data.word(kCh0blockstocopy);
- data.word(kCh0oldblockstocopy) = ax;
-nosetloop:
- si = pop();
- di = pop();
- cx = pop();
- bx = pop();
- ds = pop();
- es = pop();
-}
-
-void DreamGenContext::playchannel1() {
- STACK_CHECK;
- _cmp(data.byte(kSoundint), 255);
- if (flags.z())
- return /* (dontbother5) */;
- _cmp(data.byte(kCh1playing), 7);
- if (flags.z())
- return /* (dontbother5) */;
- push(es);
- push(ds);
- push(bx);
- push(cx);
- push(di);
- push(si);
- data.byte(kCh1playing) = al;
- es = data.word(kSounddata);
- _cmp(al, 12);
- if (flags.c())
- goto notsecondbank1;
- es = data.word(kSounddata2);
- _sub(al, 12);
-notsecondbank1:
- ah = 0;
- _add(ax, ax);
- bx = ax;
- _add(ax, ax);
- _add(bx, ax);
- al = es.byte(bx);
- ah = 0;
- data.word(kCh1emmpage) = ax;
- ax = es.word(bx+1);
- data.word(kCh1offset) = ax;
- ax = es.word(bx+3);
- data.word(kCh1blockstocopy) = ax;
- si = pop();
- di = pop();
- cx = pop();
- bx = pop();
- ds = pop();
- es = pop();
-}
-
-void DreamGenContext::volumeadjust() {
- STACK_CHECK;
- al = data.byte(kVolumedirection);
- _cmp(al, 0);
- if (flags.z())
- return /* (volok) */;
- al = data.byte(kVolume);
- _cmp(al, data.byte(kVolumeto));
- if (flags.z())
- goto volfinish;
- _add(data.byte(kVolumecount), 64);
- if (!flags.z())
- return /* (volok) */;
- al = data.byte(kVolume);
- _add(al, data.byte(kVolumedirection));
- data.byte(kVolume) = al;
- return;
-volfinish:
- data.byte(kVolumedirection) = 0;
-}
-
-void DreamGenContext::entrytexts() {
- STACK_CHECK;
- _cmp(data.byte(kLocation), 21);
- if (!flags.z())
- goto notloc15;
- al = 28;
- cx = 60;
- dx = 11;
- bl = 68;
- bh = 64;
- setuptimeduse();
- return;
-notloc15:
- _cmp(data.byte(kLocation), 30);
- if (!flags.z())
- goto notloc43;
- al = 27;
- cx = 60;
- dx = 11;
- bl = 68;
- bh = 64;
- setuptimeduse();
- return;
-notloc43:
- _cmp(data.byte(kLocation), 23);
- if (!flags.z())
- goto notloc23;
- al = 29;
- cx = 60;
- dx = 11;
- bl = 68;
- bh = 64;
- setuptimeduse();
- return;
-notloc23:
- _cmp(data.byte(kLocation), 31);
- if (!flags.z())
- goto notloc44;
- al = 30;
- cx = 60;
- dx = 11;
- bl = 68;
- bh = 64;
- setuptimeduse();
- return;
-notloc44:
- _cmp(data.byte(kLocation), 20);
- if (!flags.z())
- goto notsarters2;
- al = 31;
- cx = 60;
- dx = 11;
- bl = 68;
- bh = 64;
- setuptimeduse();
- return;
-notsarters2:
- _cmp(data.byte(kLocation), 24);
- if (!flags.z())
- goto notedenlob;
- al = 32;
- cx = 60;
- dx = 3;
- bl = 68;
- bh = 64;
- setuptimeduse();
- return;
-notedenlob:
- _cmp(data.byte(kLocation), 34);
- if (!flags.z())
- return /* (noteden2) */;
- al = 33;
- cx = 60;
- dx = 3;
- bl = 68;
- bh = 64;
- setuptimeduse();
-}
-
-void DreamGenContext::entryanims() {
- STACK_CHECK;
- data.word(kReeltowatch) = -1;
- data.byte(kWatchmode) = -1;
- _cmp(data.byte(kLocation), 33);
- if (!flags.z())
- goto notinthebeach;
- switchryanoff();
- data.word(kWatchingtime) = 76*2;
- data.word(kReeltowatch) = 0;
- data.word(kEndwatchreel) = 76;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- return;
-notinthebeach:
- _cmp(data.byte(kLocation), 44);
- if (!flags.z())
- goto notsparkys;
- al = 8;
- resetlocation();
- data.word(kWatchingtime) = 50*2;
- data.word(kReeltowatch) = 247;
- data.word(kEndwatchreel) = 297;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- switchryanoff();
- return;
-notsparkys:
- _cmp(data.byte(kLocation), 22);
- if (!flags.z())
- goto notinthelift;
- data.word(kWatchingtime) = 31*2;
- data.word(kReeltowatch) = 0;
- data.word(kEndwatchreel) = 30;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- switchryanoff();
- return;
-notinthelift:
- _cmp(data.byte(kLocation), 26);
- if (!flags.z())
- goto notunderchurch;
- data.byte(kSymboltopnum) = 2;
- data.byte(kSymbolbotnum) = 1;
- return;
-notunderchurch:
- _cmp(data.byte(kLocation), 45);
- if (!flags.z())
- goto notenterdream;
- data.byte(kKeeperflag) = 0;
- data.word(kWatchingtime) = 296;
- data.word(kReeltowatch) = 45;
- data.word(kEndwatchreel) = 198;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- switchryanoff();
- return;
-notenterdream:
- _cmp(data.byte(kReallocation), 46);
- if (!flags.z())
- goto notcrystal;
- _cmp(data.byte(kSartaindead), 1);
- if (!flags.z())
- goto notcrystal;
- al = 0;
- removefreeobject();
- return;
-notcrystal:
- _cmp(data.byte(kLocation), 9);
- if (!flags.z())
- goto nottopchurch;
- al = 2;
- checkifpathison();
- if (flags.z())
- goto nottopchurch;
- _cmp(data.byte(kAidedead), 0);
- if (flags.z())
- goto nottopchurch;
- al = 3;
- checkifpathison();
- if (!flags.z())
- goto makedoorsopen;
- al = 2;
- turnpathon();
-makedoorsopen:
- al = 4;
- removesetobject();
- al = 5;
- placesetobject();
- return;
-nottopchurch:
- _cmp(data.byte(kLocation), 47);
- if (!flags.z())
- goto notdreamcentre;
- al = 4;
- placesetobject();
- al = 5;
- placesetobject();
- return;
-notdreamcentre:
- _cmp(data.byte(kLocation), 38);
- if (!flags.z())
- goto notcarpark;
- data.word(kWatchingtime) = 57*2;
- data.word(kReeltowatch) = 4;
- data.word(kEndwatchreel) = 57;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- switchryanoff();
- return;
-notcarpark:
- _cmp(data.byte(kLocation), 32);
- if (!flags.z())
- goto notalley;
- data.word(kWatchingtime) = 66*2;
- data.word(kReeltowatch) = 0;
- data.word(kEndwatchreel) = 66;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- switchryanoff();
- return;
-notalley:
- _cmp(data.byte(kLocation), 24);
- if (!flags.z())
- return /* (notedensagain) */;
- al = 2;
- ah = data.byte(kRoomnum);
- _dec(ah);
- turnanypathon();
-}
-
-void DreamGenContext::initialinv() {
- STACK_CHECK;
- _cmp(data.byte(kReallocation), 24);
- if (flags.z())
- goto isedens;
- return;
-isedens:
- al = 11;
- ah = 5;
- pickupob();
- al = 12;
- ah = 6;
- pickupob();
- al = 13;
- ah = 7;
- pickupob();
- al = 14;
- ah = 8;
- pickupob();
- al = 18;
- al = 18;
- ah = 0;
- pickupob();
- al = 19;
- ah = 1;
- pickupob();
- al = 20;
- ah = 9;
- pickupob();
- al = 16;
- ah = 2;
- pickupob();
- data.byte(kWatchmode) = 1;
- data.word(kReeltohold) = 0;
- data.word(kEndofholdreel) = 6;
- data.byte(kWatchspeed) = 1;
- data.byte(kSpeedcount) = 1;
- switchryanoff();
-}
-
-void DreamGenContext::pickupob() {
- STACK_CHECK;
- data.byte(kLastinvpos) = ah;
- data.byte(kObjecttype) = 2;
- data.byte(kItemframe) = al;
- data.byte(kCommand) = al;
- getanyad();
- transfertoex();
-}
-
-void DreamGenContext::checkforemm() {
- STACK_CHECK;
-}
-
-void DreamGenContext::checkbasemem() {
- STACK_CHECK;
- bx = data.word(kHowmuchalloc);
- _cmp(bx, 0x9360);
- if (!flags.c())
- return /* (enoughmem) */;
- data.byte(kGameerror) = 5;
- { quickquit(); return; };
-}
-
-void DreamGenContext::allocatebuffers() {
- STACK_CHECK;
- bx = (0+2080+30000+(16*114)+((114+2)*2)+18000)/16;
- allocatemem();
- data.word(kExtras) = ax;
- trysoundalloc();
- bx = (0+(66*60))/16;
- allocatemem();
- data.word(kMapdata) = ax;
- trysoundalloc();
- 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)+(6*64)+991-534+68-0)/16;
- allocatemem();
- data.word(kBuffers) = ax;
- trysoundalloc();
- bx = (16*80)/16;
- allocatemem();
- data.word(kFreedat) = ax;
- trysoundalloc();
- bx = (64*128)/16;
- allocatemem();
- data.word(kSetdat) = ax;
- trysoundalloc();
- bx = (22*8*20*8)/16;
- allocatemem();
- data.word(kMapstore) = ax;
- allocatework();
- bx = 2048/16;
- allocatemem();
- data.word(kSounddata) = ax;
- bx = 2048/16;
- allocatemem();
- data.word(kSounddata2) = ax;
-}
-
-void DreamGenContext::clearbuffers() {
- STACK_CHECK;
- es = data.word(kBuffers);
- cx = (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)+(6*64)+991-534+68-0)/2;
- ax = 0;
- di = 0;
- _stosw(cx, true);
- es = data.word(kExtras);
- cx = (0+2080+30000+(16*114)+((114+2)*2)+18000)/2;
- ax = 0x0ffff;
- di = 0;
- _stosw(cx, true);
- 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)+(6*64));
- ds = cs;
- si = 534;
- cx = (991-534);
- _movsb(cx, true);
- 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)+(6*64)+991-534);
- ds = cs;
- si = 0;
- cx = (68-0);
- _movsb(cx, true);
- clearchanges();
-}
-
-void DreamGenContext::clearchanges() {
- STACK_CHECK;
- es = data.word(kBuffers);
- cx = (250)*2;
- ax = 0x0ffff;
- 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));
- _stosw(cx, true);
- 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)+(256*30)+(6*64));
- es = cs;
- di = 534;
- cx = (991-534);
- _movsb(cx, true);
- 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)+(256*30)+(6*64)+991-534);
- es = cs;
- di = 0;
- cx = (68-0);
- _movsb(cx, true);
- data.byte(kExpos) = 0;
- data.word(kExframepos) = 0;
- data.word(kExtextpos) = 0;
- es = data.word(kExtras);
- cx = (0+2080+30000+(16*114)+((114+2)*2)+18000)/2;
- ax = 0x0ffff;
- di = 0;
- _stosw(cx, true);
- es = cs;
- di = 8011;
- al = 1;
- _stosb(2);
- al = 0;
- _stosb();
- al = 1;
- _stosb();
- ax = 0;
- cx = 6;
- _stosw(cx, true);
-}
-
-void DreamGenContext::clearbeforeload() {
- STACK_CHECK;
- _cmp(data.byte(kRoomloaded), 1);
- if (!flags.z())
- return /* (noclear) */;
- clearreels();
- clearrest();
- data.byte(kRoomloaded) = 0;
-}
-
-void DreamGenContext::clearreels() {
- STACK_CHECK;
- es = data.word(kReel1);
- deallocatemem();
- es = data.word(kReel2);
- deallocatemem();
- es = data.word(kReel3);
- deallocatemem();
-}
-
-void DreamGenContext::clearrest() {
- STACK_CHECK;
- es = data.word(kMapdata);
- cx = (66*60)/2;
- ax = 0;
- di = (0);
- _stosw(cx, true);
- es = data.word(kBackdrop);
- deallocatemem();
- es = data.word(kSetframes);
- deallocatemem();
- es = data.word(kReels);
- deallocatemem();
- es = data.word(kPeople);
- deallocatemem();
- es = data.word(kSetdesc);
- deallocatemem();
- es = data.word(kBlockdesc);
- deallocatemem();
- es = data.word(kRoomdesc);
- deallocatemem();
- es = data.word(kFreeframes);
- deallocatemem();
- es = data.word(kFreedesc);
- deallocatemem();
-}
-
-void DreamGenContext::startup() {
- STACK_CHECK;
- data.byte(kCurrentkey) = 0;
- data.byte(kMainmode) = 0;
- createpanel();
- data.byte(kNewobs) = 1;
- drawfloor();
- showicon();
- getunderzoom();
- spriteupdate();
- printsprites();
- undertextline();
- reelsonscreen();
- atmospheres();
-}
-
-void DreamGenContext::startup1() {
- STACK_CHECK;
- clearpalette();
- data.byte(kThroughdoor) = 0;
- data.byte(kCurrentkey) = '0';
- data.byte(kMainmode) = 0;
- createpanel();
- data.byte(kNewobs) = 1;
- drawfloor();
- showicon();
- getunderzoom();
- spriteupdate();
- printsprites();
- undertextline();
- reelsonscreen();
- atmospheres();
- worktoscreen();
- fadescreenup();
-}
-
-void DreamGenContext::screenupdate() {
- STACK_CHECK;
- newplace();
- mainscreen();
- animpointer();
- showpointer();
- _cmp(data.word(kWatchingtime), 0);
- if (!flags.z())
- goto iswatchingmode;
- _cmp(data.byte(kNewlocation), 255);
- if (!flags.z())
- return /* (finishearly) */;
-iswatchingmode:
- vsync();
- readmouse1();
- dumppointer();
- dumptextline();
- delpointer();
- autolook();
- spriteupdate();
- watchcount();
- zoom();
- showpointer();
- _cmp(data.byte(kWongame), 0);
- if (!flags.z())
- return /* (finishearly) */;
- vsync();
- readmouse2();
- dumppointer();
- dumpzoom();
- delpointer();
- deleverything();
- printsprites();
- reelsonscreen();
- afternewroom();
- showpointer();
- vsync();
- readmouse3();
- dumppointer();
- dumpmap();
- dumptimedtext();
- delpointer();
- showpointer();
- vsync();
- readmouse4();
- dumppointer();
- dumpwatch();
- delpointer();
-}
-
-void DreamGenContext::watchreel() {
- STACK_CHECK;
- _cmp(data.word(kReeltowatch), -1);
- if (flags.z())
- goto notplayingreel;
- al = data.byte(kManspath);
- _cmp(al, data.byte(kFinaldest));
- if (!flags.z())
- return /* (waitstopwalk) */;
- al = data.byte(kTurntoface);
- _cmp(al, data.byte(kFacing));
- if (flags.z())
- goto notwatchpath;
- return;
-notwatchpath:
- _dec(data.byte(kSpeedcount));
- _cmp(data.byte(kSpeedcount), -1);
- if (!flags.z())
- goto showwatchreel;
- al = data.byte(kWatchspeed);
- data.byte(kSpeedcount) = al;
- ax = data.word(kReeltowatch);
- _cmp(ax, data.word(kEndwatchreel));
- if (!flags.z())
- goto ismorereel;
- _cmp(data.word(kWatchingtime), 0);
- if (!flags.z())
- goto showwatchreel;
- data.word(kReeltowatch) = -1;
- data.byte(kWatchmode) = -1;
- _cmp(data.word(kReeltohold), -1);
- if (flags.z())
- return /* (nomorereel) */;
- data.byte(kWatchmode) = 1;
- goto notplayingreel;
-ismorereel:
- _inc(data.word(kReeltowatch));
-showwatchreel:
- ax = data.word(kReeltowatch);
- data.word(kReelpointer) = ax;
- plotreel();
- ax = data.word(kReelpointer);
- data.word(kReeltowatch) = ax;
- checkforshake();
- return;
-notplayingreel:
- _cmp(data.byte(kWatchmode), 1);
- if (!flags.z())
- goto notholdingreel;
- ax = data.word(kReeltohold);
- data.word(kReelpointer) = ax;
- plotreel();
- return;
-notholdingreel:
- _cmp(data.byte(kWatchmode), 2);
- if (!flags.z())
- return /* (notreleasehold) */;
- _dec(data.byte(kSpeedcount));
- _cmp(data.byte(kSpeedcount), -1);
- if (!flags.z())
- goto notlastspeed2;
- al = data.byte(kWatchspeed);
- data.byte(kSpeedcount) = al;
- _inc(data.word(kReeltohold));
-notlastspeed2:
- ax = data.word(kReeltohold);
- _cmp(ax, data.word(kEndofholdreel));
- if (!flags.z())
- goto ismorereel2;
- data.word(kReeltohold) = -1;
- data.byte(kWatchmode) = -1;
- al = data.byte(kDestafterhold);
- data.byte(kDestination) = al;
- data.byte(kFinaldest) = al;
- autosetwalk();
- return;
-ismorereel2:
- ax = data.word(kReeltohold);
- data.word(kReelpointer) = ax;
- plotreel();
-}
-
-void DreamGenContext::checkforshake() {
- STACK_CHECK;
- _cmp(data.byte(kReallocation), 26);
- if (!flags.z())
- return /* (notstartshake) */;
- _cmp(ax, 104);
- if (!flags.z())
- return /* (notstartshake) */;
- data.byte(kShakecounter) = -1;
-}
-
-void DreamGenContext::watchcount() {
- STACK_CHECK;
- _cmp(data.byte(kWatchon), 0);
- if (flags.z())
- return /* (nowatchworn) */;
- _inc(data.byte(kTimercount));
- _cmp(data.byte(kTimercount), 9);
- if (flags.z())
- goto flashdots;
- _cmp(data.byte(kTimercount), 18);
- if (flags.z())
- goto uptime;
- return;
-flashdots:
- ax = 91*3+21;
- di = 268+4;
- bx = 21;
- ds = data.word(kCharset1);
- showframe();
- goto finishwatch;
-uptime:
- data.byte(kTimercount) = 0;
- _add(data.byte(kSecondcount), 1);
- _cmp(data.byte(kSecondcount), 60);
- if (!flags.z())
- goto finishtime;
- data.byte(kSecondcount) = 0;
- _inc(data.byte(kMinutecount));
- _cmp(data.byte(kMinutecount), 60);
- if (!flags.z())
- goto finishtime;
- data.byte(kMinutecount) = 0;
- _inc(data.byte(kHourcount));
- _cmp(data.byte(kHourcount), 24);
- if (!flags.z())
- goto finishtime;
- data.byte(kHourcount) = 0;
-finishtime:
- showtime();
-finishwatch:
- data.byte(kWatchdump) = 1;
-}
-
-void DreamGenContext::showtime() {
- STACK_CHECK;
- _cmp(data.byte(kWatchon), 0);
- if (flags.z())
- return /* (nowatch) */;
- al = data.byte(kSecondcount);
- cl = 0;
- twodigitnum();
- push(ax);
- al = ah;
- ah = 0;
- _add(ax, 91*3+10);
- ds = data.word(kCharset1);
- di = 282+5;
- bx = 21;
- showframe();
- ax = pop();
- ah = 0;
- _add(ax, 91*3+10);
- ds = data.word(kCharset1);
- di = 282+9;
- bx = 21;
- showframe();
- al = data.byte(kMinutecount);
- cl = 0;
- twodigitnum();
- push(ax);
- al = ah;
- ah = 0;
- _add(ax, 91*3);
- ds = data.word(kCharset1);
- di = 270+5;
- bx = 21;
- showframe();
- ax = pop();
- ah = 0;
- _add(ax, 91*3);
- ds = data.word(kCharset1);
- di = 270+11;
- bx = 21;
- showframe();
- al = data.byte(kHourcount);
- cl = 0;
- twodigitnum();
- push(ax);
- al = ah;
- ah = 0;
- _add(ax, 91*3);
- ds = data.word(kCharset1);
- di = 256+5;
- bx = 21;
- showframe();
- ax = pop();
- ah = 0;
- _add(ax, 91*3);
- ds = data.word(kCharset1);
- di = 256+11;
- bx = 21;
- showframe();
- ax = 91*3+20;
- ds = data.word(kCharset1);
- di = 267+5;
- bx = 21;
- showframe();
-}
-
-void DreamGenContext::dumpwatch() {
- STACK_CHECK;
- _cmp(data.byte(kWatchdump), 1);
- if (!flags.z())
- return /* (nodumpwatch) */;
- di = 256;
- bx = 21;
- cl = 40;
- ch = 12;
- multidump();
- data.byte(kWatchdump) = 0;
-}
-
-void DreamGenContext::showbyte() {
- STACK_CHECK;
- dl = al;
- _shr(dl, 1);
- _shr(dl, 1);
- _shr(dl, 1);
- _shr(dl, 1);
- onedigit();
- es.byte(di) = dl;
- dl = al;
- _and(dl, 15);
- onedigit();
- es.byte(di+1) = dl;
- _add(di, 3);
-}
-
-void DreamGenContext::onedigit() {
- STACK_CHECK;
- _cmp(dl, 10);
- if (!flags.c())
- goto morethan10;
- _add(dl, '0');
- return;
-morethan10:
- _sub(dl, 10);
- _add(dl, 'A');
-}
-
-void DreamGenContext::twodigitnum() {
- STACK_CHECK;
- ah = cl;
- _dec(ah);
-numloop1:
- _inc(ah);
- _sub(al, 10);
- if (!flags.c())
- goto numloop1;
- _add(al, 10);
- _add(al, cl);
-}
-
-void DreamGenContext::showword() {
- STACK_CHECK;
- ch = 0;
- bx = 10000;
- cl = 47;
-word1:
- _inc(cl);
- _sub(ax, bx);
- if (!flags.c())
- goto word1;
- _add(ax, bx);
- convnum();
- cs.byte(di) = cl;
- bx = 1000;
- cl = 47;
-word2:
- _inc(cl);
- _sub(ax, bx);
- if (!flags.c())
- goto word2;
- _add(ax, bx);
- convnum();
- cs.byte(di+1) = cl;
- bx = 100;
- cl = 47;
-word3:
- _inc(cl);
- _sub(ax, bx);
- if (!flags.c())
- goto word3;
- _add(ax, bx);
- convnum();
- cs.byte(di+2) = cl;
- bx = 10;
- cl = 47;
-word4:
- _inc(cl);
- _sub(ax, bx);
- if (!flags.c())
- goto word4;
- _add(ax, bx);
- convnum();
- cs.byte(di+3) = cl;
- _add(al, 48);
- cl = al;
- convnum();
- cs.byte(di+4) = cl;
-}
-
-void DreamGenContext::convnum() {
- STACK_CHECK;
- _cmp(ch, 0);
- if (!flags.z())
- return /* (noconvnum) */;
- _cmp(cl, '0');
- if (!flags.z())
- goto notzeronum;
- cl = 32;
- return /* (noconvnum) */;
-notzeronum:
- ch = 1;
-}
-
-void DreamGenContext::mainscreen() {
- STACK_CHECK;
- data.byte(kInmaparea) = 0;
- bx = offset_mainlist;
- _cmp(data.byte(kWatchon), 1);
- if (flags.z())
- goto checkmain;
- bx = offset_mainlist2;
-checkmain:
- checkcoords();
- _cmp(data.byte(kWalkandexam), 0);
- if (flags.z())
- return /* (finishmain) */;
- walkandexamine();
-}
-
-void DreamGenContext::madmanrun() {
- STACK_CHECK;
- _cmp(data.byte(kLocation), 14);
- if (!flags.z())
- { identifyob(); return; };
- _cmp(data.byte(kMapx), 22);
- if (!flags.z())
- { identifyob(); return; };
- _cmp(data.byte(kPointermode), 2);
- if (!flags.z())
- { identifyob(); return; };
- _cmp(data.byte(kMadmanflag), 0);
- if (!flags.z())
- { identifyob(); return; };
- _cmp(data.byte(kCommandtype), 211);
- if (flags.z())
- goto alreadyrun;
- data.byte(kCommandtype) = 211;
- al = 52;
- commandonly();
-alreadyrun:
- _cmp(data.word(kMousebutton), 1);
- if (!flags.z())
- return /* (norun) */;
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (norun) */;
- data.byte(kLastweapon) = 8;
-}
-
-void DreamGenContext::identifyob() {
- STACK_CHECK;
- _cmp(data.word(kWatchingtime), 0);
- if (!flags.z())
- { blank(); return; };
- ax = data.word(kMousex);
- _sub(ax, data.word(kMapadx));
- _cmp(ax, 22*8);
- if (flags.c())
- goto notover1;
- blank();
- return;
-notover1:
- bx = data.word(kMousey);
- _sub(bx, data.word(kMapady));
- _cmp(bx, 20*8);
- if (flags.c())
- goto notover2;
- blank();
- return;
-notover2:
- data.byte(kInmaparea) = 1;
- ah = bl;
- push(ax);
- findpathofpoint();
- data.byte(kPointerspath) = dl;
- ax = pop();
- push(ax);
- findfirstpath();
- data.byte(kPointerfirstpath) = al;
- ax = pop();
- checkifex();
- if (!flags.z())
- return /* (finishidentify) */;
- checkiffree();
- if (!flags.z())
- return /* (finishidentify) */;
- checkifperson();
- if (!flags.z())
- return /* (finishidentify) */;
- checkifset();
- if (!flags.z())
- return /* (finishidentify) */;
- ax = data.word(kMousex);
- _sub(ax, data.word(kMapadx));
- cl = al;
- ax = data.word(kMousey);
- _sub(ax, data.word(kMapady));
- ch = al;
- checkone();
- _cmp(al, 0);
- if (flags.z())
- goto nothingund;
- _cmp(data.byte(kMandead), 1);
- if (flags.z())
- goto nothingund;
- ah = 3;
- obname();
- return;
-nothingund:
- blank();
-}
-
-void DreamGenContext::findpathofpoint() {
- STACK_CHECK;
- push(ax);
- bx = (0);
- es = data.word(kReels);
- al = data.byte(kRoomnum);
- ah = 0;
- cx = 144;
- _mul(cx);
- _add(bx, ax);
- cx = pop();
- dl = 0;
-pathloop:
- al = es.byte(bx+6);
- _cmp(al, 255);
- if (!flags.z())
- goto flunkedit;
- ax = es.word(bx+2);
- _cmp(ax, 0x0ffff);
- if (flags.z())
- goto flunkedit;
- _cmp(cl, al);
- if (flags.c())
- goto flunkedit;
- _cmp(ch, ah);
- if (flags.c())
- goto flunkedit;
- ax = es.word(bx+4);
- _cmp(cl, al);
- if (!flags.c())
- goto flunkedit;
- _cmp(ch, ah);
- if (!flags.c())
- goto flunkedit;
- return /* (gotvalidpath) */;
-flunkedit:
- _add(bx, 8);
- _inc(dl);
- _cmp(dl, 12);
- if (!flags.z())
- goto pathloop;
- dl = 255;
-}
-
-void DreamGenContext::findfirstpath() {
- STACK_CHECK;
- push(ax);
- bx = (0);
- es = data.word(kReels);
- al = data.byte(kRoomnum);
- ah = 0;
- cx = 144;
- _mul(cx);
- _add(bx, ax);
- cx = pop();
- dl = 0;
-fpathloop:
- ax = es.word(bx+2);
- _cmp(ax, 0x0ffff);
- if (flags.z())
- goto nofirst;
- _cmp(cl, al);
- if (flags.c())
- goto nofirst;
- _cmp(ch, ah);
- if (flags.c())
- goto nofirst;
- ax = es.word(bx+4);
- _cmp(cl, al);
- if (!flags.c())
- goto nofirst;
- _cmp(ch, ah);
- if (!flags.c())
- goto nofirst;
- goto gotfirst;
-nofirst:
- _add(bx, 8);
- _inc(dl);
- _cmp(dl, 12);
- if (!flags.z())
- goto fpathloop;
- al = 0;
- return;
-gotfirst:
- al = es.byte(bx+6);
-}
-
-void DreamGenContext::afternewroom() {
- STACK_CHECK;
- _cmp(data.byte(kNowinnewroom), 0);
- if (flags.z())
- return /* (notnew) */;
- data.word(kTimecount) = 0;
- createpanel();
- data.byte(kCommandtype) = 0;
- findroominloc();
- _cmp(data.byte(kRyanon), 1);
- if (flags.z())
- goto ryansoff;
- al = data.byte(kRyanx);
- _add(al, 12);
- ah = data.byte(kRyany);
- _add(ah, 12);
- findpathofpoint();
- data.byte(kManspath) = dl;
- findxyfrompath();
- data.byte(kResetmanxy) = 1;
-ryansoff:
- data.byte(kNewobs) = 1;
- drawfloor();
- data.word(kLookcounter) = 160;
- data.byte(kNowinnewroom) = 0;
- showicon();
- spriteupdate();
- printsprites();
- undertextline();
- reelsonscreen();
- mainscreen();
- getunderzoom();
- zoom();
- worktoscreenm();
- walkintoroom();
- reminders();
- atmospheres();
-}
-
-void DreamGenContext::atmospheres() {
- STACK_CHECK;
- cl = data.byte(kMapx);
- ch = data.byte(kMapy);
- bx = offset_atmospherelist;
-nextatmos:
- al = cs.byte(bx);
- _cmp(al, 255);
- if (flags.z())
- goto nomoreatmos;
- _cmp(al, data.byte(kReallocation));
- if (!flags.z())
- goto wrongatmos;
- ax = cs.word(bx+1);
- _cmp(ax, cx);
- if (!flags.z())
- goto wrongatmos;
- ax = cs.word(bx+3);
- _cmp(al, data.byte(kCh0playing));
- if (flags.z())
- goto playingalready;
- _cmp(data.byte(kLocation), 45);
- if (!flags.z())
- goto notweb;
- _cmp(data.word(kReeltowatch), 45);
- if (flags.z())
- goto wrongatmos;
-notweb:
- playchannel0();
- _cmp(data.byte(kReallocation), 2);
- _cmp(data.byte(kMapy), 0);
- if (flags.z())
- goto fullvol;
- if (!flags.z())
- goto notlouisvol;
- _cmp(data.byte(kMapy), 10);
- if (!flags.z())
- goto notlouisvol;
- _cmp(data.byte(kMapx), 22);
- if (!flags.z())
- goto notlouisvol;
- data.byte(kVolume) = 5;
-notlouisvol:
- _cmp(data.byte(kReallocation), 14);
- if (!flags.z())
- goto notmad1;
- _cmp(data.byte(kMapx), 33);
- if (flags.z())
- goto ismad2;
- _cmp(data.byte(kMapx), 22);
- if (!flags.z())
- goto notmad1;
- data.byte(kVolume) = 5;
- return;
-ismad2:
- data.byte(kVolume) = 0;
- return;
-notmad1:
-playingalready:
- _cmp(data.byte(kReallocation), 2);
- if (!flags.z())
- return /* (notlouisvol2) */;
- _cmp(data.byte(kMapx), 22);
- if (flags.z())
- goto louisvol;
- _cmp(data.byte(kMapx), 11);
- if (!flags.z())
- return /* (notlouisvol2) */;
-fullvol:
- data.byte(kVolume) = 0;
- return;
-louisvol:
- data.byte(kVolume) = 5;
- return;
-wrongatmos:
- _add(bx, 5);
- goto nextatmos;
-nomoreatmos:
- cancelch0();
-}
-
-void DreamGenContext::walkintoroom() {
- STACK_CHECK;
- _cmp(data.byte(kLocation), 14);
- if (!flags.z())
- return /* (notlair) */;
- _cmp(data.byte(kMapx), 22);
- if (!flags.z())
- return /* (notlair) */;
- data.byte(kDestination) = 1;
- data.byte(kFinaldest) = 1;
- autosetwalk();
-}
-
-void DreamGenContext::afterintroroom() {
- STACK_CHECK;
- _cmp(data.byte(kNowinnewroom), 0);
- if (flags.z())
- return /* (notnewintro) */;
- clearwork();
- findroominloc();
- data.byte(kNewobs) = 1;
- drawfloor();
- reelsonscreen();
- spriteupdate();
- printsprites();
- worktoscreen();
- data.byte(kNowinnewroom) = 0;
-}
-
-void DreamGenContext::printmessage2() {
- STACK_CHECK;
- push(dx);
- push(bx);
- push(di);
- push(ax);
- ah = 0;
- _add(ax, ax);
- bx = ax;
- es = data.word(kCommandtext);
- ax = es.word(bx);
- _add(ax, (66*2));
- si = ax;
- ax = pop();
-searchmess:
- push(ax);
- findnextcolon();
- ax = pop();
- _dec(ah);
- if (!flags.z())
- goto searchmess;
- di = pop();
- bx = pop();
- dx = pop();
- al = 0;
- ah = 0;
- printdirect();
-}
-
-void DreamGenContext::setwalk() {
- STACK_CHECK;
- _cmp(data.byte(kLinepointer), 254);
- if (!flags.z())
- goto alreadywalking;
- al = data.byte(kPointerspath);
- _cmp(al, data.byte(kManspath));
- if (flags.z())
- goto cantwalk2;
- _cmp(data.byte(kWatchmode), 1);
- if (flags.z())
- goto holdingreel;
- _cmp(data.byte(kWatchmode), 2);
- if (flags.z())
- return /* (cantwalk) */;
- data.byte(kDestination) = al;
- data.byte(kFinaldest) = al;
- _cmp(data.word(kMousebutton), 2);
- if (!flags.z())
- goto notwalkandexam;
- _cmp(data.byte(kCommandtype), 3);
- if (flags.z())
- goto notwalkandexam;
- data.byte(kWalkandexam) = 1;
- al = data.byte(kCommandtype);
- data.byte(kWalkexamtype) = al;
- al = data.byte(kCommand);
- data.byte(kWalkexamnum) = al;
-notwalkandexam:
- autosetwalk();
- return;
-cantwalk2:
- facerightway();
- return;
-alreadywalking:
- al = data.byte(kPointerspath);
- data.byte(kFinaldest) = al;
- return;
-holdingreel:
- data.byte(kDestafterhold) = al;
- data.byte(kWatchmode) = 2;
-}
-
-void DreamGenContext::workoutframes() {
- STACK_CHECK;
- bx = data.word(kLinestartx);
- _add(bx, 32);
- ax = data.word(kLineendx);
- _add(ax, 32);
- _sub(bx, ax);
- if (!flags.c())
- goto notneg1;
- _neg(bx);
-notneg1:
- cx = data.word(kLinestarty);
- _add(cx, 32);
- ax = data.word(kLineendy);
- _add(ax, 32);
- _sub(cx, ax);
- if (!flags.c())
- goto notneg2;
- _neg(cx);
-notneg2:
- _cmp(bx, cx);
- if (!flags.c())
- goto tendstohoriz;
- dl = 2;
- ax = cx;
- _shr(ax, 1);
- _cmp(bx, ax);
- if (flags.c())
- goto gotquad;
- dl = 1;
- goto gotquad;
-tendstohoriz:
- dl = 0;
- ax = bx;
- _shr(ax, 1);
- _cmp(cx, ax);
- if (flags.c())
- goto gotquad;
- dl = 1;
- goto gotquad;
-gotquad:
- bx = data.word(kLinestartx);
- _add(bx, 32);
- ax = data.word(kLineendx);
- _add(ax, 32);
- _sub(bx, ax);
- if (flags.c())
- goto isinright;
- cx = data.word(kLinestarty);
- _add(cx, 32);
- ax = data.word(kLineendy);
- _add(ax, 32);
- _sub(cx, ax);
- if (!flags.c())
- goto topleft;
- _cmp(dl, 1);
- if (flags.z())
- goto noswap1;
- _xor(dl, 2);
-noswap1:
- _add(dl, 4);
- goto success;
-topleft:
- _add(dl, 6);
- goto success;
-isinright:
- cx = data.word(kLinestarty);
- _add(cx, 32);
- ax = data.word(kLineendy);
- _add(ax, 32);
- _sub(cx, ax);
- if (!flags.c())
- goto botright;
- _add(dl, 2);
- goto success;
-botright:
- _cmp(dl, 1);
- if (flags.z())
- goto noswap2;
- _xor(dl, 2);
-noswap2:
-success:
- _and(dl, 7);
- data.byte(kTurntoface) = dl;
- data.byte(kTurndirection) = 0;
-}
-
-void DreamGenContext::showicon() {
- STACK_CHECK;
- _cmp(data.byte(kReallocation), 50);
- if (!flags.c())
- goto isdream1;
- showpanel();
- showman();
- roomname();
- panelicons1();
- zoomicon();
- return;
-isdream1:
- ds = data.word(kTempsprites);
- di = 72;
- bx = 2;
- al = 45;
- ah = 0;
- showframe();
- ds = data.word(kTempsprites);
- di = 72+47;
- bx = 2;
- al = 46;
- ah = 0;
- showframe();
- ds = data.word(kTempsprites);
- di = 69-10;
- bx = 21;
- al = 49;
- ah = 0;
- showframe();
- ds = data.word(kTempsprites);
- di = 160+88;
- bx = 2;
- al = 45;
- ah = 4;
- showframe();
- ds = data.word(kTempsprites);
- di = 160+43;
- bx = 2;
- al = 46;
- ah = 4;
- showframe();
- ds = data.word(kTempsprites);
- di = 160+101;
- bx = 21;
- al = 49;
- ah = 4;
- showframe();
- middlepanel();
-}
-
-void DreamGenContext::middlepanel() {
- STACK_CHECK;
- ds = data.word(kTempsprites);
- di = 72+47+20;
- bx = 0;
- al = 48;
- ah = 0;
- showframe();
- ds = data.word(kTempsprites);
- di = 72+19;
- bx = 21;
- al = 47;
- ah = 0;
- showframe();
- ds = data.word(kTempsprites);
- di = 160+23;
- bx = 0;
- al = 48;
- ah = 4;
- showframe();
- ds = data.word(kTempsprites);
- di = 160+71;
- bx = 21;
- al = 47;
- ah = 4;
- showframe();
-}
-
-void DreamGenContext::showman() {
- STACK_CHECK;
- ds = data.word(kIcons1);
- di = 0;
- bx = 0;
- al = 0;
- ah = 0;
- showframe();
- ds = data.word(kIcons1);
- di = 0;
- bx = 114;
- al = 1;
- ah = 0;
- showframe();
- _cmp(data.byte(kShadeson), 0);
- if (flags.z())
- return /* (notverycool) */;
- ds = data.word(kIcons1);
- di = 28;
- bx = 25;
- al = 2;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::roomname() {
- STACK_CHECK;
- di = 88;
- bx = 18;
- al = 53;
- dl = 240;
- printmessage();
- bl = data.byte(kRoomnum);
- _cmp(bl, 32);
- if (flags.c())
- goto notover32;
- _sub(bl, 32);
-notover32:
- bh = 0;
- _add(bx, bx);
- es = data.word(kRoomdesc);
- _add(bx, (0));
- ax = es.word(bx);
- _add(ax, (0+(38*2)));
- si = ax;
- data.word(kLinespacing) = 7;
- di = 88;
- bx = 25;
- dl = 120;
- _cmp(data.byte(kWatchon), 1);
- if (flags.z())
- goto gotpl;
- dl = 160;
-gotpl:
- al = 0;
- ah = 0;
- printdirect();
- data.word(kLinespacing) = 10;
- usecharset1();
-}
-
-void DreamGenContext::usecharset1() {
- STACK_CHECK;
- ax = data.word(kCharset1);
- data.word(kCurrentset) = ax;
-}
-
-void DreamGenContext::usetempcharset() {
- STACK_CHECK;
- ax = data.word(kTempcharset);
- data.word(kCurrentset) = ax;
-}
-
-void DreamGenContext::showexit() {
- STACK_CHECK;
- ds = data.word(kIcons1);
- di = 274;
- bx = 154;
- al = 11;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::panelicons1() {
- STACK_CHECK;
- di = 0;
- _cmp(data.byte(kWatchon), 1);
- if (flags.z())
- goto watchison;
- di = 48;
-watchison:
- push(di);
- ds = data.word(kIcons2);
- _add(di, 204);
- bx = 4;
- al = 2;
- ah = 0;
- showframe();
- di = pop();
- push(di);
- _cmp(data.byte(kZoomon), 1);
- if (flags.z())
- goto zoomisoff;
- ds = data.word(kIcons1);
- _add(di, 228);
- bx = 8;
- al = 5;
- ah = 0;
- showframe();
-zoomisoff:
- di = pop();
- showwatch();
-}
-
-void DreamGenContext::showwatch() {
- STACK_CHECK;
- _cmp(data.byte(kWatchon), 0);
- if (flags.z())
- return /* (nowristwatch) */;
- ds = data.word(kIcons1);
- di = 250;
- bx = 1;
- al = 6;
- ah = 0;
- showframe();
- showtime();
-}
-
-void DreamGenContext::zoomicon() {
- STACK_CHECK;
- _cmp(data.byte(kZoomon), 0);
- if (flags.z())
- return /* (nozoom1) */;
- ds = data.word(kIcons1);
- di = (8);
- bx = (132)-1;
- al = 8;
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::worktoscreenm() {
- STACK_CHECK;
- animpointer();
- readmouse();
- showpointer();
- vsync();
- worktoscreen();
- delpointer();
-}
-
-void DreamGenContext::blank() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 199);
- if (flags.z())
- return /* (alreadyblnk) */;
- data.byte(kCommandtype) = 199;
- al = 0;
- commandonly();
-}
-
-void DreamGenContext::allpointer() {
- STACK_CHECK;
- readmouse();
- showpointer();
- dumppointer();
-}
-
-void DreamGenContext::hangonw() {
- STACK_CHECK;
-hangloopw:
- push(cx);
- delpointer();
- readmouse();
- animpointer();
- showpointer();
- vsync();
- dumppointer();
- cx = pop();
- if (--cx)
- goto hangloopw;
-}
-
-void DreamGenContext::hangoncurs() {
- STACK_CHECK;
-monloop1:
- push(cx);
- printcurs();
- vsync();
- delcurs();
- cx = pop();
- if (--cx)
- goto monloop1;
-}
-
-void DreamGenContext::getunderzoom() {
- STACK_CHECK;
- di = (8)+5;
- bx = (132)+4;
- 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));
- cl = 46;
- ch = 40;
- multiget();
-}
-
-void DreamGenContext::dumpzoom() {
- STACK_CHECK;
- _cmp(data.byte(kZoomon), 1);
- if (!flags.z())
- return /* (notzoomon) */;
- di = (8)+5;
- bx = (132)+4;
- cl = 46;
- ch = 40;
- multidump();
-}
-
-void DreamGenContext::putunderzoom() {
- STACK_CHECK;
- di = (8)+5;
- bx = (132)+4;
- 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));
- cl = 46;
- ch = 40;
- multiput();
-}
-
-void DreamGenContext::undertextline() {
- 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);
- multiget();
-}
-
-void DreamGenContext::readkey() {
- STACK_CHECK;
- bx = data.word(kBufferout);
- _cmp(bx, data.word(kBufferin));
- if (flags.z())
- goto nokey;
- _inc(bx);
- _and(bx, 15);
- data.word(kBufferout) = bx;
- di = offset_keybuffer;
- _add(di, bx);
- al = cs.byte(di);
- data.byte(kCurrentkey) = al;
- return;
-nokey:
- data.byte(kCurrentkey) = 0;
-}
-
-void DreamGenContext::randomnum1() {
- STACK_CHECK;
- push(ds);
- push(es);
- push(di);
- push(bx);
- push(cx);
- randomnumber();
- cx = pop();
- bx = pop();
- di = pop();
- es = pop();
- ds = pop();
-}
-
-void DreamGenContext::randomnum2() {
- STACK_CHECK;
- push(ds);
- push(es);
- push(di);
- push(bx);
- push(ax);
- randomnumber();
- cl = al;
- ax = pop();
- bx = pop();
- di = pop();
- es = pop();
- ds = pop();
-}
-
-void DreamGenContext::loadtraveltext() {
- STACK_CHECK;
- dx = 2234;
- standardload();
- data.word(kTraveltext) = ax;
-}
-
-void DreamGenContext::loadintotemp() {
- STACK_CHECK;
- ds = cs;
- standardload();
- data.word(kTempgraphics) = ax;
-}
-
-void DreamGenContext::loadintotemp2() {
- STACK_CHECK;
- ds = cs;
- standardload();
- data.word(kTempgraphics2) = ax;
-}
-
-void DreamGenContext::loadintotemp3() {
- STACK_CHECK;
- ds = cs;
- standardload();
- data.word(kTempgraphics3) = ax;
-}
-
-void DreamGenContext::loadtempcharset() {
- STACK_CHECK;
- standardload();
- data.word(kTempcharset) = ax;
-}
-
-void DreamGenContext::standardload() {
- STACK_CHECK;
- openfile();
- readheader();
- bx = es.word(di);
- push(bx);
- cl = 4;
- _shr(bx, cl);
- allocatemem();
- ds = ax;
- cx = pop();
- push(ax);
- dx = 0;
- readfromfile();
- closefile();
- ax = pop();
-}
-
-void DreamGenContext::loadtemptext() {
- STACK_CHECK;
- standardload();
- data.word(kTextfile1) = ax;
-}
-
-void DreamGenContext::loadroom() {
- STACK_CHECK;
- data.byte(kRoomloaded) = 1;
- data.word(kTimecount) = 0;
- data.word(kMaintimer) = 0;
- data.word(kMapoffsetx) = 104;
- data.word(kMapoffsety) = 38;
- data.word(kTextaddressx) = 13;
- data.word(kTextaddressy) = 182;
- data.byte(kTextlen) = 240;
- al = data.byte(kNewlocation);
- data.byte(kLocation) = al;
- getroomdata();
- startloading();
- loadroomssample();
- switchryanon();
- drawflags();
- getdimension();
-}
-
-void DreamGenContext::loadroomssample() {
- STACK_CHECK;
- al = data.byte(kRoomssample);
- _cmp(al, 255);
- if (flags.z())
- return /* (loadedalready) */;
- _cmp(al, data.byte(kCurrentsample));
- if (flags.z())
- return /* (loadedalready) */;
- data.byte(kCurrentsample) = al;
- al = data.byte(kCurrentsample);
- cl = '0';
- twodigitnum();
- di = 1896;
- _xchg(al, ah);
- cs.word(di+10) = ax;
- dx = di;
- loadsecondsample();
-}
-
-void DreamGenContext::getridofreels() {
- STACK_CHECK;
- _cmp(data.byte(kRoomloaded), 0);
- if (flags.z())
- return /* (dontgetrid) */;
- es = data.word(kReel1);
- deallocatemem();
- es = data.word(kReel2);
- deallocatemem();
- es = data.word(kReel3);
- deallocatemem();
-}
-
-void DreamGenContext::getridofall() {
- STACK_CHECK;
- es = data.word(kBackdrop);
- deallocatemem();
- es = data.word(kSetframes);
- deallocatemem();
- es = data.word(kReel1);
- deallocatemem();
- es = data.word(kReel2);
- deallocatemem();
- es = data.word(kReel3);
- deallocatemem();
- es = data.word(kReels);
- deallocatemem();
- es = data.word(kPeople);
- deallocatemem();
- es = data.word(kSetdesc);
- deallocatemem();
- es = data.word(kBlockdesc);
- deallocatemem();
- es = data.word(kRoomdesc);
- deallocatemem();
- es = data.word(kFreeframes);
- deallocatemem();
- es = data.word(kFreedesc);
- deallocatemem();
-}
-
-void DreamGenContext::restorereels() {
- STACK_CHECK;
- _cmp(data.byte(kRoomloaded), 0);
- if (flags.z())
- return /* (dontrestore) */;
- al = data.byte(kReallocation);
- getroomdata();
- dx = bx;
- openfile();
- readheader();
- dontloadseg();
- dontloadseg();
- dontloadseg();
- dontloadseg();
- 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();
- closefile();
-}
-
-void DreamGenContext::restoreall() {
- STACK_CHECK;
- al = data.byte(kLocation);
- getroomdata();
- 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();
- dontloadseg();
- 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();
- dontloadseg();
- allocateload();
- data.word(kFreedesc) = ax;
- ds = ax;
- dx = (0);
- loadseg();
- closefile();
- setallchanges();
-}
-
-void DreamGenContext::sortoutmap() {
- STACK_CHECK;
- push(es);
- push(di);
- ds = data.word(kWorkspace);
- si = 0;
- es = data.word(kMapdata);
- di = 0;
- cx = (60);
-blimey:
- push(cx);
- push(si);
- cx = (66);
- _movsb(cx, true);
- si = pop();
- cx = pop();
- _add(si, 132);
- if (--cx)
- goto blimey;
- di = pop();
- es = pop();
-}
-
-void DreamGenContext::disablepath() {
- STACK_CHECK;
- push(cx);
- _xchg(al, ah);
- cx = -6;
-looky2:
- _add(cx, 6);
- _sub(al, 10);
- if (!flags.c())
- goto looky2;
- al = ah;
- _dec(cx);
-lookx2:
- _inc(cx);
- _sub(al, 11);
- if (!flags.c())
- goto lookx2;
- al = cl;
- ah = 0;
- cx = 144;
- _mul(cx);
- es = data.word(kReels);
- bx = (0);
- _add(bx, ax);
- ax = pop();
- ah = 0;
- _add(ax, ax);
- _add(ax, ax);
- _add(ax, ax);
- _add(bx, ax);
- al = 0;
- es.byte(bx+6) = al;
-}
-
-void DreamGenContext::findroominloc() {
- STACK_CHECK;
- al = data.byte(kMapy);
- cx = -6;
-looky:
- _add(cx, 6);
- _sub(al, 10);
- if (!flags.c())
- goto looky;
- al = data.byte(kMapx);
- _dec(cx);
-lookx:
- _inc(cx);
- _sub(al, 11);
- if (!flags.c())
- goto lookx;
- data.byte(kRoomnum) = cl;
-}
-
-void DreamGenContext::allocateload() {
- STACK_CHECK;
- push(es);
- push(di);
- bx = es.word(di);
- cl = 4;
- _shr(bx, cl);
- allocatemem();
- di = pop();
- es = pop();
-}
-
-void DreamGenContext::getridoftemp() {
- STACK_CHECK;
- es = data.word(kTempgraphics);
- deallocatemem();
-}
-
-void DreamGenContext::getridoftemptext() {
- STACK_CHECK;
- es = data.word(kTextfile1);
- deallocatemem();
-}
-
-void DreamGenContext::getridoftemp2() {
- STACK_CHECK;
- es = data.word(kTempgraphics2);
- deallocatemem();
-}
-
-void DreamGenContext::getridoftemp3() {
- STACK_CHECK;
- es = data.word(kTempgraphics3);
- deallocatemem();
-}
-
-void DreamGenContext::getridoftempcharset() {
- STACK_CHECK;
- es = data.word(kTempcharset);
- deallocatemem();
-}
-
-void DreamGenContext::getridoftempsp() {
- STACK_CHECK;
- es = data.word(kTempsprites);
- deallocatemem();
-}
-
-void DreamGenContext::readsetdata() {
- STACK_CHECK;
- dx = 1857;
- standardload();
- data.word(kCharset1) = ax;
- dx = 1922;
- standardload();
- data.word(kIcons1) = ax;
- dx = 1935;
- standardload();
- data.word(kIcons2) = ax;
- dx = 1819;
- standardload();
- data.word(kMainsprites) = ax;
- dx = 2221;
- standardload();
- data.word(kPuzzletext) = ax;
- dx = 2273;
- standardload();
- data.word(kCommandtext) = ax;
- ax = data.word(kCharset1);
- data.word(kCurrentset) = ax;
- _cmp(data.byte(kSoundint), 255);
- if (flags.z())
- return /* (novolumeload) */;
- dx = 2286;
- openfile();
- cx = 2048-256;
- ds = data.word(kSoundbuffer);
- dx = 16384;
- readfromfile();
- closefile();
-}
-
-
-
-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();
-}
-
-void DreamGenContext::__dispatch_call(uint16 addr) {
- switch(addr) {
- case addr_alleybarksound: alleybarksound(); break;
- case addr_intromusic: intromusic(); break;
- case addr_foghornsound: foghornsound(); break;
- case addr_receptionist: receptionist(); break;
- case addr_smokebloke: smokebloke(); break;
- case addr_attendant: attendant(); break;
- case addr_manasleep: manasleep(); break;
- case addr_eden: eden(); break;
- case addr_edeninbath: edeninbath(); break;
- case addr_malefan: malefan(); break;
- case addr_femalefan: femalefan(); break;
- case addr_louis: louis(); break;
- case addr_louischair: louischair(); break;
- case addr_manasleep2: manasleep2(); break;
- case addr_mansatstill: mansatstill(); break;
- case addr_tattooman: tattooman(); break;
- case addr_drinker: drinker(); break;
- case addr_bartender: bartender(); break;
- case addr_othersmoker: othersmoker(); break;
- case addr_barwoman: barwoman(); break;
- case addr_interviewer: interviewer(); break;
- case addr_soldier1: soldier1(); break;
- case addr_rockstar: rockstar(); break;
- case addr_helicopter: helicopter(); break;
- case addr_mugger: mugger(); break;
- case addr_aide: aide(); break;
- case addr_businessman: businessman(); break;
- case addr_poolguard: poolguard(); break;
- case addr_security: security(); break;
- case addr_heavy: heavy(); break;
- case addr_bossman: bossman(); break;
- case addr_gamer: gamer(); break;
- case addr_sparkydrip: sparkydrip(); break;
- case addr_carparkdrip: carparkdrip(); break;
- case addr_keeper: keeper(); break;
- case addr_candles1: candles1(); break;
- case addr_smallcandle: smallcandle(); break;
- case addr_intromagic1: intromagic1(); break;
- case addr_candles: candles(); break;
- case addr_candles2: candles2(); break;
- case addr_gates: gates(); break;
- case addr_intromagic2: intromagic2(); break;
- case addr_intromagic3: intromagic3(); break;
- case addr_intromonks1: intromonks1(); break;
- case addr_intromonks2: intromonks2(); break;
- case addr_handclap: handclap(); break;
- case addr_monks2text: monks2text(); break;
- case addr_intro1text: intro1text(); break;
- case addr_intro2text: intro2text(); break;
- case addr_intro3text: intro3text(); break;
- case addr_monkandryan: monkandryan(); break;
- case addr_endgameseq: endgameseq(); break;
- case addr_rollendcredits: rollendcredits(); break;
- case addr_priest: priest(); break;
- case addr_madmanstelly: madmanstelly(); break;
- case addr_madman: madman(); break;
- case addr_priesttext: priesttext(); break;
- case addr_textforend: textforend(); break;
- case addr_textformonk: textformonk(); break;
- case addr_drunk: drunk(); break;
- case addr_advisor: advisor(); break;
- case addr_copper: copper(); break;
- case addr_sparky: sparky(); break;
- case addr_train: train(); break;
- case addr_checkspeed: checkspeed(); break;
- case addr_mainman: mainman(); break;
- case addr_checkforexit: checkforexit(); break;
- case addr_adjustdown: adjustdown(); break;
- case addr_adjustup: adjustup(); break;
- case addr_adjustleft: adjustleft(); break;
- case addr_adjustright: adjustright(); break;
- case addr_reminders: reminders(); break;
- case addr_initrain: initrain(); break;
- case addr_splitintolines: splitintolines(); 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_reelsonscreen: reelsonscreen(); break;
- case addr_soundonreels: soundonreels(); break;
- case addr_reconstruct: reconstruct(); break;
- case addr_deleverything: deleverything(); break;
- case addr_showpcx: showpcx(); break;
- case addr_loadpalfromiff: loadpalfromiff(); break;
- case addr_setmode: setmode(); break;
- case addr_createpanel: createpanel(); break;
- case addr_createpanel2: createpanel2(); break;
- case addr_vsync: vsync(); break;
- case addr_doshake: doshake(); break;
- case addr_transfermap: transfermap(); break;
- case addr_fadedos: fadedos(); break;
- case addr_dofade: dofade(); break;
- case addr_clearendpal: clearendpal(); break;
- case addr_clearpalette: clearpalette(); break;
- case addr_fadescreenup: fadescreenup(); break;
- case addr_fadetowhite: fadetowhite(); break;
- case addr_fadefromwhite: fadefromwhite(); break;
- case addr_fadescreenups: fadescreenups(); break;
- case addr_fadescreendownhalf: fadescreendownhalf(); break;
- case addr_fadescreenuphalf: fadescreenuphalf(); break;
- case addr_fadescreendown: fadescreendown(); break;
- case addr_fadescreendowns: fadescreendowns(); break;
- case addr_clearstartpal: clearstartpal(); break;
- case addr_showgun: showgun(); break;
- case addr_rollendcredits2: rollendcredits2(); break;
- case addr_rollem: rollem(); break;
- case addr_fadecalculation: fadecalculation(); break;
- case addr_greyscalesum: greyscalesum(); break;
- case addr_showgroup: showgroup(); break;
- case addr_paltostartpal: paltostartpal(); break;
- case addr_endpaltostart: endpaltostart(); break;
- case addr_startpaltoend: startpaltoend(); break;
- case addr_paltoendpal: paltoendpal(); break;
- case addr_allpalette: allpalette(); break;
- case addr_dumpcurrent: dumpcurrent(); break;
- case addr_fadedownmon: fadedownmon(); break;
- case addr_fadeupmon: fadeupmon(); break;
- case addr_fadeupmonfirst: fadeupmonfirst(); break;
- case addr_fadeupyellows: fadeupyellows(); break;
- case addr_initialmoncols: initialmoncols(); break;
- case addr_titles: titles(); break;
- case addr_endgame: endgame(); break;
- case addr_monkspeaking: monkspeaking(); break;
- case addr_showmonk: showmonk(); break;
- case addr_gettingshot: gettingshot(); break;
- case addr_credits: credits(); break;
- case addr_biblequote: biblequote(); break;
- case addr_hangone: hangone(); break;
- case addr_intro: intro(); break;
- case addr_runintroseq: runintroseq(); break;
- case addr_runendseq: runendseq(); break;
- case addr_loadintroroom: loadintroroom(); break;
- case addr_mode640x480: mode640x480(); break;
- case addr_set16colpalette: set16colpalette(); break;
- case addr_realcredits: realcredits(); break;
- case addr_monprint: monprint(); break;
- case addr_fillopen: fillopen(); break;
- case addr_findallopen: findallopen(); break;
- case addr_examineob: examineob(); break;
- case addr_makemainscreen: makemainscreen(); break;
- case addr_getbackfromob: getbackfromob(); break;
- case addr_incryanpage: incryanpage(); break;
- case addr_openinv: openinv(); break;
- case addr_openob: openob(); break;
- case addr_examicon: examicon(); break;
- case addr_describeob: describeob(); break;
- case addr_additionaltext: additionaltext(); break;
- case addr_obsthatdothings: obsthatdothings(); break;
- case addr_getobtextstart: getobtextstart(); break;
- case addr_searchforsame: searchforsame(); break;
- case addr_inventory: inventory(); break;
- case addr_setpickup: setpickup(); break;
- case addr_examinventory: examinventory(); break;
- case addr_reexfrominv: reexfrominv(); break;
- case addr_reexfromopen: reexfromopen(); break;
- case addr_swapwithinv: swapwithinv(); break;
- case addr_swapwithopen: swapwithopen(); break;
- case addr_intoinv: intoinv(); break;
- case addr_outofinv: outofinv(); break;
- case addr_getfreead: getfreead(); break;
- case addr_getexad: getexad(); break;
- case addr_geteitherad: geteitherad(); break;
- case addr_getanyad: getanyad(); break;
- case addr_getanyaddir: getanyaddir(); break;
- case addr_getopenedsize: getopenedsize(); break;
- case addr_getsetad: getsetad(); break;
- case addr_findinvpos: findinvpos(); break;
- case addr_findopenpos: findopenpos(); break;
- case addr_dropobject: dropobject(); break;
- case addr_droperror: droperror(); break;
- case addr_cantdrop: cantdrop(); break;
- case addr_removeobfrominv: removeobfrominv(); break;
- case addr_selectopenob: selectopenob(); break;
- case addr_useopened: useopened(); break;
- case addr_errormessage1: errormessage1(); break;
- case addr_errormessage2: errormessage2(); break;
- case addr_errormessage3: errormessage3(); break;
- case addr_checkobjectsize: checkobjectsize(); break;
- case addr_outofopen: outofopen(); break;
- case addr_transfertoex: transfertoex(); break;
- case addr_pickupconts: pickupconts(); break;
- case addr_transfercontoex: transfercontoex(); break;
- case addr_transfertext: transfertext(); break;
- case addr_purgealocation: purgealocation(); break;
- case addr_emergencypurge: emergencypurge(); break;
- case addr_purgeanitem: purgeanitem(); break;
- case addr_deleteexobject: deleteexobject(); break;
- case addr_deleteexframe: deleteexframe(); break;
- case addr_deleteextext: deleteextext(); break;
- case addr_blockget: blockget(); break;
- case addr_drawfloor: drawfloor(); break;
- case addr_autolook: autolook(); break;
- case addr_look: look(); break;
- case addr_dolook: dolook(); break;
- case addr_redrawmainscrn: redrawmainscrn(); break;
- case addr_getback1: getback1(); break;
- case addr_talk: talk(); break;
- case addr_convicons: convicons(); break;
- case addr_getpersframe: getpersframe(); break;
- case addr_starttalk: starttalk(); break;
- case addr_getpersontext: getpersontext(); break;
- case addr_moretalk: moretalk(); break;
- case addr_dosometalk: dosometalk(); break;
- case addr_hangonpq: hangonpq(); break;
- case addr_redes: redes(); break;
- case addr_newplace: newplace(); break;
- case addr_selectlocation: selectlocation(); break;
- case addr_showcity: showcity(); break;
- case addr_lookatplace: lookatplace(); break;
- case addr_getundercentre: getundercentre(); break;
- case addr_putundercentre: putundercentre(); break;
- case addr_locationpic: locationpic(); break;
- case addr_getdestinfo: getdestinfo(); break;
- case addr_showarrows: showarrows(); break;
- case addr_nextdest: nextdest(); break;
- case addr_lastdest: lastdest(); break;
- case addr_destselect: destselect(); break;
- case addr_getlocation: getlocation(); break;
- case addr_setlocation: setlocation(); break;
- case addr_resetlocation: resetlocation(); break;
- case addr_readdesticon: readdesticon(); break;
- case addr_readcitypic: readcitypic(); break;
- case addr_usemon: usemon(); break;
- case addr_printoutermon: printoutermon(); break;
- case addr_loadpersonal: loadpersonal(); break;
- case addr_loadnews: loadnews(); break;
- case addr_loadcart: loadcart(); break;
- case addr_lookininterface: lookininterface(); break;
- case addr_turnonpower: turnonpower(); break;
- case addr_randomaccess: randomaccess(); break;
- case addr_powerlighton: powerlighton(); break;
- case addr_powerlightoff: powerlightoff(); break;
- case addr_accesslighton: accesslighton(); break;
- case addr_accesslightoff: accesslightoff(); break;
- case addr_locklighton: locklighton(); break;
- case addr_locklightoff: locklightoff(); break;
- case addr_input: input(); break;
- case addr_makecaps: makecaps(); break;
- case addr_delchar: delchar(); break;
- case addr_execcommand: execcommand(); break;
- case addr_neterror: neterror(); break;
- case addr_dircom: dircom(); break;
- case addr_searchforfiles: searchforfiles(); break;
- case addr_signon: signon(); break;
- case addr_showkeys: showkeys(); break;
- case addr_read: read(); break;
- case addr_dirfile: dirfile(); break;
- case addr_getkeyandlogo: getkeyandlogo(); break;
- case addr_searchforstring: searchforstring(); break;
- case addr_parser: parser(); break;
- case addr_scrollmonitor: scrollmonitor(); break;
- case addr_monitorlogo: monitorlogo(); break;
- case addr_printlogo: printlogo(); break;
- case addr_showcurrentfile: showcurrentfile(); break;
- case addr_monmessage: monmessage(); break;
- case addr_processtrigger: processtrigger(); break;
- case addr_triggermessage: triggermessage(); break;
- case addr_printcurs: printcurs(); break;
- case addr_delcurs: delcurs(); break;
- case addr_useobject: useobject(); break;
- case addr_wheelsound: wheelsound(); break;
- case addr_runtap: runtap(); break;
- case addr_playguitar: playguitar(); break;
- case addr_hotelcontrol: hotelcontrol(); break;
- case addr_hotelbell: hotelbell(); break;
- case addr_opentomb: opentomb(); break;
- case addr_usetrainer: usetrainer(); break;
- case addr_nothelderror: nothelderror(); break;
- case addr_usepipe: usepipe(); break;
- case addr_usefullcart: usefullcart(); break;
- case addr_useplinth: useplinth(); break;
- case addr_chewy: chewy(); break;
- case addr_useladder: useladder(); break;
- case addr_useladderb: useladderb(); break;
- case addr_slabdoora: slabdoora(); break;
- case addr_slabdoorb: slabdoorb(); break;
- case addr_slabdoord: slabdoord(); break;
- case addr_slabdoorc: slabdoorc(); break;
- case addr_slabdoore: slabdoore(); break;
- case addr_slabdoorf: slabdoorf(); break;
- case addr_useslab: useslab(); break;
- case addr_usecart: usecart(); break;
- case addr_useclearbox: useclearbox(); break;
- case addr_usecoveredbox: usecoveredbox(); break;
- case addr_userailing: userailing(); break;
- case addr_useopenbox: useopenbox(); break;
- case addr_wearwatch: wearwatch(); break;
- case addr_wearshades: wearshades(); break;
- case addr_sitdowninbar: sitdowninbar(); break;
- case addr_usechurchhole: usechurchhole(); break;
- case addr_usehole: usehole(); break;
- case addr_usealtar: usealtar(); break;
- case addr_opentvdoor: opentvdoor(); break;
- case addr_usedryer: usedryer(); break;
- case addr_openlouis: openlouis(); break;
- case addr_nextcolon: nextcolon(); break;
- case addr_openyourneighbour: openyourneighbour(); break;
- case addr_usewindow: usewindow(); break;
- case addr_usebalcony: usebalcony(); break;
- case addr_openryan: openryan(); break;
- case addr_openpoolboss: openpoolboss(); break;
- case addr_openeden: openeden(); break;
- case addr_opensarters: opensarters(); break;
- case addr_isitright: isitright(); break;
- case addr_drawitall: drawitall(); break;
- case addr_openhoteldoor: openhoteldoor(); break;
- case addr_openhoteldoor2: openhoteldoor2(); break;
- case addr_grafittidoor: grafittidoor(); break;
- case addr_trapdoor: trapdoor(); break;
- case addr_callhotellift: callhotellift(); break;
- case addr_calledenslift: calledenslift(); break;
- case addr_calledensdlift: calledensdlift(); break;
- case addr_usepoolreader: usepoolreader(); break;
- case addr_uselighter: uselighter(); break;
- case addr_showseconduse: showseconduse(); break;
- case addr_usecardreader1: usecardreader1(); break;
- case addr_usecardreader2: usecardreader2(); break;
- case addr_usecardreader3: usecardreader3(); break;
- case addr_usecashcard: usecashcard(); break;
- case addr_lookatcard: lookatcard(); break;
- case addr_moneypoke: moneypoke(); break;
- case addr_usecontrol: usecontrol(); break;
- case addr_usehatch: usehatch(); break;
- case addr_usewire: usewire(); break;
- case addr_usehandle: usehandle(); break;
- case addr_useelevator1: useelevator1(); break;
- case addr_showfirstuse: showfirstuse(); break;
- case addr_useelevator3: useelevator3(); break;
- case addr_useelevator4: useelevator4(); break;
- case addr_useelevator2: useelevator2(); break;
- case addr_useelevator5: useelevator5(); break;
- case addr_usekey: usekey(); break;
- case addr_usestereo: usestereo(); break;
- case addr_usecooker: usecooker(); break;
- case addr_useaxe: useaxe(); break;
- case addr_useelvdoor: useelvdoor(); break;
- case addr_withwhat: withwhat(); break;
- case addr_selectob: selectob(); break;
- case addr_findsetobject: findsetobject(); break;
- case addr_findexobject: findexobject(); break;
- case addr_isryanholding: isryanholding(); break;
- case addr_checkinside: checkinside(); break;
- case addr_putbackobstuff: putbackobstuff(); break;
- case addr_showpuztext: showpuztext(); break;
- case addr_findpuztext: findpuztext(); break;
- case addr_issetobonmap: issetobonmap(); break;
- case addr_placefreeobject: placefreeobject(); break;
- case addr_removefreeobject: removefreeobject(); break;
- case addr_switchryanon: switchryanon(); break;
- case addr_switchryanoff: switchryanoff(); break;
- case addr_autoappear: autoappear(); break;
- case addr_setuptimeduse: setuptimeduse(); break;
- case addr_edenscdplayer: edenscdplayer(); break;
- case addr_usewall: usewall(); break;
- case addr_usechurchgate: usechurchgate(); break;
- case addr_usegun: usegun(); break;
- case addr_useshield: useshield(); break;
- case addr_usebuttona: usebuttona(); break;
- case addr_useplate: useplate(); break;
- case addr_usewinch: usewinch(); break;
- case addr_entercode: entercode(); break;
- case addr_loadkeypad: loadkeypad(); break;
- case addr_quitkey: quitkey(); break;
- case addr_addtopresslist: addtopresslist(); break;
- case addr_buttonone: buttonone(); break;
- case addr_buttontwo: buttontwo(); break;
- case addr_buttonthree: buttonthree(); break;
- case addr_buttonfour: buttonfour(); break;
- case addr_buttonfive: buttonfive(); break;
- case addr_buttonsix: buttonsix(); break;
- case addr_buttonseven: buttonseven(); break;
- case addr_buttoneight: buttoneight(); break;
- case addr_buttonnine: buttonnine(); break;
- case addr_buttonnought: buttonnought(); break;
- case addr_buttonenter: buttonenter(); break;
- case addr_buttonpress: buttonpress(); break;
- case addr_showouterpad: showouterpad(); break;
- case addr_showkeypad: showkeypad(); break;
- case addr_singlekey: singlekey(); break;
- case addr_dumpkeypad: dumpkeypad(); break;
- case addr_usemenu: usemenu(); break;
- case addr_dumpmenu: dumpmenu(); break;
- case addr_getundermenu: getundermenu(); break;
- case addr_putundermenu: putundermenu(); break;
- case addr_showoutermenu: showoutermenu(); break;
- case addr_showmenu: showmenu(); break;
- case addr_loadmenu: loadmenu(); break;
- case addr_viewfolder: viewfolder(); break;
- case addr_nextfolder: nextfolder(); break;
- case addr_folderhints: folderhints(); break;
- case addr_lastfolder: lastfolder(); break;
- case addr_loadfolder: loadfolder(); break;
- case addr_showfolder: showfolder(); break;
- case addr_folderexit: folderexit(); break;
- case addr_showleftpage: showleftpage(); break;
- case addr_showrightpage: showrightpage(); break;
- case addr_entersymbol: entersymbol(); break;
- case addr_quitsymbol: quitsymbol(); break;
- case addr_settopleft: settopleft(); break;
- case addr_settopright: settopright(); break;
- case addr_setbotleft: setbotleft(); break;
- case addr_setbotright: setbotright(); break;
- case addr_dumpsymbol: dumpsymbol(); break;
- case addr_showsymbol: showsymbol(); break;
- case addr_nextsymbol: nextsymbol(); break;
- case addr_updatesymboltop: updatesymboltop(); break;
- case addr_updatesymbolbot: updatesymbolbot(); break;
- case addr_dumpsymbox: dumpsymbox(); break;
- case addr_usediary: usediary(); break;
- case addr_showdiary: showdiary(); break;
- case addr_showdiarykeys: showdiarykeys(); break;
- case addr_dumpdiarykeys: dumpdiarykeys(); break;
- case addr_diarykeyp: diarykeyp(); break;
- case addr_diarykeyn: diarykeyn(); break;
- case addr_showdiarypage: showdiarypage(); break;
- case addr_findtext1: findtext1(); break;
- case addr_zoomonoff: zoomonoff(); break;
- case addr_saveload: saveload(); break;
- case addr_dosaveload: dosaveload(); break;
- case addr_getbackfromops: getbackfromops(); break;
- case addr_showmainops: showmainops(); break;
- case addr_showdiscops: showdiscops(); break;
- case addr_loadsavebox: loadsavebox(); break;
- case addr_loadgame: loadgame(); break;
- case addr_getbacktoops: getbacktoops(); break;
- case addr_discops: discops(); break;
- case addr_savegame: savegame(); break;
- case addr_actualsave: actualsave(); break;
- case addr_actualload: actualload(); break;
- case addr_selectslot2: selectslot2(); break;
- case addr_checkinput: checkinput(); break;
- case addr_getnamepos: getnamepos(); break;
- case addr_showopbox: showopbox(); break;
- case addr_showloadops: showloadops(); break;
- case addr_showsaveops: showsaveops(); break;
- case addr_selectslot: selectslot(); break;
- case addr_showslots: showslots(); break;
- case addr_shownames: shownames(); break;
- case addr_dosreturn: dosreturn(); break;
- case addr_error: error(); break;
- case addr_namestoold: namestoold(); break;
- case addr_oldtonames: oldtonames(); break;
- case addr_savefilewrite: savefilewrite(); break;
- case addr_savefileread: savefileread(); break;
- case addr_saveposition: saveposition(); break;
- case addr_loadposition: loadposition(); break;
- case addr_loadseg: loadseg(); break;
- case addr_makeheader: makeheader(); break;
- case addr_storeit: storeit(); break;
- case addr_saveseg: saveseg(); break;
- case addr_scanfornames: scanfornames(); break;
- case addr_decide: decide(); break;
- case addr_showdecisions: showdecisions(); break;
- case addr_newgame: newgame(); break;
- case addr_loadold: loadold(); break;
- case addr_loadspeech: loadspeech(); break;
- case addr_createname: createname(); break;
- case addr_loadsample: loadsample(); break;
- case addr_loadsecondsample: loadsecondsample(); break;
- case addr_soundstartup: soundstartup(); break;
- case addr_trysoundalloc: trysoundalloc(); break;
- case addr_setsoundoff: setsoundoff(); break;
- case addr_checksoundint: checksoundint(); break;
- case addr_enablesoundint: enablesoundint(); break;
- case addr_disablesoundint: disablesoundint(); break;
- case addr_interupttest: interupttest(); break;
- case addr_soundend: soundend(); break;
- case addr_out22c: out22c(); break;
- case addr_playchannel0: playchannel0(); break;
- case addr_playchannel1: playchannel1(); break;
- case addr_volumeadjust: volumeadjust(); break;
- case addr_channel0only: channel0only(); break;
- case addr_channel1only: channel1only(); break;
- case addr_bothchannels: bothchannels(); break;
- case addr_saveems: saveems(); break;
- case addr_restoreems: restoreems(); break;
- case addr_dmaend: dmaend(); break;
- case addr_startdmablock: startdmablock(); break;
- case addr_setuppit: setuppit(); break;
- case addr_getridofpit: getridofpit(); break;
- case addr_pitinterupt: pitinterupt(); break;
- case addr_dreamweb: dreamweb(); break;
- case addr_entrytexts: entrytexts(); break;
- case addr_entryanims: entryanims(); break;
- case addr_initialinv: initialinv(); break;
- case addr_pickupob: pickupob(); break;
- case addr_setupemm: setupemm(); break;
- case addr_removeemm: removeemm(); break;
- case addr_checkforemm: checkforemm(); break;
- case addr_checkbasemem: checkbasemem(); break;
- case addr_allocatebuffers: allocatebuffers(); break;
- case addr_clearbuffers: clearbuffers(); break;
- case addr_clearchanges: clearchanges(); break;
- case addr_clearbeforeload: clearbeforeload(); break;
- case addr_clearreels: clearreels(); break;
- case addr_clearrest: clearrest(); break;
- case addr_deallocatemem: deallocatemem(); break;
- case addr_allocatemem: allocatemem(); break;
- case addr_startup: startup(); break;
- case addr_startup1: startup1(); break;
- case addr_screenupdate: screenupdate(); break;
- case addr_watchreel: watchreel(); break;
- case addr_checkforshake: checkforshake(); break;
- case addr_watchcount: watchcount(); break;
- case addr_showtime: showtime(); break;
- case addr_dumpwatch: dumpwatch(); break;
- case addr_showbyte: showbyte(); break;
- case addr_onedigit: onedigit(); break;
- case addr_twodigitnum: twodigitnum(); break;
- case addr_showword: showword(); break;
- case addr_convnum: convnum(); break;
- case addr_mainscreen: mainscreen(); break;
- case addr_madmanrun: madmanrun(); break;
- case addr_identifyob: identifyob(); break;
- case addr_findpathofpoint: findpathofpoint(); break;
- case addr_findfirstpath: findfirstpath(); break;
- case addr_afternewroom: afternewroom(); break;
- case addr_atmospheres: atmospheres(); break;
- case addr_walkintoroom: walkintoroom(); break;
- case addr_afterintroroom: afterintroroom(); break;
- case addr_printmessage2: printmessage2(); break;
- case addr_setwalk: setwalk(); break;
- case addr_workoutframes: workoutframes(); break;
- case addr_showicon: showicon(); break;
- case addr_middlepanel: middlepanel(); break;
- case addr_showman: showman(); break;
- case addr_roomname: roomname(); break;
- case addr_usecharset1: usecharset1(); break;
- case addr_usetempcharset: usetempcharset(); break;
- case addr_showexit: showexit(); break;
- case addr_panelicons1: panelicons1(); break;
- case addr_showwatch: showwatch(); break;
- case addr_gettime: gettime(); break;
- case addr_zoomicon: zoomicon(); break;
- case addr_worktoscreenm: worktoscreenm(); break;
- case addr_blank: blank(); break;
- case addr_allpointer: allpointer(); break;
- case addr_hangonw: hangonw(); break;
- case addr_hangoncurs: hangoncurs(); break;
- case addr_getunderzoom: getunderzoom(); break;
- case addr_dumpzoom: dumpzoom(); break;
- case addr_putunderzoom: putunderzoom(); break;
- case addr_undertextline: undertextline(); break;
- case addr_setmouse: setmouse(); break;
- case addr_mousecall: mousecall(); break;
- case addr_readkey: readkey(); break;
- case addr_randomnum1: randomnum1(); break;
- case addr_randomnum2: randomnum2(); break;
- case addr_loadtraveltext: loadtraveltext(); break;
- case addr_loadintotemp: loadintotemp(); break;
- case addr_loadintotemp2: loadintotemp2(); break;
- case addr_loadintotemp3: loadintotemp3(); break;
- case addr_loadtempcharset: loadtempcharset(); break;
- case addr_standardload: standardload(); break;
- case addr_loadtemptext: loadtemptext(); break;
- case addr_loadroom: loadroom(); break;
- case addr_loadroomssample: loadroomssample(); break;
- case addr_getridofreels: getridofreels(); break;
- case addr_getridofall: getridofall(); break;
- case addr_restorereels: restorereels(); break;
- case addr_restoreall: restoreall(); break;
- case addr_sortoutmap: sortoutmap(); break;
- case addr_disablepath: disablepath(); break;
- case addr_findroominloc: findroominloc(); break;
- case addr_dontloadseg: dontloadseg(); break;
- case addr_allocateload: allocateload(); break;
- case addr_getridoftemp: getridoftemp(); break;
- case addr_getridoftemptext: getridoftemptext(); break;
- case addr_getridoftemp2: getridoftemp2(); break;
- case addr_getridoftemp3: getridoftemp3(); break;
- case addr_getridoftempcharset: getridoftempcharset(); break;
- case addr_getridoftempsp: getridoftempsp(); break;
- case addr_readsetdata: readsetdata(); break;
- case addr_createfile: createfile(); break;
- case addr_openfile: openfile(); break;
- case addr_openfilefromc: openfilefromc(); break;
- case addr_openfilenocheck: openfilenocheck(); break;
- case addr_openforsave: openforsave(); break;
- case addr_closefile: closefile(); break;
- case addr_readfromfile: readfromfile(); break;
- case addr_setkeyboardint: setkeyboardint(); break;
- case addr_resetkeyboard: resetkeyboard(); break;
- case addr_keyboardread: keyboardread(); break;
- case addr_doload: doload(); break;
- case addr_generalerror: generalerror(); break;
- default: ::error("invalid call to %04x dispatched", (uint16)ax);
- }
-}
-
-} /*namespace*/