diff options
| -rw-r--r-- | devtools/tasmrecover/tasm/cpp.py | 8 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.cpp | 8390 | ||||
| -rw-r--r-- | engines/dreamweb/runtime.h | 35 | 
3 files changed, 4225 insertions, 4208 deletions
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py index d63f568d78..f9afe48fd8 100644 --- a/devtools/tasmrecover/tasm/cpp.py +++ b/devtools/tasmrecover/tasm/cpp.py @@ -63,7 +63,7 @@ namespace %s {  			if size == 0:  				raise Exception("invalid var '%s' size %u" %(name, size))  			if self.indirection == 0: -				value = "context.data.%s(%d)" %("byte" if size == 1 else "word", g.offset) +				value = "context.ds.%s(%d)" %("byte" if size == 1 else "word", g.offset)  			elif self.indirection == -1:  				value = "%s" %g.offset  				self.indirection = 0 @@ -161,9 +161,9 @@ namespace %s {  		if indirection == 1:  			if size == 1: -				expr = "context.data.byte(%s)" %expr +				expr = "context.ds.byte(%s)" %expr  			elif size == 2: -				expr = "context.data.word(%s)" %expr +				expr = "context.ds.word(%s)" %expr  			else:  				expr = "@invalid size 0"  		elif indirection == 0: @@ -505,7 +505,7 @@ namespace %s {  			n += 1  			if (n & 0xf) == 0:  				data_impl += "\n\t\t" -		data_impl += "};\n\tcontext.data.assign(src, src + sizeof(src))" +		data_impl += "};\n\tcontext.ds.assign(src, src + sizeof(src))"  		hid = "TASMRECOVER_%s_STUBS_H__" %self.namespace.upper()  		self.hd.write("""#ifndef %s  #define %s diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 6d45fbfd80..3ec12c1363 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -483,7 +483,7 @@ static void intro3text(Context &context);  static void intro1text(Context &context);  static void alleybarksound(Context & context) { -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._sub(context.ax, 1);  	context._cmp(context.ax, 0);  	if (!context.flags.z()) goto nobark; @@ -495,7 +495,7 @@ static void alleybarksound(Context & context) {  	context.bx = context.pop();  	context.ax = 1000;  nobark: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  	return;  } @@ -516,49 +516,49 @@ nofog:  static void receptionist(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto gotrecep; -	context._cmp(context.data.byte(52), 1); +	context._cmp(context.ds.byte(52), 1);  	if (!context.flags.z()) goto notsetcard; -	context._add(context.data.byte(52), 1); -	context.data.byte(context.bx+7) = 1; -	context.data.word(context.bx+3) = 64; +	context._add(context.ds.byte(52), 1); +	context.ds.byte(context.bx+7) = 1; +	context.ds.word(context.bx+3) = 64;  notsetcard: -	context._cmp(context.data.word(context.bx+3), 58); +	context._cmp(context.ds.word(context.bx+3), 58);  	if (!context.flags.z()) goto notdes1;  	randomnumber(context);  	context._cmp(context.al, 30);  	if (context.flags.c()) goto notdes2; -	context.data.word(context.bx+3) = 55; +	context.ds.word(context.bx+3) = 55;  	goto gotrecep;  notdes1: -	context._cmp(context.data.word(context.bx+3), 60); +	context._cmp(context.ds.word(context.bx+3), 60);  	if (!context.flags.z()) goto notdes2;  	randomnumber(context);  	context._cmp(context.al, 240);  	if (context.flags.c()) goto gotrecep; -	context.data.word(context.bx+3) = 53; +	context.ds.word(context.bx+3) = 53;  	goto gotrecep;  notdes2: -	context._cmp(context.data.word(context.bx+3), 88); +	context._cmp(context.ds.word(context.bx+3), 88);  	if (!context.flags.z()) goto notendcard; -	context.data.word(context.bx+3) = 53; +	context.ds.word(context.bx+3) = 53;  	goto gotrecep;  notendcard: -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  gotrecep:  	showgamereel(context);  	addtopeoplelist(context); -	context.al = context.data.byte(context.bx+7); +	context.al = context.ds.byte(context.bx+7);  	context._and(context.al, 128);  	if (context.flags.z()) goto nottalkedrecep; -	context.data.byte(51) = 1; +	context.ds.byte(51) = 1;  nottalkedrecep:  	return;  }  static void smokebloke(Context & context) { -	context._cmp(context.data.byte(41), 0); +	context._cmp(context.ds.byte(41), 0);  	if (!context.flags.z()) goto notspokento; -	context.al = context.data.byte(context.bx+7); +	context.al = context.ds.byte(context.bx+7);  	context._and(context.al, 128);  	if (context.flags.z()) goto notspokento;  	context.push(context.es); @@ -570,20 +570,20 @@ static void smokebloke(Context & context) {  notspokento:  	checkspeed(context);  	if (!context.flags.z()) goto gotsmokeb; -	context._cmp(context.data.word(context.bx+3), 100); +	context._cmp(context.ds.word(context.bx+3), 100);  	if (!context.flags.z()) goto notsmokeb1;  	randomnumber(context);  	context._cmp(context.al, 30);  	if (context.flags.c()) goto notsmokeb2; -	context.data.word(context.bx+3) = 96; +	context.ds.word(context.bx+3) = 96;  	goto gotsmokeb;  notsmokeb1: -	context._cmp(context.data.word(context.bx+3), 117); +	context._cmp(context.ds.word(context.bx+3), 117);  	if (!context.flags.z()) goto notsmokeb2; -	context.data.word(context.bx+3) = 96; +	context.ds.word(context.bx+3) = 96;  	goto gotsmokeb;  notsmokeb2: -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  gotsmokeb:  	showgamereel(context);  	addtopeoplelist(context); @@ -593,25 +593,25 @@ gotsmokeb:  static void attendant(Context & context) {  	showgamereel(context);  	addtopeoplelist(context); -	context.al = context.data.byte(context.bx+7); +	context.al = context.ds.byte(context.bx+7);  	context._and(context.al, 128);  	if (context.flags.z()) goto nottalked; -	context.data.byte(48) = 1; +	context.ds.byte(48) = 1;  nottalked:  	return;  }  static void manasleep(Context & context) { -	context.al = context.data.byte(context.bx+7); +	context.al = context.ds.byte(context.bx+7);  	context._and(context.al, 127); -	context.data.byte(context.bx+7) = context.al; +	context.ds.byte(context.bx+7) = context.al;  	showgamereel(context);  	addtopeoplelist(context);  	return;  }  static void eden(Context & context) { -	context._cmp(context.data.byte(42), 0); +	context._cmp(context.ds.byte(42), 0);  	if (!context.flags.z()) goto notinbed;  	showgamereel(context);  	addtopeoplelist(context); @@ -620,9 +620,9 @@ notinbed:  }  static void edeninbath(Context & context) { -	context._cmp(context.data.byte(42), 0); +	context._cmp(context.ds.byte(42), 0);  	if (context.flags.z()) goto notinbed; -	context._cmp(context.data.byte(43), 0); +	context._cmp(context.ds.byte(43), 0);  	if (!context.flags.z()) goto notinbath;  	showgamereel(context);  	addtopeoplelist(context); @@ -647,7 +647,7 @@ static void femalefan(Context & context) {  }  static void louis(Context & context) { -	context._cmp(context.data.byte(41), 0); +	context._cmp(context.ds.byte(41), 0);  	if (!context.flags.z()) goto notlouis1;  	showgamereel(context);  	addtopeoplelist(context); @@ -656,26 +656,26 @@ notlouis1:  }  static void louischair(Context & context) { -	context._cmp(context.data.byte(41), 0); +	context._cmp(context.ds.byte(41), 0);  	if (context.flags.z()) goto notlouis2;  	checkspeed(context);  	if (!context.flags.z()) goto notlouisanim; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 191);  	if (context.flags.z()) goto restartlouis;  	context._cmp(context.ax, 185);  	if (context.flags.z()) goto randomlouis; -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  	goto notlouisanim;  randomlouis: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  	randomnumber(context);  	context._cmp(context.al, 245);  	if (!context.flags.c()) goto notlouisanim;  restartlouis:  	context.ax = 182; -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  notlouisanim:  	showgamereel(context);  	addtopeoplelist(context); @@ -684,9 +684,9 @@ notlouis2:  }  static void manasleep2(Context & context) { -	context.al = context.data.byte(context.bx+7); +	context.al = context.ds.byte(context.bx+7);  	context._and(context.al, 127); -	context.data.byte(context.bx+7) = context.al; +	context.ds.byte(context.bx+7) = context.al;  	showgamereel(context);  	addtopeoplelist(context);  	return; @@ -707,18 +707,18 @@ static void tattooman(Context & context) {  static void drinker(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto gotdrinker; -	context._add(context.data.word(context.bx+3), 1); -	context._cmp(context.data.word(context.bx+3), 115); +	context._add(context.ds.word(context.bx+3), 1); +	context._cmp(context.ds.word(context.bx+3), 115);  	if (!context.flags.z()) goto notdrinker1; -	context.data.word(context.bx+3) = 105; +	context.ds.word(context.bx+3) = 105;  	goto gotdrinker;  notdrinker1: -	context._cmp(context.data.word(context.bx+3), 106); +	context._cmp(context.ds.word(context.bx+3), 106);  	if (!context.flags.z()) goto gotdrinker;  	randomnumber(context);  	context._cmp(context.al, 3);  	if (context.flags.c()) goto gotdrinker; -	context.data.word(context.bx+3) = 105; +	context.ds.word(context.bx+3) = 105;  gotdrinker:  	showgamereel(context);  	addtopeoplelist(context); @@ -728,25 +728,25 @@ gotdrinker:  static void bartender(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto gotsmoket; -	context._cmp(context.data.word(context.bx+3), 86); +	context._cmp(context.ds.word(context.bx+3), 86);  	if (!context.flags.z()) goto notsmoket1;  	randomnumber(context);  	context._cmp(context.al, 18);  	if (context.flags.c()) goto notsmoket2; -	context.data.word(context.bx+3) = 81; +	context.ds.word(context.bx+3) = 81;  	goto gotsmoket;  notsmoket1: -	context._cmp(context.data.word(context.bx+3), 103); +	context._cmp(context.ds.word(context.bx+3), 103);  	if (!context.flags.z()) goto notsmoket2; -	context.data.word(context.bx+3) = 81; +	context.ds.word(context.bx+3) = 81;  	goto gotsmoket;  notsmoket2: -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  gotsmoket:  	showgamereel(context); -	context._cmp(context.data.byte(46), 1); +	context._cmp(context.ds.byte(46), 1);  	if (!context.flags.z()) goto notgotgun; -	context.data.byte(context.bx+7) = 9; +	context.ds.byte(context.bx+7) = 9;  notgotgun:  	addtopeoplelist(context);  	return; @@ -765,49 +765,49 @@ static void barwoman(Context & context) {  }  static void interviewer(Context & context) { -	context._cmp(context.data.word(23), 68); +	context._cmp(context.ds.word(23), 68);  	if (!context.flags.z()) goto notgeneralstart; -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  notgeneralstart: -	context._cmp(context.data.word(context.bx+3), 250); +	context._cmp(context.ds.word(context.bx+3), 250);  	if (context.flags.z()) goto talking;  	checkspeed(context);  	if (!context.flags.z()) goto talking; -	context._cmp(context.data.word(context.bx+3), 259); +	context._cmp(context.ds.word(context.bx+3), 259);  	if (context.flags.z()) goto talking; -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  talking:  	showgamereel(context);  	return;  }  static void soldier1(Context & context) { -	context._cmp(context.data.word(context.bx+3), 0); +	context._cmp(context.ds.word(context.bx+3), 0);  	if (context.flags.z()) goto soldierwait; -	context.data.word(21) = 10; -	context._cmp(context.data.word(context.bx+3), 30); +	context.ds.word(21) = 10; +	context._cmp(context.ds.word(context.bx+3), 30);  	if (!context.flags.z()) goto notaftersshot; -	context._add(context.data.byte(64), 1); -	context._cmp(context.data.byte(64), 40); +	context._add(context.ds.byte(64), 1); +	context._cmp(context.ds.byte(64), 40);  	if (!context.flags.z()) goto gotsoldframe; -	context.data.byte(56) = 2; +	context.ds.byte(56) = 2;  	goto gotsoldframe;  notaftersshot:  	checkspeed(context);  	if (!context.flags.z()) goto gotsoldframe; -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  	goto gotsoldframe;  soldierwait: -	context._cmp(context.data.byte(65), 1); +	context._cmp(context.ds.byte(65), 1);  	if (!context.flags.z()) goto gotsoldframe; -	context.data.word(21) = 10; -	context._cmp(context.data.byte(475), 2); +	context.ds.word(21) = 10; +	context._cmp(context.ds.byte(475), 2);  	if (!context.flags.z()) goto gotsoldframe; -	context._cmp(context.data.byte(133), 4); +	context._cmp(context.ds.byte(133), 4);  	if (!context.flags.z()) goto gotsoldframe; -	context._add(context.data.word(context.bx+3), 1); -	context.data.byte(65) = -1; -	context.data.byte(64) = 0; +	context._add(context.ds.word(context.bx+3), 1); +	context.ds.byte(65) = -1; +	context.ds.byte(64) = 0;  gotsoldframe:  	showgamereel(context);  	addtopeoplelist(context); @@ -815,70 +815,70 @@ gotsoldframe:  }  static void rockstar(Context & context) { -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 303);  	if (context.flags.z()) goto rockcombatend;  	context._cmp(context.ax, 118);  	if (context.flags.z()) goto rockcombatend;  	checkspeed(context);  	if (!context.flags.z()) goto rockspeed; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 118);  	if (!context.flags.z()) goto notbeforedead; -	context.data.byte(56) = 2; +	context.ds.byte(56) = 2;  	goto gotrockframe;  notbeforedead:  	context._cmp(context.ax, 79);  	if (!context.flags.z()) goto gotrockframe;  	context._sub(context.ax, 1); -	context._cmp(context.data.byte(65), 1); +	context._cmp(context.ds.byte(65), 1);  	if (!context.flags.z()) goto notgunonrock; -	context.data.byte(65) = -1; +	context.ds.byte(65) = -1;  	context.ax = 123;  	goto gotrockframe;  notgunonrock: -	context._add(context.data.byte(64), 1); -	context._cmp(context.data.byte(64), 40); +	context._add(context.ds.byte(64), 1); +	context._cmp(context.ds.byte(64), 40);  	if (!context.flags.z()) goto gotrockframe; -	context.data.byte(64) = 0; +	context.ds.byte(64) = 0;  	context.ax = 79;  gotrockframe: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  rockspeed:  	showgamereel(context); -	context._cmp(context.data.word(context.bx+3), 78); +	context._cmp(context.ds.word(context.bx+3), 78);  	if (!context.flags.z()) goto notalkrock;  	addtopeoplelist(context); -	context.data.byte(234) = 2; -	context.data.word(21) = 0; +	context.ds.byte(234) = 2; +	context.ds.word(21) = 0;  	return;  notalkrock: -	context.data.word(21) = 2; -	context.data.byte(234) = 0; -	context.al = context.data.byte(149); -	context.data.byte(context.bx+2) = context.al; +	context.ds.word(21) = 2; +	context.ds.byte(234) = 0; +	context.al = context.ds.byte(149); +	context.ds.byte(context.bx+2) = context.al;  	return;  rockcombatend: -	context.data.byte(188) = 45; +	context.ds.byte(188) = 45;  	showgamereel(context);  	return;  }  static void helicopter(Context & context) { -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 203);  	if (context.flags.z()) goto heliwon;  	checkspeed(context);  	if (!context.flags.z()) goto helispeed; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 53);  	if (!context.flags.z()) goto notbeforehdead; -	context._add(context.data.byte(64), 1); -	context._cmp(context.data.byte(64), 8); +	context._add(context.ds.byte(64), 1); +	context._cmp(context.ds.byte(64), 8);  	if (context.flags.c()) goto waitabit; -	context.data.byte(56) = 2; +	context.ds.byte(56) = 2;  waitabit:  	context.ax = 49;  	goto gotheliframe; @@ -886,59 +886,59 @@ notbeforehdead:  	context._cmp(context.ax, 9);  	if (!context.flags.z()) goto gotheliframe;  	context._sub(context.ax, 1); -	context._cmp(context.data.byte(65), 1); +	context._cmp(context.ds.byte(65), 1);  	if (!context.flags.z()) goto notgunonheli; -	context.data.byte(65) = -1; +	context.ds.byte(65) = -1;  	context.ax = 55;  	goto gotheliframe;  notgunonheli:  	context.ax = 5; -	context._add(context.data.byte(64), 1); -	context._cmp(context.data.byte(64), 20); +	context._add(context.ds.byte(64), 1); +	context._cmp(context.ds.byte(64), 20);  	if (!context.flags.z()) goto gotheliframe; -	context.data.byte(64) = 0; +	context.ds.byte(64) = 0;  	context.ax = 9;  gotheliframe: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  helispeed:  	showgamereel(context); -	context.al = context.data.byte(148); -	context.data.byte(context.bx+1) = context.al; +	context.al = context.ds.byte(148); +	context.ds.byte(context.bx+1) = context.al;  helicombatend: -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 9);  	if (!context.flags.c()) goto notwaitingheli; -	context._cmp(context.data.byte(64), 7); +	context._cmp(context.ds.byte(64), 7);  	if (context.flags.c()) goto notwaitingheli; -	context.data.byte(234) = 2; -	context.data.word(21) = 0; +	context.ds.byte(234) = 2; +	context.ds.word(21) = 0;  	return;  notwaitingheli: -	context.data.byte(234) = 0; -	context.data.word(21) = 2; +	context.ds.byte(234) = 0; +	context.ds.word(21) = 2;  	return;  heliwon: -	context.data.byte(234) = 0; +	context.ds.byte(234) = 0;  	return;  }  static void mugger(Context & context) { -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 138);  	if (context.flags.z()) goto endmugger1;  	context._cmp(context.ax, 176);  	if (context.flags.z()) goto endmugger2;  	context._cmp(context.ax, 2);  	if (!context.flags.z()) goto havesetwatch; -	context.data.word(21) = 175*2; +	context.ds.word(21) = 175*2;  havesetwatch:  	checkspeed(context);  	if (!context.flags.z()) goto notmugger; -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  notmugger:  	showgamereel(context); -	context.al = context.data.byte(148); -	context.data.byte(context.bx+1) = context.al; +	context.al = context.ds.byte(148); +	context.ds.byte(context.bx+1) = context.al;  	return;  endmugger1:  	context.push(context.es); @@ -959,26 +959,26 @@ endmugger1:  	context.es = context.pop();  	context.push(context.es);  	context.push(context.bx); -	context.data.word(context.bx+3) = 140; -	context.data.byte(475) = 2; -	context.data.byte(477) = 2; +	context.ds.word(context.bx+3) = 140; +	context.ds.byte(475) = 2; +	context.ds.byte(477) = 2;  	findxyfrompath(context); -	context.data.byte(187) = 1; +	context.ds.byte(187) = 1;  	context.al = 'W';  	context.ah = 'E';  	context.cl = 'T';  	context.ch = 'A';  	findexobject(context); -	context.data.byte(99) = context.al; -	context.data.byte(102) = 4; +	context.ds.byte(99) = context.al; +	context.ds.byte(102) = 4;  	removeobfrominv(context);  	context.al = 'W';  	context.ah = 'E';  	context.cl = 'T';  	context.ch = 'B';  	findexobject(context); -	context.data.byte(99) = context.al; -	context.data.byte(102) = 4; +	context.ds.byte(99) = context.al; +	context.ds.byte(102) = 4;  	removeobfrominv(context);  	makemainscreen(context);  	context.al = 48; @@ -987,7 +987,7 @@ endmugger1:  	context.cx = 70;  	context.dx = 10;  	setuptimeduse(context); -	context.data.byte(45) = 1; +	context.ds.byte(45) = 1;  	context.bx = context.pop();  	context.es = context.pop();  	return; @@ -1002,9 +1002,9 @@ static void aide(Context & context) {  }  static void businessman(Context & context) { -	context.data.byte(234) = 0; -	context.data.word(21) = 2; -	context.ax = context.data.word(context.bx+3); +	context.ds.byte(234) = 0; +	context.ds.word(21) = 2; +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 2);  	if (!context.flags.z()) goto notfirstbiz;  	context.push(context.ax); @@ -1026,27 +1026,27 @@ notfirstbiz:  	if (context.flags.z()) goto buscombatend;  	checkspeed(context);  	if (!context.flags.z()) goto busspeed; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 48);  	if (!context.flags.z()) goto notbeforedeadb; -	context.data.byte(56) = 2; +	context.ds.byte(56) = 2;  	goto gotbusframe;  notbeforedeadb:  	context._cmp(context.ax, 15);  	if (!context.flags.z()) goto buscombatwon;  	context._sub(context.ax, 1); -	context._cmp(context.data.byte(65), 3); +	context._cmp(context.ds.byte(65), 3);  	if (!context.flags.z()) goto notshieldonbus; -	context.data.byte(65) = -1; -	context.data.byte(64) = 0; +	context.ds.byte(65) = -1; +	context.ds.byte(64) = 0;  	context.ax = 51;  	goto gotbusframe;  notshieldonbus: -	context._add(context.data.byte(64), 1); -	context._cmp(context.data.byte(64), 20); +	context._add(context.ds.byte(64), 1); +	context._cmp(context.ds.byte(64), 20);  	if (!context.flags.z()) goto gotbusframe; -	context.data.byte(64) = 0; +	context.ds.byte(64) = 0;  	context.ax = 15;  	goto gotbusframe;  buscombatwon: @@ -1062,36 +1062,36 @@ buscombatwon:  	turnpathon(context);  	context.al = 3;  	turnpathoff(context); -	context.data.byte(475) = 5; -	context.data.byte(477) = 5; +	context.ds.byte(475) = 5; +	context.ds.byte(477) = 5;  	findxyfrompath(context); -	context.data.byte(187) = 1; +	context.ds.byte(187) = 1;  	context.es = context.pop();  	context.bx = context.pop();  	context.ax = 92;  	goto gotbusframe;  gotbusframe: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  busspeed:  	showgamereel(context); -	context.al = context.data.byte(149); -	context.data.byte(context.bx+2) = context.al; -	context.ax = context.data.word(context.bx+3); +	context.al = context.ds.byte(149); +	context.ds.byte(context.bx+2) = context.al; +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 14);  	if (!context.flags.z()) goto buscombatend; -	context.data.word(21) = 0; -	context.data.byte(234) = 2; +	context.ds.word(21) = 0; +	context.ds.byte(234) = 2;  	return;  buscombatend:  	return;  buscombatwonend: -	context.data.byte(234) = 0; -	context.data.word(21) = 0; +	context.ds.byte(234) = 0; +	context.ds.word(21) = 0;  	return;  }  static void poolguard(Context & context) { -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 214);  	if (context.flags.z()) goto combatover2;  	context._cmp(context.ax, 258); @@ -1105,57 +1105,57 @@ static void poolguard(Context & context) {  notfirstpool:  	checkspeed(context);  	if (!context.flags.z()) goto guardspeed; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 122);  	if (!context.flags.z()) goto notendguard1;  	context._sub(context.ax, 1); -	context._cmp(context.data.byte(65), 2); +	context._cmp(context.ds.byte(65), 2);  	if (!context.flags.z()) goto notaxeonpool; -	context.data.byte(65) = -1; +	context.ds.byte(65) = -1;  	context.ax = 122;  	goto gotguardframe;  notaxeonpool: -	context._add(context.data.byte(64), 1); -	context._cmp(context.data.byte(64), 40); +	context._add(context.ds.byte(64), 1); +	context._cmp(context.ds.byte(64), 40);  	if (!context.flags.z()) goto gotguardframe; -	context.data.byte(64) = 0; +	context.ds.byte(64) = 0;  	context.ax = 195;  	goto gotguardframe;  notendguard1:  	context._cmp(context.ax, 147);  	if (!context.flags.z()) goto gotguardframe;  	context._sub(context.ax, 1); -	context._cmp(context.data.byte(65), 1); +	context._cmp(context.ds.byte(65), 1);  	if (!context.flags.z()) goto notgunonpool; -	context.data.byte(65) = -1; +	context.ds.byte(65) = -1;  	context.ax = 147;  	goto gotguardframe;  notgunonpool: -	context._add(context.data.byte(64), 1); -	context._cmp(context.data.byte(64), 40); +	context._add(context.ds.byte(64), 1); +	context._cmp(context.ds.byte(64), 40);  	if (!context.flags.z()) goto gotguardframe; -	context.data.byte(64) = 0; +	context.ds.byte(64) = 0;  	context.ax = 220;  gotguardframe: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  guardspeed:  	showgamereel(context); -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 121);  	if (context.flags.z()) goto iswaitingpool;  	context._cmp(context.ax, 146);  	if (context.flags.z()) goto iswaitingpool; -	context.data.byte(234) = 0; -	context.data.word(21) = 2; +	context.ds.byte(234) = 0; +	context.ds.word(21) = 2;  	return;  iswaitingpool: -	context.data.byte(234) = 2; -	context.data.word(21) = 0; +	context.ds.byte(234) = 2; +	context.ds.word(21) = 0;  	return;  combatover1: -	context.data.word(21) = 0; -	context.data.byte(234) = 0; +	context.ds.word(21) = 0; +	context.ds.byte(234) = 0;  	context.al = 0;  	turnpathon(context);  	context.al = 1; @@ -1163,39 +1163,39 @@ combatover1:  	return;  combatover2:  	showgamereel(context); -	context.data.word(21) = 2; -	context.data.byte(234) = 0; -	context._add(context.data.byte(64), 1); -	context._cmp(context.data.byte(64), 100); +	context.ds.word(21) = 2; +	context.ds.byte(234) = 0; +	context._add(context.ds.byte(64), 1); +	context._cmp(context.ds.byte(64), 100);  	if (context.flags.c()) goto doneover2; -	context.data.word(21) = 0; -	context.data.byte(56) = 2; +	context.ds.word(21) = 0; +	context.ds.byte(56) = 2;  doneover2:  	return;  }  static void security(Context & context) { -	context._cmp(context.data.word(context.bx+3), 32); +	context._cmp(context.ds.word(context.bx+3), 32);  	if (context.flags.z()) goto securwait; -	context._cmp(context.data.word(context.bx+3), 69); +	context._cmp(context.ds.word(context.bx+3), 69);  	if (!context.flags.z()) goto notaftersec;  	return;  notaftersec: -	context.data.word(21) = 10; +	context.ds.word(21) = 10;  	checkspeed(context);  	if (!context.flags.z()) goto gotsecurframe; -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  	goto gotsecurframe;  securwait: -	context._cmp(context.data.byte(65), 1); +	context._cmp(context.ds.byte(65), 1);  	if (!context.flags.z()) goto gotsecurframe; -	context.data.word(21) = 10; -	context._cmp(context.data.byte(475), 9); +	context.ds.word(21) = 10; +	context._cmp(context.ds.byte(475), 9);  	if (!context.flags.z()) goto gotsecurframe; -	context._cmp(context.data.byte(133), 0); +	context._cmp(context.ds.byte(133), 0);  	if (!context.flags.z()) goto gotsecurframe; -	context.data.byte(65) = -1; -	context._add(context.data.word(context.bx+3), 1); +	context.ds.byte(65) = -1; +	context._add(context.ds.word(context.bx+3), 1);  gotsecurframe:  	showgamereel(context);  	addtopeoplelist(context); @@ -1203,34 +1203,34 @@ gotsecurframe:  }  static void heavy(Context & context) { -	context.al = context.data.byte(context.bx+7); +	context.al = context.ds.byte(context.bx+7);  	context._and(context.al, 127); -	context.data.byte(context.bx+7) = context.al; -	context._cmp(context.data.word(context.bx+3), 43); +	context.ds.byte(context.bx+7) = context.al; +	context._cmp(context.ds.word(context.bx+3), 43);  	if (context.flags.z()) goto heavywait; -	context.data.word(21) = 10; -	context._cmp(context.data.word(context.bx+3), 70); +	context.ds.word(21) = 10; +	context._cmp(context.ds.word(context.bx+3), 70);  	if (!context.flags.z()) goto notafterhshot; -	context._add(context.data.byte(64), 1); -	context._cmp(context.data.byte(64), 80); +	context._add(context.ds.byte(64), 1); +	context._cmp(context.ds.byte(64), 80);  	if (!context.flags.z()) goto gotheavyframe; -	context.data.byte(56) = 2; +	context.ds.byte(56) = 2;  	goto gotheavyframe;  notafterhshot:  	checkspeed(context);  	if (!context.flags.z()) goto gotheavyframe; -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  	goto gotheavyframe;  heavywait: -	context._cmp(context.data.byte(65), 1); +	context._cmp(context.ds.byte(65), 1);  	if (!context.flags.z()) goto gotheavyframe; -	context._cmp(context.data.byte(475), 5); +	context._cmp(context.ds.byte(475), 5);  	if (!context.flags.z()) goto gotheavyframe; -	context._cmp(context.data.byte(133), 4); +	context._cmp(context.ds.byte(133), 4);  	if (!context.flags.z()) goto gotheavyframe; -	context.data.byte(65) = -1; -	context._add(context.data.word(context.bx+3), 1); -	context.data.byte(64) = 0; +	context.ds.byte(65) = -1; +	context._add(context.ds.word(context.bx+3), 1); +	context.ds.byte(64) = 0;  gotheavyframe:  	showgamereel(context);  	addtopeoplelist(context); @@ -1240,7 +1240,7 @@ gotheavyframe:  static void bossman(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto notboss; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 4);  	if (context.flags.z()) goto firstdes; @@ -1249,11 +1249,11 @@ static void bossman(Context & context) {  	context._cmp(context.ax, 41);  	if (!context.flags.z()) goto gotallboss;  	context.ax = 0; -	context._add(context.data.byte(46), 1); -	context.data.byte(context.bx+7) = 10; +	context._add(context.ds.byte(46), 1); +	context.ds.byte(context.bx+7) = 10;  	goto gotallboss;  firstdes: -	context._cmp(context.data.byte(46), 1); +	context._cmp(context.ds.byte(46), 1);  	if (context.flags.z()) goto gotallboss;  	context.push(context.ax);  	randomnumber(context); @@ -1264,18 +1264,18 @@ firstdes:  	context.ax = 0;  	goto gotallboss;  secdes: -	context._cmp(context.data.byte(46), 1); +	context._cmp(context.ds.byte(46), 1);  	if (context.flags.z()) goto gotallboss;  	context.ax = 0;  gotallboss: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  notboss:  	showgamereel(context);  	addtopeoplelist(context); -	context.al = context.data.byte(context.bx+7); +	context.al = context.ds.byte(context.bx+7);  	context._and(context.al, 128);  	if (context.flags.z()) goto nottalkedboss; -	context.data.byte(50) = 1; +	context.ds.byte(50) = 1;  nottalkedboss:  	return;  } @@ -1289,10 +1289,10 @@ gameragain:  	context._cmp(context.al, 5);  	if (!context.flags.c()) goto gameragain;  	context._add(context.al, 20); -	context._cmp(context.al, context.data.byte(context.bx+3)); +	context._cmp(context.al, context.ds.byte(context.bx+3));  	if (context.flags.z()) goto gameragain;  	context.ah = 0; -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  gamerfin:  	showgamereel(context);  	addtopeoplelist(context); @@ -1319,17 +1319,17 @@ cantdrip2:  }  static void keeper(Context & context) { -	context._cmp(context.data.byte(54), 0); +	context._cmp(context.ds.byte(54), 0);  	if (!context.flags.z()) goto notwaiting; -	context._cmp(context.data.word(23), 190); +	context._cmp(context.ds.word(23), 190);  	if (context.flags.c()) goto waiting; -	context._add(context.data.byte(54), 1); -	context.ah = context.data.byte(context.bx+7); +	context._add(context.ds.byte(54), 1); +	context.ah = context.ds.byte(context.bx+7);  	context._and(context.ah, 127); -	context._cmp(context.ah, context.data.byte(66)); +	context._cmp(context.ah, context.ds.byte(66));  	if (context.flags.z()) goto notdiff; -	context.al = context.data.byte(66); -	context.data.byte(context.bx+7) = context.al; +	context.al = context.ds.byte(66); +	context.ds.byte(context.bx+7) = context.al;  notdiff:  	return;  notwaiting: @@ -1342,13 +1342,13 @@ waiting:  static void candles1(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto candle1; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 44);  	if (!context.flags.z()) goto notendcandle1;  	context.ax = 39;  notendcandle1: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  candle1:  	showgamereel(context);  	return; @@ -1357,13 +1357,13 @@ candle1:  static void smallcandle(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto smallcandlef; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 37);  	if (!context.flags.z()) goto notendsmallcandle;  	context.ax = 25;  notendsmallcandle: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  smallcandlef:  	showgamereel(context);  	return; @@ -1372,25 +1372,25 @@ smallcandlef:  static void intromagic1(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto introm1fin; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 145);  	if (!context.flags.z()) goto gotintrom1;  	context.ax = 121;  gotintrom1: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  	context._cmp(context.ax, 121);  	if (!context.flags.z()) goto introm1fin; -	context._add(context.data.byte(139), 1); +	context._add(context.ds.byte(139), 1);  	context.push(context.es);  	context.push(context.bx);  	intro1text(context);  	context.bx = context.pop();  	context.es = context.pop(); -	context._cmp(context.data.byte(139), 8); +	context._cmp(context.ds.byte(139), 8);  	if (!context.flags.z()) goto introm1fin; -	context._add(context.data.byte(149), 10); -	context.data.byte(186) = 1; +	context._add(context.ds.byte(149), 10); +	context.ds.byte(186) = 1;  introm1fin:  	showgamereel(context);  	return; @@ -1399,13 +1399,13 @@ introm1fin:  static void candles(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto candlesfin; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 167);  	if (!context.flags.z()) goto gotcandles;  	context.ax = 162;  gotcandles: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  candlesfin:  	showgamereel(context);  	return; @@ -1414,13 +1414,13 @@ candlesfin:  static void candles2(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto candles2fin; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 238);  	if (!context.flags.z()) goto gotcandles2;  	context.ax = 233;  gotcandles2: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  candles2fin:  	showgamereel(context);  	return; @@ -1429,7 +1429,7 @@ candles2fin:  static void gates(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto gatesfin; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 116);  	if (!context.flags.z()) goto notbang; @@ -1444,14 +1444,14 @@ static void gates(Context & context) {  notbang:  	context._cmp(context.ax, 110);  	if (context.flags.c()) goto slowgates; -	context.data.byte(context.bx+5) = 2; +	context.ds.byte(context.bx+5) = 2;  slowgates:  	context._cmp(context.ax, 120);  	if (!context.flags.z()) goto gotgates; -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	context.ax = 119;  gotgates: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  	context.push(context.es);  	context.push(context.bx);  	intro3text(context); @@ -1465,13 +1465,13 @@ gatesfin:  static void intromagic2(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto introm2fin; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 216);  	if (!context.flags.z()) goto gotintrom2;  	context.ax = 192;  gotintrom2: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  introm2fin:  	showgamereel(context);  	return; @@ -1480,39 +1480,39 @@ introm2fin:  static void intromagic3(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto introm3fin; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 218);  	if (!context.flags.z()) goto gotintrom3; -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  gotintrom3: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  introm3fin:  	showgamereel(context); -	context.al = context.data.byte(148); -	context.data.byte(context.bx+1) = context.al; +	context.al = context.ds.byte(148); +	context.ds.byte(context.bx+1) = context.al;  	return;  }  static void intromonks1(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto intromonk1fin; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 80);  	if (!context.flags.z()) goto notendmonk1; -	context._add(context.data.byte(149), 10); -	context.data.byte(186) = 1; +	context._add(context.ds.byte(149), 10); +	context.ds.byte(186) = 1;  	showgamereel(context);  	return;  notendmonk1:  	context._cmp(context.ax, 30);  	if (!context.flags.z()) goto gotintromonk1; -	context._sub(context.data.byte(149), 10); -	context.data.byte(186) = 1; +	context._sub(context.ds.byte(149), 10); +	context.ds.byte(186) = 1;  	context.ax = 51;  gotintromonk1: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  	context._cmp(context.ax, 5);  	if (context.flags.z()) goto waitstep;  	context._cmp(context.ax, 15); @@ -1530,28 +1530,28 @@ waitstep:  	intro2text(context);  	context.bx = context.pop();  	context.es = context.pop(); -	context.data.byte(context.bx+6) = -20; +	context.ds.byte(context.bx+6) = -20;  intromonk1fin:  	showgamereel(context); -	context.al = context.data.byte(149); -	context.data.byte(context.bx+2) = context.al; +	context.al = context.ds.byte(149); +	context.ds.byte(context.bx+2) = context.al;  	return;  }  static void intromonks2(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto intromonk2fin; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 87);  	if (!context.flags.z()) goto nottalk1; -	context._add(context.data.byte(139), 1); +	context._add(context.ds.byte(139), 1);  	context.push(context.es);  	context.push(context.bx);  	monks2text(context);  	context.bx = context.pop();  	context.es = context.pop(); -	context._cmp(context.data.byte(139), 19); +	context._cmp(context.ds.byte(139), 19);  	if (!context.flags.z()) goto notlasttalk1;  	context.ax = 87;  	goto gotintromonk2; @@ -1561,13 +1561,13 @@ notlasttalk1:  nottalk1:  	context._cmp(context.ax, 110);  	if (!context.flags.z()) goto notraisearm; -	context._add(context.data.byte(139), 1); +	context._add(context.ds.byte(139), 1);  	context.push(context.es);  	context.push(context.bx);  	monks2text(context);  	context.bx = context.pop();  	context.es = context.pop(); -	context._cmp(context.data.byte(139), 35); +	context._cmp(context.ds.byte(139), 35);  	if (!context.flags.z()) goto notlastraise;  	context.ax = 111;  	goto gotintromonk2; @@ -1577,14 +1577,14 @@ notlastraise:  notraisearm:  	context._cmp(context.ax, 176);  	if (!context.flags.z()) goto notendmonk2; -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	goto gotintromonk2;  notendmonk2:  	context._cmp(context.ax, 125);  	if (!context.flags.z()) goto gotintromonk2;  	context.ax = 140;  gotintromonk2: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  intromonk2fin:  	showgamereel(context);  	return; @@ -1595,7 +1595,7 @@ static void handclap(Context & context) {  }  static void monks2text(Context & context) { -	context._cmp(context.data.byte(139), 1); +	context._cmp(context.ds.byte(139), 1);  	if (!context.flags.z()) goto notmonk2text1;  	context.al = 8;  	context.bl = 36; @@ -1603,7 +1603,7 @@ static void monks2text(Context & context) {  	context.cx = 100;  	goto gotmonks2text;  notmonk2text1: -	context._cmp(context.data.byte(139), 4); +	context._cmp(context.ds.byte(139), 4);  	if (!context.flags.z()) goto notmonk2text2;  	context.al = 9;  	context.bl = 36; @@ -1611,7 +1611,7 @@ notmonk2text1:  	context.cx = 100;  	goto gotmonks2text;  notmonk2text2: -	context._cmp(context.data.byte(139), 7); +	context._cmp(context.ds.byte(139), 7);  	if (!context.flags.z()) goto notmonk2text3;  	context.al = 10;  	context.bl = 36; @@ -1619,7 +1619,7 @@ notmonk2text2:  	context.cx = 100;  	goto gotmonks2text;  notmonk2text3: -	context._cmp(context.data.byte(139), 10); +	context._cmp(context.ds.byte(139), 10);  	if (!context.flags.z()) goto notmonk2text4;  	context.al = 11;  	context.bl = 0; @@ -1627,7 +1627,7 @@ notmonk2text3:  	context.cx = 100;  	goto gotmonks2text;  notmonk2text4: -	context._cmp(context.data.byte(139), 13); +	context._cmp(context.ds.byte(139), 13);  	if (!context.flags.z()) goto notmonk2text5;  	context.al = 12;  	context.bl = 0; @@ -1635,7 +1635,7 @@ notmonk2text4:  	context.cx = 100;  	goto gotmonks2text;  notmonk2text5: -	context._cmp(context.data.byte(139), 16); +	context._cmp(context.ds.byte(139), 16);  	if (!context.flags.z()) goto notmonk2text6;  	context.al = 13;  	context.bl = 0; @@ -1643,7 +1643,7 @@ notmonk2text5:  	context.cx = 100;  	goto gotmonks2text;  notmonk2text6: -	context._cmp(context.data.byte(139), 19); +	context._cmp(context.ds.byte(139), 19);  	if (!context.flags.z()) goto notmonk2text7;  	context.al = 14;  	context.bl = 36; @@ -1653,7 +1653,7 @@ notmonk2text6:  	context.ah = 82;  	{ setuptimedtemp(context); return; };  notmonk2text7: -	context._cmp(context.data.byte(139), 22); +	context._cmp(context.ds.byte(139), 22);  	if (!context.flags.z()) goto notmonk2text8;  	context.al = 15;  	context.bl = 36; @@ -1661,7 +1661,7 @@ notmonk2text7:  	context.cx = 100;  	goto gotmonks2text;  notmonk2text8: -	context._cmp(context.data.byte(139), 25); +	context._cmp(context.ds.byte(139), 25);  	if (!context.flags.z()) goto notmonk2text9;  	context.al = 16;  	context.bl = 36; @@ -1669,7 +1669,7 @@ notmonk2text8:  	context.cx = 100;  	goto gotmonks2text;  notmonk2text9: -	context._cmp(context.data.byte(139), 28); +	context._cmp(context.ds.byte(139), 28);  	if (!context.flags.z()) goto notmonk2text10;  	context.al = 17;  	context.bl = 36; @@ -1677,7 +1677,7 @@ notmonk2text9:  	context.cx = 100;  	goto gotmonks2text;  notmonk2text10: -	context._cmp(context.data.byte(139), 31); +	context._cmp(context.ds.byte(139), 31);  	if (!context.flags.z()) goto notmonk2text11;  	context.al = 18;  	context.bl = 36; @@ -1695,7 +1695,7 @@ gotmonks2text:  }  static void intro1text(Context & context) { -	context._cmp(context.data.byte(139), 2); +	context._cmp(context.ds.byte(139), 2);  	if (!context.flags.z()) goto notintro1text1;  	context.al = 40;  	context.bl = 34; @@ -1703,7 +1703,7 @@ static void intro1text(Context & context) {  	context.cx = 90;  	goto gotintro1text;  notintro1text1: -	context._cmp(context.data.byte(139), 4); +	context._cmp(context.ds.byte(139), 4);  	if (!context.flags.z()) goto notintro1text2;  	context.al = 41;  	context.bl = 34; @@ -1711,7 +1711,7 @@ notintro1text1:  	context.cx = 90;  	goto gotintro1text;  notintro1text2: -	context._cmp(context.data.byte(139), 6); +	context._cmp(context.ds.byte(139), 6);  	if (!context.flags.z()) goto notintro1text3;  	context.al = 42;  	context.bl = 34; @@ -1781,23 +1781,23 @@ gotintro3text:  static void monkandryan(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto notmonkryan; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 83);  	if (!context.flags.z()) goto gotmonkryan; -	context._add(context.data.byte(139), 1); +	context._add(context.ds.byte(139), 1);  	context.push(context.es);  	context.push(context.bx);  	textformonk(context);  	context.bx = context.pop();  	context.es = context.pop();  	context.ax = 77; -	context._cmp(context.data.byte(139), 57); +	context._cmp(context.ds.byte(139), 57);  	if (!context.flags.z()) goto gotmonkryan; -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  gotmonkryan: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  notmonkryan:  	showgamereel(context);  	return; @@ -1806,13 +1806,13 @@ notmonkryan:  static void endgameseq(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto notendseq; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 51);  	if (!context.flags.z()) goto gotendseq; -	context._cmp(context.data.byte(139), 140); +	context._cmp(context.ds.byte(139), 140);  	if (context.flags.z()) goto gotendseq; -	context._add(context.data.byte(139), 1); +	context._add(context.ds.byte(139), 1);  	context.push(context.es);  	context.push(context.bx);  	textforend(context); @@ -1820,7 +1820,7 @@ static void endgameseq(Context & context) {  	context.es = context.pop();  	context.ax = 50;  gotendseq: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  	context._cmp(context.ax, 134);  	if (!context.flags.z()) goto notfadedown;  	context.push(context.es); @@ -1838,23 +1838,23 @@ notfadedown:  	context.push(context.bx);  	context.push(context.ax);  	fadescreendowns(context); -	context.data.byte(387) = 7; -	context.data.byte(388) = 1; +	context.ds.byte(387) = 7; +	context.ds.byte(388) = 1;  	context.ax = context.pop();  	context.bx = context.pop();  	context.es = context.pop();  notfadeend:  	context._cmp(context.ax, 340);  	if (!context.flags.z()) goto notendseq; -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  notendseq:  	showgamereel(context); -	context.al = context.data.byte(149); -	context.data.byte(context.bx+2) = context.al; -	context.ax = context.data.word(context.bx+3); +	context.al = context.ds.byte(149); +	context.ds.byte(context.bx+2) = context.al; +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 145);  	if (!context.flags.z()) goto notendcreds; -	context.data.word(context.bx+3) = 146; +	context.ds.word(context.bx+3) = 146;  	rollendcredits(context);  notendcreds:  	return; @@ -1864,26 +1864,26 @@ static void rollendcredits(Context & context) {  	context.al = 16;  	context.ah = 255;  	playchannel0(context); -	context.data.byte(386) = 7; -	context.data.byte(387) = 0; -	context.data.byte(388) = -1; +	context.ds.byte(386) = 7; +	context.ds.byte(387) = 0; +	context.ds.byte(388) = -1;  	context.cl = 160;  	context.ch = 160;  	context.di = 75;  	context.bx = 20; -	context.ds = context.data.word(402); +	context.ds = context.ds.word(402);  	context.si = 0;  	multiget(context); -	context.es = context.data.word(466); +	context.es = context.ds.word(466);  	context.si = 3*2; -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context.si = context.ax;  	context._add(context.si, 66*2);  	context.cx = 254;  endcredits1:  	context.push(context.cx);  	context.bx = 10; -	context.cx = context.data.word(77); +	context.cx = context.ds.word(77);  endcredits2:  	context.push(context.cx);  	context.push(context.si); @@ -1895,7 +1895,7 @@ endcredits2:  	context.ch = 160;  	context.di = 75;  	context.bx = 20; -	context.ds = context.data.word(402); +	context.ds = context.ds.word(402);  	context.si = 0;  	multiput(context);  	vsync(context); @@ -1914,7 +1914,7 @@ onelot:  	context.dx = 161;  	context.ax = 0;  	printdirect(context); -	context._add(context.bx, context.data.word(77)); +	context._add(context.bx, context.ds.word(77));  	context.cx = context.pop();  	if (--context.cx) goto onelot;  	vsync(context); @@ -1932,7 +1932,7 @@ onelot:  	if (--context.cx) goto endcredits2;  	context.cx = context.pop();  looknext: -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._add(context.si, 1);  	context._cmp(context.al, ':');  	if (context.flags.z()) goto gotnext; @@ -1949,13 +1949,13 @@ gotnext:  }  static void priest(Context & context) { -	context._cmp(context.data.word(context.bx+3), 8); +	context._cmp(context.ds.word(context.bx+3), 8);  	if (context.flags.z()) goto priestspoken; -	context.data.byte(234) = 0; -	context.data.word(21) = 2; +	context.ds.byte(234) = 0; +	context.ds.word(21) = 2;  	checkspeed(context);  	if (!context.flags.z()) goto priestwait; -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  	context.push(context.es);  	context.push(context.bx);  	priesttext(context); @@ -1968,22 +1968,22 @@ priestspoken:  }  static void madmanstelly(Context & context) { -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 307);  	if (!context.flags.z()) goto notendtelly;  	context.ax = 300;  notendtelly: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  	showgamereel(context);  	return;  }  static void madman(Context & context) { -	context.data.word(21) = 2; +	context.ds.word(21) = 2;  	checkspeed(context);  	if (!context.flags.z()) goto nomadspeed; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 364);  	if (!context.flags.c()) goto ryansded;  	context._cmp(context.ax, 10); @@ -1996,46 +1996,46 @@ static void madman(Context & context) {  	context.ax = context.pop();  	context.bx = context.pop();  	context.es = context.pop(); -	context.data.byte(64) = -1; -	context.data.byte(69) = 0; +	context.ds.byte(64) = -1; +	context.ds.byte(69) = 0;  notfirstmad:  	context._add(context.ax, 1);  	context._cmp(context.ax, 294);  	if (context.flags.z()) goto madmanspoken;  	context._cmp(context.ax, 66);  	if (!context.flags.z()) goto nomadspeak; -	context._add(context.data.byte(64), 1); +	context._add(context.ds.byte(64), 1);  	context.push(context.es);  	context.push(context.bx);  	madmantext(context);  	context.bx = context.pop();  	context.es = context.pop();  	context.ax = 53; -	context._cmp(context.data.byte(64), 62); +	context._cmp(context.ds.byte(64), 62);  	if (context.flags.c()) goto nomadspeak; -	context._cmp(context.data.byte(64), 68); +	context._cmp(context.ds.byte(64), 68);  	if (context.flags.z()) goto killryan; -	context._cmp(context.data.byte(65), 8); +	context._cmp(context.ds.byte(65), 8);  	if (!context.flags.z()) goto nomadspeak; -	context.data.byte(64) = 70; -	context.data.byte(65) = -1; -	context.data.byte(53) = 1; +	context.ds.byte(64) = 70; +	context.ds.byte(65) = -1; +	context.ds.byte(53) = 1;  	context.ax = 67;  	goto nomadspeak;  killryan:  	context.ax = 310;  nomadspeak: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  nomadspeed:  	showgamereel(context); -	context.al = context.data.byte(148); -	context.data.byte(context.bx+1) = context.al; +	context.al = context.ds.byte(148); +	context.ds.byte(context.bx+1) = context.al;  	madmode(context);  	return;  madmanspoken: -	context._cmp(context.data.byte(391), 1); +	context._cmp(context.ds.byte(391), 1);  	if (context.flags.z()) goto alreadywon; -	context.data.byte(391) = 1; +	context.ds.byte(391) = 1;  	context.push(context.es);  	context.push(context.bx);  	getridoftemptext(context); @@ -2044,18 +2044,18 @@ madmanspoken:  alreadywon:  	return;  ryansded: -	context.data.byte(56) = 2; +	context.ds.byte(56) = 2;  	showgamereel(context);  	return;  }  static void madmantext(Context & context) { -	context._cmp(context.data.byte(64), 61); +	context._cmp(context.ds.byte(64), 61);  	if (!context.flags.c()) goto nomadtext; -	context.al = context.data.byte(64); +	context.al = context.ds.byte(64);  	context._and(context.al, 3);  	if (!context.flags.z()) goto nomadtext; -	context.al = context.data.byte(64); +	context.al = context.ds.byte(64);  	context._shr(context.al, 1);  	context._shr(context.al, 1);  	context._add(context.al, 47); @@ -2070,26 +2070,26 @@ nomadtext:  }  static void madmode(Context & context) { -	context.data.word(21) = 2; -	context.data.byte(234) = 0; -	context._cmp(context.data.byte(64), 63); +	context.ds.word(21) = 2; +	context.ds.byte(234) = 0; +	context._cmp(context.ds.byte(64), 63);  	if (context.flags.c()) goto iswatchmad; -	context._cmp(context.data.byte(64), 68); +	context._cmp(context.ds.byte(64), 68);  	if (!context.flags.c()) goto iswatchmad; -	context.data.byte(234) = 2; +	context.ds.byte(234) = 2;  iswatchmad:  	return;  }  static void priesttext(Context & context) { -	context._cmp(context.data.word(context.bx+3), 2); +	context._cmp(context.ds.word(context.bx+3), 2);  	if (context.flags.c()) goto nopriesttext; -	context._cmp(context.data.word(context.bx+3), 7); +	context._cmp(context.ds.word(context.bx+3), 7);  	if (!context.flags.c()) goto nopriesttext; -	context.al = context.data.byte(context.bx+3); +	context.al = context.ds.byte(context.bx+3);  	context._and(context.al, 1);  	if (!context.flags.z()) goto nopriesttext; -	context.al = context.data.byte(context.bx+3); +	context.al = context.ds.byte(context.bx+3);  	context._shr(context.al, 1);  	context._add(context.al, 50);  	context.bl = 72; @@ -2102,7 +2102,7 @@ nopriesttext:  }  static void textforend(Context & context) { -	context._cmp(context.data.byte(139), 20); +	context._cmp(context.ds.byte(139), 20);  	if (!context.flags.z()) goto notendtext1;  	context.al = 0;  	context.bl = 34; @@ -2110,7 +2110,7 @@ static void textforend(Context & context) {  	context.cx = 60;  	goto gotendtext;  notendtext1: -	context._cmp(context.data.byte(139), 65); +	context._cmp(context.ds.byte(139), 65);  	if (!context.flags.z()) goto notendtext2;  	context.al = 1;  	context.bl = 34; @@ -2118,7 +2118,7 @@ notendtext1:  	context.cx = 60;  	goto gotendtext;  notendtext2: -	context._cmp(context.data.byte(139), 110); +	context._cmp(context.ds.byte(139), 110);  	if (!context.flags.z()) goto notendtext3;  	context.al = 2;  	context.bl = 34; @@ -2135,7 +2135,7 @@ gotendtext:  }  static void textformonk(Context & context) { -	context._cmp(context.data.byte(139), 1); +	context._cmp(context.ds.byte(139), 1);  	if (!context.flags.z()) goto notmonktext1;  	context.al = 19;  	context.bl = 68; @@ -2143,7 +2143,7 @@ static void textformonk(Context & context) {  	context.cx = 120;  	goto gotmonktext;  notmonktext1: -	context._cmp(context.data.byte(139), 5); +	context._cmp(context.ds.byte(139), 5);  	if (!context.flags.z()) goto notmonktext2;  	context.al = 20;  	context.bl = 68; @@ -2151,7 +2151,7 @@ notmonktext1:  	context.cx = 120;  	goto gotmonktext;  notmonktext2: -	context._cmp(context.data.byte(139), 9); +	context._cmp(context.ds.byte(139), 9);  	if (!context.flags.z()) goto notmonktext3;  	context.al = 21;  	context.bl = 48; @@ -2159,7 +2159,7 @@ notmonktext2:  	context.cx = 120;  	goto gotmonktext;  notmonktext3: -	context._cmp(context.data.byte(139), 13); +	context._cmp(context.ds.byte(139), 13);  	if (!context.flags.z()) goto notmonktext4;  	context.al = 22;  	context.bl = 68; @@ -2167,7 +2167,7 @@ notmonktext3:  	context.cx = 120;  	goto gotmonktext;  notmonktext4: -	context._cmp(context.data.byte(139), 17); +	context._cmp(context.ds.byte(139), 17);  	if (!context.flags.z()) goto notmonktext5;  	context.al = 23;  	context.bl = 68; @@ -2175,7 +2175,7 @@ notmonktext4:  	context.cx = 120;  	goto gotmonktext;  notmonktext5: -	context._cmp(context.data.byte(139), 21); +	context._cmp(context.ds.byte(139), 21);  	if (!context.flags.z()) goto notmonktext6;  	context.al = 24;  	context.bl = 68; @@ -2183,7 +2183,7 @@ notmonktext5:  	context.cx = 120;  	goto gotmonktext;  notmonktext6: -	context._cmp(context.data.byte(139), 25); +	context._cmp(context.ds.byte(139), 25);  	if (!context.flags.z()) goto notmonktext7;  	context.al = 25;  	context.bl = 68; @@ -2191,7 +2191,7 @@ notmonktext6:  	context.cx = 120;  	goto gotmonktext;  notmonktext7: -	context._cmp(context.data.byte(139), 29); +	context._cmp(context.ds.byte(139), 29);  	if (!context.flags.z()) goto notmonktext8;  	context.al = 26;  	context.bl = 68; @@ -2199,7 +2199,7 @@ notmonktext7:  	context.cx = 120;  	goto gotmonktext;  notmonktext8: -	context._cmp(context.data.byte(139), 33); +	context._cmp(context.ds.byte(139), 33);  	if (!context.flags.z()) goto notmonktext9;  	context.al = 27;  	context.bl = 68; @@ -2207,7 +2207,7 @@ notmonktext8:  	context.cx = 120;  	goto gotmonktext;  notmonktext9: -	context._cmp(context.data.byte(139), 37); +	context._cmp(context.ds.byte(139), 37);  	if (!context.flags.z()) goto notmonktext10;  	context.al = 28;  	context.bl = 68; @@ -2215,7 +2215,7 @@ notmonktext9:  	context.cx = 120;  	goto gotmonktext;  notmonktext10: -	context._cmp(context.data.byte(139), 41); +	context._cmp(context.ds.byte(139), 41);  	if (!context.flags.z()) goto notmonktext11;  	context.al = 29;  	context.bl = 68; @@ -2223,7 +2223,7 @@ notmonktext10:  	context.cx = 120;  	goto gotmonktext;  notmonktext11: -	context._cmp(context.data.byte(139), 45); +	context._cmp(context.ds.byte(139), 45);  	if (!context.flags.z()) goto notmonktext12;  	context.al = 30;  	context.bl = 68; @@ -2231,7 +2231,7 @@ notmonktext11:  	context.cx = 120;  	goto gotmonktext;  notmonktext12: -	context._cmp(context.data.byte(139), 49); +	context._cmp(context.ds.byte(139), 49);  	if (!context.flags.z()) goto notmonktext13;  	context.al = 31;  	context.bl = 68; @@ -2239,7 +2239,7 @@ notmonktext12:  	context.cx = 220;  	goto gotmonktext;  notmonktext13: -	context._cmp(context.data.byte(139), 53); +	context._cmp(context.ds.byte(139), 53);  	if (!context.flags.z()) goto notendtitles;  	fadescreendowns(context);  notendtitles: @@ -2253,11 +2253,11 @@ oktalk:  }  static void drunk(Context & context) { -	context._cmp(context.data.byte(42), 0); +	context._cmp(context.ds.byte(42), 0);  	if (!context.flags.z()) goto trampgone; -	context.al = context.data.byte(context.bx+7); +	context.al = context.ds.byte(context.bx+7);  	context._and(context.al, 127); -	context.data.byte(context.bx+7) = context.al; +	context.ds.byte(context.bx+7) = context.al;  	showgamereel(context);  	addtopeoplelist(context);  trampgone: @@ -2268,7 +2268,7 @@ static void advisor(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto noadvisor;  	goto noadvisor; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 123);  	if (!context.flags.z()) goto notendadvis; @@ -2285,7 +2285,7 @@ notendadvis:  	if (context.flags.c()) goto gotadvframe;  	context.ax = 106;  gotadvframe: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  noadvisor:  	showgamereel(context);  	addtopeoplelist(context); @@ -2295,7 +2295,7 @@ noadvisor:  static void copper(Context & context) {  	checkspeed(context);  	if (!context.flags.z()) goto nocopper; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._add(context.ax, 1);  	context._cmp(context.ax, 94);  	if (!context.flags.z()) goto notendcopper; @@ -2315,7 +2315,7 @@ mightwait:  	if (context.flags.c()) goto gotcopframe;  	context._sub(context.ax, 1);  gotcopframe: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  nocopper:  	showgamereel(context);  	addtopeoplelist(context); @@ -2323,41 +2323,41 @@ nocopper:  }  static void sparky(Context & context) { -	context._cmp(context.data.word(16), 0); +	context._cmp(context.ds.word(16), 0);  	if (context.flags.z()) goto animsparky; -	context.data.byte(context.bx+7) = 3; +	context.ds.byte(context.bx+7) = 3;  	goto animsparky;  animsparky:  	checkspeed(context);  	if (!context.flags.z()) goto finishsparky; -	context._cmp(context.data.word(context.bx+3), 34); +	context._cmp(context.ds.word(context.bx+3), 34);  	if (!context.flags.z()) goto notsparky1;  	randomnumber(context);  	context._cmp(context.al, 30);  	if (context.flags.c()) goto dosparky; -	context.data.word(context.bx+3) = 27; +	context.ds.word(context.bx+3) = 27;  	goto finishsparky;  notsparky1: -	context._cmp(context.data.word(context.bx+3), 48); +	context._cmp(context.ds.word(context.bx+3), 48);  	if (!context.flags.z()) goto dosparky; -	context.data.word(context.bx+3) = 27; +	context.ds.word(context.bx+3) = 27;  	goto finishsparky;  dosparky: -	context._add(context.data.word(context.bx+3), 1); +	context._add(context.ds.word(context.bx+3), 1);  finishsparky:  	showgamereel(context);  	addtopeoplelist(context); -	context.al = context.data.byte(context.bx+7); +	context.al = context.ds.byte(context.bx+7);  	context._and(context.al, 128);  	if (context.flags.z()) goto nottalkedsparky; -	context.data.byte(49) = 1; +	context.ds.byte(49) = 1;  nottalkedsparky:  	return;  }  static void train(Context & context) {  	return; -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 21);  	if (!context.flags.c()) goto notrainyet;  	context._add(context.ax, 1); @@ -2366,13 +2366,13 @@ notrainyet:  	randomnumber(context);  	context._cmp(context.al, 253);  	if (context.flags.c()) goto notrainatall; -	context._cmp(context.data.byte(475), 5); +	context._cmp(context.ds.byte(475), 5);  	if (!context.flags.z()) goto notrainatall; -	context._cmp(context.data.byte(477), 5); +	context._cmp(context.ds.byte(477), 5);  	if (!context.flags.z()) goto notrainatall;  	context.ax = 5;  gottrainframe: -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  	showgamereel(context);  notrainatall:  	return; @@ -2382,45 +2382,45 @@ static void addtopeoplelist(Context & context) {  	context.push(context.es);  	context.push(context.bx);  	context.push(context.bx); -	context.cl = context.data.byte(context.bx+7); -	context.ax = context.data.word(context.bx+3); -	context.bx = context.data.word(18); -	context.es = context.data.word(412); -	context.data.word(context.bx) = context.ax; +	context.cl = context.ds.byte(context.bx+7); +	context.ax = context.ds.word(context.bx+3); +	context.bx = context.ds.word(18); +	context.es = context.ds.word(412); +	context.ds.word(context.bx) = context.ax;  	context.ax = context.pop(); -	context.data.word(context.bx+2) = context.ax; -	context.data.byte(context.bx+4) = context.cl; +	context.ds.word(context.bx+2) = context.ax; +	context.ds.byte(context.bx+4) = context.cl;  	context.bx = context.pop();  	context.es = context.pop(); -	context._add(context.data.word(18), 5); +	context._add(context.ds.word(18), 5);  	return;  }  static void showgamereel(Context & context) { -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	context._cmp(context.ax, 512);  	if (!context.flags.c()) goto noshow; -	context.data.word(239) = context.ax; +	context.ds.word(239) = context.ax;  	context.push(context.es);  	context.push(context.bx);  	plotreel(context);  	context.bx = context.pop();  	context.es = context.pop(); -	context.ax = context.data.word(239); -	context.data.word(context.bx+3) = context.ax; +	context.ax = context.ds.word(239); +	context.ds.word(context.bx+3) = context.ax;  noshow:  	return;  }  static void checkspeed(Context & context) { -	context._cmp(context.data.byte(65), -1); +	context._cmp(context.ds.byte(65), -1);  	if (!context.flags.z()) goto forcenext; -	context._add(context.data.byte(context.bx+6), 1); -	context.al = context.data.byte(context.bx+6); -	context._cmp(context.al, context.data.byte(context.bx+5)); +	context._add(context.ds.byte(context.bx+6), 1); +	context.al = context.ds.byte(context.bx+6); +	context._cmp(context.al, context.ds.byte(context.bx+5));  	if (!context.flags.z()) goto notspeed;  	context.al = 0; -	context.data.byte(context.bx+6) = context.al; +	context.ds.byte(context.bx+6) = context.al;  	context._cmp(context.al, context.al);  notspeed:  	return; @@ -2430,7 +2430,7 @@ forcenext:  }  static void clearsprites(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;  	context.al = 255;  	context.cx = 32*16; @@ -2439,21 +2439,21 @@ static void clearsprites(Context & context) {  }  static void makesprite(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;  _tmp17: -	context._cmp(context.data.byte(context.bx+15), 255); +	context._cmp(context.ds.byte(context.bx+15), 255);  	if (context.flags.z()) goto _tmp17a;  	context._add(context.bx, 32);  	goto _tmp17;  _tmp17a: -	context.data.word(context.bx) = context.cx; -	context.data.word(context.bx+10) = context.si; -	context.data.word(context.bx+6) = context.dx; -	context.data.word(context.bx+8) = context.di; -	context.data.word(context.bx+2) = 0x0ffff; -	context.data.byte(context.bx+15) = 0; -	context.data.byte(context.bx+18) = 0; +	context.ds.word(context.bx) = context.cx; +	context.ds.word(context.bx+10) = context.si; +	context.ds.word(context.bx+6) = context.dx; +	context.ds.word(context.bx+8) = context.di; +	context.ds.word(context.bx+2) = 0x0ffff; +	context.ds.byte(context.bx+15) = 0; +	context.ds.byte(context.bx+18) = 0;  	return;  } @@ -2466,30 +2466,30 @@ static void delsprite(Context & context) {  }  static void spriteupdate(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768; -	context.al = context.data.byte(63); -	context.data.byte(context.bx+31) = context.al; -	context.es = context.data.word(412); +	context.al = context.ds.byte(63); +	context.ds.byte(context.bx+31) = context.al; +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;  	context.cx = 16;  _tmp18:  	context.push(context.cx);  	context.push(context.bx); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._cmp(context.ax, 0x0ffff);  	if (context.flags.z()) goto _tmp18a;  	context.push(context.es);  	context.push(context.ds); -	context.cx = context.data.word(context.bx+2); -	context.data.word(context.bx+24) = context.cx; +	context.cx = context.ds.word(context.bx+2); +	context.ds.word(context.bx+24) = context.cx;  	__dispatch_call(context, context.ax);  	context.ds = context.pop();  	context.es = context.pop();  _tmp18a:  	context.bx = context.pop();  	context.cx = context.pop(); -	context._cmp(context.data.byte(186), 1); +	context._cmp(context.ds.byte(186), 1);  	if (context.flags.z()) goto _tmp18b;  	context._add(context.bx, 32);  	if (--context.cx) goto _tmp18; @@ -2498,23 +2498,23 @@ _tmp18b:  }  static void printsprites(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.cx = 0;  priorityloop:  	context.push(context.cx); -	context.data.byte(182) = context.cl; +	context.ds.byte(182) = context.cl;  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;  	context.cx = 16;  prtspriteloop:  	context.push(context.cx);  	context.push(context.bx); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._cmp(context.ax, 0x0ffff);  	if (context.flags.z()) goto skipsprite; -	context.al = context.data.byte(182); -	context._cmp(context.al, context.data.byte(context.bx+23)); +	context.al = context.ds.byte(182); +	context._cmp(context.al, context.ds.byte(context.bx+23));  	if (!context.flags.z()) goto skipsprite; -	context._cmp(context.data.byte(context.bx+31), 1); +	context._cmp(context.ds.byte(context.bx+31), 1);  	if (context.flags.z()) goto skipsprite;  	printasprite(context);  skipsprite: @@ -2533,30 +2533,30 @@ static void printasprite(Context & context) {  	context.push(context.es);  	context.push(context.bx);  	context.si = context.bx; -	context.ds = context.data.word(context.si+6); -	context.al = context.data.byte(context.si+11); +	context.ds = context.ds.word(context.si+6); +	context.al = context.ds.byte(context.si+11);  	context.ah = 0;  	context._cmp(context.al, 220);  	if (context.flags.c()) goto notnegative1;  	context.ah = 255;  notnegative1:  	context.bx = context.ax; -	context._add(context.bx, context.data.word(119)); -	context.al = context.data.byte(context.si+10); +	context._add(context.bx, context.ds.word(119)); +	context.al = context.ds.byte(context.si+10);  	context.ah = 0;  	context._cmp(context.al, 220);  	if (context.flags.c()) goto notnegative2;  	context.ah = 255;  notnegative2:  	context.di = context.ax; -	context._add(context.di, context.data.word(117)); -	context.al = context.data.byte(context.si+15); +	context._add(context.di, context.ds.word(117)); +	context.al = context.ds.byte(context.si+15);  	context.ah = 0; -	context._cmp(context.data.byte(context.si+30), 0); +	context._cmp(context.ds.byte(context.si+30), 0);  	if (context.flags.z()) goto steadyframe;  	context.ah = 8;  steadyframe: -	context._cmp(context.data.byte(182), 6); +	context._cmp(context.ds.byte(182), 6);  	if (!context.flags.z()) goto notquickp;  notquickp:  	showframe(context); @@ -2591,7 +2591,7 @@ static void checkone(Context & context) {  	context.cx = 3;  	context._mul(context.cx);  	context.si = context.ax; -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context._add(context.si, 0+(228*13)+32+60+(32*32));  	context._lodsw();  	context.cx = context.ax; @@ -2601,90 +2601,90 @@ static void checkone(Context & context) {  }  static void findsource(Context & context) { -	context.ax = context.data.word(160); +	context.ax = context.ds.word(160);  	context._cmp(context.ax, 160);  	if (!context.flags.c()) goto over1000; -	context.ds = context.data.word(430); -	context.data.word(244) = 0; +	context.ds = context.ds.word(430); +	context.ds.word(244) = 0;  	return;  over1000:  	context._cmp(context.ax, 320);  	if (!context.flags.c()) goto over1001; -	context.ds = context.data.word(432); -	context.data.word(244) = 160; +	context.ds = context.ds.word(432); +	context.ds.word(244) = 160;  	return;  over1001: -	context.ds = context.data.word(434); -	context.data.word(244) = 320; +	context.ds = context.ds.word(434); +	context.ds.word(244) = 320;  	return;  }  static void initman(Context & context) { -	context.al = context.data.byte(151); -	context.ah = context.data.byte(152); +	context.al = context.ds.byte(151); +	context.ah = context.ds.byte(152);  	context.si = context.ax;  	context.cx = 49464; -	context.dx = context.data.word(414); +	context.dx = context.ds.word(414);  	context.di = 0;  	makesprite(context); -	context.data.byte(context.bx+23) = 4; -	context.data.byte(context.bx+22) = 0; -	context.data.byte(context.bx+29) = 0; +	context.ds.byte(context.bx+23) = 4; +	context.ds.byte(context.bx+22) = 0; +	context.ds.byte(context.bx+29) = 0;  	return;  }  static void mainman(Context & context) { -	context._cmp(context.data.byte(187), 1); +	context._cmp(context.ds.byte(187), 1);  	if (!context.flags.z()) goto notinnewroom; -	context.data.byte(187) = 0; -	context.al = context.data.byte(151); -	context.ah = context.data.byte(152); -	context.data.word(context.bx+10) = context.ax; -	context.data.byte(context.bx+29) = 0; +	context.ds.byte(187) = 0; +	context.al = context.ds.byte(151); +	context.ah = context.ds.byte(152); +	context.ds.word(context.bx+10) = context.ax; +	context.ds.byte(context.bx+29) = 0;  	goto executewalk;  notinnewroom: -	context._sub(context.data.byte(context.bx+22), 1); -	context._cmp(context.data.byte(context.bx+22), -1); +	context._sub(context.ds.byte(context.bx+22), 1); +	context._cmp(context.ds.byte(context.bx+22), -1);  	if (context.flags.z()) goto executewalk;  	return;  executewalk: -	context.data.byte(context.bx+22) = 0; -	context.al = context.data.byte(135); -	context._cmp(context.al, context.data.byte(133)); +	context.ds.byte(context.bx+22) = 0; +	context.al = context.ds.byte(135); +	context._cmp(context.al, context.ds.byte(133));  	if (context.flags.z()) goto facingok;  	aboutturn(context);  	goto notwalk;  facingok: -	context._cmp(context.data.byte(136), 0); +	context._cmp(context.ds.byte(136), 0);  	if (context.flags.z()) goto alreadyturned; -	context._cmp(context.data.byte(492), 254); +	context._cmp(context.ds.byte(492), 254);  	if (!context.flags.z()) goto alreadyturned; -	context.data.byte(473) = 1; -	context.al = context.data.byte(133); -	context._cmp(context.al, context.data.byte(134)); +	context.ds.byte(473) = 1; +	context.al = context.ds.byte(133); +	context._cmp(context.al, context.ds.byte(134));  	if (!context.flags.z()) goto alreadyturned;  	checkforexit(context);  alreadyturned: -	context.data.byte(136) = 0; -	context._cmp(context.data.byte(492), 254); +	context.ds.byte(136) = 0; +	context._cmp(context.ds.byte(492), 254);  	if (!context.flags.z()) goto walkman; -	context.data.byte(context.bx+29) = 0; +	context.ds.byte(context.bx+29) = 0;  	goto notwalk;  walkman: -	context.al = context.data.byte(context.bx+29); +	context.al = context.ds.byte(context.bx+29);  	context._add(context.al, 1);  	context._cmp(context.al, 11);  	if (!context.flags.z()) goto notanimend1;  	context.al = 1;  notanimend1: -	context.data.byte(context.bx+29) = context.al; +	context.ds.byte(context.bx+29) = context.al;  	walking(context); -	context._cmp(context.data.byte(492), 254); +	context._cmp(context.ds.byte(492), 254);  	if (context.flags.z()) goto afterwalk; -	context.al = context.data.byte(133); +	context.al = context.ds.byte(133);  	context._and(context.al, 1);  	if (context.flags.z()) goto isdouble; -	context.al = context.data.byte(context.bx+29); +	context.al = context.ds.byte(context.bx+29);  	context._cmp(context.al, 2);  	if (context.flags.z()) goto afterwalk;  	context._cmp(context.al, 7); @@ -2692,37 +2692,37 @@ notanimend1:  isdouble:  	walking(context);  afterwalk: -	context._cmp(context.data.byte(492), 254); +	context._cmp(context.ds.byte(492), 254);  	if (!context.flags.z()) goto notwalk; -	context.al = context.data.byte(135); -	context._cmp(context.al, context.data.byte(133)); +	context.al = context.ds.byte(135); +	context._cmp(context.al, context.ds.byte(133));  	if (!context.flags.z()) goto notwalk; -	context.data.byte(473) = 1; -	context.al = context.data.byte(133); -	context._cmp(context.al, context.data.byte(134)); +	context.ds.byte(473) = 1; +	context.al = context.ds.byte(133); +	context._cmp(context.al, context.ds.byte(134));  	if (!context.flags.z()) goto notwalk;  	checkforexit(context);  notwalk: -	context.al = context.data.byte(133); +	context.al = context.ds.byte(133);  	context.ah = 0;  	context.di = 1105;  	context._add(context.di, context.ax); -	context.al = context.data.byte(context.di); -	context._add(context.al, context.data.byte(context.bx+29)); -	context.data.byte(context.bx+15) = context.al; -	context.ax = context.data.word(context.bx+10); -	context.data.byte(151) = context.al; -	context.data.byte(152) = context.ah; +	context.al = context.ds.byte(context.di); +	context._add(context.al, context.ds.byte(context.bx+29)); +	context.ds.byte(context.bx+15) = context.al; +	context.ax = context.ds.word(context.bx+10); +	context.ds.byte(151) = context.al; +	context.ds.byte(152) = context.ah;  	return;  }  static void aboutturn(Context & context) { -	context._cmp(context.data.byte(136), 1); +	context._cmp(context.ds.byte(136), 1);  	if (context.flags.z()) goto incdir; -	context._cmp(context.data.byte(136), -1); +	context._cmp(context.ds.byte(136), -1);  	if (context.flags.z()) goto decdir; -	context.al = context.data.byte(133); -	context._sub(context.al, context.data.byte(135)); +	context.al = context.ds.byte(133); +	context._sub(context.al, context.ds.byte(135));  	if (!context.flags.c()) goto higher;  	context._neg(context.al);  	context._cmp(context.al, 4); @@ -2733,37 +2733,37 @@ higher:  	if (!context.flags.c()) goto incdir;  	goto decdir;  incdir: -	context.data.byte(136) = 1; -	context.al = context.data.byte(133); +	context.ds.byte(136) = 1; +	context.al = context.ds.byte(133);  	context._add(context.al, 1);  	context._and(context.al, 7); -	context.data.byte(133) = context.al; -	context.data.byte(context.bx+29) = 0; +	context.ds.byte(133) = context.al; +	context.ds.byte(context.bx+29) = 0;  	return;  decdir: -	context.data.byte(136) = -1; -	context.al = context.data.byte(133); +	context.ds.byte(136) = -1; +	context.al = context.ds.byte(133);  	context._sub(context.al, 1);  	context._and(context.al, 7); -	context.data.byte(133) = context.al; -	context.data.byte(context.bx+29) = 0; +	context.ds.byte(133) = context.al; +	context.ds.byte(context.bx+29) = 0;  	return;  }  static void walking(Context & context) { -	context._cmp(context.data.byte(493), 0); +	context._cmp(context.ds.byte(493), 0);  	if (context.flags.z()) goto normalwalk; -	context.al = context.data.byte(492); +	context.al = context.ds.byte(492);  	context._sub(context.al, 1); -	context.data.byte(492) = context.al; +	context.ds.byte(492) = context.al;  	context._cmp(context.al, 200);  	if (!context.flags.c()) goto endofline;  	goto continuewalk;  normalwalk: -	context.al = context.data.byte(492); +	context.al = context.ds.byte(492);  	context._add(context.al, 1); -	context.data.byte(492) = context.al; -	context._cmp(context.al, context.data.byte(494)); +	context.ds.byte(492) = context.al; +	context._cmp(context.al, context.ds.byte(494));  	if (!context.flags.c()) goto endofline;  continuewalk:  	context.ah = 0; @@ -2774,20 +2774,20 @@ continuewalk:  	context.es = context.dx;  	context.bx = 8344;  	context._add(context.bx, context.ax); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context.bx = context.pop();  	context.es = context.pop();  stillline: -	context.data.word(context.bx+10) = context.ax; +	context.ds.word(context.bx+10) = context.ax;  	return;  endofline: -	context.data.byte(492) = 254; -	context.al = context.data.byte(478); -	context.data.byte(475) = context.al; -	context._cmp(context.al, context.data.byte(477)); +	context.ds.byte(492) = 254; +	context.al = context.ds.byte(478); +	context.ds.byte(475) = context.al; +	context._cmp(context.al, context.ds.byte(477));  	if (context.flags.z()) goto finishedwalk; -	context.al = context.data.byte(477); -	context.data.byte(478) = context.al; +	context.al = context.ds.byte(477); +	context.ds.byte(478) = context.al;  	context.push(context.es);  	context.push(context.bx);  	autosetwalk(context); @@ -2803,42 +2803,42 @@ static void facerightway(Context & context) {  	context.push(context.es);  	context.push(context.bx);  	getroomspaths(context); -	context.al = context.data.byte(475); +	context.al = context.ds.byte(475);  	context.ah = 0;  	context._add(context.ax, context.ax);  	context._add(context.ax, context.ax);  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.bx+7); -	context.data.byte(135) = context.al; -	context.data.byte(134) = context.al; +	context.al = context.ds.byte(context.bx+7); +	context.ds.byte(135) = context.al; +	context.ds.byte(134) = context.al;  	context.bx = context.pop();  	context.es = context.pop();  	return;  }  static void checkforexit(Context & context) { -	context.cl = context.data.byte(151); +	context.cl = context.ds.byte(151);  	context._add(context.cl, 12); -	context.ch = context.data.byte(152); +	context.ch = context.ds.byte(152);  	context._add(context.ch, 12);  	checkone(context); -	context.data.byte(153) = context.cl; -	context.data.byte(154) = context.ch; -	context.data.byte(155) = context.dl; -	context.data.byte(156) = context.dh; -	context.al = context.data.byte(153); +	context.ds.byte(153) = context.cl; +	context.ds.byte(154) = context.ch; +	context.ds.byte(155) = context.dl; +	context.ds.byte(156) = context.dh; +	context.al = context.ds.byte(153);  	context._test(context.al, 64);  	if (context.flags.z()) goto notnewdirect; -	context.al = context.data.byte(154); -	context.data.byte(189) = context.al; +	context.al = context.ds.byte(154); +	context.ds.byte(189) = context.al;  	return;  notnewdirect:  	context._test(context.al, 32);  	if (context.flags.z()) goto notleave;  	context.push(context.es);  	context.push(context.bx); -	context._cmp(context.data.byte(184), 2); +	context._cmp(context.ds.byte(184), 2);  	if (!context.flags.z()) goto notlouis;  	context.bl = 0;  	context.push(context.bx); @@ -2873,17 +2873,17 @@ notravmessage:  	context.bl = 68;  	context.bh = 64;  	setuptimeduse(context); -	context.al = context.data.byte(133); +	context.al = context.ds.byte(133);  	context._add(context.al, 4);  	context._and(context.al, 7); -	context.data.byte(135) = context.al; +	context.ds.byte(135) = context.al;  	context.bx = context.pop();  	context.es = context.pop();  	return;  notlouis:  	context.bx = context.pop();  	context.es = context.pop(); -	context.data.byte(60) = 1; +	context.ds.byte(60) = 1;  	return;  notleave:  	context._test(context.al, 4); @@ -2912,12 +2912,12 @@ notanup:  static void adjustdown(Context & context) {  	context.push(context.es);  	context.push(context.bx); -	context._add(context.data.byte(149), 10); -	context.al = context.data.byte(154); +	context._add(context.ds.byte(149), 10); +	context.al = context.ds.byte(154);  	context.cl = 16;  	context._mul(context.cl); -	context.data.byte(context.bx+11) = context.al; -	context.data.byte(186) = 1; +	context.ds.byte(context.bx+11) = context.al; +	context.ds.byte(186) = 1;  	context.bx = context.pop();  	context.es = context.pop();  	return; @@ -2926,12 +2926,12 @@ static void adjustdown(Context & context) {  static void adjustup(Context & context) {  	context.push(context.es);  	context.push(context.bx); -	context._sub(context.data.byte(149), 10); -	context.al = context.data.byte(154); +	context._sub(context.ds.byte(149), 10); +	context.al = context.ds.byte(154);  	context.cl = 16;  	context._mul(context.cl); -	context.data.byte(context.bx+11) = context.al; -	context.data.byte(186) = 1; +	context.ds.byte(context.bx+11) = context.al; +	context.ds.byte(186) = 1;  	context.bx = context.pop();  	context.es = context.pop();  	return; @@ -2940,13 +2940,13 @@ static void adjustup(Context & context) {  static void adjustleft(Context & context) {  	context.push(context.es);  	context.push(context.bx); -	context.data.byte(153) = 0; -	context._sub(context.data.byte(148), 11); -	context.al = context.data.byte(154); +	context.ds.byte(153) = 0; +	context._sub(context.ds.byte(148), 11); +	context.al = context.ds.byte(154);  	context.cl = 16;  	context._mul(context.cl); -	context.data.byte(context.bx+10) = context.al; -	context.data.byte(186) = 1; +	context.ds.byte(context.bx+10) = context.al; +	context.ds.byte(186) = 1;  	context.bx = context.pop();  	context.es = context.pop();  	return; @@ -2955,24 +2955,24 @@ static void adjustleft(Context & context) {  static void adjustright(Context & context) {  	context.push(context.es);  	context.push(context.bx); -	context._add(context.data.byte(148), 11); -	context.al = context.data.byte(154); +	context._add(context.ds.byte(148), 11); +	context.al = context.ds.byte(154);  	context.cl = 16;  	context._mul(context.cl);  	context._sub(context.al, 2); -	context.data.byte(context.bx+10) = context.al; -	context.data.byte(186) = 1; +	context.ds.byte(context.bx+10) = context.al; +	context.ds.byte(186) = 1;  	context.bx = context.pop();  	context.es = context.pop();  	return;  }  static void reminders(Context & context) { -	context._cmp(context.data.byte(184), 24); +	context._cmp(context.ds.byte(184), 24);  	if (!context.flags.z()) goto notinedenslift; -	context._cmp(context.data.byte(148), 44); +	context._cmp(context.ds.byte(148), 44);  	if (!context.flags.z()) goto notinedenslift; -	context._cmp(context.data.byte(2), 0); +	context._cmp(context.ds.byte(2), 0);  	if (!context.flags.z()) goto notfirst;  	context.al = 'D';  	context.ah = 'K'; @@ -2987,7 +2987,7 @@ static void reminders(Context & context) {  	findexobject(context);  	context._cmp(context.al, 114);  	if (context.flags.z()) goto forgotone; -	context.ax = context.data.word(context.bx+2); +	context.ax = context.ds.word(context.bx+2);  	context._cmp(context.al, 4);  	if (!context.flags.z()) goto forgotone;  	context._cmp(context.ah, 255); @@ -3000,7 +3000,7 @@ static void reminders(Context & context) {  	compare(context);  	if (!context.flags.z()) goto forgotone;  havegotcard: -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  notfirst:  	return;  forgotone: @@ -3016,23 +3016,23 @@ notinedenslift:  }  static void initrain(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.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);  	context.bx = 1113;  checkmorerain: -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._cmp(context.al, 255);  	if (context.flags.z()) goto finishinitrain; -	context._cmp(context.al, context.data.byte(184)); +	context._cmp(context.al, context.ds.byte(184));  	if (!context.flags.z()) goto checkrain; -	context.al = context.data.byte(context.bx+1); -	context._cmp(context.al, context.data.byte(148)); +	context.al = context.ds.byte(context.bx+1); +	context._cmp(context.al, context.ds.byte(148));  	if (!context.flags.z()) goto checkrain; -	context.al = context.data.byte(context.bx+2); -	context._cmp(context.al, context.data.byte(149)); +	context.al = context.ds.byte(context.bx+2); +	context._cmp(context.al, context.ds.byte(149));  	if (!context.flags.z()) goto checkrain; -	context.al = context.data.byte(context.bx+3); -	context.data.byte(132) = context.al; +	context.al = context.ds.byte(context.bx+3); +	context.ds.byte(132) = context.al;  	goto dorain;  checkrain:  	context._add(context.bx, 4); @@ -3043,26 +3043,26 @@ initraintop:  	randomnumber(context);  	context._and(context.al, 31);  	context._add(context.al, 3); -	context._cmp(context.al, context.data.byte(132)); +	context._cmp(context.al, context.ds.byte(132));  	if (!context.flags.c()) goto initraintop;  	context._add(context.cl, context.al); -	context._cmp(context.cl, context.data.byte(128)); +	context._cmp(context.cl, context.ds.byte(128));  	if (!context.flags.c()) goto initrainside;  	context.push(context.cx);  	splitintolines(context);  	context.cx = context.pop();  	goto initraintop;  initrainside: -	context.cl = context.data.byte(128); +	context.cl = context.ds.byte(128);  	context._sub(context.cl, 1);  initrainside2:  	randomnumber(context);  	context._and(context.al, 31);  	context._add(context.al, 3); -	context._cmp(context.al, context.data.byte(132)); +	context._cmp(context.al, context.ds.byte(132));  	if (!context.flags.c()) goto initrainside2;  	context._add(context.ch, context.al); -	context._cmp(context.ch, context.data.byte(129)); +	context._cmp(context.ch, context.ds.byte(129));  	if (!context.flags.c()) goto finishinitrain;  	context.push(context.cx);  	splitintolines(context); @@ -3083,11 +3083,11 @@ lookforlinestart:  	context._add(context.ch, 1);  	context._cmp(context.cl, 0);  	if (context.flags.z()) goto endofthisline; -	context._cmp(context.ch, context.data.byte(129)); +	context._cmp(context.ch, context.ds.byte(129));  	if (!context.flags.c()) goto endofthisline;  	goto lookforlinestart;  foundlinestart: -	context.data.word(context.di) = context.cx; +	context.ds.word(context.di) = context.cx;  	context.bh = 1;  lookforlineend:  	getblockofpixel(context); @@ -3097,26 +3097,26 @@ lookforlineend:  	context._add(context.ch, 1);  	context._cmp(context.cl, 0);  	if (context.flags.z()) goto foundlineend; -	context._cmp(context.ch, context.data.byte(129)); +	context._cmp(context.ch, context.ds.byte(129));  	if (!context.flags.c()) goto foundlineend;  	context._add(context.bh, 1);  	goto lookforlineend;  foundlineend:  	context.push(context.cx); -	context.data.byte(context.di+2) = context.bh; +	context.ds.byte(context.di+2) = context.bh;  	randomnumber(context); -	context.data.byte(context.di+3) = context.al; +	context.ds.byte(context.di+3) = context.al;  	randomnumber(context); -	context.data.byte(context.di+4) = context.al; +	context.ds.byte(context.di+4) = context.al;  	randomnumber(context);  	context._and(context.al, 3);  	context._add(context.al, 4); -	context.data.byte(context.di+5) = context.al; +	context.ds.byte(context.di+5) = context.al;  	context._add(context.di, 6);  	context.cx = context.pop();  	context._cmp(context.cl, 0);  	if (context.flags.z()) goto endofthisline; -	context._cmp(context.ch, context.data.byte(129)); +	context._cmp(context.ch, context.ds.byte(129));  	if (!context.flags.c()) goto endofthisline;  	goto lookforlinestart;  endofthisline: @@ -3127,9 +3127,9 @@ static void getblockofpixel(Context & context) {  	context.push(context.cx);  	context.push(context.es);  	context.push(context.di); -	context.ax = context.data.word(125); +	context.ax = context.ds.word(125);  	context._add(context.cl, context.al); -	context.ax = context.data.word(127); +	context.ax = context.ds.word(127);  	context._add(context.ch, context.al);  	checkone(context);  	context._and(context.cl, 1); @@ -3147,43 +3147,43 @@ failrain:  }  static void showrain(Context & context) { -	context.ds = context.data.word(414); +	context.ds = context.ds.word(414);  	context.si = 6*58; -	context.ax = context.data.word(context.si+2); +	context.ax = context.ds.word(context.si+2);  	context.si = context.ax;  	context._add(context.si, 2080);  	context.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); -	context.es = context.data.word(412); -	context._cmp(context.data.byte(context.bx), 255); +	context.es = context.ds.word(412); +	context._cmp(context.ds.byte(context.bx), 255);  	if (context.flags.z()) goto nothunder;  morerain: -	context.es = context.data.word(412); -	context._cmp(context.data.byte(context.bx), 255); +	context.es = context.ds.word(412); +	context._cmp(context.ds.byte(context.bx), 255);  	if (context.flags.z()) goto finishrain; -	context.al = context.data.byte(context.bx+1); +	context.al = context.ds.byte(context.bx+1);  	context.ah = 0; -	context._add(context.ax, context.data.word(119)); -	context._add(context.ax, context.data.word(127)); +	context._add(context.ax, context.ds.word(119)); +	context._add(context.ax, context.ds.word(127));  	context.cx = 320;  	context._mul(context.cx); -	context.cl = context.data.byte(context.bx); +	context.cl = context.ds.byte(context.bx);  	context.ch = 0;  	context._add(context.ax, context.cx); -	context._add(context.ax, context.data.word(117)); -	context._add(context.ax, context.data.word(125)); +	context._add(context.ax, context.ds.word(117)); +	context._add(context.ax, context.ds.word(125));  	context.di = context.ax; -	context.cl = context.data.byte(context.bx+2); +	context.cl = context.ds.byte(context.bx+2);  	context.ch = 0; -	context.ax = context.data.word(context.bx+3); -	context.dl = context.data.byte(context.bx+5); +	context.ax = context.ds.word(context.bx+3); +	context.dl = context.ds.byte(context.bx+5);  	context.dh = 0;  	context._sub(context.ax, context.dx);  	context._and(context.ax, 511); -	context.data.word(context.bx+3) = context.ax; +	context.ds.word(context.bx+3) = context.ax;  	context._add(context.bx, 6);  	context.push(context.si);  	context._add(context.si, context.ax); -	context.es = context.data.word(400); +	context.es = context.ds.word(400);  	context.ah = 0;  	context.dx = 320-2;  rainloop: @@ -3201,20 +3201,20 @@ noplot:  	context.si = context.pop();  	goto morerain;  finishrain: -	context._cmp(context.data.word(521), 0); +	context._cmp(context.ds.word(521), 0);  	if (!context.flags.z()) goto nothunder; -	context._cmp(context.data.byte(184), 2); +	context._cmp(context.ds.byte(184), 2);  	if (!context.flags.z()) goto notlouisthund; -	context._cmp(context.data.byte(45), 1); +	context._cmp(context.ds.byte(45), 1);  	if (!context.flags.z()) goto nothunder;  notlouisthund: -	context._cmp(context.data.byte(184), 55); +	context._cmp(context.ds.byte(184), 55);  	if (context.flags.z()) goto nothunder;  	randomnum1(context);  	context._cmp(context.al, 1);  	if (!context.flags.c()) goto nothunder;  	context.al = 7; -	context._cmp(context.data.byte(507), 6); +	context._cmp(context.ds.byte(507), 6);  	if (context.flags.z()) goto isthunder1;  	context.al = 4;  isthunder1: @@ -3224,18 +3224,18 @@ nothunder:  }  static void backobject(Context & context) { -	context.ds = context.data.word(428); -	context.di = context.data.word(context.bx+20); -	context.al = context.data.byte(context.bx+18); +	context.ds = context.ds.word(428); +	context.di = context.ds.word(context.bx+20); +	context.al = context.ds.byte(context.bx+18);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto _tmp48z;  	context._sub(context.al, 1); -	context.data.byte(context.bx+18) = context.al; +	context.ds.byte(context.bx+18) = context.al;  	goto finishback;  _tmp48z: -	context.al = context.data.byte(context.di+7); -	context.data.byte(context.bx+18) = context.al; -	context.al = context.data.byte(context.di+8); +	context.al = context.ds.byte(context.di+7); +	context.ds.byte(context.bx+18) = context.al; +	context.al = context.ds.byte(context.di+8);  	context._cmp(context.al, 6);  	if (!context.flags.z()) goto notwidedoor;  	widedoor(context); @@ -3272,14 +3272,14 @@ finishback:  }  static void liftsprite(Context & context) { -	context.al = context.data.byte(35); +	context.al = context.ds.byte(35);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto liftclosed;  	context._cmp(context.al, 1);  	if (context.flags.z()) goto liftopen;  	context._cmp(context.al, 3);  	if (context.flags.z()) goto openlift; -	context.al = context.data.byte(context.bx+19); +	context.al = context.ds.byte(context.bx+19);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto finishclose;  	context._sub(context.al, 1); @@ -3291,10 +3291,10 @@ static void liftsprite(Context & context) {  	context.ax = context.pop();  	goto pokelift;  finishclose: -	context.data.byte(35) = 0; +	context.ds.byte(35) = 0;  	return;  openlift: -	context.al = context.data.byte(context.bx+19); +	context.al = context.ds.byte(context.bx+19);  	context._cmp(context.al, 12);  	if (context.flags.z()) goto endoflist;  	context._add(context.al, 1); @@ -3305,56 +3305,56 @@ openlift:  	liftnoise(context);  	context.ax = context.pop();  pokelift: -	context.data.byte(context.bx+19) = context.al; +	context.ds.byte(context.bx+19) = context.al;  	context.ah = 0;  	context.push(context.di);  	context._add(context.di, context.ax); -	context.al = context.data.byte(context.di+18); +	context.al = context.ds.byte(context.di+18);  	context.di = context.pop(); -	context.data.byte(context.bx+15) = context.al; -	context.data.byte(context.di+17) = context.al; +	context.ds.byte(context.bx+15) = context.al; +	context.ds.byte(context.di+17) = context.al;  	return;  endoflist: -	context.data.byte(35) = 1; +	context.ds.byte(35) = 1;  	return;  liftopen: -	context.al = context.data.byte(36); +	context.al = context.ds.byte(36);  	context.push(context.es);  	context.push(context.bx);  	turnpathon(context);  	context.bx = context.pop();  	context.es = context.pop(); -	context._cmp(context.data.byte(40), 0); +	context._cmp(context.ds.byte(40), 0);  	if (context.flags.z()) goto nocountclose; -	context._sub(context.data.byte(40), 1); -	context._cmp(context.data.byte(40), 0); +	context._sub(context.ds.byte(40), 1); +	context._cmp(context.ds.byte(40), 0);  	if (!context.flags.z()) goto nocountclose; -	context.data.byte(35) = 2; +	context.ds.byte(35) = 2;  nocountclose:  	context.al = 12;  	goto pokelift;  liftclosed: -	context.al = context.data.byte(36); +	context.al = context.ds.byte(36);  	context.push(context.es);  	context.push(context.bx);  	turnpathoff(context);  	context.bx = context.pop();  	context.es = context.pop(); -	context._cmp(context.data.byte(39), 0); +	context._cmp(context.ds.byte(39), 0);  	if (context.flags.z()) goto nocountopen; -	context._sub(context.data.byte(39), 1); -	context._cmp(context.data.byte(39), 0); +	context._sub(context.ds.byte(39), 1); +	context._cmp(context.ds.byte(39), 0);  	if (!context.flags.z()) goto nocountopen; -	context.data.byte(35) = 3; +	context.ds.byte(35) = 3;  nocountopen:  	context.al = 0;  	goto pokelift;  }  static void liftnoise(Context & context) { -	context._cmp(context.data.byte(184), 5); +	context._cmp(context.ds.byte(184), 5);  	if (context.flags.z()) goto hissnoise; -	context._cmp(context.data.byte(184), 21); +	context._cmp(context.ds.byte(184), 21);  	if (context.flags.z()) goto hissnoise;  	playchannel1(context);  	return; @@ -3370,84 +3370,84 @@ static void random(Context & context) {  	context._and(context.ax, 7);  	context._add(context.di, 18);  	context._add(context.di, context.ax); -	context.al = context.data.byte(context.di); +	context.al = context.ds.byte(context.di);  	context.di = context.pop(); -	context.data.byte(context.bx+15) = context.al; +	context.ds.byte(context.bx+15) = context.al;  	return;  }  static void steady(Context & context) { -	context.al = context.data.byte(context.di+18); -	context.data.byte(context.di+17) = context.al; -	context.data.byte(context.bx+15) = context.al; +	context.al = context.ds.byte(context.di+18); +	context.ds.byte(context.di+17) = context.al; +	context.ds.byte(context.bx+15) = context.al;  	return;  }  static void constant(Context & context) { -	context._add(context.data.byte(context.bx+19), 1); -	context.cl = context.data.byte(context.bx+19); +	context._add(context.ds.byte(context.bx+19), 1); +	context.cl = context.ds.byte(context.bx+19);  	context.ch = 0;  	context._add(context.di, context.cx); -	context._cmp(context.data.byte(context.di+18), 255); +	context._cmp(context.ds.byte(context.di+18), 255);  	if (!context.flags.z()) goto gotconst;  	context._sub(context.di, context.cx);  	context.cx = 0; -	context.data.byte(context.bx+19) = context.cl; +	context.ds.byte(context.bx+19) = context.cl;  gotconst: -	context.al = context.data.byte(context.di+18); +	context.al = context.ds.byte(context.di+18);  	context._sub(context.di, context.cx); -	context.data.byte(context.bx+15) = context.al; -	context.data.byte(context.di+17) = context.al; +	context.ds.byte(context.bx+15) = context.al; +	context.ds.byte(context.di+17) = context.al;  	return;  }  static void doorway(Context & context) { -	context.data.byte(193) = -24; -	context.data.byte(194) = 10; -	context.data.byte(195) = -30; -	context.data.byte(196) = 10; +	context.ds.byte(193) = -24; +	context.ds.byte(194) = 10; +	context.ds.byte(195) = -30; +	context.ds.byte(196) = 10;  	dodoor(context);  	return;  }  static void widedoor(Context & context) { -	context.data.byte(193) = -24; -	context.data.byte(194) = 24; -	context.data.byte(195) = -30; -	context.data.byte(196) = 24; +	context.ds.byte(193) = -24; +	context.ds.byte(194) = 24; +	context.ds.byte(195) = -30; +	context.ds.byte(196) = 24;  	dodoor(context);  	return;  }  static void dodoor(Context & context) { -	context.al = context.data.byte(151); -	context.ah = context.data.byte(152); -	context.cl = context.data.byte(context.bx+10); -	context.ch = context.data.byte(context.bx+11); +	context.al = context.ds.byte(151); +	context.ah = context.ds.byte(152); +	context.cl = context.ds.byte(context.bx+10); +	context.ch = context.ds.byte(context.bx+11);  	context._cmp(context.al, context.cl);  	if (!context.flags.c()) goto rtofdoor;  	context._sub(context.al, context.cl); -	context._cmp(context.al, context.data.byte(193)); +	context._cmp(context.al, context.ds.byte(193));  	if (!context.flags.c()) goto upordown;  	goto shutdoor;  rtofdoor:  	context._sub(context.al, context.cl); -	context._cmp(context.al, context.data.byte(194)); +	context._cmp(context.al, context.ds.byte(194));  	if (!context.flags.c()) goto shutdoor;  upordown:  	context._cmp(context.ah, context.ch);  	if (!context.flags.c()) goto botofdoor;  	context._sub(context.ah, context.ch); -	context._cmp(context.ah, context.data.byte(195)); +	context._cmp(context.ah, context.ds.byte(195));  	if (context.flags.c()) goto shutdoor;  	goto opendoor;  botofdoor:  	context._sub(context.ah, context.ch); -	context._cmp(context.ah, context.data.byte(196)); +	context._cmp(context.ah, context.ds.byte(196));  	if (!context.flags.c()) goto shutdoor;  opendoor: -	context.cl = context.data.byte(context.bx+19); -	context._cmp(context.data.byte(61), 1); +	context.cl = context.ds.byte(context.bx+19); +	context._cmp(context.ds.byte(61), 1);  	if (!context.flags.z()) goto notthrough;  	context._cmp(context.cl, 0);  	if (!context.flags.z()) goto notthrough; @@ -3457,7 +3457,7 @@ notthrough:  	context._cmp(context.cl, 1);  	if (!context.flags.z()) goto notdoorsound2;  	context.al = 0; -	context._cmp(context.data.byte(184), 5); +	context._cmp(context.ds.byte(184), 5);  	if (!context.flags.z()) goto nothoteldoor2;  	context.al = 13;  nothoteldoor2: @@ -3466,25 +3466,25 @@ notdoorsound2:  	context.ch = 0;  	context.push(context.di);  	context._add(context.di, context.cx); -	context.al = context.data.byte(context.di+18); +	context.al = context.ds.byte(context.di+18);  	context._cmp(context.al, 255);  	if (!context.flags.z()) goto atlast1;  	context._sub(context.di, 1);  	context._sub(context.cl, 1);  atlast1: -	context.data.byte(context.bx+19) = context.cl; -	context.al = context.data.byte(context.di+18); +	context.ds.byte(context.bx+19) = context.cl; +	context.al = context.ds.byte(context.di+18);  	context.di = context.pop(); -	context.data.byte(context.bx+15) = context.al; -	context.data.byte(context.di+17) = context.al; -	context.data.byte(61) = 1; +	context.ds.byte(context.bx+15) = context.al; +	context.ds.byte(context.di+17) = context.al; +	context.ds.byte(61) = 1;  	return;  shutdoor: -	context.cl = context.data.byte(context.bx+19); +	context.cl = context.ds.byte(context.bx+19);  	context._cmp(context.cl, 5);  	if (!context.flags.z()) goto notdoorsound1;  	context.al = 1; -	context._cmp(context.data.byte(184), 5); +	context._cmp(context.ds.byte(184), 5);  	if (!context.flags.z()) goto nothoteldoor1;  	context.al = 13;  nothoteldoor1: @@ -3493,27 +3493,27 @@ notdoorsound1:  	context._cmp(context.cl, 0);  	if (context.flags.z()) goto atlast2;  	context._sub(context.cl, 1); -	context.data.byte(context.bx+19) = context.cl; +	context.ds.byte(context.bx+19) = context.cl;  atlast2:  	context.ch = 0;  	context.push(context.di);  	context._add(context.di, context.cx); -	context.al = context.data.byte(context.di+18); +	context.al = context.ds.byte(context.di+18);  	context.di = context.pop(); -	context.data.byte(context.bx+15) = context.al; -	context.data.byte(context.di+17) = context.al; +	context.ds.byte(context.bx+15) = context.al; +	context.ds.byte(context.di+17) = context.al;  	context._cmp(context.cl, 5);  	if (!context.flags.z()) goto notnearly; -	context.data.byte(61) = 0; +	context.ds.byte(61) = 0;  notnearly:  	return;  }  static void lockeddoorway(Context & context) { -	context.al = context.data.byte(151); -	context.ah = context.data.byte(152); -	context.cl = context.data.byte(context.bx+10); -	context.ch = context.data.byte(context.bx+11); +	context.al = context.ds.byte(151); +	context.ah = context.ds.byte(152); +	context.cl = context.ds.byte(context.bx+10); +	context.ch = context.ds.byte(context.bx+11);  	context._cmp(context.al, context.cl);  	if (!context.flags.c()) goto rtofdoor2;  	context._sub(context.al, context.cl); @@ -3536,12 +3536,12 @@ botofdoor2:  	context._cmp(context.ah, 12);  	if (!context.flags.c()) goto shutdoor2;  opendoor2: -	context._cmp(context.data.byte(61), 1); +	context._cmp(context.ds.byte(61), 1);  	if (context.flags.z()) goto mustbeopen; -	context._cmp(context.data.byte(37), 1); +	context._cmp(context.ds.byte(37), 1);  	if (context.flags.z()) goto shutdoor;  mustbeopen: -	context.cl = context.data.byte(context.bx+19); +	context.cl = context.ds.byte(context.bx+19);  	context._cmp(context.cl, 1);  	if (!context.flags.z()) goto notdoorsound4;  	context.al = 0; @@ -3549,15 +3549,15 @@ mustbeopen:  notdoorsound4:  	context._cmp(context.cl, 6);  	if (!context.flags.z()) goto noturnonyet; -	context.al = context.data.byte(38); +	context.al = context.ds.byte(38);  	context.push(context.es);  	context.push(context.bx);  	turnpathon(context);  	context.bx = context.pop();  	context.es = context.pop();  noturnonyet: -	context.cl = context.data.byte(context.bx+19); -	context._cmp(context.data.byte(61), 1); +	context.cl = context.ds.byte(context.bx+19); +	context._cmp(context.ds.byte(61), 1);  	if (!context.flags.z()) goto notthrough2;  	context._cmp(context.cl, 0);  	if (!context.flags.z()) goto notthrough2; @@ -3567,24 +3567,24 @@ notthrough2:  	context.ch = 0;  	context.push(context.di);  	context._add(context.di, context.cx); -	context.al = context.data.byte(context.di+18); +	context.al = context.ds.byte(context.di+18);  	context._cmp(context.al, 255);  	if (!context.flags.z()) goto atlast3;  	context._sub(context.di, 1);  	context._sub(context.cl, 1);  atlast3: -	context.data.byte(context.bx+19) = context.cl; -	context.al = context.data.byte(context.di+18); +	context.ds.byte(context.bx+19) = context.cl; +	context.al = context.ds.byte(context.di+18);  	context.di = context.pop(); -	context.data.byte(context.bx+15) = context.al; -	context.data.byte(context.di+17) = context.al; +	context.ds.byte(context.bx+15) = context.al; +	context.ds.byte(context.di+17) = context.al;  	context._cmp(context.cl, 5);  	if (!context.flags.z()) goto justshutting; -	context.data.byte(61) = 1; +	context.ds.byte(61) = 1;  justshutting:  	return;  shutdoor2: -	context.cl = context.data.byte(context.bx+19); +	context.cl = context.ds.byte(context.bx+19);  	context._cmp(context.cl, 5);  	if (!context.flags.z()) goto notdoorsound3;  	context.al = 1; @@ -3593,34 +3593,34 @@ notdoorsound3:  	context._cmp(context.cl, 0);  	if (context.flags.z()) goto atlast4;  	context._sub(context.cl, 1); -	context.data.byte(context.bx+19) = context.cl; +	context.ds.byte(context.bx+19) = context.cl;  atlast4:  	context.ch = 0; -	context.data.byte(61) = 0; +	context.ds.byte(61) = 0;  	context.push(context.di);  	context._add(context.di, context.cx); -	context.al = context.data.byte(context.di+18); +	context.al = context.ds.byte(context.di+18);  	context.di = context.pop(); -	context.data.byte(context.bx+15) = context.al; -	context.data.byte(context.di+17) = context.al; +	context.ds.byte(context.bx+15) = context.al; +	context.ds.byte(context.di+17) = context.al;  	context._cmp(context.cl, 0);  	if (!context.flags.z()) goto notlocky; -	context.al = context.data.byte(38); +	context.al = context.ds.byte(38);  	context.push(context.es);  	context.push(context.bx);  	turnpathoff(context);  	context.bx = context.pop();  	context.es = context.pop(); -	context.data.byte(37) = 1; +	context.ds.byte(37) = 1;  notlocky:  	return;  /*continuing to unbounded code: shutdoor from dodoor:60-87*/  shutdoor: -	context.cl = context.data.byte(context.bx+19); +	context.cl = context.ds.byte(context.bx+19);  	context._cmp(context.cl, 5);  	if (!context.flags.z()) goto notdoorsound1;  	context.al = 1; -	context._cmp(context.data.byte(184), 5); +	context._cmp(context.ds.byte(184), 5);  	if (!context.flags.z()) goto nothoteldoor1;  	context.al = 13;  nothoteldoor1: @@ -3629,47 +3629,47 @@ notdoorsound1:  	context._cmp(context.cl, 0);  	if (context.flags.z()) goto atlast2;  	context._sub(context.cl, 1); -	context.data.byte(context.bx+19) = context.cl; +	context.ds.byte(context.bx+19) = context.cl;  atlast2:  	context.ch = 0;  	context.push(context.di);  	context._add(context.di, context.cx); -	context.al = context.data.byte(context.di+18); +	context.al = context.ds.byte(context.di+18);  	context.di = context.pop(); -	context.data.byte(context.bx+15) = context.al; -	context.data.byte(context.di+17) = context.al; +	context.ds.byte(context.bx+15) = context.al; +	context.ds.byte(context.di+17) = context.al;  	context._cmp(context.cl, 5);  	if (!context.flags.z()) goto notnearly; -	context.data.byte(61) = 0; +	context.ds.byte(61) = 0;  notnearly:  	return;  	return;  }  static void updatepeople(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5); -	context.data.word(18) = context.di; +	context.ds.word(18) = context.di;  	context.cx = 12*5;  	context.al = 255;  	while(--context.cx) 	context._stosb(); -	context._add(context.data.word(138), 1); +	context._add(context.ds.word(138), 1);  	context.es = context.cs;  	context.bx = 537;  	context.di = 1003;  updateloop: -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._cmp(context.al, 255);  	if (context.flags.z()) goto endupdate; -	context._cmp(context.al, context.data.byte(184)); +	context._cmp(context.al, context.ds.byte(184));  	if (!context.flags.z()) goto notinthisroom; -	context.cx = context.data.word(context.bx+1); -	context._cmp(context.cl, context.data.byte(148)); +	context.cx = context.ds.word(context.bx+1); +	context._cmp(context.cl, context.ds.byte(148));  	if (!context.flags.z()) goto notinthisroom; -	context._cmp(context.ch, context.data.byte(149)); +	context._cmp(context.ch, context.ds.byte(149));  	if (!context.flags.z()) goto notinthisroom;  	context.push(context.di); -	context.ax = context.data.word(context.di); +	context.ax = context.ds.word(context.di);  	__dispatch_call(context, context.ax);  	context.di = context.pop();  notinthisroom: @@ -3682,12 +3682,12 @@ endupdate:  static void getreelframeax(Context & context) {  	context.push(context.ds); -	context.data.word(160) = context.ax; +	context.ds.word(160) = context.ax;  	findsource(context);  	context.es = context.ds;  	context.ds = context.pop(); -	context.ax = context.data.word(160); -	context._sub(context.ax, context.data.word(244)); +	context.ax = context.ds.word(160); +	context._sub(context.ax, context.ds.word(244));  	context._add(context.ax, context.ax);  	context.cx = context.ax;  	context._add(context.ax, context.ax); @@ -3710,13 +3710,13 @@ static void plotreel(Context & context) {  retryreel:  	context.push(context.es);  	context.push(context.si); -	context.ax = context.data.word(context.si+2); +	context.ax = context.ds.word(context.si+2);  	context._cmp(context.al, 220);  	if (context.flags.c()) goto normalreel;  	context._cmp(context.al, 255);  	if (context.flags.z()) goto normalreel;  	dealwithspecial(context); -	context._add(context.data.word(239), 1); +	context._add(context.ds.word(239), 1);  	context.si = context.pop();  	context.es = context.pop();  	context._add(context.si, 40); @@ -3727,7 +3727,7 @@ plotloop:  	context.push(context.cx);  	context.push(context.es);  	context.push(context.si); -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context._cmp(context.ax, 0x0ffff);  	if (context.flags.z()) goto notplot;  	showreelframe(context); @@ -3744,22 +3744,22 @@ notplot:  }  static void soundonreels(Context & context) { -	context.bl = context.data.byte(184); +	context.bl = context.ds.byte(184);  	context._add(context.bl, context.bl);  	context._xor(context.bh, context.bh);  	context._add(context.bx, 1254); -	context.si = context.data.word(context.bx); +	context.si = context.ds.word(context.bx);  reelsoundloop: -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._cmp(context.al, 255);  	if (context.flags.z()) goto endreelsound; -	context.ax = context.data.word(context.si+1); -	context._cmp(context.ax, context.data.word(239)); +	context.ax = context.ds.word(context.si+1); +	context._cmp(context.ax, context.ds.word(239));  	if (!context.flags.z()) goto skipreelsound; -	context._cmp(context.ax, context.data.word(351)); +	context._cmp(context.ax, context.ds.word(351));  	if (context.flags.z()) goto skipreelsound; -	context.data.word(351) = context.ax; -	context.al = context.data.byte(context.si); +	context.ds.word(351) = context.ax; +	context.al = context.ds.byte(context.si);  	context._cmp(context.al, 64);  	if (context.flags.c()) { playchannel1(context); return; };  	context._cmp(context.al, 128); @@ -3775,26 +3775,26 @@ skipreelsound:  	context._add(context.si, 3);  	goto reelsoundloop;  endreelsound: -	context.ax = context.data.word(351); -	context._cmp(context.ax, context.data.word(239)); +	context.ax = context.ds.word(351); +	context._cmp(context.ax, context.ds.word(239));  	if (context.flags.z()) goto nochange2; -	context.data.word(351) = -1; +	context.ds.word(351) = -1;  nochange2:  	return;  }  static void reconstruct(Context & context) { -	context._cmp(context.data.byte(130), 0); +	context._cmp(context.ds.byte(130), 0);  	if (context.flags.z()) goto noneedtorecon; -	context.data.byte(62) = 1; +	context.ds.byte(62) = 1;  	drawfloor(context);  	spriteupdate(context);  	printsprites(context); -	context._cmp(context.data.byte(184), 20); +	context._cmp(context.ds.byte(184), 20);  	if (!context.flags.z()) goto notfudge;  	undertextline(context);  notfudge: -	context.data.byte(130) = 0; +	context.ds.byte(130) = 0;  noneedtorecon:  	return;  } @@ -3805,28 +3805,28 @@ static void dealwithspecial(Context & context) {  	if (!context.flags.z()) goto notplset;  	context.al = context.ah;  	placesetobject(context); -	context.data.byte(130) = 1; +	context.ds.byte(130) = 1;  	return;  notplset:  	context._cmp(context.al, 1);  	if (!context.flags.z()) goto notremset;  	context.al = context.ah;  	removesetobject(context); -	context.data.byte(130) = 1; +	context.ds.byte(130) = 1;  	return;  notremset:  	context._cmp(context.al, 2);  	if (!context.flags.z()) goto notplfree;  	context.al = context.ah;  	placefreeobject(context); -	context.data.byte(130) = 1; +	context.ds.byte(130) = 1;  	return;  notplfree:  	context._cmp(context.al, 3);  	if (!context.flags.z()) goto notremfree;  	context.al = context.ah;  	removefreeobject(context); -	context.data.byte(130) = 1; +	context.ds.byte(130) = 1;  	return;  notremfree:  	context._cmp(context.al, 4); @@ -3836,14 +3836,14 @@ notremfree:  notryanoff:  	context._cmp(context.al, 5);  	if (!context.flags.z()) goto notryanon; -	context.data.byte(135) = context.ah; -	context.data.byte(133) = context.ah; +	context.ds.byte(135) = context.ah; +	context.ds.byte(133) = context.ah;  	switchryanon(context);  	return;  notryanon:  	context._cmp(context.al, 6);  	if (!context.flags.z()) goto notchangeloc; -	context.data.byte(188) = context.ah; +	context.ds.byte(188) = context.ah;  	return;  notchangeloc:  	movemap(context); @@ -3853,87 +3853,87 @@ notchangeloc:  static void movemap(Context & context) {  	context._cmp(context.ah, 32);  	if (!context.flags.z()) goto notmapup2; -	context._sub(context.data.byte(149), 20); -	context.data.byte(186) = 1; +	context._sub(context.ds.byte(149), 20); +	context.ds.byte(186) = 1;  	return;  notmapup2:  	context._cmp(context.ah, 16);  	if (!context.flags.z()) goto notmapupspec; -	context._sub(context.data.byte(149), 10); -	context.data.byte(186) = 1; +	context._sub(context.ds.byte(149), 10); +	context.ds.byte(186) = 1;  	return;  notmapupspec:  	context._cmp(context.ah, 8);  	if (!context.flags.z()) goto notmapdownspec; -	context._add(context.data.byte(149), 10); -	context.data.byte(186) = 1; +	context._add(context.ds.byte(149), 10); +	context.ds.byte(186) = 1;  	return;  notmapdownspec:  	context._cmp(context.ah, 2);  	if (!context.flags.z()) goto notmaprightspec; -	context._add(context.data.byte(148), 11); -	context.data.byte(186) = 1; +	context._add(context.ds.byte(148), 11); +	context.ds.byte(186) = 1;  	return;  notmaprightspec: -	context._sub(context.data.byte(148), 11); -	context.data.byte(186) = 1; +	context._sub(context.ds.byte(148), 11); +	context.ds.byte(186) = 1;  	return;  }  static void getreelstart(Context & context) { -	context.ax = context.data.word(239); +	context.ax = context.ds.word(239);  	context.cx = 40;  	context._mul(context.cx); -	context.es = context.data.word(450); +	context.es = context.ds.word(450);  	context.si = context.ax;  	context._add(context.si, 0+(36*144));  	return;  }  static void showreelframe(Context & context) { -	context.al = context.data.byte(context.si+2); +	context.al = context.ds.byte(context.si+2);  	context.ah = 0;  	context.di = context.ax; -	context._add(context.di, context.data.word(117)); -	context.al = context.data.byte(context.si+3); +	context._add(context.di, context.ds.word(117)); +	context.al = context.ds.byte(context.si+3);  	context.bx = context.ax; -	context._add(context.bx, context.data.word(119)); -	context.ax = context.data.word(context.si); -	context.data.word(160) = context.ax; +	context._add(context.bx, context.ds.word(119)); +	context.ax = context.ds.word(context.si); +	context.ds.word(160) = context.ax;  	findsource(context); -	context.ax = context.data.word(160); -	context._sub(context.ax, context.data.word(244)); +	context.ax = context.ds.word(160); +	context._sub(context.ax, context.ds.word(244));  	context.ah = 8;  	showframe(context);  	return;  }  static void deleverything(Context & context) { -	context.al = context.data.byte(129); +	context.al = context.ds.byte(129);  	context.ah = 0; -	context._add(context.ax, context.data.word(123)); +	context._add(context.ax, context.ds.word(123));  	context._cmp(context.ax, 182);  	if (!context.flags.c()) goto bigroom;  	maptopanel(context);  	return;  bigroom: -	context._sub(context.data.byte(129), 8); +	context._sub(context.ds.byte(129), 8);  	maptopanel(context); -	context._add(context.data.byte(129), 8); +	context._add(context.ds.byte(129), 8);  	return;  }  static void dumpeverything(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.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);  dumpevery1: -	context.ax = context.data.word(context.bx); -	context.cx = context.data.word(context.bx+2); +	context.ax = context.ds.word(context.bx); +	context.cx = context.ds.word(context.bx+2);  	context._cmp(context.ax, 0x0ffff);  	if (context.flags.z()) goto finishevery1; -	context._cmp(context.ax, context.data.word(context.bx+(40*5))); +	context._cmp(context.ax, context.ds.word(context.bx+(40*5)));  	if (!context.flags.z()) goto notskip1; -	context._cmp(context.cx, context.data.word(context.bx+(40*5)+2)); +	context._cmp(context.cx, context.ds.word(context.bx+(40*5)+2));  	if (context.flags.z()) goto skip1;  notskip1:  	context.push(context.bx); @@ -3943,8 +3943,8 @@ notskip1:  	context.bh = 0;  	context.ah = 0;  	context.di = context.ax; -	context._add(context.di, context.data.word(117)); -	context._add(context.bx, context.data.word(119)); +	context._add(context.di, context.ds.word(117)); +	context._add(context.bx, context.ds.word(119));  	multidump(context);  	context.ds = context.pop();  	context.es = context.pop(); @@ -3955,8 +3955,8 @@ skip1:  finishevery1:  	context.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)+(40*5);  dumpevery2: -	context.ax = context.data.word(context.bx); -	context.cx = context.data.word(context.bx+2); +	context.ax = context.ds.word(context.bx); +	context.cx = context.ds.word(context.bx+2);  	context._cmp(context.ax, 0x0ffff);  	if (context.flags.z()) goto finishevery2;  	context.push(context.bx); @@ -3966,8 +3966,8 @@ dumpevery2:  	context.bh = 0;  	context.ah = 0;  	context.di = context.ax; -	context._add(context.di, context.data.word(117)); -	context._add(context.bx, context.data.word(119)); +	context._add(context.di, context.ds.word(117)); +	context._add(context.bx, context.ds.word(119));  	multidump(context);  	context.ds = context.pop();  	context.es = context.pop(); @@ -3981,7 +3981,7 @@ finishevery2:  static void allocatework(Context & context) {  	context.bx = 0x1000;  	allocatemem(context); -	context.data.word(400) = context.ax; +	context.ds.word(400) = context.ax;  	return;  } @@ -4009,20 +4009,20 @@ static void loadpalfromiff(Context & context) {  	context.dx = 2494;  	openfile(context);  	context.cx = 2000; -	context.ds = context.data.word(402); +	context.ds = context.ds.word(402);  	context.dx = 0;  	readfromfile(context);  	closefile(context); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768; -	context.ds = context.data.word(402); +	context.ds = context.ds.word(402);  	context.si = 0x30;  	context.cx = 768;  palloop:  	context._lodsb();  	context._shr(context.al, 1);  	context._shr(context.al, 1); -	context._cmp(context.data.byte(73), 1); +	context._cmp(context.ds.byte(73), 1);  	if (!context.flags.z()) goto nought;  	context._cmp(context.al, 0);  	if (context.flags.z()) goto nought; @@ -4053,7 +4053,7 @@ static void cls(Context & context) {  static void printundermon(Context & context) {  	context.si = (320*43)+76;  	context.di = context.si; -	context.es = context.data.word(400); +	context.es = context.ds.word(400);  	context._add(context.si, 8*320);  	context.dx = 0x0a000;  	context.ds = context.dx; @@ -4089,7 +4089,7 @@ static void worktoscreen(Context & context) {  	context.si = 0;  	context.di = 0;  	context.cx = 25; -	context.ds = context.data.word(400); +	context.ds = context.ds.word(400);  	context.dx = 0x0a000;  	context.es = context.dx;  dumpallloop: @@ -4106,54 +4106,54 @@ dumpallloop:  }  static void paneltomap(Context & context) { -	context.di = context.data.word(125); -	context._add(context.di, context.data.word(117)); -	context.bx = context.data.word(127); -	context._add(context.bx, context.data.word(119)); -	context.ds = context.data.word(402); +	context.di = context.ds.word(125); +	context._add(context.di, context.ds.word(117)); +	context.bx = context.ds.word(127); +	context._add(context.bx, context.ds.word(119)); +	context.ds = context.ds.word(402);  	context.si = 0; -	context.cl = context.data.byte(128); -	context.ch = context.data.byte(129); +	context.cl = context.ds.byte(128); +	context.ch = context.ds.byte(129);  	multiget(context);  	return;  }  static void maptopanel(Context & context) { -	context.di = context.data.word(125); -	context._add(context.di, context.data.word(117)); -	context.bx = context.data.word(127); -	context._add(context.bx, context.data.word(119)); -	context.ds = context.data.word(402); +	context.di = context.ds.word(125); +	context._add(context.di, context.ds.word(117)); +	context.bx = context.ds.word(127); +	context._add(context.bx, context.ds.word(119)); +	context.ds = context.ds.word(402);  	context.si = 0; -	context.cl = context.data.byte(128); -	context.ch = context.data.byte(129); +	context.cl = context.ds.byte(128); +	context.ch = context.ds.byte(129);  	multiput(context);  	return;  }  static void dumpmap(Context & context) { -	context.di = context.data.word(125); -	context._add(context.di, context.data.word(117)); -	context.bx = context.data.word(127); -	context._add(context.bx, context.data.word(119)); -	context.cl = context.data.byte(128); -	context.ch = context.data.byte(129); +	context.di = context.ds.word(125); +	context._add(context.di, context.ds.word(117)); +	context.bx = context.ds.word(127); +	context._add(context.bx, context.ds.word(119)); +	context.cl = context.ds.byte(128); +	context.ch = context.ds.byte(129);  	multidump(context);  	return;  }  static void pixelcheckset(Context & context) {  	context.push(context.ax); -	context._sub(context.al, context.data.byte(context.bx)); -	context._sub(context.ah, context.data.byte(context.bx+1)); +	context._sub(context.al, context.ds.byte(context.bx)); +	context._sub(context.ah, context.ds.byte(context.bx+1));  	context.push(context.es);  	context.push(context.bx);  	context.push(context.cx);  	context.push(context.ax); -	context.al = context.data.byte(context.bx+4); +	context.al = context.ds.byte(context.bx+4);  	getsetad(context); -	context.al = context.data.byte(context.bx+17); -	context.es = context.data.word(444); +	context.al = context.ds.byte(context.bx+17); +	context.es = context.ds.word(444);  	context.bx = 0;  	context.ah = 0;  	context.cx = 6; @@ -4163,16 +4163,16 @@ static void pixelcheckset(Context & context) {  	context.push(context.ax);  	context.al = context.ah;  	context.ah = 0; -	context.cl = context.data.byte(context.bx); +	context.cl = context.ds.byte(context.bx);  	context.ch = 0;  	context._mul(context.cx);  	context.cx = context.pop();  	context.ch = 0;  	context._add(context.ax, context.cx); -	context._add(context.ax, context.data.word(context.bx+2)); +	context._add(context.ax, context.ds.word(context.bx+2));  	context.bx = context.ax;  	context._add(context.bx, 0+2080); -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context.dl = context.al;  	context.cx = context.pop();  	context.bx = context.pop(); @@ -4185,25 +4185,25 @@ static void pixelcheckset(Context & context) {  static void createpanel(Context & context) {  	context.di = 0;  	context.bx = 8; -	context.ds = context.data.word(410); +	context.ds = context.ds.word(410);  	context.al = 0;  	context.ah = 2;  	showframe(context);  	context.di = 160;  	context.bx = 8; -	context.ds = context.data.word(410); +	context.ds = context.ds.word(410);  	context.al = 0;  	context.ah = 2;  	showframe(context);  	context.di = 0;  	context.bx = 104; -	context.ds = context.data.word(410); +	context.ds = context.ds.word(410);  	context.al = 0;  	context.ah = 2;  	showframe(context);  	context.di = 160;  	context.bx = 104; -	context.ds = context.data.word(410); +	context.ds = context.ds.word(410);  	context.al = 0;  	context.ah = 2;  	showframe(context); @@ -4214,13 +4214,13 @@ static void createpanel2(Context & context) {  	createpanel(context);  	context.di = 0;  	context.bx = 0; -	context.ds = context.data.word(410); +	context.ds = context.ds.word(410);  	context.al = 5;  	context.ah = 2;  	showframe(context);  	context.di = 160;  	context.bx = 0; -	context.ds = context.data.word(410); +	context.ds = context.ds.word(410);  	context.al = 5;  	context.ah = 2;  	showframe(context); @@ -4229,7 +4229,7 @@ static void createpanel2(Context & context) {  static void clearwork(Context & context) {  	context.ax = 0x0; -	context.es = context.data.word(400); +	context.es = context.ds.word(400);  	context.di = 0;  	context.cx = (200*320)/64;  clearloop: @@ -4270,24 +4270,24 @@ clearloop:  }  static void zoom(Context & context) { -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) goto inwatching; -	context._cmp(context.data.byte(8), 1); +	context._cmp(context.ds.byte(8), 1);  	if (context.flags.z()) goto zoomswitch;  inwatching:  	return;  zoomswitch: -	context._cmp(context.data.byte(100), 199); +	context._cmp(context.ds.byte(100), 199);  	if (context.flags.c()) goto zoomit;  cantzoom:  	putunderzoom(context);  	return;  zoomit: -	context.ax = context.data.word(222); +	context.ax = context.ds.word(222);  	context._sub(context.ax, 9);  	context.cx = 320;  	context._mul(context.cx); -	context._add(context.ax, context.data.word(220)); +	context._add(context.ax, context.ds.word(220));  	context._sub(context.ax, 11);  	context.si = context.ax;  	context.ax = 132+4; @@ -4295,8 +4295,8 @@ zoomit:  	context._mul(context.cx);  	context._add(context.ax, 8+5);  	context.di = context.ax; -	context.es = context.data.word(400); -	context.ds = context.data.word(400); +	context.es = context.ds.word(400); +	context.ds = context.ds.word(400);  	context.cx = 20;  zoomloop:  	context.push(context.cx); @@ -4305,14 +4305,14 @@ zoomloop2:  	context._lodsb();  	context.ah = context.al;  	context._stosw(); -	context.data.word(context.di+320-2) = context.ax; +	context.ds.word(context.di+320-2) = context.ax;  	if (--context.cx) goto zoomloop2;  	context._add(context.si, 320-23);  	context._add(context.di, 320-46+320);  	context.cx = context.pop();  	if (--context.cx) goto zoomloop;  	crosshair(context); -	context.data.byte(75) = 1; +	context.ds.byte(75) = 1;  	return;  } @@ -4321,12 +4321,12 @@ static void delthisone(Context & context) {  	context.push(context.ax);  	context.al = context.ah;  	context.ah = 0; -	context._add(context.ax, context.data.word(119)); +	context._add(context.ax, context.ds.word(119));  	context.bx = 320;  	context._mul(context.bx);  	context.bx = context.pop();  	context.bh = 0; -	context._add(context.bx, context.data.word(117)); +	context._add(context.bx, context.ds.word(117));  	context._add(context.ax, context.bx);  	context.di = context.ax;  	context.ax = context.pop(); @@ -4339,8 +4339,8 @@ static void delthisone(Context & context) {  	context.bh = 0;  	context._add(context.ax, context.bx);  	context.si = context.ax; -	context.es = context.data.word(400); -	context.ds = context.data.word(402); +	context.es = context.ds.word(400); +	context.ds = context.ds.word(402);  	context.dl = context.cl;  	context.dh = 0;  	context.ax = 320; @@ -4364,7 +4364,7 @@ static void multiget(Context & context) {  	context.bx = 320;  	context._mul(context.bx);  	context._add(context.di, context.ax); -	context.es = context.data.word(400); +	context.es = context.ds.word(400);  	context.es = context.ds;  	context.ds = context.es;  	context._xchg(context.di, context.si); @@ -4408,7 +4408,7 @@ static void multiput(Context & context) {  	context.bx = 320;  	context._mul(context.bx);  	context._add(context.di, context.ax); -	context.es = context.data.word(400); +	context.es = context.ds.word(400);  	context.al = context.cl;  	context.ah = 0;  	context.dx = 320; @@ -4447,7 +4447,7 @@ multiloop6:  static void multidump(Context & context) {  	context.dx = 0x0a000;  	context.es = context.dx; -	context.ds = context.data.word(400); +	context.ds = context.ds.word(400);  	context.ax = context.bx;  	context.bx = 320;  	context._mul(context.bx); @@ -4729,17 +4729,17 @@ static void width160(Context & context) {  }  static void doblocks(Context & context) { -	context.es = context.data.word(400); -	context.ax = context.data.word(119); +	context.es = context.ds.word(400); +	context.ax = context.ds.word(119);  	context.cx = 320;  	context._mul(context.cx); -	context.di = context.data.word(117); +	context.di = context.ds.word(117);  	context._add(context.di, context.ax); -	context.al = context.data.byte(149); +	context.al = context.ds.byte(149);  	context.ah = 0;  	context.bx = 66;  	context._mul(context.bx); -	context.bl = context.data.byte(148); +	context.bl = context.ds.byte(148);  	context.bh = 0;  	context._add(context.ax, context.bx);  	context.si = 0; @@ -4752,9 +4752,9 @@ loop120:  loop124:  	context.push(context.cx);  	context.push(context.di); -	context.ds = context.data.word(418); +	context.ds = context.ds.word(418);  	context._lodsb(); -	context.ds = context.data.word(416); +	context.ds = context.ds.word(416);  	context.push(context.si);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto zeroblock; @@ -4852,22 +4852,22 @@ static void showframe(Context & context) {  	context.si = context.cx;  	context._add(context.cx, context.cx);  	context._add(context.si, context.cx); -	context._cmp(context.data.word(context.si), 0); +	context._cmp(context.ds.word(context.si), 0);  	if (!context.flags.z()) goto notblankshow;  	context.cx = 0;  	return;  notblankshow:  	context._test(context.ah, 128);  	if (!context.flags.z()) goto skipoffsets; -	context.al = context.data.byte(context.si+4); +	context.al = context.ds.byte(context.si+4);  	context.ah = 0;  	context._add(context.di, context.ax); -	context.al = context.data.byte(context.si+5); +	context.al = context.ds.byte(context.si+5);  	context.ah = 0;  	context._add(context.bx, context.ax);  skipoffsets: -	context.cx = context.data.word(context.si+0); -	context.ax = context.data.word(context.si+2); +	context.cx = context.ds.word(context.si+0); +	context.ax = context.ds.word(context.si+2);  	context._add(context.ax, 2080);  	context.si = context.ax;  	context.ax = context.pop(); @@ -4898,9 +4898,9 @@ notdiffdest:  	if (context.flags.z()) goto notprintlist;  	context.push(context.ax);  	context.ax = context.di; -	context._sub(context.ax, context.data.word(117)); +	context._sub(context.ax, context.ds.word(117));  	context.push(context.bx); -	context._sub(context.bx, context.data.word(119)); +	context._sub(context.bx, context.ds.word(119));  	context.ah = context.bl;  	context.bx = context.pop();  	context.ax = context.pop(); @@ -4908,7 +4908,7 @@ notprintlist:  	context._test(context.ah, 4);  	if (context.flags.z()) goto notflippedx;  	context.dx = 320; -	context.es = context.data.word(400); +	context.es = context.ds.word(400);  	context.push(context.cx);  	frameoutfx(context);  	context.cx = context.pop(); @@ -4917,7 +4917,7 @@ notflippedx:  	context._test(context.ah, 2);  	if (context.flags.z()) goto notnomask;  	context.dx = 320; -	context.es = context.data.word(400); +	context.es = context.ds.word(400);  	context.push(context.cx);  	frameoutnm(context);  	context.cx = context.pop(); @@ -4926,14 +4926,14 @@ notnomask:  	context._test(context.ah, 32);  	if (context.flags.z()) goto noeffects;  	context.dx = 320; -	context.es = context.data.word(400); +	context.es = context.ds.word(400);  	context.push(context.cx);  	frameoutbh(context);  	context.cx = context.pop();  	return;  noeffects:  	context.dx = 320; -	context.es = context.data.word(400); +	context.es = context.ds.word(400);  	context.push(context.cx);  	frameoutv(context);  	context.cx = context.pop(); @@ -5038,7 +5038,7 @@ bhloop2:  	context.ch = 0;  	context.ah = 255;  bhloop1: -	context._cmp(context.data.byte(context.di), context.ah); +	context._cmp(context.ds.byte(context.di), context.ah);  	if (!context.flags.z()) goto nofill;  	context._movsb();   	if (--context.cx) goto bhloop1; @@ -5086,7 +5086,7 @@ frameloopfx3:  	context._cmp(context.al, 0);  	if (context.flags.z()) goto backtootherfx;  backtosolidfx: -	context.data.byte(context.di) = context.al; +	context.ds.byte(context.di) = context.al;  	context._sub(context.di, 1);  	if (--context.cx) goto frameloopfx3;  	context.cx = context.pop(); @@ -5097,9 +5097,9 @@ backtosolidfx:  }  static void transferinv(Context & context) { -	context.di = context.data.word(12); +	context.di = context.ds.word(12);  	context.push(context.di); -	context.al = context.data.byte(10); +	context.al = context.ds.byte(10);  	context.ah = 0;  	context.bx = context.ax;  	context._add(context.ax, context.ax); @@ -5107,12 +5107,12 @@ static void transferinv(Context & context) {  	context._add(context.ax, 1);  	context.cx = 6;  	context._mul(context.cx); -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.bx = 0;  	context._add(context.bx, context.ax);  	context._add(context.di, 0+2080);  	context.push(context.bx); -	context.al = context.data.byte(90); +	context.al = context.ds.byte(90);  	context.ah = 0;  	context.bx = context.ax;  	context._add(context.ax, context.ax); @@ -5120,94 +5120,94 @@ static void transferinv(Context & context) {  	context._add(context.ax, 1);  	context.cx = 6;  	context._mul(context.cx); -	context.ds = context.data.word(446); +	context.ds = context.ds.word(446);  	context.bx = 0;  	context._add(context.bx, context.ax);  	context.si = 0+2080; -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context.ah = 0; -	context.cl = context.data.byte(context.bx+1); +	context.cl = context.ds.byte(context.bx+1);  	context.ch = 0; -	context._add(context.si, context.data.word(context.bx+2)); -	context.dx = context.data.word(context.bx+4); +	context._add(context.si, context.ds.word(context.bx+2)); +	context.dx = context.ds.word(context.bx+4);  	context.bx = context.pop(); -	context.data.byte(context.bx+0) = context.al; -	context.data.byte(context.bx+1) = context.cl; -	context.data.word(context.bx+4) = context.dx; +	context.ds.byte(context.bx+0) = context.al; +	context.ds.byte(context.bx+1) = context.cl; +	context.ds.word(context.bx+4) = context.dx;  	context._mul(context.cx);  	context.cx = context.ax;  	context.push(context.cx);  	while(--context.cx) 	context._movsb();   	context.cx = context.pop();  	context.ax = context.pop(); -	context.data.word(context.bx+2) = context.ax; -	context._add(context.data.word(12), context.cx); +	context.ds.word(context.bx+2) = context.ax; +	context._add(context.ds.word(12), context.cx);  	return;  }  static void transfermap(Context & context) { -	context.di = context.data.word(12); +	context.di = context.ds.word(12);  	context.push(context.di); -	context.al = context.data.byte(10); +	context.al = context.ds.byte(10);  	context.ah = 0;  	context.bx = context.ax;  	context._add(context.ax, context.ax);  	context._add(context.ax, context.bx);  	context.cx = 6;  	context._mul(context.cx); -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.bx = 0;  	context._add(context.bx, context.ax);  	context._add(context.di, 0+2080);  	context.push(context.bx); -	context.al = context.data.byte(90); +	context.al = context.ds.byte(90);  	context.ah = 0;  	context.bx = context.ax;  	context._add(context.ax, context.ax);  	context._add(context.ax, context.bx);  	context.cx = 6;  	context._mul(context.cx); -	context.ds = context.data.word(446); +	context.ds = context.ds.word(446);  	context.bx = 0;  	context._add(context.bx, context.ax);  	context.si = 0+2080; -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context.ah = 0; -	context.cl = context.data.byte(context.bx+1); +	context.cl = context.ds.byte(context.bx+1);  	context.ch = 0; -	context._add(context.si, context.data.word(context.bx+2)); -	context.dx = context.data.word(context.bx+4); +	context._add(context.si, context.ds.word(context.bx+2)); +	context.dx = context.ds.word(context.bx+4);  	context.bx = context.pop(); -	context.data.byte(context.bx+0) = context.al; -	context.data.byte(context.bx+1) = context.cl; -	context.data.word(context.bx+4) = context.dx; +	context.ds.byte(context.bx+0) = context.al; +	context.ds.byte(context.bx+1) = context.cl; +	context.ds.word(context.bx+4) = context.dx;  	context._mul(context.cx);  	context.cx = context.ax;  	context.push(context.cx);  	while(--context.cx) 	context._movsb();   	context.cx = context.pop();  	context.ax = context.pop(); -	context.data.word(context.bx+2) = context.ax; -	context._add(context.data.word(12), context.cx); +	context.ds.word(context.bx+2) = context.ax; +	context._add(context.ds.word(12), context.cx);  	return;  }  static void dofade(Context & context) { -	context._cmp(context.data.byte(344), 0); +	context._cmp(context.ds.byte(344), 0);  	if (context.flags.z()) goto finishfade; -	context.cl = context.data.byte(345); +	context.cl = context.ds.byte(345);  	context.ch = 0; -	context.al = context.data.byte(343); +	context.al = context.ds.byte(343);  	context.ah = 0; -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);  	context._add(context.si, context.ax);  	context._add(context.si, context.ax);  	context._add(context.si, context.ax);  	showgroup(context); -	context.al = context.data.byte(345); -	context._add(context.al, context.data.byte(343)); -	context.data.byte(343) = context.al; +	context.al = context.ds.byte(345); +	context._add(context.al, context.ds.byte(343)); +	context.ds.byte(343) = context.al;  	context._cmp(context.al, 0);  	if (!context.flags.z()) goto finishfade;  	fadecalculation(context); @@ -5216,7 +5216,7 @@ finishfade:  }  static void clearendpal(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;  	context.cx = 768;  	context.al = 0; @@ -5225,7 +5225,7 @@ static void clearendpal(Context & context) {  }  static void clearpalette(Context & context) { -	context.data.byte(344) = 0; +	context.ds.byte(344) = 0;  	clearstartpal(context);  	dumpcurrent(context);  	return; @@ -5234,15 +5234,15 @@ static void clearpalette(Context & context) {  static void fadescreenup(Context & context) {  	clearstartpal(context);  	paltoendpal(context); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 128; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 128;  	return;  }  static void fadetowhite(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;  	context.cx = 768;  	context.al = 63; @@ -5253,15 +5253,15 @@ static void fadetowhite(Context & context) {  	context._stosb();  	context._stosb();  	paltostartpal(context); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 128; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 128;  	return;  }  static void fadefromwhite(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);  	context.cx = 768;  	context.al = 63; @@ -5272,20 +5272,20 @@ static void fadefromwhite(Context & context) {  	context._stosb();  	context._stosb();  	paltoendpal(context); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 128; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 128;  	return;  }  static void fadescreenups(Context & context) {  	clearstartpal(context);  	paltoendpal(context); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 64; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 64;  	return;  } @@ -5293,16 +5293,16 @@ static void fadescreendownhalf(Context & context) {  	paltostartpal(context);  	paltoendpal(context);  	context.cx = 768; -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;  halfend: -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._shr(context.al, 1); -	context.data.byte(context.bx) = context.al; +	context.ds.byte(context.bx) = context.al;  	context._add(context.bx, 1);  	if (--context.cx) goto halfend; -	context.ds = context.data.word(412); -	context.es = context.data.word(412); +	context.ds = context.ds.word(412); +	context.es = context.ds.word(412);  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(56*3);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(56*3);  	context.cx = 3*5; @@ -5311,45 +5311,45 @@ halfend:  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(77*3);  	context.cx = 3*2;  	while(--context.cx) 	context._movsb(); - 	context.data.byte(344) = 1; -	context.data.byte(346) = 31; -	context.data.byte(343) = 0; -	context.data.byte(345) = 32; + 	context.ds.byte(344) = 1; +	context.ds.byte(346) = 31; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 32;  	return;  }  static void fadescreenuphalf(Context & context) {  	endpaltostart(context);  	paltoendpal(context); -	context.data.byte(344) = 1; -	context.data.byte(346) = 31; -	context.data.byte(343) = 0; -	context.data.byte(345) = 32; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 31; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 32;  	return;  }  static void fadescreendown(Context & context) {  	paltostartpal(context);  	clearendpal(context); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 128; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 128;  	return;  }  static void fadescreendowns(Context & context) {  	paltostartpal(context);  	clearendpal(context); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 64; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 64;  	return;  }  static void clearstartpal(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);  	context.cx = 256;  wholeloop1: @@ -5362,39 +5362,39 @@ wholeloop1:  }  static void showgun(Context & context) { -	context.data.byte(348) = 0; -	context.data.byte(347) = 0; -	context.data.byte(349) = 0; +	context.ds.byte(348) = 0; +	context.ds.byte(347) = 0; +	context.ds.byte(349) = 0;  	paltostartpal(context);  	paltoendpal(context);  	greyscalesum(context); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 128; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 128;  	context.cx = 130;  	hangon(context);  	endpaltostart(context);  	clearendpal(context); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 128; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 128;  	context.cx = 200;  	hangon(context); -	context.data.byte(531) = 34; +	context.ds.byte(531) = 34;  	loadroomssample(context); -	context.data.byte(386) = 0; +	context.ds.byte(386) = 0;  	context.dx = 2364;  	loadintotemp(context);  	createpanel2(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 0;  	context.ah = 0;  	context.di = 100;  	context.bx = 4;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 1;  	context.ah = 0;  	context.di = 158; @@ -5425,19 +5425,19 @@ static void rollem(Context & context) {  	context.ch = 160;  	context.di = 25;  	context.bx = 20; -	context.ds = context.data.word(402); +	context.ds = context.ds.word(402);  	context.si = 0;  	multiget(context); -	context.es = context.data.word(466); +	context.es = context.ds.word(466);  	context.si = 49*2; -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context.si = context.ax;  	context._add(context.si, 66*2);  	context.cx = 80;  endcredits21:  	context.push(context.cx);  	context.bx = 10; -	context.cx = context.data.word(77); +	context.cx = context.ds.word(77);  endcredits22:  	context.push(context.cx);  	context.push(context.si); @@ -5449,7 +5449,7 @@ endcredits22:  	context.ch = 160;  	context.di = 25;  	context.bx = 20; -	context.ds = context.data.word(402); +	context.ds = context.ds.word(402);  	context.si = 0;  	multiput(context);  	vsync(context); @@ -5468,7 +5468,7 @@ onelot2:  	context.dx = 161;  	context.ax = 0;  	printdirect(context); -	context._add(context.bx, context.data.word(77)); +	context._add(context.bx, context.ds.word(77));  	context.cx = context.pop();  	if (--context.cx) goto onelot2;  	vsync(context); @@ -5482,13 +5482,13 @@ onelot2:  	context.di = context.pop();  	context.si = context.pop();  	context.cx = context.pop(); -	context._cmp(context.data.byte(392), 1); +	context._cmp(context.ds.byte(392), 1);  	if (context.flags.z()) goto endearly2;  	context._sub(context.bx, 1);  	if (--context.cx) goto endcredits22;  	context.cx = context.pop();  looknext2: -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._add(context.si, 1);  	context._cmp(context.al, ':');  	if (context.flags.z()) goto gotnext2; @@ -5496,7 +5496,7 @@ looknext2:  	if (context.flags.z()) goto gotnext2;  	goto looknext2;  gotnext2: -	context._cmp(context.data.byte(392), 1); +	context._cmp(context.ds.byte(392), 1);  	if (context.flags.z()) goto endearly;  	if (--context.cx) goto endcredits21;  	context.cx = 120; @@ -5509,57 +5509,57 @@ endearly:  }  static void fadecalculation(Context & context) { -	context._cmp(context.data.byte(346), 0); +	context._cmp(context.ds.byte(346), 0);  	if (context.flags.z()) goto nomorefading; -	context.bl = context.data.byte(346); -	context.es = context.data.word(412); +	context.bl = context.ds.byte(346); +	context.es = context.ds.word(412);  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;  	context.cx = 768;  fadecolloop: -	context.al = context.data.byte(context.si); -	context.ah = context.data.byte(context.di); +	context.al = context.ds.byte(context.si); +	context.ah = context.ds.byte(context.di);  	context._cmp(context.al, context.ah);  	if (context.flags.z()) goto gotthere;  	if (context.flags.c()) goto lesscolour; -	context._sub(context.data.byte(context.si), 1); +	context._sub(context.ds.byte(context.si), 1);  	goto gotthere;  lesscolour:  	context._cmp(context.bl, context.ah);  	if (context.flags.z()) goto withit;  	if (!context.flags.c()) goto gotthere;  withit: -	context._add(context.data.byte(context.si), 1); +	context._add(context.ds.byte(context.si), 1);  gotthere:  	context._add(context.si, 1);  	context._add(context.di, 1);  	if (--context.cx) goto fadecolloop; -	context._sub(context.data.byte(346), 1); +	context._sub(context.ds.byte(346), 1);  	return;  nomorefading: -	context.data.byte(344) = 0; +	context.ds.byte(344) = 0;  	return;  }  static void greyscalesum(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;  	context.cx = 256;  greysumloop1:  	context.push(context.cx);  	context.bx = 0; -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context.ah = 0;  	context.cx = 20;  	context._mul(context.cx);  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.si+1); +	context.al = context.ds.byte(context.si+1);  	context.ah = 0;  	context.cx = 59;  	context._mul(context.cx);  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.si+2); +	context.al = context.ds.byte(context.si+2);  	context.ah = 0;  	context.cx = 11;  	context._mul(context.cx); @@ -5571,19 +5571,19 @@ greysumloop2:  	if (!context.flags.c()) goto greysumloop2;  	context.bl = context.al;  	context.al = context.bl; -	context.ah = context.data.byte(348); +	context.ah = context.ds.byte(348);  	context._cmp(context.al, 0);  	context._add(context.al, context.ah);  noaddr:  	context._stosb(); -	context.ah = context.data.byte(347); +	context.ah = context.ds.byte(347);  	context.al = context.bl;  	context._cmp(context.al, 0);  	if (context.flags.z()) goto noaddg;  	context._add(context.al, context.ah);  noaddg:  	context._stosb(); -	context.ah = context.data.byte(349); +	context.ah = context.ds.byte(349);  	context.al = context.bl;  	context._cmp(context.al, 0);  	if (context.flags.z()) goto noaddb; @@ -5597,8 +5597,8 @@ noaddb:  }  static void paltostartpal(Context & context) { -	context.es = context.data.word(412); -	context.ds = context.data.word(412); +	context.es = context.ds.word(412); +	context.ds = context.ds.word(412);  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);  	context.cx = 768/2; @@ -5607,8 +5607,8 @@ static void paltostartpal(Context & context) {  }  static void endpaltostart(Context & context) { -	context.es = context.data.word(412); -	context.ds = context.data.word(412); +	context.es = context.ds.word(412); +	context.ds = context.ds.word(412);  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);  	context.cx = 768/2; @@ -5617,8 +5617,8 @@ static void endpaltostart(Context & context) {  }  static void startpaltoend(Context & context) { -	context.es = context.data.word(412); -	context.ds = context.data.word(412); +	context.es = context.ds.word(412); +	context.ds = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);  	context.cx = 768/2; @@ -5627,8 +5627,8 @@ static void startpaltoend(Context & context) {  }  static void paltoendpal(Context & context) { -	context.es = context.data.word(412); -	context.ds = context.data.word(412); +	context.es = context.ds.word(412); +	context.ds = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;  	context.cx = 768/2; @@ -5637,8 +5637,8 @@ static void paltoendpal(Context & context) {  }  static void allpalette(Context & context) { -	context.es = context.data.word(412); -	context.ds = context.data.word(412); +	context.es = context.ds.word(412); +	context.ds = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;  	context.cx = 768/2; @@ -5649,7 +5649,7 @@ static void allpalette(Context & context) {  static void dumpcurrent(Context & context) {  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3); -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	vsync(context);  	context.al = 0;  	context.cx = 128; @@ -5664,7 +5664,7 @@ static void dumpcurrent(Context & context) {  static void fadedownmon(Context & context) {  	paltostartpal(context);  	paltoendpal(context); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);  	context.cx = 3*8;  	context.ax = 0; @@ -5672,10 +5672,10 @@ static void fadedownmon(Context & context) {  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);  	context._stosb();  	context._stosw(); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 128; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 128;  	context.cx = 64;  	hangon(context);  	return; @@ -5684,7 +5684,7 @@ static void fadedownmon(Context & context) {  static void fadeupmon(Context & context) {  	paltostartpal(context);  	paltoendpal(context); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);  	context.cx = 3*8;  	context.ax = 0; @@ -5692,10 +5692,10 @@ static void fadeupmon(Context & context) {  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);  	context._stosb();  	context._stosw(); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 128; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 128;  	context.cx = 128;  	hangon(context);  	return; @@ -5704,7 +5704,7 @@ static void fadeupmon(Context & context) {  static void fadeupmonfirst(Context & context) {  	paltostartpal(context);  	paltoendpal(context); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);  	context.cx = 3*8;  	context.ax = 0; @@ -5712,10 +5712,10 @@ static void fadeupmonfirst(Context & context) {  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);  	context._stosb();  	context._stosw(); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 128; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 128;  	context.cx = 64;  	hangon(context);  	context.al = 26; @@ -5727,7 +5727,7 @@ static void fadeupmonfirst(Context & context) {  static void fadeupyellows(Context & context) {  	paltoendpal(context); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);  	context.cx = 3*8;  	context.ax = 0; @@ -5735,10 +5735,10 @@ static void fadeupyellows(Context & context) {  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);  	context._stosb();  	context._stosw(); -	context.data.byte(344) = 1; -	context.data.byte(346) = 63; -	context.data.byte(343) = 0; -	context.data.byte(345) = 128; +	context.ds.byte(344) = 1; +	context.ds.byte(346) = 63; +	context.ds.byte(343) = 0; +	context.ds.byte(345) = 128;  	context.cx = 128;  	hangon(context);  	return; @@ -5746,7 +5746,7 @@ static void fadeupyellows(Context & context) {  static void initialmoncols(Context & context) {  	paltostartpal(context); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);  	context.cx = 3*9;  	context.ax = 0; @@ -5754,7 +5754,7 @@ static void initialmoncols(Context & context) {  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);  	context._stosb();  	context._stosw(); -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);  	context.al = 230;  	context.cx = 18; @@ -5775,24 +5775,24 @@ static void endgame(Context & context) {  	monkspeaking(context);  	gettingshot(context);  	getridoftemptext(context); -	context.data.byte(387) = 7; -	context.data.byte(388) = 1; +	context.ds.byte(387) = 7; +	context.ds.byte(388) = 1;  	context.cx = 200;  	hangon(context);  	return;  }  static void monkspeaking(Context & context) { -	context.data.byte(531) = 35; +	context.ds.byte(531) = 35;  	loadroomssample(context);  	context.dx = 2377;  	loadintotemp(context);  	clearwork(context);  	showmonk(context);  	worktoscreen(context); -	context.data.byte(386) = 7; -	context.data.byte(388) = -1; -	context.data.byte(387) = 0; +	context.ds.byte(386) = 7; +	context.ds.byte(388) = -1; +	context.ds.byte(387) = 0;  	context.al = 12;  	context.ah = 255;  	playchannel0(context); @@ -5805,8 +5805,8 @@ nextmonkspeak:  	context.ah = 0;  	context.si = context.ax;  	context._add(context.si, context.si); -	context.es = context.data.word(466); -	context.ax = context.data.word(context.si); +	context.es = context.ds.word(466); +	context.ax = context.ds.word(context.si);  	context._add(context.ax, 66*2);  	context.si = context.ax;  nextbit: @@ -5831,8 +5831,8 @@ nextbit:  	context._add(context.al, 1);  	context._cmp(context.al, 44);  	if (!context.flags.z()) goto nextmonkspeak; -	context.data.byte(388) = 1; -	context.data.byte(387) = 7; +	context.ds.byte(388) = 1; +	context.ds.byte(387) = 7;  	fadescreendowns(context);  	context.cx = 300;  	hangon(context); @@ -5845,18 +5845,18 @@ static void showmonk(Context & context) {  	context.ah = 128;  	context.di = 160;  	context.bx = 72; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context);  	return;  }  static void gettingshot(Context & context) { -	context.data.byte(188) = 55; +	context.ds.byte(188) = 55;  	clearpalette(context);  	loadintroroom(context);  	fadescreenups(context); -	context.data.byte(387) = 0; -	context.data.byte(388) = -1; +	context.ds.byte(387) = 0; +	context.ds.byte(388) = -1;  	runendseq(context);  	clearbeforeload(context);  	return; @@ -5889,7 +5889,7 @@ hangonloope:  	context.push(context.cx);  	vsync(context);  	context.cx = context.pop(); -	context._cmp(context.data.byte(392), 1); +	context._cmp(context.ds.byte(392), 1);  	if (context.flags.z()) goto hangonearly;  	if (--context.cx) goto hangonloope;  	return; @@ -5904,28 +5904,28 @@ static void intro(Context & context) {  	loadtemptext(context);  	loadpalfromiff(context);  	setmode(context); -	context.data.byte(188) = 50; +	context.ds.byte(188) = 50;  	clearpalette(context);  	loadintroroom(context); -	context.data.byte(386) = 7; -	context.data.byte(388) = -1; -	context.data.byte(387) = 0; +	context.ds.byte(386) = 7; +	context.ds.byte(388) = -1; +	context.ds.byte(387) = 0;  	context.al = 12;  	context.ah = 255;  	playchannel0(context);  	fadescreenups(context);  	runintroseq(context);  	clearbeforeload(context); -	context.data.byte(188) = 52; +	context.ds.byte(188) = 52;  	loadintroroom(context);  	runintroseq(context);  	clearbeforeload(context); -	context.data.byte(188) = 53; +	context.ds.byte(188) = 53;  	loadintroroom(context);  	runintroseq(context);  	clearbeforeload(context);  	allpalette(context); -	context.data.byte(188) = 54; +	context.ds.byte(188) = 54;  	loadintroroom(context);  	runintroseq(context);  	getridoftemptext(context); @@ -5934,14 +5934,14 @@ static void intro(Context & context) {  }  static void runintroseq(Context & context) { -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  moreintroseq:  	vsync(context); -	context._cmp(context.data.byte(392), 1); +	context._cmp(context.ds.byte(392), 1);  	if (context.flags.z()) goto earlyendrun;  	spriteupdate(context);  	vsync(context); -	context._cmp(context.data.byte(392), 1); +	context._cmp(context.ds.byte(392), 1);  	if (context.flags.z()) goto earlyendrun;  	deleverything(context);  	printsprites(context); @@ -5949,14 +5949,14 @@ moreintroseq:  	afterintroroom(context);  	usetimedtext(context);  	vsync(context); -	context._cmp(context.data.byte(392), 1); +	context._cmp(context.ds.byte(392), 1);  	if (context.flags.z()) goto earlyendrun;  	dumpmap(context);  	dumptimedtext(context);  	vsync(context); -	context._cmp(context.data.byte(392), 1); +	context._cmp(context.ds.byte(392), 1);  	if (context.flags.z()) goto earlyendrun; -	context._cmp(context.data.byte(103), 1); +	context._cmp(context.ds.byte(103), 1);  	if (!context.flags.z()) goto moreintroseq;  	return;  earlyendrun: @@ -5969,7 +5969,7 @@ earlyendrun:  static void runendseq(Context & context) {  	atmospheres(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  moreendseq:  	vsync(context);  	spriteupdate(context); @@ -5983,23 +5983,23 @@ moreendseq:  	dumpmap(context);  	dumptimedtext(context);  	vsync(context); -	context._cmp(context.data.byte(103), 1); +	context._cmp(context.ds.byte(103), 1);  	if (!context.flags.z()) goto moreendseq;  	return;  }  static void loadintroroom(Context & context) { -	context.data.byte(139) = 0; -	context.data.byte(9) = 255; +	context.ds.byte(139) = 0; +	context.ds.byte(9) = 255;  	loadroom(context); -	context.data.word(121) = 72; -	context.data.word(123) = 16; +	context.ds.word(121) = 72; +	context.ds.word(123) = 16;  	clearsprites(context); -	context.data.byte(61) = 0; -	context.data.byte(142) = '0'; -	context.data.byte(105) = 0; +	context.ds.byte(61) = 0; +	context.ds.byte(142) = '0'; +	context.ds.byte(105) = 0;  	clearwork(context); -	context.data.byte(62) = 1; +	context.ds.byte(62) = 1;  	drawfloor(context);  	reelsonscreen(context);  	spriteupdate(context); @@ -6009,9 +6009,9 @@ static void loadintroroom(Context & context) {  }  static void realcredits(Context & context) { -	context.data.byte(531) = 33; +	context.ds.byte(531) = 33;  	loadroomssample(context); -	context.data.byte(386) = 0; +	context.ds.byte(386) = 0;  	mode640x480(context);  	context.cx = 35;  	hangon(context); @@ -6106,13 +6106,13 @@ static void printchar(Context & context) {  	context.push(context.ax);  	context._sub(context.al, 32);  	context.ah = 0; -	context._add(context.ax, context.data.word(71)); +	context._add(context.ax, context.ds.word(71));  	showframe(context);  	context.ax = context.pop();  	context.di = context.pop();  	context.bx = context.pop();  	context.si = context.pop(); -	context._cmp(context.data.byte(72), 0); +	context._cmp(context.ds.byte(72), 0);  	if (!context.flags.z()) goto nokern;  	kernchars(context);  nokern: @@ -6148,9 +6148,9 @@ kernit:  }  static void printslow(Context & context) { -	context.data.byte(231) = 1; -	context.data.byte(234) = 3; -	context.ds = context.data.word(404); +	context.ds.byte(231) = 1; +	context.ds.byte(234) = 3; +	context.ds = context.ds.word(404);  printloopslow6:  	context.push(context.bx);  	context.push(context.di); @@ -6161,7 +6161,7 @@ printloopslow5:  	context.push(context.cx);  	context.push(context.si);  	context.push(context.es); -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context.push(context.bx);  	context.push(context.cx);  	context.push(context.es); @@ -6174,7 +6174,7 @@ printloopslow5:  	context.es = context.pop();  	context.cx = context.pop();  	context.bx = context.pop(); -	context.ax = context.data.word(context.si+1); +	context.ax = context.ds.word(context.si+1);  	context._add(context.si, 1);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto finishslow; @@ -6189,9 +6189,9 @@ printloopslow5:  	context.push(context.es);  	context.push(context.si);  	modifychar(context); -	context.data.word(71) = 91; +	context.ds.word(71) = 91;  	printboth(context); -	context.data.word(71) = 0; +	context.ds.word(71) = 0;  	context.si = context.pop();  	context.es = context.pop();  	context.cx = context.pop(); @@ -6201,14 +6201,14 @@ printloopslow5:  	waitframes(context);  	context._cmp(context.ax, 0);  	if (context.flags.z()) goto keepgoing; -	context._cmp(context.ax, context.data.word(212)); +	context._cmp(context.ax, context.ds.word(212));  	if (!context.flags.z()) goto finishslow2;  keepgoing:  	waitframes(context);  noslow:  	context._cmp(context.ax, 0);  	if (context.flags.z()) goto afterslow; -	context._cmp(context.ax, context.data.word(212)); +	context._cmp(context.ax, context.ds.word(212));  	if (!context.flags.z()) goto finishslow2;  afterslow:  	context.es = context.pop(); @@ -6252,7 +6252,7 @@ static void waitframes(Context & context) {  	vsync(context);  	dumppointer(context);  	delpointer(context); -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context.ds = context.pop();  	context.si = context.pop();  	context.es = context.pop(); @@ -6279,8 +6279,8 @@ static void printboth(Context & context) {  }  static void printdirect(Context & context) { -	context.data.word(84) = context.di; -	context.ds = context.data.word(268); +	context.ds.word(84) = context.di; +	context.ds = context.ds.word(268);  printloop6:  	context.push(context.bx);  	context.push(context.di); @@ -6288,7 +6288,7 @@ printloop6:  	getnumber(context);  	context.ch = 0;  printloop5: -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context._add(context.si, 1);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto finishdirct; @@ -6298,14 +6298,14 @@ printloop5:  	context.push(context.es);  	modifychar(context);  	printchar(context); -	context.data.word(84) = context.di; +	context.ds.word(84) = context.di;  	context.es = context.pop();  	context.cx = context.pop();  	if (--context.cx) goto printloop5;  	context.dx = context.pop();  	context.di = context.pop();  	context.bx = context.pop(); -	context._add(context.bx, context.data.word(77)); +	context._add(context.bx, context.ds.word(77));  	goto printloop6;  finishdirct:  	context.dx = context.pop(); @@ -6315,12 +6315,12 @@ finishdirct:  }  static void monprint(Context & context) { -	context.data.byte(72) = 1; +	context.ds.byte(72) = 1;  	context.si = context.bx;  	context.dl = 166; -	context.di = context.data.word(318); -	context.bx = context.data.word(320); -	context.ds = context.data.word(406); +	context.di = context.ds.word(318); +	context.bx = context.ds.word(320); +	context.ds = context.ds.word(406);  printloop8:  	context.push(context.bx);  	context.push(context.di); @@ -6328,7 +6328,7 @@ printloop8:  	getnumber(context);  	context.ch = 0;  printloop7: -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._add(context.si, 1);  	context._cmp(context.al, ':');  	if (context.flags.z()) goto finishmon2; @@ -6340,7 +6340,7 @@ printloop7:  	if (context.flags.z()) goto finishmon;  	context._cmp(context.al, '%');  	if (!context.flags.z()) goto nottrigger; -	context.ah = context.data.byte(context.si); +	context.ah = context.ds.byte(context.si);  	context._add(context.si, 1);  	context._add(context.si, 1);  	goto finishmon; @@ -6349,9 +6349,9 @@ nottrigger:  	context.push(context.es);  	modifychar(context);  	printchar(context); -	context.data.word(312) = context.di; -	context.data.word(314) = context.bx; -	context.data.word(138) = 1; +	context.ds.word(312) = context.di; +	context.ds.word(314) = context.bx; +	context.ds.word(138) = 1;  	printcurs(context);  	vsync(context);  	context.push(context.si); @@ -6376,7 +6376,7 @@ finishmon2:  	context.di = context.pop();  	context.bx = context.pop();  	scrollmonitor(context); -	context.data.word(312) = context.di; +	context.ds.word(312) = context.di;  	goto printloop8;  finishmon:  	context.dx = context.pop(); @@ -6384,12 +6384,12 @@ finishmon:  	context.bx = context.pop();  	context._cmp(context.al, '%');  	if (!context.flags.z()) goto nottrigger2; -	context.data.byte(55) = context.ah; +	context.ds.byte(55) = context.ah;  nottrigger2: -	context.data.word(312) = context.di; +	context.ds.word(312) = context.di;  	scrollmonitor(context);  	context.bx = context.si; -	context.data.byte(72) = 0; +	context.ds.byte(72) = 0;  	return;  } @@ -6499,7 +6499,7 @@ notcent2:  static void getnextword(Context & context) {  	context.bx = 0;  getloop: -	context.ax = context.data.word(context.di); +	context.ax = context.ds.word(context.di);  	context._add(context.di, 1);  	context._add(context.bh, 1);  	context._cmp(context.al, ':'); @@ -6514,12 +6514,12 @@ getloop:  	context.push(context.ax);  	context._sub(context.al, 32);  	context.ah = 0; -	context._add(context.ax, context.data.word(71)); +	context._add(context.ax, context.ds.word(71));  	context._add(context.ax, context.ax);  	context.si = context.ax;  	context._add(context.ax, context.ax);  	context._add(context.si, context.ax); -	context.cl = context.data.byte(context.si+0); +	context.cl = context.ds.byte(context.si+0);  	context.ax = context.pop();  	kernchars(context);  	context._add(context.bl, context.cl); @@ -6592,11 +6592,11 @@ nomod:  }  static void fillryan(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32;  	findallryan(context);  	context.si = 0+(228*13)+32; -	context.al = context.data.byte(19); +	context.al = context.ds.byte(19);  	context.ah = 0;  	context.cx = 20;  	context._mul(context.cx); @@ -6613,7 +6613,7 @@ ryanloop1:  	context.push(context.cx);  	context.push(context.di);  	context.push(context.bx); -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context._add(context.si, 2);  	context.push(context.si);  	context.push(context.es); @@ -6643,7 +6643,7 @@ static void fillopen(Context & context) {  lessthanapage:  	context.al = 1;  	context.push(context.ax); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13);  	findallopen(context);  	context.si = 0+(228*13); @@ -6654,7 +6654,7 @@ openloop1:  	context.push(context.cx);  	context.push(context.di);  	context.push(context.bx); -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context._add(context.si, 2);  	context.push(context.si);  	context.push(context.es); @@ -6682,15 +6682,15 @@ static void findallryan(Context & context) {  	while(--context.cx) 	context._stosw();  	context.di = context.pop();  	context.cl = 4; -	context.ds = context.data.word(398); +	context.ds = context.ds.word(398);  	context.bx = 0+2080+30000;  	context.ch = 0;  findryanloop: -	context._cmp(context.data.byte(context.bx+2), context.cl); +	context._cmp(context.ds.byte(context.bx+2), context.cl);  	if (!context.flags.z()) goto notinryaninv; -	context._cmp(context.data.byte(context.bx+3), 255); +	context._cmp(context.ds.byte(context.bx+3), 255);  	if (!context.flags.z()) goto notinryaninv; -	context.al = context.data.byte(context.bx+4); +	context.al = context.ds.byte(context.bx+4);  	context.ah = 0;  	context.push(context.di);  	context._add(context.di, context.ax); @@ -6713,23 +6713,23 @@ static void findallopen(Context & context) {  	context.ax = 0x0ffff;  	while(--context.cx) 	context._stosw();  	context.di = context.pop(); -	context.cl = context.data.byte(110); -	context.dl = context.data.byte(111); -	context.ds = context.data.word(398); +	context.cl = context.ds.byte(110); +	context.dl = context.ds.byte(111); +	context.ds = context.ds.word(398);  	context.bx = 0+2080+30000;  	context.ch = 0;  findopen1: -	context._cmp(context.data.byte(context.bx+3), context.cl); +	context._cmp(context.ds.byte(context.bx+3), context.cl);  	if (!context.flags.z()) goto findopen2; -	context._cmp(context.data.byte(context.bx+2), context.dl); +	context._cmp(context.ds.byte(context.bx+2), context.dl);  	if (!context.flags.z()) goto findopen2; -	context._cmp(context.data.byte(111), 4); +	context._cmp(context.ds.byte(111), 4);  	if (context.flags.z()) goto noloccheck; -	context.al = context.data.byte(context.bx+5); -	context._cmp(context.al, context.data.byte(184)); +	context.al = context.ds.byte(context.bx+5); +	context._cmp(context.al, context.ds.byte(184));  	if (!context.flags.z()) goto findopen2;  noloccheck: -	context.al = context.data.byte(context.bx+4); +	context.al = context.ds.byte(context.bx+4);  	context.ah = 0;  	context.push(context.di);  	context._add(context.di, context.ax); @@ -6743,19 +6743,19 @@ findopen2:  	context._add(context.ch, 1);  	context._cmp(context.ch, 114);  	if (!context.flags.z()) goto findopen1; -	context.cl = context.data.byte(110); -	context.dl = context.data.byte(111); +	context.cl = context.ds.byte(110); +	context.dl = context.ds.byte(111);  	context.push(context.dx); -	context.ds = context.data.word(426); +	context.ds = context.ds.word(426);  	context.dx = context.pop();  	context.bx = 0;  	context.ch = 0;  findopen1a: -	context._cmp(context.data.byte(context.bx+3), context.cl); +	context._cmp(context.ds.byte(context.bx+3), context.cl);  	if (!context.flags.z()) goto findopen2a; -	context._cmp(context.data.byte(context.bx+2), context.dl); +	context._cmp(context.ds.byte(context.bx+2), context.dl);  	if (!context.flags.z()) goto findopen2a; -	context.al = context.data.byte(context.bx+4); +	context.al = context.ds.byte(context.bx+4);  	context.ah = 0;  	context.push(context.di);  	context._add(context.di, context.ax); @@ -6780,7 +6780,7 @@ static void obtoinv(Context & context) {  	context.push(context.ax);  	context.push(context.di);  	context.push(context.bx); -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context._sub(context.di, 2);  	context._sub(context.bx, 1);  	context.al = 10; @@ -6794,10 +6794,10 @@ static void obtoinv(Context & context) {  	context.push(context.bx);  	context.push(context.di);  	context.push(context.ax); -	context.ds = context.data.word(398); +	context.ds = context.ds.word(398);  	context._cmp(context.ah, 4);  	if (context.flags.z()) goto isanextra; -	context.ds = context.data.word(446); +	context.ds = context.ds.word(446);  isanextra:  	context.cl = context.al;  	context._add(context.al, context.al); @@ -6815,7 +6815,7 @@ isanextra:  	isitworn(context);  	context.bx = context.pop();  	if (!context.flags.z()) goto finishfill; -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context._sub(context.di, 3);  	context._sub(context.bx, 2);  	context.al = 7; @@ -6830,34 +6830,34 @@ finishfill:  }  static void isitworn(Context & context) { -	context.al = context.data.byte(context.bx+12); +	context.al = context.ds.byte(context.bx+12);  	context._cmp(context.al, 'W'-'A');  	if (!context.flags.z()) goto notworn; -	context.al = context.data.byte(context.bx+13); +	context.al = context.ds.byte(context.bx+13);  	context._cmp(context.al, 'E'-'A');  notworn:  	return;  }  static void makeworn(Context & context) { -	context.data.byte(context.bx+12) = 'W'-'A'; -	context.data.byte(context.bx+13) = 'E'-'A'; +	context.ds.byte(context.bx+12) = 'W'-'A'; +	context.ds.byte(context.bx+13) = 'E'-'A';  	return;  }  static void examineob(Context & context) { -	context.data.byte(234) = 0; -	context.data.word(328) = 0; +	context.ds.byte(234) = 0; +	context.ds.word(328) = 0;  examineagain: -	context.data.byte(237) = 0; -	context.data.byte(108) = 0; -	context.data.byte(110) = 255; -	context.data.byte(111) = 255; -	context.data.byte(104) = 0; -	context.al = context.data.byte(100); -	context.data.byte(102) = context.al; -	context.data.byte(89) = 0; -	context.data.byte(231) = 0; +	context.ds.byte(237) = 0; +	context.ds.byte(108) = 0; +	context.ds.byte(110) = 255; +	context.ds.byte(111) = 255; +	context.ds.byte(104) = 0; +	context.al = context.ds.byte(100); +	context.ds.byte(102) = context.al; +	context.ds.byte(89) = 0; +	context.ds.byte(231) = 0;  	createpanel(context);  	showpanel(context);  	showman(context); @@ -6866,7 +6866,7 @@ examineagain:  	obpicture(context);  	describeob(context);  	undertextline(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	readmouse(context);  	showpointer(context);  	worktoscreen(context); @@ -6878,41 +6878,41 @@ waitexam:  	dumppointer(context);  	dumptextline(context);  	delpointer(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  	context.bx = 2494; -	context._cmp(context.data.byte(104), 0); +	context._cmp(context.ds.byte(104), 0);  	if (context.flags.z()) goto notuseinv;  	context.bx = 2556; -	context._cmp(context.data.byte(104), 1); +	context._cmp(context.ds.byte(104), 1);  	if (context.flags.z()) goto notuseinv;  	context.bx = 2618;  notuseinv:  	checkcoords(context); -	context._cmp(context.data.byte(108), 0); +	context._cmp(context.ds.byte(108), 0);  	if (context.flags.z()) goto norex;  	goto examineagain;  norex: -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto waitexam; -	context.data.byte(106) = 0; -	context._cmp(context.data.word(21), 0); +	context.ds.byte(106) = 0; +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) goto iswatching; -	context._cmp(context.data.byte(188), 255); +	context._cmp(context.ds.byte(188), 255);  	if (!context.flags.z()) goto justgetback;  iswatching:  	makemainscreen(context); -	context.data.byte(104) = 0; -	context.data.byte(110) = 255; +	context.ds.byte(104) = 0; +	context.ds.byte(110) = 255;  	return;  justgetback: -	context.data.byte(104) = 0; -	context.data.byte(110) = 255; +	context.ds.byte(104) = 0; +	context.ds.byte(110) = 255;  	return;  }  static void makemainscreen(Context & context) {  	createpanel(context); -	context.data.byte(62) = 1; +	context.ds.byte(62) = 1;  	drawfloor(context);  	spriteupdate(context);  	printsprites(context); @@ -6920,16 +6920,16 @@ static void makemainscreen(Context & context) {  	showicon(context);  	getunderzoom(context);  	undertextline(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	animpointer(context);  	worktoscreenm(context); -	context.data.byte(100) = 200; -	context.data.byte(131) = 0; +	context.ds.byte(100) = 200; +	context.ds.byte(131) = 0;  	return;  }  static void getbackfromob(Context & context) { -	context._cmp(context.data.byte(106), 1); +	context._cmp(context.ds.byte(106), 1);  	if (!context.flags.z()) goto notheldob;  	blank(context);  	return; @@ -6939,25 +6939,25 @@ notheldob:  }  static void incryanpage(Context & context) { -	context._cmp(context.data.byte(100), 222); +	context._cmp(context.ds.byte(100), 222);  	if (context.flags.z()) goto alreadyincryan; -	context.data.byte(100) = 222; +	context.ds.byte(100) = 222;  	context.al = 31;  	commandonly(context);  alreadyincryan: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto noincryan;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doincryan;  noincryan:  	return;  doincryan: -	context.ax = context.data.word(198); +	context.ax = context.ds.word(198);  	context._sub(context.ax, 80+167); -	context.data.byte(19) = -1; +	context.ds.byte(19) = -1;  findnewpage: -	context._add(context.data.byte(19), 1); +	context._add(context.ds.byte(19), 1);  	context._sub(context.ax, 18);  	if (!context.flags.c()) goto findnewpage;  	delpointer(context); @@ -6970,32 +6970,32 @@ findnewpage:  }  static void openinv(Context & context) { -	context.data.byte(104) = 1; +	context.ds.byte(104) = 1;  	context.al = 61;  	context.di = 80;  	context.bx = 58-10;  	context.dl = 240;  	printmessage(context);  	fillryan(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	return;  }  static void showryanpage(Context & context) { -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.di = 80+167;  	context.bx = 58-12;  	context.al = 12;  	context.ah = 0;  	showframe(context);  	context.al = 13; -	context._add(context.al, context.data.byte(19)); +	context._add(context.al, context.ds.byte(19));  	context.push(context.ax); -	context.al = context.data.byte(19); +	context.al = context.ds.byte(19);  	context.ah = 0;  	context.cx = 18;  	context._mul(context.cx); -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.di = 80+167;  	context._add(context.di, context.ax);  	context.bx = 58-12; @@ -7006,8 +7006,8 @@ static void showryanpage(Context & context) {  }  static void openob(Context & context) { -	context.al = context.data.byte(110); -	context.ah = context.data.byte(111); +	context.al = context.ds.byte(110); +	context.ah = context.ds.byte(111);  	context.di = 5674;  	copyname(context);  	context.di = 80; @@ -7015,7 +7015,7 @@ static void openob(Context & context) {  	context.al = 62;  	context.dl = 240;  	printmessage(context); -	context.di = context.data.word(84); +	context.di = context.ds.word(84);  	context._add(context.di, 5);  	context.bx = 58+86;  	context.es = context.cs; @@ -7032,23 +7032,23 @@ static void openob(Context & context) {  	context._mul(context.cx);  	context._add(context.ax, 80);  	context.bx = 2588; -	context.data.word(context.bx) = context.ax; +	context.ds.word(context.bx) = context.ax;  	return;  }  static void obicons(Context & context) { -	context.al = context.data.byte(99); +	context.al = context.ds.byte(99);  	getanyad(context);  	context._cmp(context.al, 255);  	if (context.flags.z()) goto cantopenit; -	context.ds = context.data.word(410); +	context.ds = context.ds.word(410);  	context.di = 210;  	context.bx = 1;  	context.al = 4;  	context.ah = 0;  	showframe(context);  cantopenit: -	context.ds = context.data.word(410); +	context.ds = context.ds.word(410);  	context.di = 260;  	context.bx = 1;  	context.al = 1; @@ -7058,7 +7058,7 @@ cantopenit:  }  static void examicon(Context & context) { -	context.ds = context.data.word(410); +	context.ds = context.ds.word(410);  	context.di = 254;  	context.bx = 5;  	context.al = 3; @@ -7068,13 +7068,13 @@ static void examicon(Context & context) {  }  static void obpicture(Context & context) { -	context.al = context.data.byte(99); -	context.ah = context.data.byte(102); +	context.al = context.ds.byte(99); +	context.ah = context.ds.byte(102);  	context._cmp(context.ah, 1);  	if (context.flags.z()) goto setframe;  	context._cmp(context.ah, 4);  	if (context.flags.z()) goto exframe; -	context.ds = context.data.word(446); +	context.ds = context.ds.word(446);  	context.di = 160;  	context.bx = 68;  	context.cl = context.al; @@ -7087,7 +7087,7 @@ static void obpicture(Context & context) {  setframe:  	return;  exframe: -	context.ds = context.data.word(398); +	context.ds = context.ds.word(398);  	context.di = 160;  	context.bx = 68;  	context.cl = context.al; @@ -7103,18 +7103,18 @@ static void describeob(Context & context) {  	getobtextstart(context);  	context.di = 33;  	context.bx = 92; -	context._cmp(context.data.byte(102), 1); +	context._cmp(context.ds.byte(102), 1);  	if (!context.flags.z()) goto notsetd;  	context.bx = 82;  notsetd:  	context.dl = 241;  	context.ah = 16; -	context.data.word(71) = 91+91; +	context.ds.word(71) = 91+91;  	printdirect(context); -	context.data.word(71) = 0; +	context.ds.word(71) = 0;  	context.di = 36;  	context.bx = 104; -	context._cmp(context.data.byte(102), 1); +	context._cmp(context.ds.byte(102), 1);  	if (!context.flags.z()) goto notsetd2;  	context.bx = 94;  notsetd2: @@ -7131,16 +7131,16 @@ notsetd2:  static void additionaltext(Context & context) {  	context._add(context.bx, 10);  	context.push(context.bx); -	context.al = context.data.byte(99); -	context.ah = context.data.byte(102); +	context.al = context.ds.byte(99); +	context.ah = context.ds.byte(102);  	context.cl = 'C';  	context.ch = 'U';  	context.dl = 'P';  	context.dh = 'E';  	compare(context);  	if (context.flags.z()) goto emptycup; -	context.al = context.data.byte(99); -	context.ah = context.data.byte(102); +	context.al = context.ds.byte(99); +	context.ah = context.ds.byte(102);  	context.cl = 'C';  	context.ch = 'U';  	context.dl = 'P'; @@ -7170,8 +7170,8 @@ fullcup:  }  static void obsthatdothings(Context & context) { -	context.al = context.data.byte(99); -	context.ah = context.data.byte(102); +	context.al = context.ds.byte(99); +	context.ah = context.ds.byte(102);  	context.cl = 'M';  	context.ch = 'E';  	context.dl = 'M'; @@ -7192,35 +7192,35 @@ notlouiscard:  }  static void getobtextstart(Context & context) { -	context.es = context.data.word(438); +	context.es = context.ds.word(438);  	context.si = 0;  	context.cx = 0+(82*2); -	context._cmp(context.data.byte(102), 2); +	context._cmp(context.ds.byte(102), 2);  	if (context.flags.z()) goto describe; -	context.es = context.data.word(440); +	context.es = context.ds.word(440);  	context.si = 0;  	context.cx = 0+(130*2); -	context._cmp(context.data.byte(102), 1); +	context._cmp(context.ds.byte(102), 1);  	if (context.flags.z()) goto describe; -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.si = 0+2080+30000+(16*114);  	context.cx = 0+2080+30000+(16*114)+((114+2)*2);  describe: -	context.al = context.data.byte(99); +	context.al = context.ds.byte(99);  	context.ah = 0;  	context._add(context.ax, context.ax);  	context._add(context.si, context.ax); -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context._add(context.ax, context.cx);  	context.si = context.ax;  	context.bx = context.ax;  tryagain:  	context.push(context.si);  	findnextcolon(context); -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context.cx = context.si;  	context.si = context.pop(); -	context._cmp(context.data.byte(102), 1); +	context._cmp(context.ds.byte(102), 1);  	if (!context.flags.z()) goto cantmakeoneup;  	context._cmp(context.al, 0);  	if (context.flags.z()) goto findsometext; @@ -7238,9 +7238,9 @@ static void searchforsame(Context & context) {  	context.si = context.cx;  searchagain:  	context._add(context.si, 1); -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  search: -	context._cmp(context.data.byte(context.si), context.al); +	context._cmp(context.ds.byte(context.si), context.al);  	if (context.flags.z()) goto gotstartletter;  	context._add(context.cx, 1);  	context._add(context.si, 1); @@ -7255,8 +7255,8 @@ gotstartletter:  keepchecking:  	context._add(context.si, 1);  	context._add(context.bx, 1); -	context.al = context.data.byte(context.bx); -	context.ah = context.data.byte(context.si); +	context.al = context.ds.byte(context.bx); +	context.ah = context.ds.byte(context.si);  	context._cmp(context.al, ':');  	if (context.flags.z()) goto foundmatch;  	context._cmp(context.al, 0); @@ -7274,7 +7274,7 @@ foundmatch:  static void findnextcolon(Context & context) {  isntcolon: -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._add(context.si, 1);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto endofcolon; @@ -7285,31 +7285,31 @@ endofcolon:  }  static void inventory(Context & context) { -	context._cmp(context.data.byte(56), 1); +	context._cmp(context.ds.byte(56), 1);  	if (context.flags.z()) goto iswatchinv; -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (context.flags.z()) goto notwatchinv;  iswatchinv:  	blank(context);  	return;  notwatchinv: -	context._cmp(context.data.byte(100), 239); +	context._cmp(context.ds.byte(100), 239);  	if (context.flags.z()) goto alreadyopinv; -	context.data.byte(100) = 239; +	context.ds.byte(100) = 239;  	context.al = 32;  	commandonly(context);  alreadyopinv: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto cantopinv;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doopeninv;  cantopinv:  	return;  doopeninv: -	context.data.word(328) = 0; -	context.data.byte(234) = 0; -	context.data.byte(237) = 0; +	context.ds.word(328) = 0; +	context.ds.byte(234) = 0; +	context.ds.byte(237) = 0;  	animpointer(context);  	createpanel(context);  	showpanel(context); @@ -7317,26 +7317,26 @@ doopeninv:  	showman(context);  	showexit(context);  	undertextline(context); -	context.data.byte(106) = 0; -	context.data.byte(104) = 2; +	context.ds.byte(106) = 0; +	context.ds.byte(104) = 2;  	openinv(context);  	readmouse(context);  	showpointer(context);  	worktoscreen(context);  	delpointer(context); -	context.data.byte(110) = 255; +	context.ds.byte(110) = 255;  	goto waitexam;  /*continuing to unbounded code: examineagain from examineob:3-66*/  examineagain: -	context.data.byte(237) = 0; -	context.data.byte(108) = 0; -	context.data.byte(110) = 255; -	context.data.byte(111) = 255; -	context.data.byte(104) = 0; -	context.al = context.data.byte(100); -	context.data.byte(102) = context.al; -	context.data.byte(89) = 0; -	context.data.byte(231) = 0; +	context.ds.byte(237) = 0; +	context.ds.byte(108) = 0; +	context.ds.byte(110) = 255; +	context.ds.byte(111) = 255; +	context.ds.byte(104) = 0; +	context.al = context.ds.byte(100); +	context.ds.byte(102) = context.al; +	context.ds.byte(89) = 0; +	context.ds.byte(231) = 0;  	createpanel(context);  	showpanel(context);  	showman(context); @@ -7345,7 +7345,7 @@ examineagain:  	obpicture(context);  	describeob(context);  	undertextline(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	readmouse(context);  	showpointer(context);  	worktoscreen(context); @@ -7357,35 +7357,35 @@ waitexam:  	dumppointer(context);  	dumptextline(context);  	delpointer(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  	context.bx = 2494; -	context._cmp(context.data.byte(104), 0); +	context._cmp(context.ds.byte(104), 0);  	if (context.flags.z()) goto notuseinv;  	context.bx = 2556; -	context._cmp(context.data.byte(104), 1); +	context._cmp(context.ds.byte(104), 1);  	if (context.flags.z()) goto notuseinv;  	context.bx = 2618;  notuseinv:  	checkcoords(context); -	context._cmp(context.data.byte(108), 0); +	context._cmp(context.ds.byte(108), 0);  	if (context.flags.z()) goto norex;  	goto examineagain;  norex: -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto waitexam; -	context.data.byte(106) = 0; -	context._cmp(context.data.word(21), 0); +	context.ds.byte(106) = 0; +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) goto iswatching; -	context._cmp(context.data.byte(188), 255); +	context._cmp(context.ds.byte(188), 255);  	if (!context.flags.z()) goto justgetback;  iswatching:  	makemainscreen(context); -	context.data.byte(104) = 0; -	context.data.byte(110) = 255; +	context.ds.byte(104) = 0; +	context.ds.byte(110) = 255;  	return;  justgetback: -	context.data.byte(104) = 0; -	context.data.byte(110) = 255; +	context.ds.byte(104) = 0; +	context.ds.byte(110) = 255;  	return;  examlist:  invlist1: @@ -7395,30 +7395,30 @@ withlist1:  }  static void setpickup(Context & context) { -	context._cmp(context.data.byte(102), 1); +	context._cmp(context.ds.byte(102), 1);  	if (context.flags.z()) goto cantpick; -	context._cmp(context.data.byte(102), 3); +	context._cmp(context.ds.byte(102), 3);  	if (context.flags.z()) goto cantpick;  	getanyad(context); -	context.al = context.data.byte(context.bx+2); +	context.al = context.ds.byte(context.bx+2);  	context._cmp(context.al, 4);  	if (!context.flags.z()) goto canpick;  cantpick:  	blank(context);  	return;  canpick: -	context._cmp(context.data.byte(100), 209); +	context._cmp(context.ds.byte(100), 209);  	if (context.flags.z()) goto alreadysp; -	context.data.byte(100) = 209; -	context.bl = context.data.byte(99); -	context.bh = context.data.byte(102); +	context.ds.byte(100) = 209; +	context.bl = context.ds.byte(99); +	context.bh = context.ds.byte(102);  	context.al = 33;  	commandwithob(context);  alreadysp: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._cmp(context.ax, 1);  	if (!context.flags.z()) goto nosetpick; -	context._cmp(context.ax, context.data.word(212)); +	context._cmp(context.ax, context.ds.word(212));  	if (!context.flags.z()) goto dosetpick;  nosetpick:  	return; @@ -7428,39 +7428,39 @@ dosetpick:  	showman(context);  	showexit(context);  	examicon(context); -	context.data.byte(106) = 1; -	context.data.byte(104) = 2; -	context._cmp(context.data.byte(102), 4); +	context.ds.byte(106) = 1; +	context.ds.byte(104) = 2; +	context._cmp(context.ds.byte(102), 4);  	if (context.flags.z()) goto pickupexob; -	context.al = context.data.byte(99); -	context.data.byte(89) = context.al; -	context.data.byte(110) = 255; +	context.al = context.ds.byte(99); +	context.ds.byte(89) = context.al; +	context.ds.byte(110) = 255;  	transfertoex(context); -	context.data.byte(89) = context.al; -	context.data.byte(102) = 4; +	context.ds.byte(89) = context.al; +	context.ds.byte(102) = 4;  	geteitherad(context); -	context.data.byte(context.bx+2) = 20; -	context.data.byte(context.bx+3) = 255; +	context.ds.byte(context.bx+2) = 20; +	context.ds.byte(context.bx+3) = 255;  	openinv(context);  	worktoscreenm(context);  	return;  pickupexob: -	context.al = context.data.byte(99); -	context.data.byte(89) = context.al; -	context.data.byte(110) = 255; +	context.al = context.ds.byte(99); +	context.ds.byte(89) = context.al; +	context.ds.byte(110) = 255;  	openinv(context);  	worktoscreenm(context);  	return;  }  static void examinventory(Context & context) { -	context._cmp(context.data.byte(100), 249); +	context._cmp(context.ds.byte(100), 249);  	if (context.flags.z()) goto alreadyexinv; -	context.data.byte(100) = 249; +	context.ds.byte(100) = 249;  	context.al = 32;  	commandonly(context);  alreadyexinv: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doexinv;  	return; @@ -7470,8 +7470,8 @@ doexinv:  	showman(context);  	showexit(context);  	examicon(context); -	context.data.byte(106) = 0; -	context.data.byte(104) = 2; +	context.ds.byte(106) = 0; +	context.ds.byte(104) = 2;  	openinv(context);  	worktoscreenm(context);  	return; @@ -7479,74 +7479,74 @@ doexinv:  static void reexfrominv(Context & context) {  	findinvpos(context); -	context.ax = context.data.word(context.bx); -	context.data.byte(100) = context.ah; -	context.data.byte(99) = context.al; -	context.data.byte(108) = 1; -	context.data.byte(234) = 0; +	context.ax = context.ds.word(context.bx); +	context.ds.byte(100) = context.ah; +	context.ds.byte(99) = context.al; +	context.ds.byte(108) = 1; +	context.ds.byte(234) = 0;  	return;  }  static void reexfromopen(Context & context) {  	return;  	findopenpos(context); -	context.ax = context.data.word(context.bx); -	context.data.byte(100) = context.ah; -	context.data.byte(99) = context.al; -	context.data.byte(108) = 1; -	context.data.byte(234) = 0; +	context.ax = context.ds.word(context.bx); +	context.ds.byte(100) = context.ah; +	context.ds.byte(99) = context.al; +	context.ds.byte(108) = 1; +	context.ds.byte(234) = 0;  	return;  }  static void swapwithinv(Context & context) { -	context.al = context.data.byte(89); -	context.ah = context.data.byte(102); -	context._cmp(context.ax, context.data.word(94)); +	context.al = context.ds.byte(89); +	context.ah = context.ds.byte(102); +	context._cmp(context.ax, context.ds.word(94));  	if (!context.flags.z()) goto difsub7; -	context._cmp(context.data.byte(100), 243); +	context._cmp(context.ds.byte(100), 243);  	if (context.flags.z()) goto alreadyswap1; -	context.data.byte(100) = 243; +	context.ds.byte(100) = 243;  difsub7: -	context.data.word(94) = context.ax; +	context.ds.word(94) = context.ax;  	context.bx = context.ax;  	context.al = 34;  	commandwithob(context);  alreadyswap1: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto cantswap1;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doswap1;  cantswap1:  	return;  doswap1: -	context.ah = context.data.byte(102); -	context.al = context.data.byte(89); +	context.ah = context.ds.byte(102); +	context.al = context.ds.byte(89);  	context.push(context.ax);  	findinvpos(context); -	context.ax = context.data.word(context.bx); -	context.data.byte(89) = context.al; -	context.data.byte(102) = context.ah; +	context.ax = context.ds.word(context.bx); +	context.ds.byte(89) = context.al; +	context.ds.byte(102) = context.ah;  	geteitherad(context); -	context.data.byte(context.bx+2) = 20; -	context.data.byte(context.bx+3) = 255; -	context.bl = context.data.byte(89); -	context.bh = context.data.byte(102); +	context.ds.byte(context.bx+2) = 20; +	context.ds.byte(context.bx+3) = 255; +	context.bl = context.ds.byte(89); +	context.bh = context.ds.byte(102);  	context.ax = context.pop(); -	context.data.byte(102) = context.ah; -	context.data.byte(89) = context.al; +	context.ds.byte(102) = context.ah; +	context.ds.byte(89) = context.al;  	context.push(context.bx);  	findinvpos(context);  	delpointer(context); -	context.al = context.data.byte(89); +	context.al = context.ds.byte(89);  	geteitherad(context); -	context.data.byte(context.bx+2) = 4; -	context.data.byte(context.bx+3) = 255; -	context.al = context.data.byte(107); -	context.data.byte(context.bx+4) = context.al; +	context.ds.byte(context.bx+2) = 4; +	context.ds.byte(context.bx+3) = 255; +	context.al = context.ds.byte(107); +	context.ds.byte(context.bx+4) = context.al;  	context.ax = context.pop(); -	context.data.byte(102) = context.ah; -	context.data.byte(89) = context.al; +	context.ds.byte(102) = context.ah; +	context.ds.byte(89) = context.al;  	fillryan(context);  	readmouse(context);  	showpointer(context); @@ -7556,21 +7556,21 @@ doswap1:  }  static void swapwithopen(Context & context) { -	context.al = context.data.byte(89); -	context.ah = context.data.byte(102); -	context._cmp(context.ax, context.data.word(94)); +	context.al = context.ds.byte(89); +	context.ah = context.ds.byte(102); +	context._cmp(context.ax, context.ds.word(94));  	if (!context.flags.z()) goto difsub8; -	context._cmp(context.data.byte(100), 242); +	context._cmp(context.ds.byte(100), 242);  	if (context.flags.z()) goto alreadyswap2; -	context.data.byte(100) = 242; +	context.ds.byte(100) = 242;  difsub8: -	context.data.word(94) = context.ax; +	context.ds.word(94) = context.ax;  	context.bx = context.ax;  	context.al = 34;  	commandwithob(context);  alreadyswap2: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto cantswap2;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doswap2; @@ -7584,11 +7584,11 @@ doswap2:  	return;  notwornswap:  	delpointer(context); -	context.al = context.data.byte(89); -	context._cmp(context.al, context.data.byte(110)); +	context.al = context.ds.byte(89); +	context._cmp(context.al, context.ds.byte(110));  	if (!context.flags.z()) goto isntsame2; -	context.al = context.data.byte(102); -	context._cmp(context.al, context.data.byte(111)); +	context.al = context.ds.byte(102); +	context._cmp(context.al, context.ds.byte(111));  	if (!context.flags.z()) goto isntsame2;  	errormessage1(context);  	return; @@ -7598,46 +7598,46 @@ isntsame2:  	if (context.flags.z()) goto sizeok2;  	return;  sizeok2: -	context.ah = context.data.byte(102); -	context.al = context.data.byte(89); +	context.ah = context.ds.byte(102); +	context.al = context.ds.byte(89);  	context.push(context.ax);  	findopenpos(context); -	context.ax = context.data.word(context.bx); -	context.data.byte(89) = context.al; -	context.data.byte(102) = context.ah; +	context.ax = context.ds.word(context.bx); +	context.ds.byte(89) = context.al; +	context.ds.byte(102) = context.ah;  	context._cmp(context.ah, 4);  	if (!context.flags.z()) goto makeswapex;  	geteitherad(context); -	context.data.byte(context.bx+2) = 20; -	context.data.byte(context.bx+3) = 255; +	context.ds.byte(context.bx+2) = 20; +	context.ds.byte(context.bx+3) = 255;  	goto actuallyswap;  makeswapex:  	transfertoex(context); -	context.data.byte(89) = context.al; -	context.data.byte(102) = 4; +	context.ds.byte(89) = context.al; +	context.ds.byte(102) = 4;  	geteitherad(context); -	context.data.byte(context.bx+2) = 20; -	context.data.byte(context.bx+3) = 255; +	context.ds.byte(context.bx+2) = 20; +	context.ds.byte(context.bx+3) = 255;  actuallyswap: -	context.bl = context.data.byte(89); -	context.bh = context.data.byte(102); +	context.bl = context.ds.byte(89); +	context.bh = context.ds.byte(102);  	context.ax = context.pop(); -	context.data.byte(102) = context.ah; -	context.data.byte(89) = context.al; +	context.ds.byte(102) = context.ah; +	context.ds.byte(89) = context.al;  	context.push(context.bx);  	findopenpos(context);  	geteitherad(context); -	context.al = context.data.byte(111); -	context.data.byte(context.bx+2) = context.al; -	context.al = context.data.byte(110); -	context.data.byte(context.bx+3) = context.al; -	context.al = context.data.byte(107); -	context.data.byte(context.bx+4) = context.al; -	context.al = context.data.byte(184); -	context.data.byte(context.bx+5) = context.al; +	context.al = context.ds.byte(111); +	context.ds.byte(context.bx+2) = context.al; +	context.al = context.ds.byte(110); +	context.ds.byte(context.bx+3) = context.al; +	context.al = context.ds.byte(107); +	context.ds.byte(context.bx+4) = context.al; +	context.al = context.ds.byte(184); +	context.ds.byte(context.bx+5) = context.al;  	context.ax = context.pop(); -	context.data.byte(102) = context.ah; -	context.data.byte(89) = context.al; +	context.ds.byte(102) = context.ah; +	context.ds.byte(89) = context.al;  	fillopen(context);  	fillryan(context);  	undertextline(context); @@ -7650,33 +7650,33 @@ actuallyswap:  }  static void intoinv(Context & context) { -	context._cmp(context.data.byte(106), 0); +	context._cmp(context.ds.byte(106), 0);  	if (!context.flags.z()) goto notout;  	outofinv(context);  	return;  notout:  	findinvpos(context); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._cmp(context.al, 255);  	if (context.flags.z()) goto canplace1;  	swapwithinv(context);  	return;  canplace1: -	context.al = context.data.byte(89); -	context.ah = context.data.byte(102); -	context._cmp(context.ax, context.data.word(94)); +	context.al = context.ds.byte(89); +	context.ah = context.ds.byte(102); +	context._cmp(context.ax, context.ds.word(94));  	if (!context.flags.z()) goto difsub1; -	context._cmp(context.data.byte(100), 220); +	context._cmp(context.ds.byte(100), 220);  	if (context.flags.z()) goto alreadyplce; -	context.data.byte(100) = 220; +	context.ds.byte(100) = 220;  difsub1: -	context.data.word(94) = context.ax; +	context.ds.word(94) = context.ax;  	context.bx = context.ax;  	context.al = 35;  	commandwithob(context);  alreadyplce: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notletgo2;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doplace; @@ -7684,13 +7684,13 @@ notletgo2:  	return;  doplace:  	delpointer(context); -	context.al = context.data.byte(89); +	context.al = context.ds.byte(89);  	getexad(context); -	context.data.byte(context.bx+2) = 4; -	context.data.byte(context.bx+3) = 255; -	context.al = context.data.byte(107); -	context.data.byte(context.bx+4) = context.al; -	context.data.byte(106) = 0; +	context.ds.byte(context.bx+2) = 4; +	context.ds.byte(context.bx+3) = 255; +	context.al = context.ds.byte(107); +	context.ds.byte(context.bx+4) = context.al; +	context.ds.byte(106) = 0;  	fillryan(context);  	readmouse(context);  	showpointer(context); @@ -7701,22 +7701,22 @@ doplace:  }  static void deletetaken(Context & context) { -	context.es = context.data.word(426); -	context.ah = context.data.byte(184); -	context.ds = context.data.word(398); +	context.es = context.ds.word(426); +	context.ah = context.ds.byte(184); +	context.ds = context.ds.word(398);  	context.si = 0+2080+30000;  	context.cx = 114;  takenloop: -	context.al = context.data.byte(context.si+11); +	context.al = context.ds.byte(context.si+11);  	context._cmp(context.al, context.ah);  	if (!context.flags.z()) goto notinhere; -	context.bl = context.data.byte(context.si+1); +	context.bl = context.ds.byte(context.si+1);  	context.bh = 0;  	context._add(context.bx, context.bx);  	context._add(context.bx, context.bx);  	context._add(context.bx, context.bx);  	context._add(context.bx, context.bx); -	context.data.byte(context.bx+2) = 254; +	context.ds.byte(context.bx+2) = 254;  notinhere:  	context._add(context.si, 16);  	if (--context.cx) goto takenloop; @@ -7725,31 +7725,31 @@ notinhere:  static void outofinv(Context & context) {  	findinvpos(context); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._cmp(context.al, 255);  	if (!context.flags.z()) goto canpick2;  	blank(context);  	return;  canpick2: -	context.bx = context.data.word(202); +	context.bx = context.ds.word(202);  	context._cmp(context.bx, 2);  	if (!context.flags.z()) goto canpick2a;  	reexfrominv(context);  	return;  canpick2a: -	context._cmp(context.ax, context.data.word(94)); +	context._cmp(context.ax, context.ds.word(94));  	if (!context.flags.z()) goto difsub3; -	context._cmp(context.data.byte(100), 221); +	context._cmp(context.ds.byte(100), 221);  	if (context.flags.z()) goto alreadygrab; -	context.data.byte(100) = 221; +	context.ds.byte(100) = 221;  difsub3: -	context.data.word(94) = context.ax; +	context.ds.word(94) = context.ax;  	context.bx = context.ax;  	context.al = 36;  	commandwithob(context);  alreadygrab: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notletgo;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto dograb; @@ -7757,14 +7757,14 @@ notletgo:  	return;  dograb:  	delpointer(context); -	context.data.byte(106) = 1; +	context.ds.byte(106) = 1;  	findinvpos(context); -	context.ax = context.data.word(context.bx); -	context.data.byte(89) = context.al; -	context.data.byte(102) = context.ah; +	context.ax = context.ds.word(context.bx); +	context.ds.byte(89) = context.al; +	context.ds.byte(102) = context.ah;  	getexad(context); -	context.data.byte(context.bx+2) = 20; -	context.data.byte(context.bx+3) = 255; +	context.ds.byte(context.bx+2) = 20; +	context.ds.byte(context.bx+3) = 255;  	fillryan(context);  	readmouse(context);  	showpointer(context); @@ -7779,7 +7779,7 @@ static void getfreead(Context & context) {  	context.cl = 4;  	context._shl(context.ax, context.cl);  	context.bx = context.ax; -	context.es = context.data.word(426); +	context.es = context.ds.word(426);  	return;  } @@ -7788,41 +7788,41 @@ static void getexad(Context & context) {  	context.bx = 16;  	context._mul(context.bx);  	context.bx = context.ax; -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context._add(context.bx, 0+2080+30000);  	return;  }  static void geteitherad(Context & context) { -	context._cmp(context.data.byte(102), 4); +	context._cmp(context.ds.byte(102), 4);  	if (context.flags.z()) goto isinexlist; -	context.al = context.data.byte(89); +	context.al = context.ds.byte(89);  	getfreead(context);  	return;  isinexlist: -	context.al = context.data.byte(89); +	context.al = context.ds.byte(89);  	getexad(context);  	return;  }  static void getanyad(Context & context) { -	context._cmp(context.data.byte(102), 4); +	context._cmp(context.ds.byte(102), 4);  	if (context.flags.z()) goto isex; -	context._cmp(context.data.byte(102), 2); +	context._cmp(context.ds.byte(102), 2);  	if (context.flags.z()) goto isfree; -	context.al = context.data.byte(99); +	context.al = context.ds.byte(99);  	getsetad(context); -	context.ax = context.data.word(context.bx+4); +	context.ax = context.ds.word(context.bx+4);  	return;  isfree: -	context.al = context.data.byte(99); +	context.al = context.ds.byte(99);  	getfreead(context); -	context.ax = context.data.word(context.bx+7); +	context.ax = context.ds.word(context.bx+7);  	return;  isex: -	context.al = context.data.byte(99); +	context.al = context.ds.byte(99);  	getexad(context); -	context.ax = context.data.word(context.bx+7); +	context.ax = context.ds.word(context.bx+7);  	return;  } @@ -7842,23 +7842,23 @@ isex3:  }  static void getopenedsize(Context & context) { -	context._cmp(context.data.byte(111), 4); +	context._cmp(context.ds.byte(111), 4);  	if (context.flags.z()) goto isex2; -	context._cmp(context.data.byte(111), 2); +	context._cmp(context.ds.byte(111), 2);  	if (context.flags.z()) goto isfree2; -	context.al = context.data.byte(110); +	context.al = context.ds.byte(110);  	getsetad(context); -	context.ax = context.data.word(context.bx+3); +	context.ax = context.ds.word(context.bx+3);  	return;  isfree2: -	context.al = context.data.byte(110); +	context.al = context.ds.byte(110);  	getfreead(context); -	context.ax = context.data.word(context.bx+7); +	context.ax = context.ds.word(context.bx+7);  	return;  isex2: -	context.al = context.data.byte(110); +	context.al = context.ds.byte(110);  	getexad(context); -	context.ax = context.data.word(context.bx+7); +	context.ax = context.ds.word(context.bx+7);  	return;  } @@ -7867,40 +7867,40 @@ static void getsetad(Context & context) {  	context.bx = 64;  	context._mul(context.bx);  	context.bx = context.ax; -	context.es = context.data.word(428); +	context.es = context.ds.word(428);  	return;  }  static void findinvpos(Context & context) { -	context.cx = context.data.word(198); +	context.cx = context.ds.word(198);  	context._sub(context.cx, 80);  	context.bx = -1;  findinv1:  	context._add(context.bx, 1);  	context._sub(context.cx, 44);  	if (!context.flags.c()) goto findinv1; -	context.cx = context.data.word(200); +	context.cx = context.ds.word(200);  	context._sub(context.cx, 58);  	context._sub(context.bx, 5);  findinv2:  	context._add(context.bx, 5);  	context._sub(context.cx, 44);  	if (!context.flags.c()) goto findinv2; -	context.al = context.data.byte(19); +	context.al = context.ds.byte(19);  	context.ah = 0;  	context.cx = 10;  	context._mul(context.cx);  	context._add(context.bx, context.ax);  	context.al = context.bl; -	context.data.byte(107) = context.al; +	context.ds.byte(107) = context.al;  	context._add(context.bx, context.bx); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context._add(context.bx, 0+(228*13)+32);  	return;  }  static void findopenpos(Context & context) { -	context.cx = context.data.word(198); +	context.cx = context.ds.word(198);  	context._sub(context.cx, 80);  	context.bx = -1;  findopenp1: @@ -7908,26 +7908,26 @@ findopenp1:  	context._sub(context.cx, 44);  	if (!context.flags.c()) goto findopenp1;  	context.al = context.bl; -	context.data.byte(107) = context.al; +	context.ds.byte(107) = context.al;  	context._add(context.bx, context.bx); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context._add(context.bx, 0+(228*13));  	return;  }  static void dropobject(Context & context) { -	context._cmp(context.data.byte(100), 223); +	context._cmp(context.ds.byte(100), 223);  	if (context.flags.z()) goto alreadydrop; -	context.data.byte(100) = 223; -	context._cmp(context.data.byte(106), 0); +	context.ds.byte(100) = 223; +	context._cmp(context.ds.byte(106), 0);  	if (context.flags.z()) { blank(context); return; }; -	context.bl = context.data.byte(89); -	context.bh = context.data.byte(102); +	context.bl = context.ds.byte(89); +	context.bh = context.ds.byte(102);  	context.al = 37;  	commandwithob(context);  alreadydrop: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto nodrop;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto dodrop; @@ -7940,11 +7940,11 @@ dodrop:  	wornerror(context);  	return;  nowornerror: -	context._cmp(context.data.byte(184), 47); +	context._cmp(context.ds.byte(184), 47);  	if (context.flags.z()) goto nodrop2; -	context.cl = context.data.byte(151); +	context.cl = context.ds.byte(151);  	context._add(context.cl, 12); -	context.ch = context.data.byte(152); +	context.ch = context.ds.byte(152);  	context._add(context.ch, 12);  	checkone(context);  	context._cmp(context.cl, 2); @@ -7953,14 +7953,14 @@ nodrop2:  	droperror(context);  	return;  nodroperror: -	context._cmp(context.data.byte(128), 64); +	context._cmp(context.ds.byte(128), 64);  	if (!context.flags.z()) goto notinlift; -	context._cmp(context.data.byte(129), 64); +	context._cmp(context.ds.byte(129), 64);  	if (!context.flags.z()) goto notinlift;  	droperror(context);  	return;  notinlift: -	context.al = context.data.byte(89); +	context.al = context.ds.byte(89);  	context.ah = 4;  	context.cl = 'G';  	context.ch = 'U'; @@ -7968,7 +7968,7 @@ notinlift:  	context.dh = 'A';  	compare(context);  	if (context.flags.z()) { cantdrop(context); return; }; -	context.al = context.data.byte(89); +	context.al = context.ds.byte(89);  	context.ah = 4;  	context.cl = 'S';  	context.ch = 'H'; @@ -7976,38 +7976,38 @@ notinlift:  	context.dh = 'D';  	compare(context);  	if (context.flags.z()) { cantdrop(context); return; }; -	context.data.byte(102) = 4; -	context.al = context.data.byte(89); +	context.ds.byte(102) = 4; +	context.al = context.ds.byte(89);  	getexad(context); -	context.data.byte(context.bx+2) = 0; -	context.al = context.data.byte(151); +	context.ds.byte(context.bx+2) = 0; +	context.al = context.ds.byte(151);  	context._add(context.al, 4);  	context.cl = 4;  	context._shr(context.al, context.cl); -	context._add(context.al, context.data.byte(148)); -	context.ah = context.data.byte(152); +	context._add(context.al, context.ds.byte(148)); +	context.ah = context.ds.byte(152);  	context._add(context.ah, 8);  	context.cl = 4;  	context._shr(context.ah, context.cl); -	context._add(context.ah, context.data.byte(149)); -	context.data.byte(context.bx+3) = context.al; -	context.data.byte(context.bx+5) = context.ah; -	context.al = context.data.byte(151); +	context._add(context.ah, context.ds.byte(149)); +	context.ds.byte(context.bx+3) = context.al; +	context.ds.byte(context.bx+5) = context.ah; +	context.al = context.ds.byte(151);  	context._add(context.al, 4);  	context._and(context.al, 15); -	context.ah = context.data.byte(152); +	context.ah = context.ds.byte(152);  	context._add(context.ah, 8);  	context._and(context.ah, 15); -	context.data.byte(context.bx+4) = context.al; -	context.data.byte(context.bx+6) = context.ah; -	context.data.byte(106) = 0; -	context.al = context.data.byte(184); -	context.data.byte(context.bx) = context.al; +	context.ds.byte(context.bx+4) = context.al; +	context.ds.byte(context.bx+6) = context.ah; +	context.ds.byte(106) = 0; +	context.al = context.ds.byte(184); +	context.ds.byte(context.bx) = context.al;  	return;  }  static void droperror(Context & context) { -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	delpointer(context);  	context.di = 76;  	context.bx = 21; @@ -8020,13 +8020,13 @@ static void droperror(Context & context) {  	showpanel(context);  	showman(context);  	examicon(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	worktoscreenm(context);  	return;  }  static void cantdrop(Context & context) { -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	delpointer(context);  	context.di = 76;  	context.bx = 21; @@ -8039,13 +8039,13 @@ static void cantdrop(Context & context) {  	showpanel(context);  	showman(context);  	examicon(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	worktoscreenm(context);  	return;  }  static void wornerror(Context & context) { -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	delpointer(context);  	context.di = 76;  	context.bx = 21; @@ -8058,17 +8058,17 @@ static void wornerror(Context & context) {  	showpanel(context);  	showman(context);  	examicon(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	worktoscreenm(context);  	return;  }  static void removeobfrominv(Context & context) { -	context._cmp(context.data.byte(99), 100); +	context._cmp(context.ds.byte(99), 100);  	if (context.flags.z()) goto obnotexist;  	getanyad(context);  	context.di = context.bx; -	context.cl = context.data.byte(99); +	context.cl = context.ds.byte(99);  	context.ch = 0;  	deleteexobject(context);  obnotexist: @@ -8076,33 +8076,33 @@ obnotexist:  }  static void selectopenob(Context & context) { -	context.al = context.data.byte(99); +	context.al = context.ds.byte(99);  	getanyad(context);  	context._cmp(context.al, 255);  	if (!context.flags.z()) goto canopenit1;  	blank(context);  	return;  canopenit1: -	context._cmp(context.data.byte(100), 224); +	context._cmp(context.ds.byte(100), 224);  	if (context.flags.z()) goto alreadyopob; -	context.data.byte(100) = 224; -	context.bl = context.data.byte(99); -	context.bh = context.data.byte(102); +	context.ds.byte(100) = 224; +	context.bl = context.ds.byte(99); +	context.bh = context.ds.byte(102);  	context.al = 38;  	commandwithob(context);  alreadyopob: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto noopenob;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doopenob;  noopenob:  	return;  doopenob: -	context.al = context.data.byte(99); -	context.data.byte(110) = context.al; -	context.al = context.data.byte(102); -	context.data.byte(111) = context.al; +	context.al = context.ds.byte(99); +	context.ds.byte(110) = context.al; +	context.al = context.ds.byte(102); +	context.ds.byte(111) = context.al;  	createpanel(context);  	showpanel(context);  	showman(context); @@ -8119,41 +8119,41 @@ doopenob:  }  static void useopened(Context & context) { -	context._cmp(context.data.byte(110), 255); +	context._cmp(context.ds.byte(110), 255);  	if (context.flags.z()) goto cannotuseopen; -	context._cmp(context.data.byte(106), 0); +	context._cmp(context.ds.byte(106), 0);  	if (!context.flags.z()) goto notout2;  	outofopen(context);  	return;  notout2:  	findopenpos(context); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._cmp(context.al, 255);  	if (context.flags.z()) goto canplace3;  	swapwithopen(context);  cannotuseopen:  	return;  canplace3: -	context._cmp(context.data.byte(106), 1); +	context._cmp(context.ds.byte(106), 1);  	if (context.flags.z()) goto intoopen;  	blank(context);  	return;  intoopen: -	context.al = context.data.byte(89); -	context.ah = context.data.byte(102); -	context._cmp(context.ax, context.data.word(94)); +	context.al = context.ds.byte(89); +	context.ah = context.ds.byte(102); +	context._cmp(context.ax, context.ds.word(94));  	if (!context.flags.z()) goto difsub2; -	context._cmp(context.data.byte(100), 227); +	context._cmp(context.ds.byte(100), 227);  	if (context.flags.z()) goto alreadyplc2; -	context.data.byte(100) = 227; +	context.ds.byte(100) = 227;  difsub2: -	context.data.word(94) = context.ax; +	context.ds.word(94) = context.ax;  	context.bx = context.ax;  	context.al = 35;  	commandwithob(context);  alreadyplc2: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notletgo3;  	context._cmp(context.ax, 1);  	if (context.flags.z()) goto doplace2; @@ -8167,11 +8167,11 @@ doplace2:  	return;  notworntoopen:  	delpointer(context); -	context.al = context.data.byte(89); -	context._cmp(context.al, context.data.byte(110)); +	context.al = context.ds.byte(89); +	context._cmp(context.al, context.ds.byte(110));  	if (!context.flags.z()) goto isntsame; -	context.al = context.data.byte(102); -	context._cmp(context.al, context.data.byte(111)); +	context.al = context.ds.byte(102); +	context._cmp(context.al, context.ds.byte(111));  	if (!context.flags.z()) goto isntsame;  	errormessage1(context);  	return; @@ -8181,17 +8181,17 @@ isntsame:  	if (context.flags.z()) goto sizeok1;  	return;  sizeok1: -	context.data.byte(106) = 0; -	context.al = context.data.byte(89); +	context.ds.byte(106) = 0; +	context.al = context.ds.byte(89);  	geteitherad(context); -	context.al = context.data.byte(111); -	context.data.byte(context.bx+2) = context.al; -	context.al = context.data.byte(110); -	context.data.byte(context.bx+3) = context.al; -	context.al = context.data.byte(107); -	context.data.byte(context.bx+4) = context.al; -	context.al = context.data.byte(184); -	context.data.byte(context.bx+5) = context.al; +	context.al = context.ds.byte(111); +	context.ds.byte(context.bx+2) = context.al; +	context.al = context.ds.byte(110); +	context.ds.byte(context.bx+3) = context.al; +	context.al = context.ds.byte(107); +	context.ds.byte(context.bx+4) = context.al; +	context.al = context.ds.byte(184); +	context.ds.byte(context.bx+5) = context.al;  	fillopen(context);  	undertextline(context);  	readmouse(context); @@ -8227,7 +8227,7 @@ static void errormessage1(Context & context) {  }  static void errormessage2(Context & context) { -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	delpointer(context);  	context.di = 76;  	context.bx = 21; @@ -8275,9 +8275,9 @@ static void errormessage3(Context & context) {  static void checkobjectsize(Context & context) {  	getopenedsize(context);  	context.push(context.ax); -	context.al = context.data.byte(89); +	context.al = context.ds.byte(89);  	geteitherad(context); -	context.al = context.data.byte(context.bx+9); +	context.al = context.ds.byte(context.bx+9);  	context.cx = context.pop();  	context._cmp(context.al, 255);  	if (!context.flags.z()) goto notunsized; @@ -8314,29 +8314,29 @@ sizeok:  }  static void outofopen(Context & context) { -	context._cmp(context.data.byte(110), 255); +	context._cmp(context.ds.byte(110), 255);  	if (context.flags.z()) goto cantuseopen;  	findopenpos(context); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._cmp(context.al, 255);  	if (!context.flags.z()) goto canpick4;  cantuseopen:  	blank(context);  	return;  canpick4: -	context._cmp(context.ax, context.data.word(94)); +	context._cmp(context.ax, context.ds.word(94));  	if (!context.flags.z()) goto difsub4; -	context._cmp(context.data.byte(100), 228); +	context._cmp(context.ds.byte(100), 228);  	if (context.flags.z()) goto alreadygrb; -	context.data.byte(100) = 228; +	context.ds.byte(100) = 228;  difsub4: -	context.data.word(94) = context.ax; +	context.ds.word(94) = context.ax;  	context.bx = context.ax;  	context.al = 36;  	commandwithob(context);  alreadygrb: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notletgo4;  	context._cmp(context.ax, 1);  	if (context.flags.z()) goto dogrb; @@ -8347,24 +8347,24 @@ notletgo4:  	return;  dogrb:  	delpointer(context); -	context.data.byte(106) = 1; +	context.ds.byte(106) = 1;  	findopenpos(context); -	context.ax = context.data.word(context.bx); -	context.data.byte(89) = context.al; -	context.data.byte(102) = context.ah; +	context.ax = context.ds.word(context.bx); +	context.ds.byte(89) = context.al; +	context.ds.byte(102) = context.ah;  	context._cmp(context.ah, 4);  	if (!context.flags.z()) goto makeintoex;  	geteitherad(context); -	context.data.byte(context.bx+2) = 20; -	context.data.byte(context.bx+3) = 255; +	context.ds.byte(context.bx+2) = 20; +	context.ds.byte(context.bx+3) = 255;  	goto actuallyout;  makeintoex:  	transfertoex(context); -	context.data.byte(89) = context.al; -	context.data.byte(102) = 4; +	context.ds.byte(89) = context.al; +	context.ds.byte(102) = 4;  	geteitherad(context); -	context.data.byte(context.bx+2) = 20; -	context.data.byte(context.bx+3) = 255; +	context.ds.byte(context.bx+2) = 20; +	context.ds.byte(context.bx+3) = 255;  actuallyout:  	fillopen(context);  	undertextline(context); @@ -8379,52 +8379,52 @@ actuallyout:  static void transfertoex(Context & context) {  	emergencypurge(context);  	getexpos(context); -	context.al = context.data.byte(10); +	context.al = context.ds.byte(10);  	context.push(context.ax);  	context.push(context.di); -	context.al = context.data.byte(89); +	context.al = context.ds.byte(89);  	context.ah = 0;  	context.bx = 16;  	context._mul(context.bx); -	context.ds = context.data.word(426); +	context.ds = context.ds.word(426);  	context.si = context.ax;  	context.cx = 8;  	while(--context.cx) 	context._movsw();   	context.di = context.pop(); -	context.al = context.data.byte(184); -	context.data.byte(context.di) = context.al; -	context.data.byte(context.di+11) = context.al; -	context.al = context.data.byte(89); -	context.data.byte(context.di+1) = context.al; -	context.data.byte(context.di+2) = 4; -	context.data.byte(context.di+3) = 255; -	context.al = context.data.byte(107); -	context.data.byte(context.di+4) = context.al; -	context.al = context.data.byte(89); -	context.data.byte(90) = context.al; +	context.al = context.ds.byte(184); +	context.ds.byte(context.di) = context.al; +	context.ds.byte(context.di+11) = context.al; +	context.al = context.ds.byte(89); +	context.ds.byte(context.di+1) = context.al; +	context.ds.byte(context.di+2) = 4; +	context.ds.byte(context.di+3) = 255; +	context.al = context.ds.byte(107); +	context.ds.byte(context.di+4) = context.al; +	context.al = context.ds.byte(89); +	context.ds.byte(90) = context.al;  	transfermap(context);  	transferinv(context);  	transfertext(context); -	context.al = context.data.byte(89); +	context.al = context.ds.byte(89);  	context.ah = 0;  	context.bx = 16;  	context._mul(context.bx); -	context.ds = context.data.word(426); +	context.ds = context.ds.word(426);  	context.si = context.ax; -	context.data.byte(context.si+2) = 254; +	context.ds.byte(context.si+2) = 254;  	pickupconts(context);  	context.ax = context.pop();  	return;  }  static void pickupconts(Context & context) { -	context.al = context.data.byte(context.si+7); +	context.al = context.ds.byte(context.si+7);  	context._cmp(context.al, 255);  	if (context.flags.z()) goto notopenable; -	context.al = context.data.byte(89); -	context.ah = context.data.byte(102); -	context.dl = context.data.byte(10); -	context.es = context.data.word(426); +	context.al = context.ds.byte(89); +	context.ah = context.ds.byte(102); +	context.dl = context.ds.byte(10); +	context.es = context.ds.word(426);  	context.bx = 0;  	context.cx = 0;  pickupcontloop: @@ -8433,11 +8433,11 @@ pickupcontloop:  	context.push(context.bx);  	context.push(context.dx);  	context.push(context.ax); -	context._cmp(context.data.byte(context.bx+2), context.ah); +	context._cmp(context.ds.byte(context.bx+2), context.ah);  	if (!context.flags.z()) goto notinsidethis; -	context._cmp(context.data.byte(context.bx+3), context.al); +	context._cmp(context.ds.byte(context.bx+3), context.al);  	if (!context.flags.z()) goto notinsidethis; -	context.data.byte(90) = context.cl; +	context.ds.byte(90) = context.cl;  	transfercontoex(context);  notinsidethis:  	context.ax = context.pop(); @@ -8467,76 +8467,76 @@ static void transfercontoex(Context & context) {  	while(--context.cx) 	context._movsw();   	context.di = context.pop();  	context.dx = context.pop(); -	context.al = context.data.byte(184); -	context.data.byte(context.di) = context.al; -	context.data.byte(context.di+11) = context.al; -	context.al = context.data.byte(90); -	context.data.byte(context.di+1) = context.al; -	context.data.byte(context.di+3) = context.dl; -	context.data.byte(context.di+2) = 4; +	context.al = context.ds.byte(184); +	context.ds.byte(context.di) = context.al; +	context.ds.byte(context.di+11) = context.al; +	context.al = context.ds.byte(90); +	context.ds.byte(context.di+1) = context.al; +	context.ds.byte(context.di+3) = context.dl; +	context.ds.byte(context.di+2) = 4;  	transfermap(context);  	transferinv(context);  	transfertext(context);  	context.si = context.pop();  	context.ds = context.pop(); -	context.data.byte(context.si+2) = 255; +	context.ds.byte(context.si+2) = 255;  	return;  }  static void transfertext(Context & context) { -	context.es = context.data.word(398); -	context.al = context.data.byte(10); +	context.es = context.ds.word(398); +	context.al = context.ds.byte(10);  	context.ah = 0;  	context._add(context.ax, context.ax);  	context.bx = 0+2080+30000+(16*114);  	context._add(context.bx, context.ax); -	context.di = context.data.word(14); -	context.data.word(context.bx) = context.di; +	context.di = context.ds.word(14); +	context.ds.word(context.bx) = context.di;  	context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2)); -	context.al = context.data.byte(90); +	context.al = context.ds.byte(90);  	context.ah = 0;  	context._add(context.ax, context.ax); -	context.ds = context.data.word(438); +	context.ds = context.ds.word(438);  	context.bx = 0;  	context._add(context.bx, context.ax);  	context.si = 0+(82*2); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._add(context.si, context.ax);  moretext:  	context._lodsb();  	context._stosb(); -	context._add(context.data.word(14), 1); +	context._add(context.ds.word(14), 1);  	context._cmp(context.al, 0);  	if (!context.flags.z()) goto moretext;  	return;  }  static void getexpos(Context & context) { -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.al = 0;  	context.di = 0+2080+30000;  tryanotherex: -	context._cmp(context.data.byte(context.di+2), 255); +	context._cmp(context.ds.byte(context.di+2), 255);  	if (context.flags.z()) goto foundnewex;  	context._add(context.di, 16);  	context._add(context.al, 1);  	context._cmp(context.al, 114);  	if (!context.flags.z()) goto tryanotherex;  foundnewex: -	context.data.byte(10) = context.al; +	context.ds.byte(10) = context.al;  	return;  }  static void purgealocation(Context & context) {  	context.push(context.ax); -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.di = 0+2080+30000;  	context.bx = context.pop();  	context.cx = 0;  purgeloc: -	context._cmp(context.bl, context.data.byte(context.di+0)); +	context._cmp(context.bl, context.ds.byte(context.di+0));  	if (!context.flags.z()) goto dontpurge; -	context._cmp(context.data.byte(context.di+2), 0); +	context._cmp(context.ds.byte(context.di+2), 0);  	if (!context.flags.z()) goto dontpurge;  	context.push(context.di);  	context.push(context.es); @@ -8557,14 +8557,14 @@ dontpurge:  static void emergencypurge(Context & context) {  checkpurgeagain: -	context.ax = context.data.word(12); +	context.ax = context.ds.word(12);  	context._add(context.ax, 4000);  	context._cmp(context.ax, 30000);  	if (context.flags.c()) goto notnearframeend;  	purgeanitem(context);  	goto checkpurgeagain;  notnearframeend: -	context.ax = context.data.word(14); +	context.ax = context.ds.word(14);  	context._add(context.ax, 400);  	context._cmp(context.ax, 18000);  	if (context.flags.c()) goto notneartextend; @@ -8575,20 +8575,20 @@ notneartextend:  }  static void purgeanitem(Context & context) { -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.di = 0+2080+30000; -	context.bl = context.data.byte(184); +	context.bl = context.ds.byte(184);  	context.cx = 0;  lookforpurge: -	context.al = context.data.byte(context.di+2); +	context.al = context.ds.byte(context.di+2);  	context._cmp(context.al, 0);  	if (!context.flags.z()) goto cantpurge; -	context._cmp(context.data.byte(context.di+12), 2); +	context._cmp(context.ds.byte(context.di+12), 2);  	if (context.flags.z()) goto iscup; -	context._cmp(context.data.byte(context.di+12), 255); +	context._cmp(context.ds.byte(context.di+12), 255);  	if (!context.flags.z()) goto cantpurge;  iscup: -	context._cmp(context.data.byte(context.di+11), context.bl); +	context._cmp(context.ds.byte(context.di+11), context.bl);  	if (context.flags.z()) goto cantpurge;  	deleteexobject(context);  	return; @@ -8598,13 +8598,13 @@ cantpurge:  	context._cmp(context.cx, 114);  	if (!context.flags.z()) goto lookforpurge;  	context.di = 0+2080+30000; -	context.bl = context.data.byte(184); +	context.bl = context.ds.byte(184);  	context.cx = 0;  lookforpurge2: -	context.al = context.data.byte(context.di+2); +	context.al = context.ds.byte(context.di+2);  	context._cmp(context.al, 0);  	if (!context.flags.z()) goto cantpurge2; -	context._cmp(context.data.byte(context.di+12), 255); +	context._cmp(context.ds.byte(context.di+12), 255);  	if (!context.flags.z()) goto cantpurge2;  	deleteexobject(context);  	return; @@ -8643,7 +8643,7 @@ static void deleteexobject(Context & context) {  	context.di = 0+2080+30000;  	context.cx = 0;  deleteconts: -	context._cmp(context.data.word(context.di+2), context.bx); +	context._cmp(context.ds.word(context.di+2), context.bx);  	if (!context.flags.z()) goto notinsideex;  	context.push(context.bx);  	context.push(context.cx); @@ -8667,33 +8667,33 @@ static void deleteexframe(Context & context) {  	context._add(context.di, context.ax);  	context._add(context.ax, context.ax);  	context._add(context.di, context.ax); -	context.al = context.data.byte(context.di); +	context.al = context.ds.byte(context.di);  	context.ah = 0; -	context.cl = context.data.byte(context.di+1); +	context.cl = context.ds.byte(context.di+1);  	context.ch = 0;  	context._mul(context.cx); -	context.si = context.data.word(context.di+2); +	context.si = context.ds.word(context.di+2);  	context.push(context.si);  	context._add(context.si, 0+2080);  	context.cx = 30000; -	context._sub(context.cx, context.data.word(context.di+2)); +	context._sub(context.cx, context.ds.word(context.di+2));  	context.di = context.si;  	context._add(context.si, context.ax);  	context.push(context.ax);  	context.ds = context.es;  	while(--context.cx) 	context._movsb();   	context.bx = context.pop(); -	context._sub(context.data.word(12), context.bx); +	context._sub(context.ds.word(12), context.bx);  	context.si = context.pop();  	context.cx = 114*3;  	context.di = 0;  shuffleadsdown: -	context.ax = context.data.word(context.di+2); +	context.ax = context.ds.word(context.di+2);  	context._cmp(context.ax, context.si);  	if (context.flags.c()) goto beforethisone;  	context._sub(context.ax, context.bx);  beforethisone: -	context.data.word(context.di+2) = context.ax; +	context.ds.word(context.di+2) = context.ax;  	context._add(context.di, 6);  	if (--context.cx) goto shuffleadsdown;  	return; @@ -8704,14 +8704,14 @@ static void deleteextext(Context & context) {  	context.ah = 0;  	context._add(context.ax, context.ax);  	context._add(context.di, context.ax); -	context.ax = context.data.word(context.di); +	context.ax = context.ds.word(context.di);  	context.si = context.ax;  	context.di = context.ax;  	context._add(context.si, 0+2080+30000+(16*114)+((114+2)*2));  	context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2));  	context.ax = 0;  findlenextext: -	context.cl = context.data.byte(context.si); +	context.cl = context.ds.byte(context.si);  	context._add(context.ax, 1);  	context._add(context.si, 1);  	context._cmp(context.cl, 0); @@ -8724,17 +8724,17 @@ findlenextext:  	context._sub(context.cx, context.bx);  	while(--context.cx) 	context._movsb();   	context.bx = context.pop(); -	context._sub(context.data.word(14), context.bx); +	context._sub(context.ds.word(14), context.bx);  	context.si = context.pop();  	context.cx = 114;  	context.di = 0+2080+30000+(16*114);  shuffletextads: -	context.ax = context.data.word(context.di); +	context.ax = context.ds.word(context.di);  	context._cmp(context.ax, context.si);  	if (context.flags.c()) goto beforethistext;  	context._sub(context.ax, context.bx);  beforethistext: -	context.data.word(context.di) = context.ax; +	context.ds.word(context.di) = context.ax;  	context._add(context.di, 2);  	if (--context.cx) goto shuffletextads;  	return; @@ -8743,7 +8743,7 @@ beforethistext:  static void blockget(Context & context) {  	context.ah = context.al;  	context.al = 0; -	context.ds = context.data.word(416); +	context.ds = context.ds.word(416);  	context.si = 0+192;  	context._add(context.si, context.ax);  	return; @@ -8761,7 +8761,7 @@ static void drawfloor(Context & context) {  	showallex(context);  	paneltomap(context);  	initrain(context); -	context.data.byte(62) = 0; +	context.ds.byte(62) = 0;  	context.bx = context.pop();  	context.es = context.pop();  	return; @@ -8778,8 +8778,8 @@ static void calcmapad(Context & context) {  	context.ax.cbw();  	context.bx = 8;  	context._mul(context.bx); -	context._add(context.ax, context.data.word(121)); -	context.data.word(117) = context.ax; +	context._add(context.ax, context.ds.word(121)); +	context.ds.word(117) = context.ax;  	context.dx = context.pop();  	context.cx = context.pop();  	context.al = 10; @@ -8789,13 +8789,13 @@ static void calcmapad(Context & context) {  	context.ax.cbw();  	context.bx = 8;  	context._mul(context.bx); -	context._add(context.ax, context.data.word(123)); -	context.data.word(119) = context.ax; +	context._add(context.ax, context.ds.word(123)); +	context.ds.word(119) = context.ax;  	return;  }  static void getdimension(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32);  	context.ch = 0;  dimloop1: @@ -8847,14 +8847,14 @@ finishdim4:  	context._shl(context.ax, 1);  	context._shl(context.ax, 1);  	context._shl(context.ax, 1); -	context.data.word(125) = context.ax; +	context.ds.word(125) = context.ax;  	context.al = context.ch;  	context.ah = 0;  	context._shl(context.ax, 1);  	context._shl(context.ax, 1);  	context._shl(context.ax, 1);  	context._shl(context.ax, 1); -	context.data.word(127) = context.ax; +	context.ds.word(127) = context.ax;  	context._sub(context.dl, context.cl);  	context._sub(context.dh, context.ch);  	context.al = context.dl; @@ -8863,21 +8863,21 @@ finishdim4:  	context._shl(context.ax, 1);  	context._shl(context.ax, 1);  	context._shl(context.ax, 1); -	context.data.byte(128) = context.al; +	context.ds.byte(128) = context.al;  	context.al = context.dh;  	context.ah = 0;  	context._shl(context.ax, 1);  	context._shl(context.ax, 1);  	context._shl(context.ax, 1);  	context._shl(context.ax, 1); -	context.data.byte(129) = context.al; +	context.ds.byte(129) = context.al;  	return;  }  static void addalong(Context & context) {  	context.ah = 11;  addloop: -	context._cmp(context.data.byte(context.bx), 0); +	context._cmp(context.ds.byte(context.bx), 0);  	if (!context.flags.z()) goto gotalong;  	context._add(context.bx, 3);  	context._sub(context.ah, 1); @@ -8892,7 +8892,7 @@ gotalong:  static void addlength(Context & context) {  	context.ah = 10;  addloop2: -	context._cmp(context.data.byte(context.bx), 0); +	context._cmp(context.ds.byte(context.bx), 0);  	if (!context.flags.z()) goto gotlength;  	context._add(context.bx, 3*11);  	context._sub(context.ah, 1); @@ -8905,13 +8905,13 @@ gotlength:  }  static void drawflags(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.di = 0+(228*13)+32+60+(32*32); -	context.al = context.data.byte(149); +	context.al = context.ds.byte(149);  	context.ah = 0;  	context.cx = 66;  	context._mul(context.cx); -	context.bl = context.data.byte(148); +	context.bl = context.ds.byte(148);  	context.bh = 0;  	context._add(context.ax, context.bx);  	context.si = 0; @@ -8921,9 +8921,9 @@ _tmp28:  	context.push(context.cx);  	context.cx = 11;  _tmp28a: -	context.ds = context.data.word(418); +	context.ds = context.ds.word(418);  	context._lodsb(); -	context.ds = context.data.word(416); +	context.ds = context.ds.word(416);  	context.push(context.si);  	context.push(context.ax);  	context.ah = 0; @@ -8942,15 +8942,15 @@ _tmp28a:  }  static void eraseoldobs(Context & context) { -	context._cmp(context.data.byte(62), 0); +	context._cmp(context.ds.byte(62), 0);  	if (context.flags.z()) goto donterase; -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;  	context.cx = 16;  oberase:  	context.push(context.cx);  	context.push(context.bx); -	context.ax = context.data.word(context.bx+20); +	context.ax = context.ds.word(context.bx+20);  	context._cmp(context.ax, 0x0ffff);  	if (context.flags.z()) goto notthisob;  	context.di = context.bx; @@ -8967,21 +8967,21 @@ donterase:  }  static void showallobs(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32); -	context.data.word(18) = context.bx; +	context.ds.word(18) = context.bx;  	context.di = context.bx;  	context.cx = 128*5;  	context.al = 255;  	while(--context.cx) 	context._stosb(); -	context.es = context.data.word(444); -	context.data.word(166) = context.es; +	context.es = context.ds.word(444); +	context.ds.word(166) = context.es;  	context.ax = 0; -	context.data.word(164) = context.ax; +	context.ds.word(164) = context.ax;  	context.ax = 0+2080; -	context.data.word(162) = context.ax; -	context.data.byte(181) = 0; -	context.ds = context.data.word(428); +	context.ds.word(162) = context.ax; +	context.ds.byte(181) = 0; +	context.ds = context.ds.word(428);  	context.si = 0;  	context.cx = 128;  showobsloop: @@ -8989,14 +8989,14 @@ showobsloop:  	context.push(context.si);  	context.push(context.si);  	context._add(context.si, 58); -	context.es = context.data.word(428); +	context.es = context.ds.word(428);  	getmapad(context);  	context.si = context.pop();  	context._cmp(context.ch, 0);  	if (context.flags.z()) goto blankframe; -	context.al = context.data.byte(context.si+18); +	context.al = context.ds.byte(context.si+18);  	context.ah = 0; -	context.data.word(160) = context.ax; +	context.ds.word(160) = context.ax;  	context._cmp(context.al, 255);  	if (context.flags.z()) goto blankframe;  	context.push(context.es); @@ -9005,39 +9005,39 @@ showobsloop:  	finalframe(context);  	context.si = context.pop();  	context.es = context.pop(); -	context.al = context.data.byte(context.si+18); -	context.data.byte(context.si+17) = context.al; -	context._cmp(context.data.byte(context.si+8), 0); +	context.al = context.ds.byte(context.si+18); +	context.ds.byte(context.si+17) = context.al; +	context._cmp(context.ds.byte(context.si+8), 0);  	if (!context.flags.z()) goto animating; -	context._cmp(context.data.byte(context.si+5), 5); +	context._cmp(context.ds.byte(context.si+5), 5);  	if (context.flags.z()) goto animating; -	context._cmp(context.data.byte(context.si+5), 6); +	context._cmp(context.ds.byte(context.si+5), 6);  	if (context.flags.z()) goto animating; -	context.ax = context.data.word(160); +	context.ax = context.ds.word(160);  	context.ah = 0; -	context._add(context.di, context.data.word(117)); -	context._add(context.bx, context.data.word(119)); +	context._add(context.di, context.ds.word(117)); +	context._add(context.bx, context.ds.word(119));  	showframe(context);  	goto drawnsetob;  animating:  	makebackob(context);  drawnsetob: -	context.si = context.data.word(18); -	context.es = context.data.word(412); -	context.al = context.data.byte(179); -	context.ah = context.data.byte(180); -	context.data.word(context.si) = context.ax; +	context.si = context.ds.word(18); +	context.es = context.ds.word(412); +	context.al = context.ds.byte(179); +	context.ah = context.ds.byte(180); +	context.ds.word(context.si) = context.ax;  	context.cx = context.ax; -	context.ax = context.data.word(176); +	context.ax = context.ds.word(176);  	context._add(context.al, context.cl);  	context._add(context.ah, context.ch); -	context.data.word(context.si+2) = context.ax; -	context.al = context.data.byte(181); -	context.data.byte(context.si+4) = context.al; +	context.ds.word(context.si+2) = context.ax; +	context.al = context.ds.byte(181); +	context.ds.byte(context.si+4) = context.al;  	context._add(context.si, 5); -	context.data.word(18) = context.si; +	context.ds.word(18) = context.si;  blankframe: -	context._add(context.data.byte(181), 1); +	context._add(context.ds.byte(181), 1);  	context.si = context.pop();  	context.cx = context.pop();  	context._add(context.si, 64); @@ -9049,106 +9049,106 @@ finishedsetobs:  }  static void makebackob(Context & context) { -	context._cmp(context.data.byte(62), 0); +	context._cmp(context.ds.byte(62), 0);  	if (context.flags.z()) goto nomake; -	context.al = context.data.byte(context.si+5); -	context.ah = context.data.byte(context.si+8); +	context.al = context.ds.byte(context.si+5); +	context.ah = context.ds.byte(context.si+8);  	context.push(context.si);  	context.push(context.ax);  	context.push(context.si); -	context.ax = context.data.word(168); -	context.bx = context.data.word(170); +	context.ax = context.ds.word(168); +	context.bx = context.ds.word(170);  	context.ah = context.bl;  	context.si = context.ax;  	context.cx = 49520; -	context.dx = context.data.word(444); +	context.dx = context.ds.word(444);  	context.di = 0;  	makesprite(context);  	context.ax = context.pop(); -	context.data.word(context.bx+20) = context.ax; +	context.ds.word(context.bx+20) = context.ax;  	context.ax = context.pop();  	context._cmp(context.al, 255);  	if (!context.flags.z()) goto usedpriority;  	context.al = 0;  usedpriority: -	context.data.byte(context.bx+23) = context.al; -	context.data.byte(context.bx+30) = context.ah; -	context.data.byte(context.bx+16) = 0; -	context.data.byte(context.bx+18) = 0; -	context.data.byte(context.bx+19) = 0; +	context.ds.byte(context.bx+23) = context.al; +	context.ds.byte(context.bx+30) = context.ah; +	context.ds.byte(context.bx+16) = 0; +	context.ds.byte(context.bx+18) = 0; +	context.ds.byte(context.bx+19) = 0;  	context.si = context.pop();  nomake:  	return;  }  static void showallfree(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5); -	context.data.word(18) = context.bx; +	context.ds.word(18) = context.bx;  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);  	context.cx = 80*5;  	context.al = 255;  	while(--context.cx) 	context._stosb(); -	context.es = context.data.word(446); -	context.data.word(166) = context.es; +	context.es = context.ds.word(446); +	context.ds.word(166) = context.es;  	context.ax = 0; -	context.data.word(164) = context.ax; +	context.ds.word(164) = context.ax;  	context.ax = 0+2080; -	context.data.word(162) = context.ax; +	context.ds.word(162) = context.ax;  	context.al = 0; -	context.data.byte(158) = context.al; -	context.ds = context.data.word(426); +	context.ds.byte(158) = context.al; +	context.ds = context.ds.word(426);  	context.si = 2;  	context.cx = 0;  loop127:  	context.push(context.cx);  	context.push(context.si);  	context.push(context.si); -	context.es = context.data.word(426); +	context.es = context.ds.word(426);  	getmapad(context);  	context.si = context.pop();  	context._cmp(context.ch, 0);  	if (context.flags.z()) goto over138; -	context.al = context.data.byte(158); +	context.al = context.ds.byte(158);  	context.ah = 0;  	context.dx = context.ax;  	context._add(context.ax, context.ax);  	context._add(context.ax, context.dx); -	context.data.word(160) = context.ax; +	context.ds.word(160) = context.ax;  	context.push(context.es);  	context.push(context.si);  	calcfrframe(context); -	context.es = context.data.word(402); -	context.ds = context.data.word(166); +	context.es = context.ds.word(402); +	context.ds = context.ds.word(166);  	finalframe(context);  	context.si = context.pop();  	context.es = context.pop();  	context._cmp(context.cx, 0);  	if (context.flags.z()) goto over138; -	context.ax = context.data.word(160); +	context.ax = context.ds.word(160);  	context.ah = 0; -	context._add(context.di, context.data.word(117)); -	context._add(context.bx, context.data.word(119)); +	context._add(context.di, context.ds.word(117)); +	context._add(context.bx, context.ds.word(119));  	showframe(context); -	context.si = context.data.word(18); -	context.es = context.data.word(412); -	context.al = context.data.byte(179); -	context.ah = context.data.byte(180); -	context.data.word(context.si) = context.ax; +	context.si = context.ds.word(18); +	context.es = context.ds.word(412); +	context.al = context.ds.byte(179); +	context.ah = context.ds.byte(180); +	context.ds.word(context.si) = context.ax;  	context.cx = context.ax; -	context.ax = context.data.word(176); +	context.ax = context.ds.word(176);  	context._add(context.al, context.cl);  	context._add(context.ah, context.ch); -	context.data.word(context.si+2) = context.ax; +	context.ds.word(context.si+2) = context.ax;  	context.ax = context.pop();  	context.cx = context.pop();  	context.push(context.cx);  	context.push(context.ax); -	context.data.byte(context.si+4) = context.cl; +	context.ds.byte(context.si+4) = context.cl;  	context._add(context.si, 5); -	context.data.word(18) = context.si; +	context.ds.word(18) = context.si;  over138: -	context._add(context.data.byte(158), 1); +	context._add(context.ds.byte(158), 1);  	context.si = context.pop();  	context.cx = context.pop();  	context._add(context.si, 16); @@ -9161,78 +9161,78 @@ finfree:  }  static void showallex(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5); -	context.data.word(18) = context.bx; +	context.ds.word(18) = context.bx;  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);  	context.cx = 100*5;  	context.al = 255;  	while(--context.cx) 	context._stosb(); -	context.es = context.data.word(398); -	context.data.word(166) = context.es; +	context.es = context.ds.word(398); +	context.ds.word(166) = context.es;  	context.ax = 0; -	context.data.word(164) = context.ax; +	context.ds.word(164) = context.ax;  	context.ax = 0+2080; -	context.data.word(162) = context.ax; -	context.data.byte(157) = 0; +	context.ds.word(162) = context.ax; +	context.ds.byte(157) = 0;  	context.si = 0+2080+30000+2;  	context.cx = 0;  exloop:  	context.push(context.cx);  	context.push(context.si); -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.push(context.si);  	context.ch = 0; -	context._cmp(context.data.byte(context.si), 255); +	context._cmp(context.ds.byte(context.si), 255);  	if (context.flags.z()) goto notinroom; -	context.al = context.data.byte(context.si-2); -	context._cmp(context.al, context.data.byte(184)); +	context.al = context.ds.byte(context.si-2); +	context._cmp(context.al, context.ds.byte(184));  	if (!context.flags.z()) goto notinroom;  	getmapad(context);  notinroom:  	context.si = context.pop();  	context._cmp(context.ch, 0);  	if (context.flags.z()) goto blankex; -	context.al = context.data.byte(157); +	context.al = context.ds.byte(157);  	context.ah = 0;  	context.dx = context.ax;  	context._add(context.ax, context.ax);  	context._add(context.ax, context.dx); -	context.data.word(160) = context.ax; +	context.ds.word(160) = context.ax;  	context.push(context.es);  	context.push(context.si);  	calcfrframe(context); -	context.es = context.data.word(402); -	context.ds = context.data.word(166); +	context.es = context.ds.word(402); +	context.ds = context.ds.word(166);  	finalframe(context);  	context.si = context.pop();  	context.es = context.pop();  	context._cmp(context.cx, 0);  	if (context.flags.z()) goto blankex; -	context.ax = context.data.word(160); +	context.ax = context.ds.word(160);  	context.ah = 0; -	context._add(context.di, context.data.word(117)); -	context._add(context.bx, context.data.word(119)); +	context._add(context.di, context.ds.word(117)); +	context._add(context.bx, context.ds.word(119));  	showframe(context); -	context.si = context.data.word(18); -	context.es = context.data.word(412); -	context.al = context.data.byte(179); -	context.ah = context.data.byte(180); -	context.data.word(context.si) = context.ax; +	context.si = context.ds.word(18); +	context.es = context.ds.word(412); +	context.al = context.ds.byte(179); +	context.ah = context.ds.byte(180); +	context.ds.word(context.si) = context.ax;  	context.cx = context.ax; -	context.ax = context.data.word(176); +	context.ax = context.ds.word(176);  	context._add(context.al, context.cl);  	context._add(context.ah, context.ch); -	context.data.word(context.si+2) = context.ax; +	context.ds.word(context.si+2) = context.ax;  	context.ax = context.pop();  	context.cx = context.pop();  	context.push(context.cx);  	context.push(context.ax); -	context.data.byte(context.si+4) = context.cl; +	context.ds.byte(context.si+4) = context.cl;  	context._add(context.si, 5); -	context.data.word(18) = context.si; +	context.ds.word(18) = context.si;  blankex: -	context._add(context.data.byte(157), 1); +	context._add(context.ds.byte(157), 1);  	context.si = context.pop();  	context.cx = context.pop();  	context._add(context.si, 16); @@ -9245,49 +9245,49 @@ finex:  }  static void calcfrframe(Context & context) { -	context.dx = context.data.word(166); -	context.ax = context.data.word(162); +	context.dx = context.ds.word(166); +	context.ax = context.ds.word(162);  	context.push(context.ax); -	context.cx = context.data.word(164); -	context.ax = context.data.word(160); +	context.cx = context.ds.word(164); +	context.ax = context.ds.word(160);  	context.ds = context.dx;  	context.bx = 6;  	context._mul(context.bx);  	context._add(context.ax, context.cx);  	context.bx = context.ax; -	context.cx = context.data.word(context.bx); -	context.ax = context.data.word(context.bx+2); -	context.dx = context.data.word(context.bx+4); +	context.cx = context.ds.word(context.bx); +	context.ax = context.ds.word(context.bx+2); +	context.dx = context.ds.word(context.bx+4);  	context.bx = context.pop();  	context.push(context.dx);  	context._add(context.ax, context.bx); -	context.data.word(178) = context.ax; -	context.data.word(176) = context.cx; +	context.ds.word(178) = context.ax; +	context.ds.word(176) = context.cx;  	context.ax = context.pop();  	context.push(context.ax);  	context.ah = 0; -	context.data.word(172) = context.ax; +	context.ds.word(172) = context.ax;  	context.ax = context.pop();  	context.al = context.ah;  	context.ah = 0; -	context.data.word(174) = context.ax; +	context.ds.word(174) = context.ax;  	return;  nullframe:  	context.ax = context.pop();  	context.cx = 0; -	context.data.word(176) = context.cx; +	context.ds.word(176) = context.cx;  	return;  }  static void finalframe(Context & context) { -	context.ax = context.data.word(170); -	context._add(context.ax, context.data.word(174)); -	context.bx = context.data.word(168); -	context._add(context.bx, context.data.word(172)); -	context.data.byte(179) = context.bl; -	context.data.byte(180) = context.al; -	context.di = context.data.word(168); -	context.bx = context.data.word(170); +	context.ax = context.ds.word(170); +	context._add(context.ax, context.ds.word(174)); +	context.bx = context.ds.word(168); +	context._add(context.bx, context.ds.word(172)); +	context.ds.byte(179) = context.bl; +	context.ds.byte(180) = context.al; +	context.di = context.ds.word(168); +	context.bx = context.ds.word(170);  	return;  } @@ -9307,26 +9307,26 @@ static void getmapad(Context & context) {  	getxad(context);  	context._cmp(context.ch, 0);  	if (context.flags.z()) goto over146; -	context.data.word(168) = context.ax; +	context.ds.word(168) = context.ax;  	getyad(context);  	context._cmp(context.ch, 0);  	if (context.flags.z()) goto over146; -	context.data.word(170) = context.ax; +	context.ds.word(170) = context.ax;  	context.ch = 1;  over146:  	return;  }  static void getxad(Context & context) { -	context.cl = context.data.byte(context.si); +	context.cl = context.ds.byte(context.si);  	context._add(context.si, 1); -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._add(context.si, 1); -	context.ah = context.data.byte(context.si); +	context.ah = context.ds.byte(context.si);  	context._add(context.si, 1);  	context._cmp(context.cl, 0);  	if (!context.flags.z()) goto over148; -	context._sub(context.al, context.data.byte(148)); +	context._sub(context.al, context.ds.byte(148));  	if (context.flags.c()) goto over148;  	context._cmp(context.al, 11);  	if (!context.flags.c()) goto over148; @@ -9342,11 +9342,11 @@ over148:  }  static void getyad(Context & context) { -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._add(context.si, 1); -	context.ah = context.data.byte(context.si); +	context.ah = context.ds.byte(context.si);  	context._add(context.si, 1); -	context._sub(context.al, context.data.byte(149)); +	context._sub(context.al, context.ds.byte(149));  	if (context.flags.c()) goto over147;  	context._cmp(context.al, 10);  	if (!context.flags.c()) goto over147; @@ -9362,40 +9362,40 @@ over147:  }  static void autolook(Context & context) { -	context.ax = context.data.word(198); -	context._cmp(context.ax, context.data.word(214)); +	context.ax = context.ds.word(198); +	context._cmp(context.ax, context.ds.word(214));  	if (!context.flags.z()) goto diffmouse; -	context.ax = context.data.word(200); -	context._cmp(context.ax, context.data.word(216)); +	context.ax = context.ds.word(200); +	context._cmp(context.ax, context.ds.word(216));  	if (!context.flags.z()) goto diffmouse; -	context._sub(context.data.word(98), 1); -	context._cmp(context.data.word(98), 0); +	context._sub(context.ds.word(98), 1); +	context._cmp(context.ds.word(98), 0);  	if (!context.flags.z()) goto noautolook; -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) goto noautolook;  	dolook(context);  noautolook:  	return;  diffmouse: -	context.data.word(98) = 1000; +	context.ds.word(98) = 1000;  	return;  }  static void look(Context & context) { -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(234), 2); +	context._cmp(context.ds.byte(234), 2);  	if (context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(100), 241); +	context._cmp(context.ds.byte(100), 241);  	if (context.flags.z()) goto alreadylook; -	context.data.byte(100) = 241; +	context.ds.byte(100) = 241;  	context.al = 25;  	commandonly(context);  alreadylook: -	context._cmp(context.data.word(202), 1); +	context._cmp(context.ds.word(202), 1);  	if (!context.flags.z()) goto nolook; -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto nolook;  	dolook(context);  nolook: @@ -9407,19 +9407,19 @@ static void dolook(Context & context) {  	showicon(context);  	undertextline(context);  	worktoscreenm(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	dumptextline(context); -	context.bl = context.data.byte(185); +	context.bl = context.ds.byte(185);  	context._and(context.bl, 31);  	context.bh = 0;  	context._add(context.bx, context.bx); -	context.es = context.data.word(436); +	context.es = context.ds.word(436);  	context._add(context.bx, 0); -	context.si = context.data.word(context.bx); +	context.si = context.ds.word(context.bx);  	context._add(context.si, 0+(38*2));  	findnextcolon(context);  	context.di = 66; -	context._cmp(context.data.byte(184), 50); +	context._cmp(context.ds.byte(184), 50);  	if (context.flags.c()) goto notdream3;  	context.di = 40;  notdream3: @@ -9431,17 +9431,17 @@ notdream3:  	context.cx = 400;  	hangonp(context);  afterlook: -	context.data.byte(234) = 0; -	context.data.byte(100) = 0; +	context.ds.byte(234) = 0; +	context.ds.byte(100) = 0;  	redrawmainscrn(context);  	worktoscreenm(context);  	return;  }  static void redrawmainscrn(Context & context) { -	context.data.word(328) = 0; +	context.ds.word(328) = 0;  	createpanel(context); -	context.data.byte(62) = 0; +	context.ds.byte(62) = 0;  	drawfloor(context);  	printsprites(context);  	reelsonscreen(context); @@ -9449,40 +9449,40 @@ static void redrawmainscrn(Context & context) {  	getunderzoom(context);  	undertextline(context);  	readmouse(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	return;  }  static void getback1(Context & context) { -	context._cmp(context.data.byte(106), 0); +	context._cmp(context.ds.byte(106), 0);  	if (context.flags.z()) goto notgotobject;  	blank(context);  	return;  notgotobject: -	context._cmp(context.data.byte(100), 202); +	context._cmp(context.ds.byte(100), 202);  	if (context.flags.z()) goto alreadyget; -	context.data.byte(100) = 202; +	context.ds.byte(100) = 202;  	context.al = 26;  	commandonly(context);  alreadyget: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto nogetback;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto dogetback;  nogetback:  	return;  dogetback: -	context.data.byte(103) = 1; -	context.data.byte(106) = 0; +	context.ds.byte(103) = 1; +	context.ds.byte(106) = 0;  	return;  }  static void talk(Context & context) { -	context.data.byte(246) = 0; -	context.data.byte(237) = 0; -	context.al = context.data.byte(99); -	context.data.byte(247) = context.al; +	context.ds.byte(246) = 0; +	context.ds.byte(237) = 0; +	context.al = context.ds.byte(99); +	context.ds.byte(247) = context.al;  	createpanel(context);  	showpanel(context);  	showman(context); @@ -9490,7 +9490,7 @@ static void talk(Context & context) {  	undertextline(context);  	convicons(context);  	starttalk(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	readmouse(context);  	showpointer(context);  	worktoscreen(context); @@ -9502,41 +9502,41 @@ waittalk:  	vsync(context);  	dumppointer(context);  	dumptextline(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  	context.bx = 2660;  	checkcoords(context); -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto waittalk;  finishtalk: -	context.bx = context.data.word(249); +	context.bx = context.ds.word(249);  	context.es = context.cs; -	context._cmp(context.data.byte(246), 4); +	context._cmp(context.ds.byte(246), 4);  	if (context.flags.c()) goto notnexttalk; -	context.al = context.data.byte(context.bx+7); +	context.al = context.ds.byte(context.bx+7);  	context._or(context.al, 128); -	context.data.byte(context.bx+7) = context.al; +	context.ds.byte(context.bx+7) = context.al;  notnexttalk:  	redrawmainscrn(context);  	worktoscreenm(context); -	context._cmp(context.data.byte(383), 1); +	context._cmp(context.ds.byte(383), 1);  	if (!context.flags.z()) goto nospeech;  	cancelch1(context); -	context.data.byte(388) = -1; -	context.data.byte(387) = 0; +	context.ds.byte(388) = -1; +	context.ds.byte(387) = 0;  nospeech:  	return;  }  static void convicons(Context & context) { -	context.al = context.data.byte(247); +	context.al = context.ds.byte(247);  	context._and(context.al, 127);  	getpersframe(context);  	context.di = 234;  	context.bx = 2; -	context.data.word(160) = context.ax; +	context.ds.word(160) = context.ax;  	findsource(context); -	context.ax = context.data.word(160); -	context._sub(context.ax, context.data.word(244)); +	context.ax = context.ds.word(160); +	context._sub(context.ax, context.ds.word(244));  	context.ah = 0;  	showframe(context);  	return; @@ -9546,25 +9546,25 @@ static void getpersframe(Context & context) {  	context.ah = 0;  	context._add(context.ax, context.ax);  	context.bx = context.ax; -	context.es = context.data.word(448); +	context.es = context.ds.word(448);  	context._add(context.bx, 0); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	return;  }  static void starttalk(Context & context) { -	context.data.byte(245) = 0; -	context.al = context.data.byte(247); +	context.ds.byte(245) = 0; +	context.al = context.ds.byte(247);  	context._and(context.al, 127);  	getpersontext(context); -	context.data.word(71) = 91+91; +	context.ds.word(71) = 91+91;  	context.di = 66;  	context.bx = 64;  	context.dl = 241;  	context.al = 0;  	context.ah = 79;  	printdirect(context); -	context.data.word(71) = 0; +	context.ds.word(71) = 0;  	context.di = 66;  	context.bx = 80;  	context.dl = 241; @@ -9580,40 +9580,40 @@ static void getpersontext(Context & context) {  	context.cx = 64*2;  	context._mul(context.cx);  	context.si = context.ax; -	context.es = context.data.word(448); +	context.es = context.ds.word(448);  	context._add(context.si, 0+24);  	context.cx = 0+24+(1026*2); -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context._add(context.ax, context.cx);  	context.si = context.ax;  	return;  }  static void moretalk(Context & context) { -	context._cmp(context.data.byte(245), 0); +	context._cmp(context.ds.byte(245), 0);  	if (context.flags.z()) goto canmore;  	redes(context);  	return;  canmore: -	context._cmp(context.data.byte(100), 215); +	context._cmp(context.ds.byte(100), 215);  	if (context.flags.z()) goto alreadymore; -	context.data.byte(100) = 215; +	context.ds.byte(100) = 215;  	context.al = 49;  	commandonly(context);  alreadymore: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto nomore;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto domoretalk;  nomore:  	return;  domoretalk: -	context.data.byte(245) = 2; -	context.data.byte(246) = 4; -	context._cmp(context.data.byte(247), 100); +	context.ds.byte(245) = 2; +	context.ds.byte(246) = 4; +	context._cmp(context.ds.byte(247), 100);  	if (context.flags.c()) goto notsecondpart; -	context.data.byte(246) = 48; +	context.ds.byte(246) = 48;  notsecondpart:  	dosometalk(context);  	return; @@ -9621,25 +9621,25 @@ notsecondpart:  static void dosometalk(Context & context) {  watchtalk: -	context.al = context.data.byte(246); -	context.al = context.data.byte(247); +	context.al = context.ds.byte(246); +	context.al = context.ds.byte(247);  	context._and(context.al, 127);  	context.ah = 0;  	context.cx = 64;  	context._mul(context.cx);  	context.cx = context.ax; -	context.al = context.data.byte(246); +	context.al = context.ds.byte(246);  	context.ah = 0;  	context._add(context.ax, context.cx);  	context._add(context.ax, context.ax);  	context.si = context.ax; -	context.es = context.data.word(448); +	context.es = context.ds.word(448);  	context._add(context.si, 0+24);  	context.cx = 0+24+(1026*2); -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context._add(context.ax, context.cx);  	context.si = context.ax; -	context._cmp(context.data.byte(context.si), 0); +	context._cmp(context.ds.byte(context.si), 0);  	if (context.flags.z()) goto endwatchtalk;  	context.push(context.es);  	context.push(context.si); @@ -9656,34 +9656,34 @@ watchtalk:  	context.al = 0;  	context.ah = 0;  	printdirect(context); -	context.data.byte(234) = 3; +	context.ds.byte(234) = 3;  	worktoscreenm(context);  	context.cx = 180;  	hangonpq(context); -	context._add(context.data.byte(246), 1); -	context.al = context.data.byte(246); -	context.al = context.data.byte(247); +	context._add(context.ds.byte(246), 1); +	context.al = context.ds.byte(246); +	context.al = context.ds.byte(247);  	context._and(context.al, 127);  	context.ah = 0;  	context.cx = 64;  	context._mul(context.cx);  	context.cx = context.ax; -	context.al = context.data.byte(246); +	context.al = context.ds.byte(246);  	context.ah = 0;  	context._add(context.ax, context.cx);  	context._add(context.ax, context.ax);  	context.si = context.ax; -	context.es = context.data.word(448); +	context.es = context.ds.word(448);  	context._add(context.si, 0+24);  	context.cx = 0+24+(1026*2); -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context._add(context.ax, context.cx);  	context.si = context.ax; -	context._cmp(context.data.byte(context.si), 0); +	context._cmp(context.ds.byte(context.si), 0);  	if (context.flags.z()) goto endwatchtalk; -	context._cmp(context.data.byte(context.si), ':'); +	context._cmp(context.ds.byte(context.si), ':');  	if (context.flags.z()) goto skiptalk; -	context._cmp(context.data.byte(context.si), 32); +	context._cmp(context.ds.byte(context.si), 32);  	if (context.flags.z()) goto skiptalk;  	context.push(context.es);  	context.push(context.si); @@ -9700,20 +9700,20 @@ watchtalk:  	context.al = 0;  	context.ah = 0;  	printdirect(context); -	context.data.byte(234) = 3; +	context.ds.byte(234) = 3;  	worktoscreenm(context);  	context.cx = 180;  	hangonpq(context);  skiptalk: -	context._add(context.data.byte(246), 1); +	context._add(context.ds.byte(246), 1);  	goto watchtalk;  endwatchtalk: -	context.data.byte(234) = 0; +	context.ds.byte(234) = 0;  	return;  }  static void hangonpq(Context & context) { -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  	context.bx = 0;  hangloopq:  	context.push(context.cx); @@ -9729,48 +9729,48 @@ hangloopq:  	checkcoords(context);  	context.bx = context.pop();  	context.cx = context.pop(); -	context._cmp(context.data.byte(103), 1); +	context._cmp(context.ds.byte(103), 1);  	if (context.flags.z()) goto quitconv; -	context._cmp(context.data.byte(383), 1); +	context._cmp(context.ds.byte(383), 1);  	if (!context.flags.z()) goto notspeaking; -	context._cmp(context.data.byte(515), 255); +	context._cmp(context.ds.byte(515), 255);  	if (!context.flags.z()) goto notspeaking;  	context._add(context.bx, 1);  	context._cmp(context.bx, 40);  	if (context.flags.z()) goto finishconv;  notspeaking: -	context._cmp(context.data.word(202), 0); +	context._cmp(context.ds.word(202), 0);  	if (context.flags.z()) goto hangloopq; -	context._cmp(context.data.word(212), 0); +	context._cmp(context.ds.word(212), 0);  	if (!context.flags.z()) goto hangloopq;  finishconv:  	delpointer(context); -	context.data.byte(234) = 0; +	context.ds.byte(234) = 0;  	return;  quitconv:  	delpointer(context); -	context.data.byte(234) = 0; +	context.ds.byte(234) = 0;  	context.ax = context.pop();  	cancelch1(context);  	return;  }  static void redes(Context & context) { -	context._cmp(context.data.byte(515), 255); +	context._cmp(context.ds.byte(515), 255);  	if (!context.flags.z()) goto cantredes; -	context._cmp(context.data.byte(245), 2); +	context._cmp(context.ds.byte(245), 2);  	if (context.flags.z()) goto canredes;  cantredes:  	blank(context);  	return;  canredes: -	context._cmp(context.data.byte(100), 217); +	context._cmp(context.ds.byte(100), 217);  	if (context.flags.z()) goto alreadyreds; -	context.data.byte(100) = 217; +	context.ds.byte(100) = 217;  	context.al = 50;  	commandonly(context);  alreadyreds: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doredes;  	return; @@ -9790,27 +9790,27 @@ doredes:  }  static void newplace(Context & context) { -	context._cmp(context.data.byte(60), 1); +	context._cmp(context.ds.byte(60), 1);  	if (context.flags.z()) goto istravel; -	context._cmp(context.data.byte(189), -1); +	context._cmp(context.ds.byte(189), -1);  	if (!context.flags.z()) goto isautoloc;  	return;  isautoloc: -	context.al = context.data.byte(189); -	context.data.byte(188) = context.al; -	context.data.byte(189) = -1; +	context.al = context.ds.byte(189); +	context.ds.byte(188) = context.al; +	context.ds.byte(189) = -1;  	return;  istravel: -	context.data.byte(60) = 0; +	context.ds.byte(60) = 0;  	selectlocation(context);  	return;  }  static void selectlocation(Context & context) { -	context.data.byte(237) = 0; +	context.ds.byte(237) = 0;  	clearbeforeload(context); -	context.data.byte(103) = 0; -	context.data.byte(231) = 22; +	context.ds.byte(103) = 0; +	context.ds.byte(231) = 22;  	readcitypic(context);  	showcity(context);  	getridoftemp(context); @@ -9822,15 +9822,15 @@ static void selectlocation(Context & context) {  	showexit(context);  	locationpic(context);  	undertextline(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	readmouse(context); -	context.data.byte(231) = 0; +	context.ds.byte(231) = 0;  	showpointer(context);  	worktoscreen(context);  	context.al = 9;  	context.ah = 255;  	playchannel0(context); -	context.data.byte(188) = 255; +	context.ds.byte(188) = 255;  select:  	delpointer(context);  	readmouse(context); @@ -9838,42 +9838,42 @@ select:  	vsync(context);  	dumppointer(context);  	dumptextline(context); -	context._cmp(context.data.byte(103), 1); +	context._cmp(context.ds.byte(103), 1);  	if (context.flags.z()) goto quittravel;  	context.bx = 2714;  	checkcoords(context); -	context._cmp(context.data.byte(188), 255); +	context._cmp(context.ds.byte(188), 255);  	if (context.flags.z()) goto select; -	context.al = context.data.byte(188); -	context._cmp(context.al, context.data.byte(9)); +	context.al = context.ds.byte(188); +	context._cmp(context.al, context.ds.byte(9));  	if (context.flags.z()) goto quittravel;  	getridoftemp(context);  	getridoftemp2(context);  	getridoftemp3(context); -	context.es = context.data.word(456); +	context.es = context.ds.word(456);  	deallocatemem(context);  	return;  quittravel: -	context.al = context.data.byte(184); -	context.data.byte(188) = context.al; -	context.data.byte(103) = 0; +	context.al = context.ds.byte(184); +	context.ds.byte(188) = context.al; +	context.ds.byte(103) = 0;  	getridoftemp(context);  	getridoftemp2(context);  	getridoftemp3(context); -	context.es = context.data.word(456); +	context.es = context.ds.word(456);  	deallocatemem(context);  	return;  }  static void showcity(Context & context) {  	clearwork(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 57;  	context.bx = 32;  	context.al = 0;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 120+57;  	context.bx = 32;  	context.al = 1; @@ -9883,25 +9883,25 @@ static void showcity(Context & context) {  }  static void lookatplace(Context & context) { -	context._cmp(context.data.byte(100), 224); +	context._cmp(context.ds.byte(100), 224);  	if (context.flags.z()) goto alreadyinfo; -	context.data.byte(100) = 224; +	context.ds.byte(100) = 224;  	context.al = 27;  	commandonly(context);  alreadyinfo: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._and(context.ax, 1);  	if (context.flags.z()) goto noinfo; -	context._cmp(context.ax, context.data.word(212)); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto noinfo; -	context.bl = context.data.byte(183); +	context.bl = context.ds.byte(183);  	context._cmp(context.bl, 15);  	if (!context.flags.c()) goto noinfo;  	context.push(context.bx);  	delpointer(context);  	deltextline(context);  	getundercentre(context); -	context.ds = context.data.word(462); +	context.ds = context.ds.word(462);  	context.al = 0;  	context.ah = 0;  	context.di = 60; @@ -9920,8 +9920,8 @@ alreadyinfo:  	context.bx = context.pop();  	context.bh = 0;  	context._add(context.bx, context.bx); -	context.es = context.data.word(456); -	context.si = context.data.word(context.bx); +	context.es = context.ds.word(456); +	context.si = context.ds.word(context.bx);  	context._add(context.si, 66*2);  	findnextcolon(context);  	context.di = 63; @@ -9934,8 +9934,8 @@ alreadyinfo:  	context.cx = 500;  	hangonp(context);  afterinfo: -	context.data.byte(234) = 0; -	context.data.byte(231) = 0; +	context.ds.byte(234) = 0; +	context.ds.byte(231) = 0;  	putundercentre(context);  	worktoscreenm(context);  noinfo: @@ -9945,7 +9945,7 @@ noinfo:  static void getundercentre(Context & context) {  	context.di = 58;  	context.bx = 72; -	context.ds = context.data.word(402); +	context.ds = context.ds.word(402);  	context.si = 0;  	context.cl = 254;  	context.ch = 110; @@ -9956,7 +9956,7 @@ static void getundercentre(Context & context) {  static void putundercentre(Context & context) {  	context.di = 58;  	context.bx = 72; -	context.ds = context.data.word(402); +	context.ds = context.ds.word(402);  	context.si = 0;  	context.cl = 254;  	context.ch = 110; @@ -9966,18 +9966,18 @@ static void putundercentre(Context & context) {  static void locationpic(Context & context) {  	getdestinfo(context); -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context.push(context.es);  	context.push(context.si);  	context.di = 0;  	context._cmp(context.al, 6);  	if (!context.flags.c()) goto secondlot; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context._add(context.al, 4);  	goto gotgraphic;  secondlot:  	context._sub(context.al, 6); -	context.ds = context.data.word(460); +	context.ds = context.ds.word(460);  gotgraphic:  	context._add(context.di, 104);  	context.bx = 138+14; @@ -9985,21 +9985,21 @@ gotgraphic:  	showframe(context);  	context.si = context.pop();  	context.es = context.pop(); -	context.al = context.data.byte(183); -	context._cmp(context.al, context.data.byte(184)); +	context.al = context.ds.byte(183); +	context._cmp(context.al, context.ds.byte(184));  	if (!context.flags.z()) goto notinthisone;  	context.al = 3;  	context.di = 104;  	context.bx = 140+14; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.ah = 0;  	showframe(context);  notinthisone: -	context.bl = context.data.byte(183); +	context.bl = context.ds.byte(183);  	context.bh = 0;  	context._add(context.bx, context.bx); -	context.es = context.data.word(456); -	context.si = context.data.word(context.bx); +	context.es = context.ds.word(456); +	context.si = context.ds.word(context.bx);  	context._add(context.si, 66*2);  	context.di = 50;  	context.bx = 20; @@ -10011,14 +10011,14 @@ notinthisone:  }  static void getdestinfo(Context & context) { -	context.al = context.data.byte(183); +	context.al = context.ds.byte(183);  	context.ah = 0;  	context.push(context.ax);  	context.dx = context.ds;  	context.es = context.dx;  	context.si = 7798;  	context._add(context.si, context.ax); -	context.cl = context.data.byte(context.si); +	context.cl = context.ds.byte(context.si);  	context.ax = context.pop();  	context.push(context.cx);  	context.dx = context.ds; @@ -10032,19 +10032,19 @@ static void getdestinfo(Context & context) {  static void showarrows(Context & context) {  	context.di = 116-12;  	context.bx = 16; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 0;  	context.ah = 0;  	showframe(context);  	context.di = 226+12;  	context.bx = 16; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 1;  	context.ah = 0;  	showframe(context);  	context.di = 280;  	context.bx = 14; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 2;  	context.ah = 0;  	showframe(context); @@ -10053,27 +10053,27 @@ static void showarrows(Context & context) {  static void nextdest(Context & context) {  duok: -	context._cmp(context.data.byte(100), 218); +	context._cmp(context.ds.byte(100), 218);  	if (context.flags.z()) goto alreadydu; -	context.data.byte(100) = 218; +	context.ds.byte(100) = 218;  	context.al = 28;  	commandonly(context);  alreadydu: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._and(context.ax, 1);  	if (context.flags.z()) goto nodu; -	context._cmp(context.ax, context.data.word(212)); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto nodu;  searchdestup: -	context._add(context.data.byte(183), 1); -	context._cmp(context.data.byte(183), 15); +	context._add(context.ds.byte(183), 1); +	context._cmp(context.ds.byte(183), 15);  	if (!context.flags.z()) goto notlastdest; -	context.data.byte(183) = 0; +	context.ds.byte(183) = 0;  notlastdest:  	getdestinfo(context);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto searchdestup; -	context.data.byte(109) = 1; +	context.ds.byte(109) = 1;  	deltextline(context);  	delpointer(context);  	showpanel(context); @@ -10091,27 +10091,27 @@ nodu:  static void lastdest(Context & context) {  ddok: -	context._cmp(context.data.byte(100), 219); +	context._cmp(context.ds.byte(100), 219);  	if (context.flags.z()) goto alreadydd; -	context.data.byte(100) = 219; +	context.ds.byte(100) = 219;  	context.al = 29;  	commandonly(context);  alreadydd: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._and(context.ax, 1);  	if (context.flags.z()) goto nodd; -	context._cmp(context.ax, context.data.word(212)); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto nodd;  searchdestdown: -	context._sub(context.data.byte(183), 1); -	context._cmp(context.data.byte(183), -1); +	context._sub(context.ds.byte(183), 1); +	context._cmp(context.ds.byte(183), -1);  	if (!context.flags.z()) goto notfirstdest; -	context.data.byte(183) = 15; +	context.ds.byte(183) = 15;  notfirstdest:  	getdestinfo(context);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto searchdestdown; -	context.data.byte(109) = 1; +	context.ds.byte(109) = 1;  	deltextline(context);  	delpointer(context);  	showpanel(context); @@ -10128,20 +10128,20 @@ nodd:  }  static void destselect(Context & context) { -	context._cmp(context.data.byte(100), 222); +	context._cmp(context.ds.byte(100), 222);  	if (context.flags.z()) goto alreadytrav; -	context.data.byte(100) = 222; +	context.ds.byte(100) = 222;  	context.al = 30;  	commandonly(context);  alreadytrav: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._and(context.ax, 1);  	if (context.flags.z()) goto notrav; -	context._cmp(context.ax, context.data.word(212)); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notrav;  	getdestinfo(context); -	context.al = context.data.byte(183); -	context.data.byte(188) = context.al; +	context.al = context.ds.byte(183); +	context.ds.byte(188) = context.al;  notrav:  	return;  } @@ -10152,7 +10152,7 @@ static void getlocation(Context & context) {  	context.dx = context.ds;  	context.es = context.dx;  	context._add(context.bx, 7798); -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	return;  } @@ -10162,7 +10162,7 @@ static void setlocation(Context & context) {  	context.dx = context.ds;  	context.es = context.dx;  	context._add(context.bx, 7798); -	context.data.byte(context.bx) = 1; +	context.ds.byte(context.bx) = 1;  	return;  } @@ -10209,7 +10209,7 @@ clearedlocations:  	context.dx = context.ds;  	context.es = context.dx;  	context._add(context.bx, 7798); -	context.data.byte(context.bx) = 0; +	context.ds.byte(context.bx) = 0;  	return;  } @@ -10230,7 +10230,7 @@ static void readcitypic(Context & context) {  }  static void usemon(Context & context) { -	context.data.byte(55) = 0; +	context.ds.byte(55) = 0;  	context.es = context.cs;  	context.di = 2895+1;  	context.cx = 12; @@ -10243,11 +10243,11 @@ static void usemon(Context & context) {  	while(--context.cx) 	context._stosb();  	context.es = context.cs;  	context.di = 2807; -	context.data.byte(context.di) = 1; +	context.ds.byte(context.di) = 1;  	context._add(context.di, 26);  	context.cx = 3;  keyloop: -	context.data.byte(context.di) = 0; +	context.ds.byte(context.di) = 0;  	context._add(context.di, 26);  	if (--context.cx) goto keyloop;  	createpanel(context); @@ -10269,8 +10269,8 @@ keyloop:  	turnonpower(context);  	fadeupyellows(context);  	fadeupmonfirst(context); -	context.data.word(318) = 76; -	context.data.word(320) = 141; +	context.ds.word(318) = 76; +	context.ds.word(320) = 141;  	context.al = 1;  	monmessage(context);  	context.cx = 120; @@ -10285,34 +10285,34 @@ keyloop:  	hangoncurs(context);  	printlogo(context);  	scrollmonitor(context); -	context.data.word(394) = 0; -	context.data.word(396) = 0; +	context.ds.word(394) = 0; +	context.ds.word(396) = 0;  moreinput: -	context.di = context.data.word(318); -	context.bx = context.data.word(320); +	context.di = context.ds.word(318); +	context.bx = context.ds.word(320);  	context.push(context.di);  	context.push(context.bx);  	input(context);  	context.bx = context.pop();  	context.di = context.pop(); -	context.data.word(318) = context.di; -	context.data.word(320) = context.bx; +	context.ds.word(318) = context.di; +	context.ds.word(320) = context.bx;  	execcommand(context);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto moreinput;  endmon:  	getridoftemp(context);  	getridoftempcharset(context); -	context.es = context.data.word(466); +	context.es = context.ds.word(466);  	deallocatemem(context); -	context.es = context.data.word(468); +	context.es = context.ds.word(468);  	deallocatemem(context); -	context.es = context.data.word(470); +	context.es = context.ds.word(470);  	deallocatemem(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	context.al = 26;  	playchannel1(context); -	context.data.byte(131) = 0; +	context.ds.byte(131) = 0;  	restoreall(context);  	redrawmainscrn(context);  	worktoscreenm(context); @@ -10322,25 +10322,25 @@ endmon:  static void printoutermon(Context & context) {  	context.di = 40;  	context.bx = 32; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 1;  	context.ah = 0;  	showframe(context);  	context.di = 264;  	context.bx = 32; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 2;  	context.ah = 0;  	showframe(context);  	context.di = 40;  	context.bx = 12; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 3;  	context.ah = 0;  	showframe(context);  	context.di = 40;  	context.bx = 164; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 4;  	context.ah = 0;  	showframe(context); @@ -10348,7 +10348,7 @@ static void printoutermon(Context & context) {  }  static void loadpersonal(Context & context) { -	context.al = context.data.byte(9); +	context.al = context.ds.byte(9);  	context.dx = 2065;  	context._cmp(context.al, 0);  	if (context.flags.z()) goto foundpersonal; @@ -10360,12 +10360,12 @@ static void loadpersonal(Context & context) {  foundpersonal:  	openfile(context);  	readheader(context); -	context.bx = context.data.word(context.di); +	context.bx = context.ds.word(context.di);  	context.push(context.bx);  	context.cl = 4;  	context._shr(context.bx, context.cl);  	allocatemem(context); -	context.data.word(466) = context.ax; +	context.ds.word(466) = context.ax;  	context.ds = context.ax;  	context.cx = context.pop();  	context.dx = 0; @@ -10375,7 +10375,7 @@ foundpersonal:  }  static void loadnews(Context & context) { -	context.al = context.data.byte(34); +	context.al = context.ds.byte(34);  	context.dx = 2091;  	context._cmp(context.al, 0);  	if (context.flags.z()) goto foundnews; @@ -10389,12 +10389,12 @@ static void loadnews(Context & context) {  foundnews:  	openfile(context);  	readheader(context); -	context.bx = context.data.word(context.di); +	context.bx = context.ds.word(context.di);  	context.push(context.bx);  	context.cl = 4;  	context._shr(context.bx, context.cl);  	allocatemem(context); -	context.data.word(468) = context.ax; +	context.ds.word(468) = context.ax;  	context.ds = context.ax;  	context.cx = context.pop();  	context.dx = 0; @@ -10421,12 +10421,12 @@ static void loadcart(Context & context) {  gotcart:  	openfile(context);  	readheader(context); -	context.bx = context.data.word(context.di); +	context.bx = context.ds.word(context.di);  	context.push(context.bx);  	context.cl = 4;  	context._shr(context.bx, context.cl);  	allocatemem(context); -	context.data.word(470) = context.ax; +	context.ds.word(470) = context.ax;  	context.ds = context.ax;  	context.cx = context.pop();  	context.dx = 0; @@ -10445,7 +10445,7 @@ static void lookininterface(Context & context) {  	checkinside(context);  	context._cmp(context.cl, 114);  	if (context.flags.z()) goto emptyinterface; -	context.al = context.data.byte(context.bx+15); +	context.al = context.ds.byte(context.bx+15);  	context._add(context.al, 1);  	return;  emptyinterface: @@ -10492,7 +10492,7 @@ chosenaccess:  static void powerlighton(Context & context) {  	context.di = 257+4;  	context.bx = 182; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 6;  	context.ah = 0;  	context.push(context.di); @@ -10509,7 +10509,7 @@ static void powerlighton(Context & context) {  static void powerlightoff(Context & context) {  	context.di = 257+4;  	context.bx = 182; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 5;  	context.ah = 0;  	context.push(context.di); @@ -10526,7 +10526,7 @@ static void powerlightoff(Context & context) {  static void accesslighton(Context & context) {  	context.di = 74;  	context.bx = 182; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 8;  	context.ah = 0;  	context.push(context.di); @@ -10543,7 +10543,7 @@ static void accesslighton(Context & context) {  static void accesslightoff(Context & context) {  	context.di = 74;  	context.bx = 182; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 7;  	context.ah = 0;  	context.push(context.di); @@ -10560,7 +10560,7 @@ static void accesslightoff(Context & context) {  static void locklighton(Context & context) {  	context.di = 56;  	context.bx = 182; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 10;  	context.ah = 0;  	context.push(context.di); @@ -10577,7 +10577,7 @@ static void locklighton(Context & context) {  static void locklightoff(Context & context) {  	context.di = 56;  	context.bx = 182; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 9;  	context.ah = 0;  	context.push(context.di); @@ -10597,62 +10597,62 @@ static void input(Context & context) {  	context.cx = 64;  	context.al = 0;  	while(--context.cx) 	context._stosb(); -	context.data.word(316) = 0; +	context.ds.word(316) = 0;  	context.al = '>'; -	context.di = context.data.word(318); -	context.bx = context.data.word(320); -	context.ds = context.data.word(406); +	context.di = context.ds.word(318); +	context.bx = context.ds.word(320); +	context.ds = context.ds.word(406);  	context.ah = 0;  	printchar(context); -	context.di = context.data.word(318); -	context.bx = context.data.word(320); +	context.di = context.ds.word(318); +	context.bx = context.ds.word(320);  	context.cl = 6;  	context.ch = 8;  	multidump(context); -	context._add(context.data.word(318), 6); -	context.ax = context.data.word(318); -	context.data.word(312) = context.ax; -	context.ax = context.data.word(320); -	context.data.word(314) = context.ax; +	context._add(context.ds.word(318), 6); +	context.ax = context.ds.word(318); +	context.ds.word(312) = context.ax; +	context.ax = context.ds.word(320); +	context.ds.word(314) = context.ax;  waitkey:  	printcurs(context);  	vsync(context);  	delcurs(context);  	readkey(context); -	context.al = context.data.byte(142); +	context.al = context.ds.byte(142);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto waitkey;  	context._cmp(context.al, 13);  	if (context.flags.z()) goto endofinput;  	context._cmp(context.al, 8);  	if (!context.flags.z()) goto notdel; -	context._cmp(context.data.word(316), 0); +	context._cmp(context.ds.word(316), 0);  	if (context.flags.z()) goto waitkey;  	delchar(context);  	goto waitkey;  notdel: -	context._cmp(context.data.word(316), 28); +	context._cmp(context.ds.word(316), 28);  	if (context.flags.z()) goto waitkey; -	context._cmp(context.data.byte(142), 32); +	context._cmp(context.ds.byte(142), 32);  	if (!context.flags.z()) goto notleadingspace; -	context._cmp(context.data.word(316), 0); +	context._cmp(context.ds.word(316), 0);  	if (context.flags.z()) goto waitkey;  notleadingspace:  	makecaps(context);  	context.es = context.cs; -	context.si = context.data.word(316); +	context.si = context.ds.word(316);  	context._add(context.si, context.si);  	context._add(context.si, 7944); -	context.data.byte(context.si) = context.al; +	context.ds.byte(context.si) = context.al;  	context._cmp(context.al, 'Z'+1);  	if (!context.flags.c()) goto waitkey;  	context.push(context.ax);  	context.push(context.es);  	context.push(context.si); -	context.di = context.data.word(318); -	context.bx = context.data.word(320); -	context.ds = context.data.word(402); -	context.ax = context.data.word(316); +	context.di = context.ds.word(318); +	context.bx = context.ds.word(320); +	context.ds = context.ds.word(402); +	context.ax = context.ds.word(316);  	context._xchg(context.al, context.ah);  	context.si = context.ax;  	context.cl = 8; @@ -10663,18 +10663,18 @@ notleadingspace:  	context.ax = context.pop();  	context.push(context.es);  	context.push(context.si); -	context.di = context.data.word(318); -	context.bx = context.data.word(320); -	context.ds = context.data.word(406); +	context.di = context.ds.word(318); +	context.bx = context.ds.word(320); +	context.ds = context.ds.word(406);  	context.ah = 0;  	printchar(context);  	context.si = context.pop();  	context.es = context.pop(); -	context.data.byte(context.si+1) = context.cl; +	context.ds.byte(context.si+1) = context.cl;  	context.ch = 0; -	context._add(context.data.word(318), context.cx); -	context._add(context.data.word(316), 1); -	context._add(context.data.word(312), context.cx); +	context._add(context.ds.word(318), context.cx); +	context._add(context.ds.word(316), 1); +	context._add(context.ds.word(312), context.cx);  	goto waitkey;  endofinput:  	return; @@ -10689,27 +10689,27 @@ notupperc:  }  static void delchar(Context & context) { -	context._sub(context.data.word(316), 1); -	context.si = context.data.word(316); +	context._sub(context.ds.word(316), 1); +	context.si = context.ds.word(316);  	context._add(context.si, context.si);  	context.es = context.cs;  	context._add(context.si, 7944); -	context.data.byte(context.si) = 0; -	context.al = context.data.byte(context.si+1); -	context.ah = 0; -	context._sub(context.data.word(318), context.ax); -	context._sub(context.data.word(312), context.ax); -	context.di = context.data.word(318); -	context.bx = context.data.word(320); -	context.ds = context.data.word(402); -	context.ax = context.data.word(316); +	context.ds.byte(context.si) = 0; +	context.al = context.ds.byte(context.si+1); +	context.ah = 0; +	context._sub(context.ds.word(318), context.ax); +	context._sub(context.ds.word(312), context.ax); +	context.di = context.ds.word(318); +	context.bx = context.ds.word(320); +	context.ds = context.ds.word(402); +	context.ax = context.ds.word(316);  	context._xchg(context.al, context.ah);  	context.si = context.ax;  	context.cl = 8;  	context.ch = 8;  	multiput(context); -	context.di = context.data.word(318); -	context.bx = context.data.word(320); +	context.di = context.ds.word(318); +	context.bx = context.ds.word(320);  	context.cl = context.al;  	context.ch = 8;  	multidump(context); @@ -10721,7 +10721,7 @@ static void execcommand(Context & context) {  	context.bx = 2776;  	context.ds = context.cs;  	context.si = 7944; -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._cmp(context.al, 0);  	if (!context.flags.z()) goto notblankinp;  	scrollmonitor(context); @@ -10732,9 +10732,9 @@ comloop:  	context.push(context.bx);  	context.push(context.si);  comloop2: -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._add(context.si, 2); -	context.ah = context.data.byte(context.bx); +	context.ah = context.ds.byte(context.bx);  	context._add(context.bx, 1);  	context._cmp(context.ah, 32);  	if (context.flags.z()) goto foundcom; @@ -10800,12 +10800,12 @@ static void dircom(Context & context) {  	context.cx = 30;  	randomaccess(context);  	parser(context); -	context._cmp(context.data.byte(context.di+1), 0); +	context._cmp(context.ds.byte(context.di+1), 0);  	if (context.flags.z()) goto dirroot;  	dirfile(context);  	return;  dirroot: -	context.data.byte(269) = 0; +	context.ds.byte(269) = 0;  	context.ds = context.cs;  	context.si = 2885;  	context._add(context.si, 1); @@ -10818,11 +10818,11 @@ dirroot:  	scrollmonitor(context);  	context.al = 9;  	monmessage(context); -	context.es = context.data.word(466); +	context.es = context.ds.word(466);  	searchforfiles(context); -	context.es = context.data.word(468); +	context.es = context.ds.word(468);  	searchforfiles(context); -	context.es = context.data.word(470); +	context.es = context.ds.word(470);  	searchforfiles(context);  	scrollmonitor(context);  	return; @@ -10831,7 +10831,7 @@ dirroot:  static void searchforfiles(Context & context) {  	context.bx = 66*2;  directloop1: -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._add(context.bx, 1);  	context._cmp(context.al, '*');  	if (context.flags.z()) goto endofdir; @@ -10860,7 +10860,7 @@ signonloop2:  	context._cmp(context.al, 32);  	if (context.flags.z()) goto foundsign;  	makecaps(context); -	context.ah = context.data.byte(context.di); +	context.ah = context.ds.byte(context.di);  	context._add(context.di, 1);  	context._cmp(context.al, context.ah);  	if (!context.flags.z()) goto nomatch; @@ -10880,7 +10880,7 @@ foundsign:  	context.cx = context.pop();  	context.bx = context.si;  	context.es = context.ds; -	context._cmp(context.data.byte(context.bx), 0); +	context._cmp(context.ds.byte(context.bx), 0);  	if (context.flags.z()) goto notyetassigned;  	context.al = 17;  	monmessage(context); @@ -10891,15 +10891,15 @@ notyetassigned:  	scrollmonitor(context);  	context.al = 15;  	monmessage(context); -	context.di = context.data.word(318); -	context.bx = context.data.word(320); +	context.di = context.ds.word(318); +	context.bx = context.ds.word(320);  	context.push(context.di);  	context.push(context.bx);  	input(context);  	context.bx = context.pop();  	context.di = context.pop(); -	context.data.word(318) = context.di; -	context.data.word(320) = context.bx; +	context.ds.word(318) = context.di; +	context.ds.word(320) = context.bx;  	context.bx = context.pop();  	context.es = context.pop();  	context.push(context.es); @@ -10909,7 +10909,7 @@ notyetassigned:  	context.si = 7944;  checkpass:  	context._lodsw(); -	context.ah = context.data.byte(context.bx); +	context.ah = context.ds.byte(context.bx);  	context._add(context.bx, 1);  	context._cmp(context.ah, 32);  	if (context.flags.z()) goto passpassed; @@ -10934,7 +10934,7 @@ passpassed:  	scrollmonitor(context);  	context.bx = context.pop();  	context.es = context.pop(); -	context.data.byte(context.bx) = 1; +	context.ds.byte(context.bx) = 1;  	return;  } @@ -10950,7 +10950,7 @@ static void showkeys(Context & context) {  keysloop:  	context.push(context.cx);  	context.push(context.bx); -	context._cmp(context.data.byte(context.bx), 0); +	context._cmp(context.ds.byte(context.bx), 0);  	if (context.flags.z()) goto notheld;  	context._add(context.bx, 14);  	monprint(context); @@ -10967,29 +10967,29 @@ static void read(Context & context) {  	context.cx = 40;  	randomaccess(context);  	parser(context); -	context._cmp(context.data.byte(context.di+1), 0); +	context._cmp(context.ds.byte(context.di+1), 0);  	if (!context.flags.z()) goto okcom;  	neterror(context);  	return;  okcom:  	context.es = context.cs;  	context.di = 2895; -	context.ax = context.data.word(466); -	context.data.word(324) = context.ax; +	context.ax = context.ds.word(466); +	context.ds.word(324) = context.ax;  	context.ds = context.ax;  	context.si = 66*2;  	searchforstring(context);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto foundfile2; -	context.ax = context.data.word(468); -	context.data.word(324) = context.ax; +	context.ax = context.ds.word(468); +	context.ds.word(324) = context.ax;  	context.ds = context.ax;  	context.si = 66*2;  	searchforstring(context);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto foundfile2; -	context.ax = context.data.word(470); -	context.data.word(324) = context.ax; +	context.ax = context.ds.word(470); +	context.ds.word(324) = context.ax;  	context.ds = context.ax;  	context.si = 66*2;  	searchforstring(context); @@ -11006,12 +11006,12 @@ foundfile2:  keyok1:  	context.es = context.cs;  	context.di = 2883; -	context.ds = context.data.word(324); +	context.ds = context.ds.word(324);  	searchforstring(context);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto findtopictext; -	context.al = context.data.byte(270); -	context.data.byte(269) = context.al; +	context.al = context.ds.byte(270); +	context.ds.byte(269) = context.al;  	context.al = 11;  	monmessage(context);  	return; @@ -11025,7 +11025,7 @@ findtopictext:  	context.es = context.pop();  moretopic:  	monprint(context); -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._cmp(context.al, 34);  	if (context.flags.z()) goto endoftopic;  	context._cmp(context.al, '='); @@ -11047,10 +11047,10 @@ endoftopic:  static void dirfile(Context & context) {  	context.al = 34; -	context.data.byte(context.di) = context.al; +	context.ds.byte(context.di) = context.al;  	context.push(context.es);  	context.push(context.di); -	context.ds = context.data.word(466); +	context.ds = context.ds.word(466);  	context.si = 66*2;  	searchforstring(context);  	context._cmp(context.al, 0); @@ -11059,7 +11059,7 @@ static void dirfile(Context & context) {  	context.es = context.pop();  	context.push(context.es);  	context.push(context.di); -	context.ds = context.data.word(468); +	context.ds = context.ds.word(468);  	context.si = 66*2;  	searchforstring(context);  	context._cmp(context.al, 0); @@ -11068,7 +11068,7 @@ static void dirfile(Context & context) {  	context.es = context.pop();  	context.push(context.es);  	context.push(context.di); -	context.ds = context.data.word(470); +	context.ds = context.ds.word(470);  	context.si = 66*2;  	searchforstring(context);  	context._cmp(context.al, 0); @@ -11101,7 +11101,7 @@ keyok2:  	context.bx = context.pop();  	context.es = context.pop();  directloop2: -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._add(context.bx, 1);  	context._cmp(context.al, 34);  	if (context.flags.z()) goto endofdir2; @@ -11118,24 +11118,24 @@ endofdir2:  static void getkeyandlogo(Context & context) {  	context._add(context.bx, 1); -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._sub(context.al, 48); -	context.data.byte(271) = context.al; +	context.ds.byte(271) = context.al;  	context._add(context.bx, 2); -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._sub(context.al, 48); -	context.data.byte(276) = context.al; +	context.ds.byte(276) = context.al;  	context._add(context.bx, 1);  	context.push(context.es);  	context.push(context.bx); -	context.al = context.data.byte(276); +	context.al = context.ds.byte(276);  	context.ah = 0;  	context.cx = 26;  	context._mul(context.cx);  	context.es = context.cs;  	context.bx = 2807;  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._cmp(context.al, 1);  	if (context.flags.z()) goto keyok;  	context.push(context.bx); @@ -11154,14 +11154,14 @@ static void getkeyandlogo(Context & context) {  keyok:  	context.bx = context.pop();  	context.es = context.pop(); -	context.al = context.data.byte(271); -	context.data.byte(269) = context.al; +	context.al = context.ds.byte(271); +	context.ds.byte(269) = context.al;  	context.al = 0;  	return;  }  static void searchforstring(Context & context) { -	context.dl = context.data.byte(context.di); +	context.dl = context.ds.byte(context.di);  	context.cx = context.di;  restartlook:  	context.di = context.cx; @@ -11177,7 +11177,7 @@ keeplooking:  	context._cmp(context.al, 34);  	if (context.flags.z()) goto notfound;  nofindingtopic: -	context.ah = context.data.byte(context.di); +	context.ah = context.ds.byte(context.di);  	context._cmp(context.al, context.dl);  	if (!context.flags.z()) goto notbracket;  	context._add(context.dh, 1); @@ -11242,10 +11242,10 @@ static void scrollmonitor(Context & context) {  	context.push(context.es);  	context.push(context.ds);  	printlogo(context); -	context.di = context.data.word(318); -	context.bx = context.data.word(320); +	context.di = context.ds.word(318); +	context.bx = context.ds.word(320);  	printundermon(context); -	context.ax = context.data.word(320); +	context.ax = context.ds.word(320);  	worktoscreen(context);  	context.al = 25;  	playchannel1(context); @@ -11261,11 +11261,11 @@ static void scrollmonitor(Context & context) {  }  static void lockmon(Context & context) { -	context._cmp(context.data.byte(392), 57); +	context._cmp(context.ds.byte(392), 57);  	if (!context.flags.z()) goto notlock;  	locklighton(context);  lockloop: -	context._cmp(context.data.byte(392), 57); +	context._cmp(context.ds.byte(392), 57);  	if (context.flags.z()) goto lockloop;  	locklightoff(context);  notlock: @@ -11273,10 +11273,10 @@ notlock:  }  static void monitorlogo(Context & context) { -	context.al = context.data.byte(269); -	context._cmp(context.al, context.data.byte(270)); +	context.al = context.ds.byte(269); +	context._cmp(context.al, context.ds.byte(270));  	if (context.flags.z()) goto notnewlogo; -	context.data.byte(270) = context.al; +	context.ds.byte(270) = context.al;  	printlogo(context);  	printundermon(context);  	worktoscreen(context); @@ -11295,7 +11295,7 @@ notnewlogo:  static void printlogo(Context & context) {  	context.di = 56;  	context.bx = 32; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 0;  	context.ah = 0;  	showframe(context); @@ -11308,13 +11308,13 @@ static void showcurrentfile(Context & context) {  	context.bx = 37;  	context.si = 2895+1;  curfileloop: -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto finishfile;  	context._add(context.si, 1);  	context.push(context.si);  	modifychar(context); -	context.ds = context.data.word(406); +	context.ds = context.ds.word(406);  	context.ah = 0;  	printchar(context);  	context.si = context.pop(); @@ -11324,12 +11324,12 @@ finishfile:  }  static void monmessage(Context & context) { -	context.es = context.data.word(466); +	context.es = context.ds.word(466);  	context.bx = 66*2;  	context.cl = context.al;  	context.ch = 0;  monmessageloop: -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._add(context.bx, 1);  	context._cmp(context.al, '+');  	if (!context.flags.z()) goto monmessageloop; @@ -11339,7 +11339,7 @@ monmessageloop:  }  static void processtrigger(Context & context) { -	context._cmp(context.data.byte(55), '1'); +	context._cmp(context.ds.byte(55), '1');  	if (!context.flags.z()) goto notfirsttrigger;  	context.al = 8;  	setlocation(context); @@ -11347,7 +11347,7 @@ static void processtrigger(Context & context) {  	triggermessage(context);  	return;  notfirsttrigger: -	context._cmp(context.data.byte(55), '2'); +	context._cmp(context.ds.byte(55), '2');  	if (!context.flags.z()) goto notsecondtrigger;  	context.al = 9;  	setlocation(context); @@ -11355,7 +11355,7 @@ notfirsttrigger:  	triggermessage(context);  	return;  notsecondtrigger: -	context._cmp(context.data.byte(55), '3'); +	context._cmp(context.ds.byte(55), '3');  	if (!context.flags.z()) goto notthirdtrigger;  	context.al = 2;  	setlocation(context); @@ -11371,7 +11371,7 @@ static void triggermessage(Context & context) {  	context.bx = 153;  	context.cl = 200;  	context.ch = 63; -	context.ds = context.data.word(402); +	context.ds = context.ds.word(402);  	context.si = 0;  	multiget(context);  	context.ax = context.pop(); @@ -11390,11 +11390,11 @@ static void triggermessage(Context & context) {  	context.bx = 153;  	context.cl = 200;  	context.ch = 63; -	context.ds = context.data.word(402); +	context.ds = context.ds.word(402);  	context.si = 0;  	multiput(context);  	worktoscreen(context); -	context.data.byte(55) = 0; +	context.ds.byte(55) = 0;  	return;  } @@ -11405,13 +11405,13 @@ static void printcurs(Context & context) {  	context.push(context.dx);  	context.push(context.bx);  	context.push(context.es); -	context.di = context.data.word(312); -	context.bx = context.data.word(314); +	context.di = context.ds.word(312); +	context.bx = context.ds.word(314);  	context.cl = 6;  	context.ch = 8;  	context._sub(context.bx, 3);  	context.ch = 11; -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.si = 0;  	context.push(context.di);  	context.push(context.bx); @@ -11420,14 +11420,14 @@ static void printcurs(Context & context) {  	context.di = context.pop();  	context.push(context.bx);  	context.push(context.di); -	context._add(context.data.word(138), 1); -	context.ax = context.data.word(138); +	context._add(context.ds.word(138), 1); +	context.ax = context.ds.word(138);  	context._and(context.al, 16);  	if (!context.flags.z()) goto flashcurs;  	context.al = '/';  	context._sub(context.al, 32);  	context.ah = 0; -	context.ds = context.data.word(406); +	context.ds = context.ds.word(406);  	showframe(context);  flashcurs:  	context.di = context.pop(); @@ -11452,8 +11452,8 @@ static void delcurs(Context & context) {  	context.push(context.ds);  	context.push(context.dx);  	context.push(context.si); -	context.di = context.data.word(312); -	context.bx = context.data.word(314); +	context.di = context.ds.word(312); +	context.bx = context.ds.word(314);  	context.cl = 6;  	context.ch = 8;  	context._sub(context.bx, 3); @@ -11461,7 +11461,7 @@ static void delcurs(Context & context) {  	context.push(context.di);  	context.push(context.bx);  	context.push(context.cx); -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.si = 0;  	multiput(context);  	context.cx = context.pop(); @@ -11479,17 +11479,17 @@ finishcurdel:  }  static void useobject(Context & context) { -	context.data.byte(95) = 255; -	context._cmp(context.data.byte(100), 229); +	context.ds.byte(95) = 255; +	context._cmp(context.ds.byte(100), 229);  	if (context.flags.z()) goto alreadyuse; -	context.data.byte(100) = 229; -	context.bl = context.data.byte(99); -	context.bh = context.data.byte(102); +	context.ds.byte(100) = 229; +	context.bl = context.ds.byte(99); +	context.bh = context.ds.byte(102);  	context.al = 51;  	commandwithob(context);  alreadyuse: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto nouse;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto douse; @@ -11501,13 +11501,13 @@ douse:  }  static void useroutine(Context & context) { -	context._cmp(context.data.byte(184), 50); +	context._cmp(context.ds.byte(184), 50);  	if (context.flags.c()) goto nodream7; -	context._cmp(context.data.byte(232), 0); +	context._cmp(context.ds.byte(232), 0);  	if (!context.flags.z()) goto powerok;  	return;  powerok: -	context.data.byte(232) = 0; +	context.ds.byte(232) = 0;  nodream7:  	getanyad(context);  	context.dx = context.ds; @@ -11517,19 +11517,19 @@ checkuselist:  	context.push(context.si);  	context._lodsb();  	context._sub(context.al, 'A'); -	context._cmp(context.al, context.data.byte(context.bx+12)); +	context._cmp(context.al, context.ds.byte(context.bx+12));  	if (!context.flags.z()) goto failed;  	context._lodsb();  	context._sub(context.al, 'A'); -	context._cmp(context.al, context.data.byte(context.bx+13)); +	context._cmp(context.al, context.ds.byte(context.bx+13));  	if (!context.flags.z()) goto failed;  	context._lodsb();  	context._sub(context.al, 'A'); -	context._cmp(context.al, context.data.byte(context.bx+14)); +	context._cmp(context.al, context.ds.byte(context.bx+14));  	if (!context.flags.z()) goto failed;  	context._lodsb();  	context._sub(context.al, 'A'); -	context._cmp(context.al, context.data.byte(context.bx+15)); +	context._cmp(context.al, context.ds.byte(context.bx+15));  	if (!context.flags.z()) goto failed;  	context._lodsw();  	context.si = context.pop(); @@ -11538,7 +11538,7 @@ checkuselist:  failed:  	context.si = context.pop();  	context._add(context.si, 6); -	context._cmp(context.data.byte(context.si), 140); +	context._cmp(context.ds.byte(context.si), 140);  	if (!context.flags.z()) goto checkuselist;  	delpointer(context);  	getobtextstart(context); @@ -11548,7 +11548,7 @@ failed:  	findnextcolon(context);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto cantuse2; -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto cantuse2;  	usetext(context); @@ -11571,7 +11571,7 @@ cantuse2:  	context.cx = 50;  	hangonp(context);  	putbackobstuff(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	return;  } @@ -11584,21 +11584,21 @@ static void wheelsound(Context & context) {  }  static void runtap(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto tapwith;  	withwhat(context);  	return;  tapwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'C';  	context.ch = 'U';  	context.dl = 'P';  	context.dh = 'E';  	compare(context);  	if (context.flags.z()) goto fillcupfromtap; -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'C';  	context.ch = 'U';  	context.dl = 'P'; @@ -11611,9 +11611,9 @@ tapwith:  	putbackobstuff(context);  	return;  fillcupfromtap: -	context.al = context.data.byte(95); +	context.al = context.ds.byte(95);  	getexad(context); -	context.data.byte(context.bx+15) = 'F'-'A'; +	context.ds.byte(context.bx+15) = 'F'-'A';  	context.al = 8;  	playchannel1(context);  	context.cx = 300; @@ -11638,9 +11638,9 @@ static void playguitar(Context & context) {  }  static void hotelcontrol(Context & context) { -	context._cmp(context.data.byte(184), 21); +	context._cmp(context.ds.byte(184), 21);  	if (!context.flags.z()) goto notrightcont; -	context._cmp(context.data.byte(148), 33); +	context._cmp(context.ds.byte(148), 33);  	if (!context.flags.z()) goto notrightcont;  	showfirstuse(context);  	putbackobstuff(context); @@ -11660,22 +11660,22 @@ static void hotelbell(Context & context) {  }  static void opentomb(Context & context) { -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	showfirstuse(context); -	context.data.word(21) = 35*2; -	context.data.word(23) = 1; -	context.data.word(25) = 33; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context.ds.word(21) = 35*2; +	context.ds.word(23) = 1; +	context.ds.word(25) = 33; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void usetrainer(Context & context) {  	getanyad(context); -	context._cmp(context.data.byte(context.bx+2), 4); +	context._cmp(context.ds.byte(context.bx+2), 4);  	if (!context.flags.z()) goto notheldtrainer; -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	makeworn(context);  	showseconduse(context);  	putbackobstuff(context); @@ -11705,21 +11705,21 @@ static void nothelderror(Context & context) {  }  static void usepipe(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto pipewith;  	withwhat(context);  	return;  pipewith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'C';  	context.ch = 'U';  	context.dl = 'P';  	context.dh = 'E';  	compare(context);  	if (context.flags.z()) goto fillcup; -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'C';  	context.ch = 'U';  	context.dl = 'P'; @@ -11736,9 +11736,9 @@ fillcup:  	context.al = 36;  	showpuztext(context);  	putbackobstuff(context); -	context.al = context.data.byte(95); +	context.al = context.ds.byte(95);  	getexad(context); -	context.data.byte(context.bx+15) = 'F'-'A'; +	context.ds.byte(context.bx+15) = 'F'-'A';  	return;  alreadyfull:  	context.cx = 300; @@ -11749,35 +11749,35 @@ alreadyfull:  }  static void usefullcart(Context & context) { -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	context.al = 2; -	context.ah = context.data.byte(185); +	context.ah = context.ds.byte(185);  	context._add(context.ah, 6);  	turnanypathon(context); -	context.data.byte(475) = 4; -	context.data.byte(133) = 4; -	context.data.byte(135) = 4; -	context.data.byte(477) = 4; +	context.ds.byte(475) = 4; +	context.ds.byte(133) = 4; +	context.ds.byte(135) = 4; +	context.ds.byte(477) = 4;  	findxyfrompath(context); -	context.data.byte(187) = 1; +	context.ds.byte(187) = 1;  	showfirstuse(context); -	context.data.word(21) = 72*2; -	context.data.word(23) = 58; -	context.data.word(25) = 142; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context.ds.word(21) = 72*2; +	context.ds.word(23) = 58; +	context.ds.word(25) = 142; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void useplinth(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto plinthwith;  	withwhat(context);  	return;  plinthwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'D';  	context.ch = 'K';  	context.dl = 'E'; @@ -11788,80 +11788,80 @@ plinthwith:  	putbackobstuff(context);  	return;  isrightkey: -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	showseconduse(context); -	context.data.word(21) = 220; -	context.data.word(23) = 0; -	context.data.word(25) = 104; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; -	context.al = context.data.byte(67); -	context.data.byte(188) = context.al; +	context.ds.word(21) = 220; +	context.ds.word(23) = 0; +	context.ds.word(25) = 104; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1; +	context.al = context.ds.byte(67); +	context.ds.byte(188) = context.al;  	return;  }  static void chewy(Context & context) {  	showfirstuse(context);  	getanyad(context); -	context.data.byte(context.bx+2) = 255; -	context.data.byte(103) = 1; +	context.ds.byte(context.bx+2) = 255; +	context.ds.byte(103) = 1;  	return;  }  static void useladder(Context & context) {  	showfirstuse(context); -	context._sub(context.data.byte(148), 11); +	context._sub(context.ds.byte(148), 11);  	findroominloc(context); -	context.data.byte(133) = 6; -	context.data.byte(135) = 6; -	context.data.byte(475) = 0; -	context.data.byte(478) = 0; -	context.data.byte(477) = 0; +	context.ds.byte(133) = 6; +	context.ds.byte(135) = 6; +	context.ds.byte(475) = 0; +	context.ds.byte(478) = 0; +	context.ds.byte(477) = 0;  	findxyfrompath(context); -	context.data.byte(187) = 1; -	context.data.byte(103) = 1; +	context.ds.byte(187) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void useladderb(Context & context) {  	showfirstuse(context); -	context._add(context.data.byte(148), 11); +	context._add(context.ds.byte(148), 11);  	findroominloc(context); -	context.data.byte(133) = 2; -	context.data.byte(135) = 2; -	context.data.byte(475) = 1; -	context.data.byte(478) = 1; -	context.data.byte(477) = 1; +	context.ds.byte(133) = 2; +	context.ds.byte(135) = 2; +	context.ds.byte(475) = 1; +	context.ds.byte(478) = 1; +	context.ds.byte(477) = 1;  	findxyfrompath(context); -	context.data.byte(187) = 1; -	context.data.byte(103) = 1; +	context.ds.byte(187) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void slabdoora(Context & context) {  	showfirstuse(context); -	context.data.byte(103) = 1; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.word(23) = 13; -	context._cmp(context.data.byte(66), 3); +	context.ds.byte(103) = 1; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.word(23) = 13; +	context._cmp(context.ds.byte(66), 3);  	if (!context.flags.z()) goto slabawrong; -	context._add(context.data.byte(2), 1); -	context.data.word(21) = 60; -	context.data.word(25) = 42; -	context.data.byte(188) = 47; +	context._add(context.ds.byte(2), 1); +	context.ds.word(21) = 60; +	context.ds.word(25) = 42; +	context.ds.byte(188) = 47;  	return;  slabawrong: -	context.data.word(21) = 40; -	context.data.word(25) = 34; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 40; +	context.ds.word(25) = 34; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	return;  }  static void slabdoorb(Context & context) { -	context._cmp(context.data.byte(66), 1); +	context._cmp(context.ds.byte(66), 1);  	if (!context.flags.z()) goto slabbwrong;  	context.al = 'S';  	context.ah = 'H'; @@ -11876,120 +11876,120 @@ static void slabdoorb(Context & context) {  	return;  gotcrystal:  	showfirstuse(context); -	context._add(context.data.byte(2), 1); -	context.data.byte(103) = 1; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.word(23) = 44; -	context.data.word(21) = 60; -	context.data.word(25) = 71; -	context.data.byte(188) = 47; +	context._add(context.ds.byte(2), 1); +	context.ds.byte(103) = 1; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.word(23) = 44; +	context.ds.word(21) = 60; +	context.ds.word(25) = 71; +	context.ds.byte(188) = 47;  	return;  slabbwrong:  	showfirstuse(context); -	context.data.byte(103) = 1; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.word(23) = 44; -	context.data.word(21) = 40; -	context.data.word(25) = 63; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.byte(103) = 1; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.word(23) = 44; +	context.ds.word(21) = 40; +	context.ds.word(25) = 63; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	return;  }  static void slabdoord(Context & context) {  	showfirstuse(context); -	context.data.byte(103) = 1; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.word(23) = 75; -	context._cmp(context.data.byte(66), 0); +	context.ds.byte(103) = 1; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.word(23) = 75; +	context._cmp(context.ds.byte(66), 0);  	if (!context.flags.z()) goto slabcwrong; -	context._add(context.data.byte(2), 1); -	context.data.word(21) = 60; -	context.data.word(25) = 102; -	context.data.byte(188) = 47; +	context._add(context.ds.byte(2), 1); +	context.ds.word(21) = 60; +	context.ds.word(25) = 102; +	context.ds.byte(188) = 47;  	return;  slabcwrong: -	context.data.word(21) = 40; -	context.data.word(25) = 94; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 40; +	context.ds.word(25) = 94; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	return;  }  static void slabdoorc(Context & context) {  	showfirstuse(context); -	context.data.byte(103) = 1; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.word(23) = 108; -	context._cmp(context.data.byte(66), 4); +	context.ds.byte(103) = 1; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.word(23) = 108; +	context._cmp(context.ds.byte(66), 4);  	if (!context.flags.z()) goto slabdwrong; -	context._add(context.data.byte(2), 1); -	context.data.word(21) = 60; -	context.data.word(25) = 135; -	context.data.byte(188) = 47; +	context._add(context.ds.byte(2), 1); +	context.ds.word(21) = 60; +	context.ds.word(25) = 135; +	context.ds.byte(188) = 47;  	return;  slabdwrong: -	context.data.word(21) = 40; -	context.data.word(25) = 127; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 40; +	context.ds.word(25) = 127; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	return;  }  static void slabdoore(Context & context) {  	showfirstuse(context); -	context.data.byte(103) = 1; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.word(23) = 141; -	context._cmp(context.data.byte(66), 5); +	context.ds.byte(103) = 1; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.word(23) = 141; +	context._cmp(context.ds.byte(66), 5);  	if (!context.flags.z()) goto slabewrong; -	context._add(context.data.byte(2), 1); -	context.data.word(21) = 60; -	context.data.word(25) = 168; -	context.data.byte(188) = 47; +	context._add(context.ds.byte(2), 1); +	context.ds.word(21) = 60; +	context.ds.word(25) = 168; +	context.ds.byte(188) = 47;  	return;  slabewrong: -	context.data.word(21) = 40; -	context.data.word(25) = 160; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 40; +	context.ds.word(25) = 160; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	return;  }  static void slabdoorf(Context & context) {  	showfirstuse(context); -	context.data.byte(103) = 1; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.word(23) = 171; -	context._cmp(context.data.byte(66), 2); +	context.ds.byte(103) = 1; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.word(23) = 171; +	context._cmp(context.ds.byte(66), 2);  	if (!context.flags.z()) goto slabfwrong; -	context._add(context.data.byte(2), 1); -	context.data.word(21) = 60; -	context.data.word(25) = 197; -	context.data.byte(188) = 47; +	context._add(context.ds.byte(2), 1); +	context.ds.word(21) = 60; +	context.ds.word(25) = 197; +	context.ds.byte(188) = 47;  	return;  slabfwrong: -	context.data.word(21) = 40; -	context.data.word(25) = 189; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 40; +	context.ds.word(25) = 189; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	return;  }  static void useslab(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto slabwith;  	withwhat(context);  	return;  slabwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'J';  	context.ch = 'E';  	context.dl = 'W'; @@ -12002,10 +12002,10 @@ slabwith:  	putbackobstuff(context);  	return;  nextslab: -	context.al = context.data.byte(95); +	context.al = context.ds.byte(95);  	getexad(context); -	context.data.byte(context.bx+2) = 0; -	context.al = context.data.byte(99); +	context.ds.byte(context.bx+2) = 0; +	context.al = context.ds.byte(99);  	context.push(context.ax);  	removesetobject(context);  	context.ax = context.pop(); @@ -12017,26 +12017,26 @@ nextslab:  	if (!context.flags.z()) goto notlastslab;  	context.al = 0;  	turnpathon(context); -	context.data.word(21) = 22; -	context.data.word(23) = 35; -	context.data.word(25) = 48; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 22; +	context.ds.word(23) = 35; +	context.ds.word(25) = 48; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  notlastslab: -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	showfirstuse(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void usecart(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto cartwith;  	withwhat(context);  	return;  cartwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'R';  	context.ch = 'O';  	context.dl = 'C'; @@ -12049,31 +12049,31 @@ cartwith:  	putbackobstuff(context);  	return;  nextcart: -	context.al = context.data.byte(95); +	context.al = context.ds.byte(95);  	getexad(context); -	context.data.byte(context.bx+2) = 0; -	context.al = context.data.byte(99); +	context.ds.byte(context.bx+2) = 0; +	context.al = context.ds.byte(99);  	context.push(context.ax);  	removesetobject(context);  	context.ax = context.pop();  	context._add(context.al, 1);  	placesetobject(context); -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	context.al = 17;  	playchannel1(context);  	showfirstuse(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void useclearbox(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto clearboxwith;  	withwhat(context);  	return;  clearboxwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'R';  	context.ch = 'A';  	context.dl = 'I'; @@ -12086,57 +12086,57 @@ clearboxwith:  	putbackobstuff(context);  	return;  openbox: -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	showfirstuse(context); -	context.data.word(21) = 80; -	context.data.word(23) = 67; -	context.data.word(25) = 105; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context.ds.word(21) = 80; +	context.ds.word(23) = 67; +	context.ds.word(25) = 105; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void usecoveredbox(Context & context) { -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	showfirstuse(context); -	context.data.word(21) = 50; -	context.data.word(23) = 41; -	context.data.word(25) = 66; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context.ds.word(21) = 50; +	context.ds.word(23) = 41; +	context.ds.word(25) = 66; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void userailing(Context & context) {  	showfirstuse(context); -	context.data.word(21) = 80; -	context.data.word(23) = 0; -	context.data.word(25) = 30; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; -	context.data.byte(56) = 4; +	context.ds.word(21) = 80; +	context.ds.word(23) = 0; +	context.ds.word(25) = 30; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1; +	context.ds.byte(56) = 4;  	return;  }  static void useopenbox(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto openboxwith;  	withwhat(context);  	return;  openboxwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'C';  	context.ch = 'U';  	context.dl = 'P';  	context.dh = 'F';  	compare(context);  	if (context.flags.z()) goto destoryopenbox; -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'C';  	context.ch = 'U';  	context.dl = 'P'; @@ -12146,21 +12146,21 @@ openboxwith:  	showfirstuse(context);  	return;  destoryopenbox: -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	context.cx = 300;  	context.al = 37;  	showpuztext(context); -	context.al = context.data.byte(95); +	context.al = context.ds.byte(95);  	getexad(context); -	context.data.byte(context.bx+15) = 'E'-'A'; -	context.data.word(21) = 140; -	context.data.word(23) = 105; -	context.data.word(25) = 181; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.byte(context.bx+15) = 'E'-'A'; +	context.ds.word(21) = 140; +	context.ds.word(23) = 105; +	context.ds.word(25) = 181; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	context.al = 4;  	turnpathon(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  openboxwrong:  	context.cx = 300; @@ -12171,11 +12171,11 @@ openboxwrong:  }  static void wearwatch(Context & context) { -	context._cmp(context.data.byte(3), 1); +	context._cmp(context.ds.byte(3), 1);  	if (context.flags.z()) goto wearingwatch;  	showfirstuse(context); -	context.data.byte(3) = 1; -	context.data.byte(103) = 1; +	context.ds.byte(3) = 1; +	context.ds.byte(103) = 1;  	getanyad(context);  	makeworn(context);  	return; @@ -12186,11 +12186,11 @@ wearingwatch:  }  static void wearshades(Context & context) { -	context._cmp(context.data.byte(4), 1); +	context._cmp(context.ds.byte(4), 1);  	if (context.flags.z()) goto wearingshades; -	context.data.byte(4) = 1; +	context.ds.byte(4) = 1;  	showfirstuse(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	getanyad(context);  	makeworn(context);  	return; @@ -12201,17 +12201,17 @@ wearingshades:  }  static void sitdowninbar(Context & context) { -	context._cmp(context.data.byte(32), -1); +	context._cmp(context.ds.byte(32), -1);  	if (!context.flags.z()) goto satdown;  	showfirstuse(context); -	context.data.word(21) = 50; -	context.data.word(23) = 55; -	context.data.word(25) = 71; -	context.data.word(29) = 73; -	context.data.word(31) = 83; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context.ds.word(21) = 50; +	context.ds.word(23) = 55; +	context.ds.word(25) = 71; +	context.ds.word(29) = 73; +	context.ds.word(31) = 83; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	return;  satdown:  	showseconduse(context); @@ -12221,23 +12221,23 @@ satdown:  static void usechurchhole(Context & context) {  	showfirstuse(context); -	context.data.byte(103) = 1; -	context.data.word(21) = 28; -	context.data.word(23) = 13; -	context.data.word(25) = 26; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.byte(103) = 1; +	context.ds.word(21) = 28; +	context.ds.word(23) = 13; +	context.ds.word(25) = 26; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	return;  }  static void usehole(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto holewith;  	withwhat(context);  	return;  holewith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'H';  	context.ch = 'N';  	context.dl = 'D'; @@ -12253,11 +12253,11 @@ righthand:  	showfirstuse(context);  	context.al = 86;  	removesetobject(context); -	context.al = context.data.byte(95); +	context.al = context.ds.byte(95);  	getexad(context); -	context.data.byte(context.bx+2) = 255; -	context.data.byte(47) = 1; -	context.data.byte(103) = 1; +	context.ds.byte(context.bx+2) = 255; +	context.ds.byte(47) = 1; +	context.ds.byte(103) = 1;  	return;  } @@ -12276,43 +12276,43 @@ static void usealtar(Context & context) {  	findexobject(context);  	context._cmp(context.al, 114);  	if (context.flags.z()) goto thingsonaltar; -	context._cmp(context.data.byte(47), 1); +	context._cmp(context.ds.byte(47), 1);  	if (context.flags.z()) goto movealtar;  	context.cx = 300;  	context.al = 23;  	showpuztext(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  movealtar: -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	showseconduse(context); -	context.data.word(21) = 160; -	context.data.word(23) = 81; -	context.data.word(25) = 174; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 160; +	context.ds.word(23) = 81; +	context.ds.word(25) = 174; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	context.al = 47;  	context.bl = 52;  	context.bh = 76;  	context.cx = 32;  	context.dx = 98;  	setuptimeduse(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  thingsonaltar:  	showfirstuse(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void opentvdoor(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto tvdoorwith;  	withwhat(context);  	return;  tvdoorwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'U';  	context.ch = 'L';  	context.dl = 'O'; @@ -12326,8 +12326,8 @@ tvdoorwith:  	return;  keyontv:  	showfirstuse(context); -	context.data.byte(37) = 0; -	context.data.byte(103) = 1; +	context.ds.byte(37) = 0; +	context.ds.byte(103) = 1;  	return;  } @@ -12335,7 +12335,7 @@ static void usedryer(Context & context) {  	context.al = 12;  	playchannel1(context);  	showfirstuse(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  } @@ -12345,13 +12345,13 @@ static void openlouis(Context & context) {  	context.cl = 3;  	context.ch = 8;  	entercode(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void nextcolon(Context & context) {  lookcolon: -	context.al = context.data.byte(context.si); +	context.al = context.ds.byte(context.si);  	context._add(context.si, 1);  	context._cmp(context.al, ':');  	if (!context.flags.z()) goto lookcolon; @@ -12364,17 +12364,17 @@ static void openyourneighbour(Context & context) {  	context.cl = 255;  	context.ch = 255;  	entercode(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void usewindow(Context & context) { -	context._cmp(context.data.byte(475), 6); +	context._cmp(context.ds.byte(475), 6);  	if (!context.flags.z()) goto notonbalc; -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	showfirstuse(context); -	context.data.byte(188) = 29; -	context.data.byte(103) = 1; +	context.ds.byte(188) = 29; +	context.ds.byte(103) = 1;  	return;  notonbalc:  	showseconduse(context); @@ -12398,19 +12398,19 @@ static void usebalcony(Context & context) {  	turnpathoff(context);  	context.al = 5;  	turnpathoff(context); -	context._add(context.data.byte(2), 1); -	context.data.byte(475) = 6; -	context.data.byte(478) = 6; -	context.data.byte(477) = 6; +	context._add(context.ds.byte(2), 1); +	context.ds.byte(475) = 6; +	context.ds.byte(478) = 6; +	context.ds.byte(477) = 6;  	findxyfrompath(context);  	switchryanoff(context); -	context.data.byte(187) = 1; -	context.data.word(21) = 30*2; -	context.data.word(23) = 183; -	context.data.word(25) = 212; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context.ds.byte(187) = 1; +	context.ds.word(21) = 30*2; +	context.ds.word(23) = 183; +	context.ds.word(25) = 212; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	return;  } @@ -12420,7 +12420,7 @@ static void openryan(Context & context) {  	context.cl = 0;  	context.ch = 6;  	entercode(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  } @@ -12430,7 +12430,7 @@ static void openpoolboss(Context & context) {  	context.cl = 2;  	context.ch = 2;  	entercode(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  } @@ -12440,7 +12440,7 @@ static void openeden(Context & context) {  	context.cl = 6;  	context.ch = 5;  	entercode(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  } @@ -12450,7 +12450,7 @@ static void opensarters(Context & context) {  	context.cl = 3;  	context.ch = 3;  	entercode(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  } @@ -12458,13 +12458,13 @@ static void isitright(Context & context) {  	context.bx = context.ds;  	context.es = context.bx;  	context.bx = 8350; -	context._cmp(context.data.byte(context.bx+0), context.al); +	context._cmp(context.ds.byte(context.bx+0), context.al);  	if (!context.flags.z()) goto notright; -	context._cmp(context.data.byte(context.bx+1), context.ah); +	context._cmp(context.ds.byte(context.bx+1), context.ah);  	if (!context.flags.z()) goto notright; -	context._cmp(context.data.byte(context.bx+2), context.cl); +	context._cmp(context.ds.byte(context.bx+2), context.cl);  	if (!context.flags.z()) goto notright; -	context._cmp(context.data.byte(context.bx+3), context.ch); +	context._cmp(context.ds.byte(context.bx+3), context.ch);  notright:  	return;  } @@ -12478,13 +12478,13 @@ static void drawitall(Context & context) {  }  static void openhoteldoor(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto hoteldoorwith;  	withwhat(context);  	return;  hoteldoorwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'K';  	context.ch = 'E';  	context.dl = 'Y'; @@ -12500,19 +12500,19 @@ keyonhotel1:  	context.al = 16;  	playchannel1(context);  	showfirstuse(context); -	context.data.byte(37) = 0; -	context.data.byte(103) = 1; +	context.ds.byte(37) = 0; +	context.ds.byte(103) = 1;  	return;  }  static void openhoteldoor2(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto hoteldoorwith2;  	withwhat(context);  	return;  hoteldoorwith2: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'K';  	context.ch = 'E';  	context.dl = 'Y'; @@ -12533,13 +12533,13 @@ keyonhotel2:  }  static void grafittidoor(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto grafwith;  	withwhat(context);  	return;  grafwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'A';  	context.ch = 'P';  	context.dl = 'E'; @@ -12558,16 +12558,16 @@ dograf:  }  static void trapdoor(Context & context) { -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	showfirstuse(context);  	switchryanoff(context); -	context.data.word(21) = 20*2; -	context.data.word(23) = 181; -	context.data.word(25) = 197; -	context.data.byte(188) = 26; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context.ds.word(21) = 20*2; +	context.ds.word(23) = 181; +	context.ds.word(25) = 197; +	context.ds.byte(188) = 26; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	return;  } @@ -12575,10 +12575,10 @@ static void callhotellift(Context & context) {  	context.al = 12;  	playchannel1(context);  	showfirstuse(context); -	context.data.byte(39) = 8; -	context.data.byte(103) = 1; -	context.data.byte(478) = 5; -	context.data.byte(477) = 5; +	context.ds.byte(39) = 8; +	context.ds.byte(103) = 1; +	context.ds.byte(478) = 5; +	context.ds.byte(477) = 5;  	autosetwalk(context);  	context.al = 4;  	turnpathon(context); @@ -12587,19 +12587,19 @@ static void callhotellift(Context & context) {  static void calledenslift(Context & context) {  	showfirstuse(context); -	context.data.byte(39) = 8; -	context.data.byte(103) = 1; +	context.ds.byte(39) = 8; +	context.ds.byte(103) = 1;  	context.al = 2;  	turnpathon(context);  	return;  }  static void calledensdlift(Context & context) { -	context._cmp(context.data.byte(35), 1); +	context._cmp(context.ds.byte(35), 1);  	if (context.flags.z()) goto edensdhere;  	showfirstuse(context); -	context.data.byte(39) = 8; -	context.data.byte(103) = 1; +	context.ds.byte(39) = 8; +	context.ds.byte(103) = 1;  	context.al = 2;  	turnpathon(context);  	return; @@ -12610,13 +12610,13 @@ edensdhere:  }  static void usepoolreader(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto poolwith;  	withwhat(context);  	return;  poolwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'M';  	context.ch = 'E';  	context.dl = 'M'; @@ -12629,7 +12629,7 @@ poolwith:  	putbackobstuff(context);  	return;  openpool: -	context._cmp(context.data.byte(48), 1); +	context._cmp(context.ds.byte(48), 1);  	if (context.flags.z()) goto canopenpool;  	showseconduse(context);  	putbackobstuff(context); @@ -12638,19 +12638,19 @@ canopenpool:  	context.al = 17;  	playchannel1(context);  	showfirstuse(context); -	context.data.byte(39) = 6; -	context.data.byte(103) = 1; +	context.ds.byte(39) = 6; +	context.ds.byte(103) = 1;  	return;  }  static void uselighter(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto gotlighterwith;  	withwhat(context);  	return;  gotlighterwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'S';  	context.ch = 'M';  	context.dl = 'K'; @@ -12664,10 +12664,10 @@ cigarette:  	context.cx = 300;  	context.al = 9;  	showpuztext(context); -	context.al = context.data.byte(95); +	context.al = context.ds.byte(95);  	getexad(context); -	context.data.byte(context.bx+2) = 255; -	context.data.byte(103) = 1; +	context.ds.byte(context.bx+2) = 255; +	context.ds.byte(103) = 1;  	return;  } @@ -12683,13 +12683,13 @@ static void showseconduse(Context & context) {  }  static void usecardreader1(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto gotreader1with;  	withwhat(context);  	return;  gotreader1with: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'C';  	context.ch = 'S';  	context.dl = 'H'; @@ -12702,9 +12702,9 @@ gotreader1with:  	putbackobstuff(context);  	return;  correctcard: -	context._cmp(context.data.byte(49), 0); +	context._cmp(context.ds.byte(49), 0);  	if (context.flags.z()) goto notyet; -	context._cmp(context.data.word(16), 0); +	context._cmp(context.ds.word(16), 0);  	if (context.flags.z()) goto getscash;  	context.cx = 300;  	context.al = 17; @@ -12717,9 +12717,9 @@ getscash:  	context.cx = 300;  	context.al = 18;  	showpuztext(context); -	context._add(context.data.byte(2), 1); -	context.data.word(16) = 12432; -	context.data.byte(103) = 1; +	context._add(context.ds.byte(2), 1); +	context.ds.word(16) = 12432; +	context.ds.byte(103) = 1;  	return;  notyet:  	showfirstuse(context); @@ -12728,13 +12728,13 @@ notyet:  }  static void usecardreader2(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto gotreader2with;  	withwhat(context);  	return;  gotreader2with: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'C';  	context.ch = 'S';  	context.dl = 'H'; @@ -12747,11 +12747,11 @@ gotreader2with:  	putbackobstuff(context);  	return;  correctcard2: -	context._cmp(context.data.byte(50), 0); +	context._cmp(context.ds.byte(50), 0);  	if (context.flags.z()) goto notyetboss; -	context._cmp(context.data.word(16), 0); +	context._cmp(context.ds.word(16), 0);  	if (context.flags.z()) goto nocash; -	context._cmp(context.data.byte(46), 2); +	context._cmp(context.ds.byte(46), 2);  	if (context.flags.z()) goto alreadygotnew;  	context.al = 18;  	playchannel1(context); @@ -12760,10 +12760,10 @@ correctcard2:  	showpuztext(context);  	context.al = 94;  	placesetobject(context); -	context.data.byte(46) = 1; -	context._sub(context.data.word(16), 2000); -	context._add(context.data.byte(2), 1); -	context.data.byte(103) = 1; +	context.ds.byte(46) = 1; +	context._sub(context.ds.word(16), 2000); +	context._add(context.ds.byte(2), 1); +	context.ds.byte(103) = 1;  	return;  nocash:  	context.cx = 300; @@ -12784,13 +12784,13 @@ notyetboss:  }  static void usecardreader3(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto gotreader3with;  	withwhat(context);  	return;  gotreader3with: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'C';  	context.ch = 'S';  	context.dl = 'H'; @@ -12803,19 +12803,19 @@ gotreader3with:  	putbackobstuff(context);  	return;  rightcard: -	context._cmp(context.data.byte(51), 0); +	context._cmp(context.ds.byte(51), 0);  	if (context.flags.z()) goto notyetrecep; -	context._cmp(context.data.byte(52), 0); +	context._cmp(context.ds.byte(52), 0);  	if (!context.flags.z()) goto alreadyusedit;  	context.al = 16;  	playchannel1(context);  	context.cx = 300;  	context.al = 25;  	showpuztext(context); -	context._add(context.data.byte(2), 1); -	context._sub(context.data.word(16), 8300); -	context.data.byte(52) = 1; -	context.data.byte(103) = 1; +	context._add(context.ds.byte(2), 1); +	context._sub(context.ds.word(16), 8300); +	context.ds.byte(52) = 1; +	context.ds.byte(103) = 1;  	return;  alreadyusedit:  	context.cx = 300; @@ -12838,11 +12838,11 @@ static void usecashcard(Context & context) {  	showman(context);  	context.di = 114;  	context.bx = 120-3; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 39;  	context.ah = 0;  	showframe(context); -	context.ax = context.data.word(16); +	context.ax = context.ds.word(16);  	moneypoke(context);  	getobtextstart(context);  	nextcolon(context); @@ -12857,7 +12857,7 @@ static void usecashcard(Context & context) {  	context.bx = 155;  	context.es = context.cs;  	context.si = 3385; -	context.data.word(71) = 91*2+75; +	context.ds.word(71) = 91*2+75;  	context.al = 0;  	context.ah = 0;  	context.dl = 240; @@ -12866,12 +12866,12 @@ static void usecashcard(Context & context) {  	context.bx = 155;  	context.es = context.cs;  	context.si = 3390; -	context.data.word(71) = 91*2+85; +	context.ds.word(71) = 91*2+85;  	context.al = 0;  	context.ah = 0;  	context.dl = 240;  	printdirect(context); -	context.data.word(71) = 0; +	context.ds.word(71) = 0;  	worktoscreenm(context);  	context.cx = 400;  	hangonp(context); @@ -12882,13 +12882,13 @@ static void usecashcard(Context & context) {  }  static void lookatcard(Context & context) { -	context.data.byte(131) = 1; +	context.ds.byte(131) = 1;  	getridofreels(context);  	loadkeypad(context);  	createpanel2(context);  	context.di = 160;  	context.bx = 80; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 42;  	context.ah = 128;  	showframe(context); @@ -12910,7 +12910,7 @@ static void lookatcard(Context & context) {  	createpanel2(context);  	context.di = 160;  	context.bx = 80; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 42;  	context.ah = 128;  	showframe(context); @@ -12925,7 +12925,7 @@ static void lookatcard(Context & context) {  	worktoscreenm(context);  	context.cx = 200;  	hangonw(context); -	context.data.byte(131) = 0; +	context.ds.byte(131) = 0;  	getridoftemp(context);  	restorereels(context);  	putbackobstuff(context); @@ -12940,7 +12940,7 @@ numberpoke0:  	context._sub(context.ax, 10000);  	if (!context.flags.c()) goto numberpoke0;  	context._add(context.ax, 10000); -	context.data.byte(context.bx) = context.cl; +	context.ds.byte(context.bx) = context.cl;  	context._add(context.bx, 1);  	context.cl = 48-1;  numberpoke1: @@ -12948,7 +12948,7 @@ numberpoke1:  	context._sub(context.ax, 1000);  	if (!context.flags.c()) goto numberpoke1;  	context._add(context.ax, 1000); -	context.data.byte(context.bx) = context.cl; +	context.ds.byte(context.bx) = context.cl;  	context._add(context.bx, 1);  	context.cl = 48-1;  numberpoke2: @@ -12956,7 +12956,7 @@ numberpoke2:  	context._sub(context.ax, 100);  	if (!context.flags.c()) goto numberpoke2;  	context._add(context.ax, 100); -	context.data.byte(context.bx) = context.cl; +	context.ds.byte(context.bx) = context.cl;  	context._add(context.bx, 1);  	context.cl = 48-1;  numberpoke3: @@ -12964,39 +12964,39 @@ numberpoke3:  	context._sub(context.ax, 10);  	if (!context.flags.c()) goto numberpoke3;  	context._add(context.ax, 10); -	context.data.byte(context.bx) = context.cl; +	context.ds.byte(context.bx) = context.cl;  	context.bx = 3390;  	context._add(context.al, 48); -	context.data.byte(context.bx) = context.al; +	context.ds.byte(context.bx) = context.al;  	return;  }  static void usecontrol(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto gotcontrolwith;  	withwhat(context);  	return;  gotcontrolwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'K';  	context.ch = 'E';  	context.dl = 'Y';  	context.dh = 'A';  	compare(context);  	if (context.flags.z()) goto rightkey; -	context._cmp(context.data.byte(184), 21); +	context._cmp(context.ds.byte(184), 21);  	if (!context.flags.z()) goto balls; -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'K';  	context.ch = 'N';  	context.dl = 'F';  	context.dh = 'E';  	compare(context);  	if (context.flags.z()) goto jimmycontrols; -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'A';  	context.ch = 'X';  	context.dl = 'E'; @@ -13010,26 +13010,26 @@ balls:  rightkey:  	context.al = 16;  	playchannel1(context); -	context._cmp(context.data.byte(9), 21); +	context._cmp(context.ds.byte(9), 21);  	if (context.flags.z()) goto goingdown;  	context.cx = 300;  	context.al = 0;  	showpuztext(context); -	context.data.byte(188) = 21; -	context.data.byte(40) = 8; -	context.data.byte(39) = 0; -	context.data.word(21) = 80; -	context.data.byte(103) = 1; +	context.ds.byte(188) = 21; +	context.ds.byte(40) = 8; +	context.ds.byte(39) = 0; +	context.ds.word(21) = 80; +	context.ds.byte(103) = 1;  	return;  goingdown:  	context.cx = 300;  	context.al = 3;  	showpuztext(context); -	context.data.byte(188) = 30; -	context.data.byte(40) = 8; -	context.data.byte(39) = 0; -	context.data.word(21) = 80; -	context.data.byte(103) = 1; +	context.ds.byte(188) = 30; +	context.ds.byte(40) = 8; +	context.ds.byte(39) = 0; +	context.ds.word(21) = 80; +	context.ds.byte(103) = 1;  	return;  jimmycontrols:  	context.al = 50; @@ -13049,41 +13049,41 @@ jimmycontrols:  	context.cx = 300;  	context.al = 10;  	showpuztext(context); -	context._add(context.data.byte(2), 1); -	context.data.byte(103) = 1; +	context._add(context.ds.byte(2), 1); +	context.ds.byte(103) = 1;  	return;  axeoncontrols:  	context.cx = 300;  	context.al = 16;  	showpuztext(context); -	context._add(context.data.byte(2), 1); +	context._add(context.ds.byte(2), 1);  	putbackobstuff(context);  	return;  }  static void usehatch(Context & context) {  	showfirstuse(context); -	context.data.byte(188) = 40; -	context.data.byte(103) = 1; +	context.ds.byte(188) = 40; +	context.ds.byte(103) = 1;  	return;  }  static void usewire(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto gotwirewith;  	withwhat(context);  	return;  gotwirewith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'K';  	context.ch = 'N';  	context.dl = 'F';  	context.dh = 'E';  	compare(context);  	if (context.flags.z()) goto wireknife; -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'A';  	context.ch = 'X';  	context.dl = 'E'; @@ -13109,8 +13109,8 @@ wireknife:  	context.cx = 300;  	context.al = 11;  	showpuztext(context); -	context._add(context.data.byte(2), 1); -	context.data.byte(103) = 1; +	context._add(context.ds.byte(2), 1); +	context.ds.byte(103) = 1;  	return;  } @@ -13120,27 +13120,27 @@ static void usehandle(Context & context) {  	context.cl = 'T';  	context.ch = 'W';  	findsetobject(context); -	context.al = context.data.byte(context.bx+58); +	context.al = context.ds.byte(context.bx+58);  	context._cmp(context.al, 255);  	if (!context.flags.z()) goto havecutwire;  	context.cx = 300;  	context.al = 12;  	showpuztext(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  havecutwire:  	context.cx = 300;  	context.al = 13;  	showpuztext(context); -	context.data.byte(188) = 22; -	context.data.byte(103) = 1; +	context.ds.byte(188) = 22; +	context.ds.byte(103) = 1;  	return;  }  static void useelevator1(Context & context) {  	showfirstuse(context);  	selectlocation(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  } @@ -13156,47 +13156,47 @@ static void showfirstuse(Context & context) {  static void useelevator3(Context & context) {  	showfirstuse(context); -	context.data.byte(40) = 20; -	context.data.byte(188) = 34; -	context.data.word(23) = 46; -	context.data.word(25) = 63; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.word(21) = 80; -	context.data.byte(103) = 1; +	context.ds.byte(40) = 20; +	context.ds.byte(188) = 34; +	context.ds.word(23) = 46; +	context.ds.word(25) = 63; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.word(21) = 80; +	context.ds.byte(103) = 1;  	return;  }  static void useelevator4(Context & context) {  	showfirstuse(context); -	context.data.word(23) = 0; -	context.data.word(25) = 11; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(40) = 20; -	context.data.word(21) = 80; -	context.data.byte(103) = 1; -	context.data.byte(188) = 24; +	context.ds.word(23) = 0; +	context.ds.word(25) = 11; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(40) = 20; +	context.ds.word(21) = 80; +	context.ds.byte(103) = 1; +	context.ds.byte(188) = 24;  	return;  }  static void useelevator2(Context & context) { -	context._cmp(context.data.byte(9), 23); +	context._cmp(context.ds.byte(9), 23);  	if (context.flags.z()) goto inpoolhall;  	showfirstuse(context); -	context.data.byte(188) = 23; -	context.data.byte(40) = 20; -	context.data.byte(39) = 0; -	context.data.word(21) = 80; -	context.data.byte(103) = 1; +	context.ds.byte(188) = 23; +	context.ds.byte(40) = 20; +	context.ds.byte(39) = 0; +	context.ds.word(21) = 80; +	context.ds.byte(103) = 1;  	return;  inpoolhall:  	showfirstuse(context); -	context.data.byte(188) = 31; -	context.data.byte(40) = 20; -	context.data.byte(39) = 0; -	context.data.word(21) = 80; -	context.data.byte(103) = 1; +	context.ds.byte(188) = 31; +	context.ds.byte(40) = 20; +	context.ds.byte(39) = 0; +	context.ds.word(21) = 80; +	context.ds.byte(103) = 1;  	return;  } @@ -13205,20 +13205,20 @@ static void useelevator5(Context & context) {  	placesetobject(context);  	context.al = 0;  	removesetobject(context); -	context.data.byte(188) = 20; -	context.data.word(21) = 80; -	context.data.byte(35) = 1; -	context.data.byte(40) = 8; -	context.data.byte(103) = 1; +	context.ds.byte(188) = 20; +	context.ds.word(21) = 80; +	context.ds.byte(35) = 1; +	context.ds.byte(40) = 8; +	context.ds.byte(103) = 1;  	return;  }  static void usekey(Context & context) { -	context._cmp(context.data.byte(9), 5); +	context._cmp(context.ds.byte(9), 5);  	if (context.flags.z()) goto usekey1; -	context._cmp(context.data.byte(9), 30); +	context._cmp(context.ds.byte(9), 30);  	if (context.flags.z()) goto usekey1; -	context._cmp(context.data.byte(9), 21); +	context._cmp(context.ds.byte(9), 21);  	if (context.flags.z()) goto usekey2;  	context.cx = 200;  	context.al = 1; @@ -13226,25 +13226,25 @@ static void usekey(Context & context) {  	putbackobstuff(context);  	return;  usekey1: -	context._cmp(context.data.byte(148), 22); +	context._cmp(context.ds.byte(148), 22);  	if (!context.flags.z()) goto wrongroom1; -	context._cmp(context.data.byte(149), 10); +	context._cmp(context.ds.byte(149), 10);  	if (!context.flags.z()) goto wrongroom1;  	context.cx = 300;  	context.al = 0;  	showpuztext(context); -	context.data.byte(40) = 100; -	context.data.byte(103) = 1; +	context.ds.byte(40) = 100; +	context.ds.byte(103) = 1;  	return;  usekey2: -	context._cmp(context.data.byte(148), 11); +	context._cmp(context.ds.byte(148), 11);  	if (!context.flags.z()) goto wrongroom1; -	context._cmp(context.data.byte(149), 10); +	context._cmp(context.ds.byte(149), 10);  	if (!context.flags.z()) goto wrongroom1;  	context.cx = 300;  	context.al = 3;  	showpuztext(context); -	context.data.byte(188) = 30; +	context.ds.byte(188) = 30;  	context.al = 2;  	fadescreendown(context);  	showfirstuse(context); @@ -13259,7 +13259,7 @@ wrongroom1:  }  static void usestereo(Context & context) { -	context._cmp(context.data.byte(9), 0); +	context._cmp(context.ds.byte(9), 0);  	if (context.flags.z()) goto stereook;  	context.cx = 400;  	context.al = 4; @@ -13267,9 +13267,9 @@ static void usestereo(Context & context) {  	putbackobstuff(context);  	return;  stereook: -	context._cmp(context.data.byte(148), 11); +	context._cmp(context.ds.byte(148), 11);  	if (!context.flags.z()) goto stereonotok; -	context._cmp(context.data.byte(149), 0); +	context._cmp(context.ds.byte(149), 0);  	if (context.flags.z()) goto stereook2;  stereonotok:  	context.cx = 400; @@ -13293,13 +13293,13 @@ stereook2:  	putbackobstuff(context);  	getanyad(context);  	context.al = 255; -	context.data.byte(context.bx+10) = context.al; +	context.ds.byte(context.bx+10) = context.al;  	return;  cdinside:  	getanyad(context); -	context.al = context.data.byte(context.bx+10); +	context.al = context.ds.byte(context.bx+10);  	context._xor(context.al, 1); -	context.data.byte(context.bx+10) = context.al; +	context.ds.byte(context.bx+10) = context.al;  	context._cmp(context.al, 255);  	if (context.flags.z()) goto stereoon;  	context.al = 7; @@ -13316,8 +13316,8 @@ stereoon:  }  static void usecooker(Context & context) { -	context.al = context.data.byte(99); -	context.ah = context.data.byte(102); +	context.al = context.ds.byte(99); +	context.ah = context.ds.byte(102);  	checkinside(context);  	context._cmp(context.cl, 114);  	if (!context.flags.z()) goto foodinside; @@ -13331,14 +13331,14 @@ foodinside:  }  static void useaxe(Context & context) { -	context._cmp(context.data.byte(184), 22); +	context._cmp(context.ds.byte(184), 22);  	if (!context.flags.z()) goto notinpool; -	context._cmp(context.data.byte(149), 10); +	context._cmp(context.ds.byte(149), 10);  	if (context.flags.z()) goto axeondoor;  	showseconduse(context); -	context._add(context.data.byte(2), 1); -	context.data.byte(65) = 2; -	context.data.byte(103) = 1; +	context._add(context.ds.byte(2), 1); +	context.ds.byte(65) = 2; +	context.ds.byte(103) = 1;  	removeobfrominv(context);  	return;  notinpool: @@ -13349,25 +13349,25 @@ axeondoor:  	context.al = 15;  	context.cx = 300;  	showpuztext(context); -	context._add(context.data.byte(2), 1); -	context.data.word(21) = 46*2; -	context.data.word(23) = 31; -	context.data.word(25) = 77; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context._add(context.ds.byte(2), 1); +	context.ds.word(21) = 46*2; +	context.ds.word(23) = 31; +	context.ds.word(25) = 77; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	return;  	return;  }  static void useelvdoor(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto gotdoorwith;  	withwhat(context);  	return;  gotdoorwith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'A';  	context.ch = 'X';  	context.dl = 'E'; @@ -13383,13 +13383,13 @@ axeondoor:  	context.al = 15;  	context.cx = 300;  	showpuztext(context); -	context._add(context.data.byte(2), 1); -	context.data.word(21) = 46*2; -	context.data.word(23) = 31; -	context.data.word(25) = 77; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context._add(context.ds.byte(2), 1); +	context.ds.word(21) = 46*2; +	context.ds.word(23) = 31; +	context.ds.word(25) = 77; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	return;  } @@ -13398,8 +13398,8 @@ static void withwhat(Context & context) {  	showpanel(context);  	showman(context);  	showexit(context); -	context.al = context.data.byte(99); -	context.ah = context.data.byte(102); +	context.al = context.ds.byte(99); +	context.ah = context.ds.byte(102);  	context.es = context.cs;  	context.di = 5674;  	copyname(context); @@ -13409,7 +13409,7 @@ static void withwhat(Context & context) {  	context.al = 63;  	context.ah = 2;  	printmessage2(context); -	context.di = context.data.word(84); +	context.di = context.ds.word(84);  	context._add(context.di, 5);  	context.bx = 21;  	context.es = context.cs; @@ -13418,7 +13418,7 @@ static void withwhat(Context & context) {  	context.al = 0;  	context.ah = 0;  	printdirect(context); -	context.di = context.data.word(84); +	context.di = context.ds.word(84);  	context._add(context.di, 5);  	context.bx = 21;  	context.dl = 200; @@ -13426,38 +13426,38 @@ static void withwhat(Context & context) {  	context.ah = 3;  	printmessage2(context);  	fillryan(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	readmouse(context);  	showpointer(context);  	worktoscreen(context);  	delpointer(context); -	context.data.byte(104) = 2; +	context.ds.byte(104) = 2;  	return;  }  static void selectob(Context & context) {  	findinvpos(context); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._cmp(context.al, 255);  	if (!context.flags.z()) goto canselectob;  	blank(context);  	return;  canselectob: -	context.data.byte(95) = context.al; -	context.data.byte(96) = context.ah; -	context._cmp(context.ax, context.data.word(94)); +	context.ds.byte(95) = context.al; +	context.ds.byte(96) = context.ah; +	context._cmp(context.ax, context.ds.word(94));  	if (!context.flags.z()) goto diffsub3; -	context._cmp(context.data.byte(100), 221); +	context._cmp(context.ds.byte(100), 221);  	if (context.flags.z()) goto alreadyselob; -	context.data.byte(100) = 221; +	context.ds.byte(100) = 221;  diffsub3: -	context.data.word(94) = context.ax; +	context.ds.word(94) = context.ax;  	context.bx = context.ax;  	context.al = 0;  	commandwithob(context);  alreadyselob: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notselob;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doselob; @@ -13465,7 +13465,7 @@ notselob:  	return;  doselob:  	delpointer(context); -	context.data.byte(104) = 0; +	context.ds.byte(104) = 0;  	useroutine(context);  	return;  } @@ -13480,9 +13480,9 @@ static void compare(Context & context) {  	getanyaddir(context);  	context.dx = context.pop();  	context.cx = context.pop(); -	context._cmp(context.data.word(context.bx+12), context.cx); +	context._cmp(context.ds.word(context.bx+12), context.cx);  	if (!context.flags.z()) goto comparefin; -	context._cmp(context.data.word(context.bx+14), context.dx); +	context._cmp(context.ds.word(context.bx+14), context.dx);  comparefin:  	return;  } @@ -13492,17 +13492,17 @@ static void findsetobject(Context & context) {  	context._sub(context.ah, 'A');  	context._sub(context.cl, 'A');  	context._sub(context.ch, 'A'); -	context.es = context.data.word(428); +	context.es = context.ds.word(428);  	context.bx = 0;  	context.dl = 0;  findsetloop: -	context._cmp(context.al, context.data.byte(context.bx+12)); +	context._cmp(context.al, context.ds.byte(context.bx+12));  	if (!context.flags.z()) goto nofind; -	context._cmp(context.ah, context.data.byte(context.bx+13)); +	context._cmp(context.ah, context.ds.byte(context.bx+13));  	if (!context.flags.z()) goto nofind; -	context._cmp(context.cl, context.data.byte(context.bx+14)); +	context._cmp(context.cl, context.ds.byte(context.bx+14));  	if (!context.flags.z()) goto nofind; -	context._cmp(context.ch, context.data.byte(context.bx+15)); +	context._cmp(context.ch, context.ds.byte(context.bx+15));  	if (!context.flags.z()) goto nofind;  	context.al = context.dl;  	return; @@ -13520,17 +13520,17 @@ static void findexobject(Context & context) {  	context._sub(context.ah, 'A');  	context._sub(context.cl, 'A');  	context._sub(context.ch, 'A'); -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.bx = 0+2080+30000;  	context.dl = 0;  findexloop: -	context._cmp(context.al, context.data.byte(context.bx+12)); +	context._cmp(context.al, context.ds.byte(context.bx+12));  	if (!context.flags.z()) goto nofindex; -	context._cmp(context.ah, context.data.byte(context.bx+13)); +	context._cmp(context.ah, context.ds.byte(context.bx+13));  	if (!context.flags.z()) goto nofindex; -	context._cmp(context.cl, context.data.byte(context.bx+14)); +	context._cmp(context.cl, context.ds.byte(context.bx+14));  	if (!context.flags.z()) goto nofindex; -	context._cmp(context.ch, context.data.byte(context.bx+15)); +	context._cmp(context.ch, context.ds.byte(context.bx+15));  	if (!context.flags.z()) goto nofindex;  	context.al = context.dl;  	return; @@ -13548,19 +13548,19 @@ static void isryanholding(Context & context) {  	context._sub(context.ah, 'A');  	context._sub(context.cl, 'A');  	context._sub(context.ch, 'A'); -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.bx = 0+2080+30000;  	context.dl = 0;  searchinv: -	context._cmp(context.data.byte(context.bx+2), 4); +	context._cmp(context.ds.byte(context.bx+2), 4);  	if (!context.flags.z()) goto nofindininv; -	context._cmp(context.al, context.data.byte(context.bx+12)); +	context._cmp(context.al, context.ds.byte(context.bx+12));  	if (!context.flags.z()) goto nofindininv; -	context._cmp(context.ah, context.data.byte(context.bx+13)); +	context._cmp(context.ah, context.ds.byte(context.bx+13));  	if (!context.flags.z()) goto nofindininv; -	context._cmp(context.cl, context.data.byte(context.bx+14)); +	context._cmp(context.cl, context.ds.byte(context.bx+14));  	if (!context.flags.z()) goto nofindininv; -	context._cmp(context.ch, context.data.byte(context.bx+15)); +	context._cmp(context.ch, context.ds.byte(context.bx+15));  	if (!context.flags.z()) goto nofindininv;  	context.al = context.dl;  	context._cmp(context.al, 114); @@ -13576,13 +13576,13 @@ nofindininv:  }  static void checkinside(Context & context) { -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.bx = 0+2080+30000;  	context.cl = 0;  insideloop: -	context._cmp(context.al, context.data.byte(context.bx+3)); +	context._cmp(context.al, context.ds.byte(context.bx+3));  	if (!context.flags.z()) goto notfoundinside; -	context._cmp(context.ah, context.data.byte(context.bx+2)); +	context._cmp(context.ah, context.ds.byte(context.bx+2));  	if (!context.flags.z()) goto notfoundinside;  	return;  notfoundinside: @@ -13622,7 +13622,7 @@ static void putbackobstuff(Context & context) {  	obpicture(context);  	describeob(context);  	undertextline(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	readmouse(context);  	showpointer(context);  	worktoscreen(context); @@ -13657,8 +13657,8 @@ static void findpuztext(Context & context) {  	context.ah = 0;  	context.si = context.ax;  	context._add(context.si, context.si); -	context.es = context.data.word(454); -	context.ax = context.data.word(context.si); +	context.es = context.ds.word(454); +	context.ax = context.ds.word(context.si);  	context._add(context.ax, 66*2);  	context.si = context.ax;  	return; @@ -13671,7 +13671,7 @@ static void placesetobject(Context & context) {  	context.ch = 0;  	findormake(context);  	getsetad(context); -	context.data.byte(context.bx+58) = 0; +	context.ds.byte(context.bx+58) = 0;  	context.bx = context.pop();  	context.es = context.pop();  	return; @@ -13684,7 +13684,7 @@ static void removesetobject(Context & context) {  	context.ch = 0;  	findormake(context);  	getsetad(context); -	context.data.byte(context.bx+58) = 255; +	context.ds.byte(context.bx+58) = 255;  	context.bx = context.pop();  	context.es = context.pop();  	return; @@ -13694,7 +13694,7 @@ static void issetobonmap(Context & context) {  	context.push(context.es);  	context.push(context.bx);  	getsetad(context); -	context.al = context.data.byte(context.bx+58); +	context.al = context.ds.byte(context.bx+58);  	context.bx = context.pop();  	context.es = context.pop();  	context._cmp(context.al, 0); @@ -13708,7 +13708,7 @@ static void placefreeobject(Context & context) {  	context.ch = 1;  	findormake(context);  	getfreead(context); -	context.data.byte(context.bx+2) = 0; +	context.ds.byte(context.bx+2) = 0;  	context.bx = context.pop();  	context.es = context.pop();  	return; @@ -13718,7 +13718,7 @@ static void removefreeobject(Context & context) {  	context.push(context.es);  	context.push(context.bx);  	getfreead(context); -	context.data.byte(context.bx+2) = 255; +	context.ds.byte(context.bx+2) = 255;  	context.bx = context.pop();  	context.es = context.pop();  	return; @@ -13727,49 +13727,49 @@ static void removefreeobject(Context & context) {  static void findormake(Context & context) {  	context.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);  	context.push(context.ax); -	context.es = context.data.word(412); -	context.ah = context.data.byte(184); +	context.es = context.ds.word(412); +	context.ah = context.ds.byte(184);  changeloop: -	context._cmp(context.data.byte(context.bx), 255); +	context._cmp(context.ds.byte(context.bx), 255);  	if (context.flags.z()) goto haventfound; -	context._cmp(context.ax, context.data.word(context.bx)); +	context._cmp(context.ax, context.ds.word(context.bx));  	if (!context.flags.z()) goto nofoundchange; -	context._cmp(context.ch, context.data.byte(context.bx+3)); +	context._cmp(context.ch, context.ds.byte(context.bx+3));  	if (context.flags.z()) goto foundchange;  nofoundchange:  	context._add(context.bx, 4);  	goto changeloop;  foundchange:  	context.ax = context.pop(); -	context.data.byte(context.bx+2) = context.cl; +	context.ds.byte(context.bx+2) = context.cl;  	return;  haventfound: -	context.data.word(context.bx) = context.ax; -	context.data.word(context.bx+2) = context.cx; +	context.ds.word(context.bx) = context.ax; +	context.ds.word(context.bx+2) = context.cx;  	context.ax = context.pop();  	return;  }  static void switchryanon(Context & context) { -	context.data.byte(63) = 255; +	context.ds.byte(63) = 255;  	return;  }  static void switchryanoff(Context & context) { -	context.data.byte(63) = 1; +	context.ds.byte(63) = 1;  	return;  }  static void setallchanges(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);  setallloop: -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._cmp(context.al, 255);  	if (context.flags.z()) goto endsetloop; -	context.cx = context.data.word(context.bx+2); +	context.cx = context.ds.word(context.bx+2);  	context._add(context.bx, 4); -	context._cmp(context.ah, context.data.byte(184)); +	context._cmp(context.ah, context.ds.byte(184));  	if (!context.flags.z()) goto setallloop;  	context.push(context.es);  	context.push(context.bx); @@ -13801,43 +13801,43 @@ path:  	context.bx = context.pop();  	context._add(context.bx, context.ax);  	context._add(context.bx, 0); -	context.es = context.data.word(450); +	context.es = context.ds.word(450);  	context.cx = context.pop(); -	context.data.byte(context.bx+6) = context.cl; +	context.ds.byte(context.bx+6) = context.cl;  nopath:  	return;  object:  	context.push(context.cx);  	getsetad(context);  	context.cx = context.pop(); -	context.data.byte(context.bx+58) = context.cl; +	context.ds.byte(context.bx+58) = context.cl;  	return;  freeobject:  	context.push(context.cx);  	getfreead(context);  	context.cx = context.pop(); -	context._cmp(context.data.byte(context.bx+2), 255); +	context._cmp(context.ds.byte(context.bx+2), 255);  	if (!context.flags.z()) goto beenpickedup; -	context.data.byte(context.bx+2) = context.cl; +	context.ds.byte(context.bx+2) = context.cl;  beenpickedup:  	return;  }  static void autoappear(Context & context) { -	context._cmp(context.data.byte(9), 32); +	context._cmp(context.ds.byte(9), 32);  	if (!context.flags.z()) goto notinalley;  	context.al = 5;  	resetlocation(context);  	context.al = 10;  	setlocation(context); -	context.data.byte(183) = 10; +	context.ds.byte(183) = 10;  	return;  notinalley: -	context._cmp(context.data.byte(184), 24); +	context._cmp(context.ds.byte(184), 24);  	if (!context.flags.z()) goto notinedens; -	context._cmp(context.data.byte(42), 1); +	context._cmp(context.ds.byte(42), 1);  	if (!context.flags.z()) goto edenspart2; -	context._add(context.data.byte(42), 1); +	context._add(context.ds.byte(42), 1);  	context.al = 44;  	placesetobject(context);  	context.al = 18; @@ -13856,7 +13856,7 @@ notinalley:  	removesetobject(context);  	return;  edenspart2: -	context._cmp(context.data.byte(43), 1); +	context._cmp(context.ds.byte(43), 1);  	if (!context.flags.z()) goto notedens2;  	context.al = 44;  	removesetobject(context); @@ -13864,23 +13864,23 @@ edenspart2:  	removesetobject(context);  	context.al = 55;  	placesetobject(context); -	context._add(context.data.byte(43), 1); +	context._add(context.ds.byte(43), 1);  notedens2:  	return;  notinedens: -	context._cmp(context.data.byte(184), 25); +	context._cmp(context.ds.byte(184), 25);  	if (!context.flags.z()) goto notonsartroof; -	context.data.byte(34) = 3; +	context.ds.byte(34) = 3;  	context.al = 6;  	resetlocation(context);  	context.al = 11;  	setlocation(context); -	context.data.byte(183) = 11; +	context.ds.byte(183) = 11;  	return;  notonsartroof: -	context._cmp(context.data.byte(184), 2); +	context._cmp(context.ds.byte(184), 2);  	if (!context.flags.z()) goto notinlouiss; -	context._cmp(context.data.byte(41), 0); +	context._cmp(context.ds.byte(41), 0);  	if (context.flags.z()) goto notinlouiss;  	context.al = 23;  	placesetobject(context); @@ -13889,153 +13889,153 @@ notinlouiss:  }  static void getundertimed(Context & context) { -	context.al = context.data.byte(335); +	context.al = context.ds.byte(335);  	context._sub(context.al, 3);  	context.ah = 0;  	context.bx = context.ax; -	context.al = context.data.byte(336); +	context.al = context.ds.byte(336);  	context.ah = 0;  	context.di = context.ax;  	context.ch = 30;  	context.cl = 240; -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.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(context);  	return;  }  static void putundertimed(Context & context) { -	context.al = context.data.byte(335); +	context.al = context.ds.byte(335);  	context._sub(context.al, 3);  	context.ah = 0;  	context.bx = context.ax; -	context.al = context.data.byte(336); +	context.al = context.ds.byte(336);  	context.ah = 0;  	context.di = context.ax;  	context.ch = 30;  	context.cl = 240; -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.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(context);  	return;  }  static void dumptimedtext(Context & context) { -	context._cmp(context.data.byte(337), 1); +	context._cmp(context.ds.byte(337), 1);  	if (!context.flags.z()) goto nodumptimed; -	context.al = context.data.byte(335); +	context.al = context.ds.byte(335);  	context._sub(context.al, 3);  	context.ah = 0;  	context.bx = context.ax; -	context.al = context.data.byte(336); +	context.al = context.ds.byte(336);  	context.ah = 0;  	context.di = context.ax;  	context.cl = 240;  	context.ch = 30;  	multidump(context); -	context.data.byte(337) = 0; +	context.ds.byte(337) = 0;  nodumptimed:  	return;  }  static void setuptimeduse(Context & context) { -	context._cmp(context.data.word(328), 0); +	context._cmp(context.ds.word(328), 0);  	if (!context.flags.z()) goto cantsetup; -	context.data.byte(335) = context.bh; -	context.data.byte(336) = context.bl; -	context.data.word(330) = context.cx; +	context.ds.byte(335) = context.bh; +	context.ds.byte(336) = context.bl; +	context.ds.word(330) = context.cx;  	context._add(context.dx, context.cx); -	context.data.word(328) = context.dx; +	context.ds.word(328) = context.dx;  	context.bl = context.al;  	context.bh = 0;  	context._add(context.bx, context.bx); -	context.es = context.data.word(454); +	context.es = context.ds.word(454);  	context.cx = 66*2; -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, context.cx);  	context.bx = context.ax; -	context.data.word(332) = context.es; -	context.data.word(334) = context.bx; +	context.ds.word(332) = context.es; +	context.ds.word(334) = context.bx;  cantsetup:  	return;  }  static void setuptimedtemp(Context & context) { -	context._cmp(context.data.word(328), 0); +	context._cmp(context.ds.word(328), 0);  	if (!context.flags.z()) goto cantsetup2; -	context.data.byte(335) = context.bh; -	context.data.byte(336) = context.bl; -	context.data.word(330) = context.cx; +	context.ds.byte(335) = context.bh; +	context.ds.byte(336) = context.bl; +	context.ds.word(330) = context.cx;  	context._add(context.dx, context.cx); -	context.data.word(328) = context.dx; +	context.ds.word(328) = context.dx;  	context.bl = context.al;  	context.bh = 0;  	context._add(context.bx, context.bx); -	context.es = context.data.word(466); +	context.es = context.ds.word(466);  	context.cx = 66*2; -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, context.cx);  	context.bx = context.ax; -	context.data.word(332) = context.es; -	context.data.word(334) = context.bx; +	context.ds.word(332) = context.es; +	context.ds.word(334) = context.bx;  cantsetup2:  	return;  }  static void usetimedtext(Context & context) { -	context._cmp(context.data.word(328), 0); +	context._cmp(context.ds.word(328), 0);  	if (context.flags.z()) goto notext; -	context._sub(context.data.word(328), 1); -	context._cmp(context.data.word(328), 0); +	context._sub(context.ds.word(328), 1); +	context._cmp(context.ds.word(328), 0);  	if (context.flags.z()) goto deltimedtext; -	context.ax = context.data.word(328); -	context._cmp(context.ax, context.data.word(330)); +	context.ax = context.ds.word(328); +	context._cmp(context.ax, context.ds.word(330));  	if (context.flags.z()) goto firsttimed;  	if (!context.flags.c()) goto notext;  	goto notfirsttimed;  firsttimed:  	getundertimed(context);  notfirsttimed: -	context.bl = context.data.byte(335); +	context.bl = context.ds.byte(335);  	context.bh = 0; -	context.al = context.data.byte(336); +	context.al = context.ds.byte(336);  	context.ah = 0;  	context.di = context.ax; -	context.es = context.data.word(332); -	context.si = context.data.word(334); +	context.es = context.ds.word(332); +	context.si = context.ds.word(334);  	context.dl = 237;  	context.ah = 0;  	printdirect(context); -	context.data.byte(337) = 1; +	context.ds.byte(337) = 1;  notext:  	return;  deltimedtext:  	putundertimed(context); -	context.data.byte(337) = 1; +	context.ds.byte(337) = 1;  	return;  }  static void edenscdplayer(Context & context) {  	showfirstuse(context); -	context.data.word(21) = 18*2; -	context.data.word(23) = 25; -	context.data.word(25) = 42; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context.ds.word(21) = 18*2; +	context.ds.word(23) = 25; +	context.ds.word(25) = 42; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void usewall(Context & context) {  	showfirstuse(context); -	context._cmp(context.data.byte(475), 3); +	context._cmp(context.ds.byte(475), 3);  	if (context.flags.z()) goto gobackover; -	context.data.word(21) = 30*2; -	context.data.word(23) = 2; -	context.data.word(25) = 31; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context.ds.word(21) = 30*2; +	context.ds.word(23) = 2; +	context.ds.word(25) = 31; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	context.al = 3;  	turnpathon(context);  	context.al = 4; @@ -14048,19 +14048,19 @@ static void usewall(Context & context) {  	turnpathoff(context);  	context.al = 5;  	turnpathoff(context); -	context.data.byte(475) = 3; -	context.data.byte(477) = 3; +	context.ds.byte(475) = 3; +	context.ds.byte(477) = 3;  	findxyfrompath(context); -	context.data.byte(187) = 1; +	context.ds.byte(187) = 1;  	switchryanoff(context);  	return;  gobackover: -	context.data.word(21) = 30*2; -	context.data.word(23) = 34; -	context.data.word(25) = 60; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; +	context.ds.word(21) = 30*2; +	context.ds.word(23) = 34; +	context.ds.word(25) = 60; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1;  	context.al = 3;  	turnpathoff(context);  	context.al = 4; @@ -14073,22 +14073,22 @@ gobackover:  	turnpathon(context);  	context.al = 5;  	turnpathon(context); -	context.data.byte(475) = 5; -	context.data.byte(477) = 5; +	context.ds.byte(475) = 5; +	context.ds.byte(477) = 5;  	findxyfrompath(context); -	context.data.byte(187) = 1; +	context.ds.byte(187) = 1;  	switchryanoff(context);  	return;  }  static void usechurchgate(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto gatewith;  	withwhat(context);  	return;  gatewith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'C';  	context.ch = 'U';  	context.dl = 'T'; @@ -14102,16 +14102,16 @@ gatewith:  	return;  cutgate:  	showfirstuse(context); -	context.data.word(21) = 64*2; -	context.data.word(23) = 4; -	context.data.word(25) = 70; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; -	context._add(context.data.byte(2), 1); +	context.ds.word(21) = 64*2; +	context.ds.word(23) = 4; +	context.ds.word(25) = 70; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1; +	context._add(context.ds.byte(2), 1);  	context.al = 3;  	turnpathon(context); -	context._cmp(context.data.byte(44), 0); +	context._cmp(context.ds.byte(44), 0);  	if (context.flags.z()) goto notopenchurch;  	context.al = 2;  	turnpathon(context); @@ -14120,153 +14120,153 @@ notopenchurch:  }  static void usegun(Context & context) { -	context._cmp(context.data.byte(102), 4); +	context._cmp(context.ds.byte(102), 4);  	if (context.flags.z()) goto istakengun;  	showseconduse(context);  	putbackobstuff(context);  	return;  istakengun: -	context._cmp(context.data.byte(184), 22); +	context._cmp(context.ds.byte(184), 22);  	if (!context.flags.z()) goto notinpoolroom;  	context.cx = 300;  	context.al = 34;  	showpuztext(context); -	context.data.byte(65) = 1; -	context.data.byte(64) = 39; -	context.data.byte(103) = 1; -	context._add(context.data.byte(2), 1); +	context.ds.byte(65) = 1; +	context.ds.byte(64) = 39; +	context.ds.byte(103) = 1; +	context._add(context.ds.byte(2), 1);  	return;  notinpoolroom: -	context._cmp(context.data.byte(184), 25); +	context._cmp(context.ds.byte(184), 25);  	if (!context.flags.z()) goto nothelicopter;  	context.cx = 300;  	context.al = 34;  	showpuztext(context); -	context.data.byte(65) = 1; -	context.data.byte(64) = 19; -	context.data.byte(103) = 1; -	context.data.byte(66) = 2; -	context.data.byte(67) = 38; -	context.data.byte(43) = 1; -	context._add(context.data.byte(2), 1); +	context.ds.byte(65) = 1; +	context.ds.byte(64) = 19; +	context.ds.byte(103) = 1; +	context.ds.byte(66) = 2; +	context.ds.byte(67) = 38; +	context.ds.byte(43) = 1; +	context._add(context.ds.byte(2), 1);  	return;  nothelicopter: -	context._cmp(context.data.byte(184), 27); +	context._cmp(context.ds.byte(184), 27);  	if (!context.flags.z()) goto notinrockroom;  	context.cx = 300;  	context.al = 46;  	showpuztext(context); -	context.data.byte(234) = 2; -	context.data.byte(41) = 1; -	context.data.byte(65) = 1; -	context.data.byte(34) = 1; -	context.data.byte(103) = 1; -	context.data.byte(67) = 32; -	context.data.byte(66) = 0; -	context._add(context.data.byte(2), 1); +	context.ds.byte(234) = 2; +	context.ds.byte(41) = 1; +	context.ds.byte(65) = 1; +	context.ds.byte(34) = 1; +	context.ds.byte(103) = 1; +	context.ds.byte(67) = 32; +	context.ds.byte(66) = 0; +	context._add(context.ds.byte(2), 1);  	return;  notinrockroom: -	context._cmp(context.data.byte(184), 8); +	context._cmp(context.ds.byte(184), 8);  	if (!context.flags.z()) goto notbystudio; -	context._cmp(context.data.byte(148), 22); +	context._cmp(context.ds.byte(148), 22);  	if (!context.flags.z()) goto notbystudio; -	context._cmp(context.data.byte(149), 40); +	context._cmp(context.ds.byte(149), 40);  	if (!context.flags.z()) goto notbystudio;  	context.al = 92;  	issetobonmap(context);  	if (context.flags.z()) goto notbystudio; -	context._cmp(context.data.byte(475), 9); +	context._cmp(context.ds.byte(475), 9);  	if (context.flags.z()) goto notbystudio; -	context.data.byte(478) = 9; -	context.data.byte(477) = 9; +	context.ds.byte(478) = 9; +	context.ds.byte(477) = 9;  	autosetwalk(context); -	context.data.byte(65) = 1; -	context.data.byte(103) = 1; -	context._add(context.data.byte(2), 1); +	context.ds.byte(65) = 1; +	context.ds.byte(103) = 1; +	context._add(context.ds.byte(2), 1);  	return;  notbystudio: -	context._cmp(context.data.byte(184), 6); +	context._cmp(context.ds.byte(184), 6);  	if (!context.flags.z()) goto notsarters; -	context._cmp(context.data.byte(148), 11); +	context._cmp(context.ds.byte(148), 11);  	if (!context.flags.z()) goto notsarters; -	context._cmp(context.data.byte(149), 20); +	context._cmp(context.ds.byte(149), 20);  	if (!context.flags.z()) goto notsarters;  	context.al = 5;  	issetobonmap(context);  	if (!context.flags.z()) goto notsarters; -	context.data.byte(478) = 1; -	context.data.byte(477) = 1; +	context.ds.byte(478) = 1; +	context.ds.byte(477) = 1;  	autosetwalk(context);  	context.al = 5;  	removesetobject(context);  	context.al = 6;  	placesetobject(context);  	context.al = 1; -	context.ah = context.data.byte(185); +	context.ah = context.ds.byte(185);  	context._sub(context.ah, 1);  	turnanypathon(context); -	context.data.byte(35) = 1; -	context.data.word(21) = 40*2; -	context.data.word(23) = 4; -	context.data.word(25) = 43; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; -	context._add(context.data.byte(2), 1); +	context.ds.byte(35) = 1; +	context.ds.word(21) = 40*2; +	context.ds.word(23) = 4; +	context.ds.word(25) = 43; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1; +	context._add(context.ds.byte(2), 1);  	return;  notsarters: -	context._cmp(context.data.byte(184), 29); +	context._cmp(context.ds.byte(184), 29);  	if (!context.flags.z()) goto notaide; -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	context.al = 13;  	resetlocation(context);  	context.al = 12;  	setlocation(context); -	context.data.byte(183) = 12; -	context.data.byte(478) = 2; -	context.data.byte(477) = 2; +	context.ds.byte(183) = 12; +	context.ds.byte(478) = 2; +	context.ds.byte(477) = 2;  	autosetwalk(context); -	context.data.word(21) = 164*2; -	context.data.word(23) = 3; -	context.data.word(25) = 164; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(44) = 1; -	context.data.byte(66) = 3; -	context.data.byte(67) = 33; -	context._add(context.data.byte(2), 1); +	context.ds.word(21) = 164*2; +	context.ds.word(23) = 3; +	context.ds.word(25) = 164; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(44) = 1; +	context.ds.byte(66) = 3; +	context.ds.byte(67) = 33; +	context._add(context.ds.byte(2), 1);  	return;  notaide: -	context._cmp(context.data.byte(184), 23); +	context._cmp(context.ds.byte(184), 23);  	if (!context.flags.z()) goto notwithboss; -	context._cmp(context.data.byte(148), 0); +	context._cmp(context.ds.byte(148), 0);  	if (!context.flags.z()) goto notwithboss; -	context._cmp(context.data.byte(149), 50); +	context._cmp(context.ds.byte(149), 50);  	if (!context.flags.z()) goto notwithboss; -	context._cmp(context.data.byte(475), 5); +	context._cmp(context.ds.byte(475), 5);  	if (context.flags.z()) goto pathokboss; -	context.data.byte(478) = 5; -	context.data.byte(477) = 5; +	context.ds.byte(478) = 5; +	context.ds.byte(477) = 5;  	autosetwalk(context);  pathokboss: -	context.data.byte(65) = 1; -	context.data.byte(103) = 1; +	context.ds.byte(65) = 1; +	context.ds.byte(103) = 1;  	return;  notwithboss: -	context._cmp(context.data.byte(184), 8); +	context._cmp(context.ds.byte(184), 8);  	if (!context.flags.z()) goto nottvsoldier; -	context._cmp(context.data.byte(148), 11); +	context._cmp(context.ds.byte(148), 11);  	if (!context.flags.z()) goto nottvsoldier; -	context._cmp(context.data.byte(149), 10); +	context._cmp(context.ds.byte(149), 10);  	if (!context.flags.z()) goto nottvsoldier; -	context._cmp(context.data.byte(475), 2); +	context._cmp(context.ds.byte(475), 2);  	if (context.flags.z()) goto pathoktv; -	context.data.byte(478) = 2; -	context.data.byte(477) = 2; +	context.ds.byte(478) = 2; +	context.ds.byte(477) = 2;  	autosetwalk(context);  pathoktv: -	context.data.byte(65) = 1; -	context.data.byte(103) = 1; +	context.ds.byte(65) = 1; +	context.ds.byte(103) = 1;  	return;  nottvsoldier:  	showfirstuse(context); @@ -14275,14 +14275,14 @@ nottvsoldier:  }  static void useshield(Context & context) { -	context._cmp(context.data.byte(184), 20); +	context._cmp(context.ds.byte(184), 20);  	if (!context.flags.z()) goto notinsartroom; -	context._cmp(context.data.byte(64), 0); +	context._cmp(context.ds.byte(64), 0);  	if (context.flags.z()) goto notinsartroom; -	context.data.byte(65) = 3; +	context.ds.byte(65) = 3;  	showseconduse(context); -	context.data.byte(103) = 1; -	context._add(context.data.byte(2), 1); +	context.ds.byte(103) = 1; +	context._add(context.ds.byte(2), 1);  	removeobfrominv(context);  	return;  notinsartroom: @@ -14297,20 +14297,20 @@ static void usebuttona(Context & context) {  	if (context.flags.z()) goto donethisbit;  	showfirstuse(context);  	context.al = 0; -	context.ah = context.data.byte(185); +	context.ah = context.ds.byte(185);  	context._sub(context.ah, 1);  	turnanypathon(context);  	context.al = 9;  	removesetobject(context);  	context.al = 95;  	placesetobject(context); -	context.data.word(21) = 15*2; -	context.data.word(23) = 71; -	context.data.word(25) = 85; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(103) = 1; -	context._add(context.data.byte(2), 1); +	context.ds.word(21) = 15*2; +	context.ds.word(23) = 71; +	context.ds.word(25) = 85; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(103) = 1; +	context._add(context.ds.byte(2), 1);  	return;  donethisbit:  	showseconduse(context); @@ -14319,21 +14319,21 @@ donethisbit:  }  static void useplate(Context & context) { -	context._cmp(context.data.byte(95), 255); +	context._cmp(context.ds.byte(95), 255);  	if (!context.flags.z()) goto platewith;  	withwhat(context);  	return;  platewith: -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'S';  	context.ch = 'C';  	context.dl = 'R';  	context.dh = 'W';  	compare(context);  	if (context.flags.z()) goto unscrewplate; -	context.al = context.data.byte(95); -	context.ah = context.data.byte(96); +	context.al = context.ds.byte(95); +	context.ah = context.ds.byte(96);  	context.cl = 'K';  	context.ch = 'N';  	context.dl = 'F'; @@ -14357,8 +14357,8 @@ unscrewplate:  	removesetobject(context);  	context.al = 0;  	placefreeobject(context); -	context._add(context.data.byte(2), 1); -	context.data.byte(103) = 1; +	context._add(context.ds.byte(2), 1); +	context.ds.byte(103) = 1;  	return;  triedknife:  	context.cx = 300; @@ -14382,19 +14382,19 @@ static void usewinch(Context & context) {  	context.dh = 'E';  	compare(context);  	if (!context.flags.z()) goto nowinch; -	context.data.word(21) = 217*2; -	context.data.word(23) = 0; -	context.data.word(25) = 217; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; -	context.data.byte(183) = 1; -	context.data.byte(188) = 45; -	context.data.byte(66) = 1; -	context.data.byte(67) = 44; -	context.data.byte(42) = 1; -	context.data.byte(34) = 2; -	context.data.byte(103) = 1; -	context._add(context.data.byte(2), 1); +	context.ds.word(21) = 217*2; +	context.ds.word(23) = 0; +	context.ds.word(25) = 217; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1; +	context.ds.byte(183) = 1; +	context.ds.byte(188) = 45; +	context.ds.byte(66) = 1; +	context.ds.byte(67) = 44; +	context.ds.byte(42) = 1; +	context.ds.byte(34) = 2; +	context.ds.byte(103) = 1; +	context._add(context.ds.byte(2), 1);  	return;  nowinch:  	showfirstuse(context); @@ -14403,8 +14403,8 @@ nowinch:  }  static void entercode(Context & context) { -	context.data.word(284) = context.ax; -	context.data.word(286) = context.cx; +	context.ds.word(284) = context.ax; +	context.ds.word(286) = context.cx;  	getridofreels(context);  	loadkeypad(context);  	createpanel(context); @@ -14415,20 +14415,20 @@ static void entercode(Context & context) {  	showpointer(context);  	worktoscreen(context);  	delpointer(context); -	context.data.word(280) = 0; -	context.data.byte(103) = 0; +	context.ds.word(280) = 0; +	context.ds.byte(103) = 0;  keypadloop:  	delpointer(context);  	readmouse(context);  	showkeypad(context);  	showpointer(context); -	context._cmp(context.data.byte(282), 0); +	context._cmp(context.ds.byte(282), 0);  	if (context.flags.z()) goto nopresses; -	context._sub(context.data.byte(282), 1); +	context._sub(context.ds.byte(282), 1);  	goto afterpress;  nopresses: -	context.data.byte(278) = 255; -	context.data.byte(281) = 255; +	context.ds.byte(278) = 255; +	context.ds.byte(281) = 255;  	vsync(context);  afterpress:  	dumppointer(context); @@ -14436,37 +14436,37 @@ afterpress:  	dumptextline(context);  	context.bx = 3393;  	checkcoords(context); -	context._cmp(context.data.byte(103), 1); +	context._cmp(context.ds.byte(103), 1);  	if (context.flags.z()) goto numberright; -	context._cmp(context.data.byte(287), 1); +	context._cmp(context.ds.byte(287), 1);  	if (!context.flags.z()) goto notendkey; -	context._cmp(context.data.byte(37), 0); +	context._cmp(context.ds.byte(37), 0);  	if (context.flags.z()) goto numberright;  	goto keypadloop;  notendkey: -	context._cmp(context.data.byte(282), 40); +	context._cmp(context.ds.byte(282), 40);  	if (!context.flags.z()) goto keypadloop;  	addtopresslist(context); -	context._cmp(context.data.byte(278), 11); +	context._cmp(context.ds.byte(278), 11);  	if (!context.flags.z()) goto keypadloop; -	context.ax = context.data.word(284); -	context.cx = context.data.word(286); +	context.ax = context.ds.word(284); +	context.cx = context.ds.word(286);  	isitright(context);  	if (!context.flags.z()) goto incorrect; -	context.data.byte(37) = 0; +	context.ds.byte(37) = 0;  	context.al = 11;  	playchannel1(context); -	context.data.byte(287) = 120; -	context.data.word(280) = 0; +	context.ds.byte(287) = 120; +	context.ds.word(280) = 0;  	goto keypadloop;  incorrect:  	context.al = 11;  	playchannel1(context); -	context.data.byte(287) = 120; -	context.data.word(280) = 0; +	context.ds.byte(287) = 120; +	context.ds.word(280) = 0;  	goto keypadloop;  numberright: -	context.data.byte(131) = 0; +	context.ds.byte(131) = 0;  	getridoftemp(context);  	restorereels(context);  	redrawmainscrn(context); @@ -14481,38 +14481,38 @@ static void loadkeypad(Context & context) {  }  static void quitkey(Context & context) { -	context._cmp(context.data.byte(100), 222); +	context._cmp(context.ds.byte(100), 222);  	if (context.flags.z()) goto alreadyqk; -	context.data.byte(100) = 222; +	context.ds.byte(100) = 222;  	context.al = 4;  	commandonly(context);  alreadyqk: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notqk;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doqk;  notqk:  	return;  doqk: -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void addtopresslist(Context & context) { -	context._cmp(context.data.word(280), 5); +	context._cmp(context.ds.word(280), 5);  	if (context.flags.z()) goto nomorekeys; -	context.al = context.data.byte(278); +	context.al = context.ds.byte(278);  	context._cmp(context.al, 10);  	if (!context.flags.z()) goto not10;  	context.al = 0;  not10: -	context.bx = context.data.word(280); +	context.bx = context.ds.word(280);  	context.dx = context.ds;  	context.es = context.dx;  	context._add(context.bx, 8350); -	context.data.byte(context.bx) = context.al; -	context._add(context.data.word(280), 1); +	context.ds.byte(context.bx) = context.al; +	context._add(context.ds.word(280), 1);  nomorekeys:  	return;  } @@ -14586,27 +14586,27 @@ static void buttonenter(Context & context) {  static void buttonpress(Context & context) {  	context.ch = context.cl;  	context._add(context.ch, 100); -	context._cmp(context.data.byte(100), context.ch); +	context._cmp(context.ds.byte(100), context.ch);  	if (context.flags.z()) goto alreadyb; -	context.data.byte(100) = context.ch; +	context.ds.byte(100) = context.ch;  	context.al = context.cl;  	context._add(context.al, 4);  	context.push(context.cx);  	commandonly(context);  	context.cx = context.pop();  alreadyb: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notb;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto dob;  notb:  	return;  dob: -	context.data.byte(278) = context.cl; +	context.ds.byte(278) = context.cl;  	context._add(context.cl, 21); -	context.data.byte(281) = context.cl; -	context.data.byte(282) = 40; +	context.ds.byte(281) = context.cl; +	context.ds.byte(282) = 40;  	context._cmp(context.cl, 32);  	if (context.flags.z()) goto nonoise;  	context.al = 10; @@ -14618,13 +14618,13 @@ nonoise:  static void showouterpad(Context & context) {  	context.di = 36+112-3;  	context.bx = 72-4; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 1;  	context.ah = 0;  	showframe(context);  	context.di = 36+112+74;  	context.bx = 72+76; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.al = 37;  	context.ah = 0;  	showframe(context); @@ -14676,23 +14676,23 @@ static void showkeypad(Context & context) {  	context.di = 36+112+31;  	context.bx = 72+59;  	singlekey(context); -	context._cmp(context.data.byte(287), 0); +	context._cmp(context.ds.byte(287), 0);  	if (context.flags.z()) goto notenter; -	context._sub(context.data.byte(287), 1); +	context._sub(context.ds.byte(287), 1);  	context.al = 36;  	context.bx = 72-1+63; -	context._cmp(context.data.byte(37), 0); +	context._cmp(context.ds.byte(37), 0);  	if (!context.flags.z()) goto changelight;  	context.al = 41;  	context.bx = 72+4+63;  changelight: -	context._cmp(context.data.byte(287), 60); +	context._cmp(context.ds.byte(287), 60);  	if (context.flags.c()) goto gotlight; -	context._cmp(context.data.byte(287), 100); +	context._cmp(context.ds.byte(287), 100);  	if (!context.flags.c()) goto gotlight;  	context._sub(context.al, 1);  gotlight: -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.ah = 0;  	context.di = 36+112+60;  	showframe(context); @@ -14701,14 +14701,14 @@ notenter:  }  static void singlekey(Context & context) { -	context._cmp(context.data.byte(281), context.al); +	context._cmp(context.ds.byte(281), context.al);  	if (!context.flags.z()) goto gotkey;  	context._add(context.al, 11); -	context._cmp(context.data.byte(282), 8); +	context._cmp(context.ds.byte(282), 8);  	if (!context.flags.c()) goto gotkey;  	context._sub(context.al, 11);  gotkey: -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context._sub(context.al, 20);  	context.ah = 0;  	showframe(context); @@ -14730,24 +14730,24 @@ static void usemenu(Context & context) {  	createpanel(context);  	showpanel(context);  	showicon(context); -	context.data.byte(62) = 0; +	context.ds.byte(62) = 0;  	drawfloor(context);  	printsprites(context);  	context.al = 4;  	context.ah = 0;  	context.di = 80+40-48;  	context.bx = 60-4; -	context.ds = context.data.word(460); +	context.ds = context.ds.word(460);  	showframe(context);  	getundermenu(context);  	context.al = 5;  	context.ah = 0;  	context.di = 80+40+54;  	context.bx = 60+72; -	context.ds = context.data.word(460); +	context.ds = context.ds.word(460);  	showframe(context);  	worktoscreenm(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  menuloop:  	delpointer(context);  	putundermenu(context); @@ -14760,9 +14760,9 @@ menuloop:  	dumptextline(context);  	context.bx = 3525;  	checkcoords(context); -	context._cmp(context.data.byte(103), 1); +	context._cmp(context.ds.byte(103), 1);  	if (!context.flags.z()) goto menuloop; -	context.data.byte(131) = 0; +	context.ds.byte(131) = 0;  	redrawmainscrn(context);  	getridoftemp(context);  	getridoftemp2(context); @@ -14787,7 +14787,7 @@ static void getundermenu(Context & context) {  	context.bx = 60;  	context.cl = 48;  	context.ch = 48; -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.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(context);  	return; @@ -14798,7 +14798,7 @@ static void putundermenu(Context & context) {  	context.bx = 60;  	context.cl = 48;  	context.ch = 48; -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.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(context);  	return; @@ -14809,41 +14809,41 @@ static void showoutermenu(Context & context) {  	context.ah = 0;  	context.di = 80+40-34;  	context.bx = 60-40; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context);  	context.al = 41;  	context.ah = 0;  	context.di = 80+40+64-34;  	context.bx = 60-40; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context);  	context.al = 42;  	context.ah = 0;  	context.di = 80+40-26;  	context.bx = 60+57-40; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context);  	context.al = 43;  	context.ah = 0;  	context.di = 80+40+64-26;  	context.bx = 60+57-40; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context);  	return;  }  static void showmenu(Context & context) { -	context._add(context.data.byte(290), 1); -	context._cmp(context.data.byte(290), 37*2); +	context._add(context.ds.byte(290), 1); +	context._cmp(context.ds.byte(290), 37*2);  	if (!context.flags.z()) goto menuframeok; -	context.data.byte(290) = 0; +	context.ds.byte(290) = 0;  menuframeok: -	context.al = context.data.byte(290); +	context.al = context.ds.byte(290);  	context._shr(context.al, 1);  	context.ah = 0;  	context.di = 80+40;  	context.bx = 60; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context);  	return;  } @@ -14857,13 +14857,13 @@ static void loadmenu(Context & context) {  }  static void viewfolder(Context & context) { -	context.data.byte(131) = 1; +	context.ds.byte(131) = 1;  	getridofall(context);  	loadfolder(context); -	context.data.byte(288) = 0; +	context.ds.byte(288) = 0;  	showfolder(context);  	worktoscreenm(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  folderloop:  	delpointer(context);  	readmouse(context); @@ -14873,9 +14873,9 @@ folderloop:  	dumptextline(context);  	context.bx = 3547;  	checkcoords(context); -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto folderloop; -	context.data.byte(131) = 0; +	context.ds.byte(131) = 0;  	getridoftemp(context);  	getridoftemp2(context);  	getridoftemp3(context); @@ -14887,30 +14887,30 @@ folderloop:  }  static void nextfolder(Context & context) { -	context._cmp(context.data.byte(288), 12); +	context._cmp(context.ds.byte(288), 12);  	if (!context.flags.z()) goto cannextf;  	blank(context);  	return;  cannextf: -	context._cmp(context.data.byte(100), 201); +	context._cmp(context.ds.byte(100), 201);  	if (context.flags.z()) goto alreadynextf; -	context.data.byte(100) = 201; +	context.ds.byte(100) = 201;  	context.al = 16;  	commandonly(context);  alreadynextf: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notnextf;  	context._cmp(context.ax, 1);  	if (context.flags.z()) goto donextf;  notnextf:  	return;  donextf: -	context._add(context.data.byte(288), 1); +	context._add(context.ds.byte(288), 1);  	folderhints(context);  	delpointer(context);  	showfolder(context); -	context.data.word(202) = 0; +	context.ds.word(202) = 0;  	context.bx = 3547;  	checkcoords(context);  	worktoscreenm(context); @@ -14918,9 +14918,9 @@ donextf:  }  static void folderhints(Context & context) { -	context._cmp(context.data.byte(288), 5); +	context._cmp(context.ds.byte(288), 5);  	if (!context.flags.z()) goto notaideadd; -	context._cmp(context.data.byte(44), 1); +	context._cmp(context.ds.byte(44), 1);  	if (context.flags.z()) goto notaideadd;  	context.al = 13;  	getlocation(context); @@ -14941,7 +14941,7 @@ static void folderhints(Context & context) {  	hangonp(context);  	return;  notaideadd: -	context._cmp(context.data.byte(288), 9); +	context._cmp(context.ds.byte(288), 9);  	if (!context.flags.z()) goto notaristoadd;  	context.al = 7;  	getlocation(context); @@ -14965,31 +14965,31 @@ notaristoadd:  }  static void lastfolder(Context & context) { -	context._cmp(context.data.byte(288), 0); +	context._cmp(context.ds.byte(288), 0);  	if (!context.flags.z()) goto canlastf;  	blank(context);  	return;  canlastf: -	context._cmp(context.data.byte(100), 202); +	context._cmp(context.ds.byte(100), 202);  	if (context.flags.z()) goto alreadylastf; -	context.data.byte(100) = 202; +	context.ds.byte(100) = 202;  	context.al = 17;  	commandonly(context);  alreadylastf: -	context._cmp(context.data.byte(288), 0); +	context._cmp(context.ds.byte(288), 0);  	if (context.flags.z()) goto notlastf; -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notlastf;  	context._cmp(context.ax, 1);  	if (context.flags.z()) goto dolastf;  notlastf:  	return;  dolastf: -	context._sub(context.data.byte(288), 1); +	context._sub(context.ds.byte(288), 1);  	delpointer(context);  	showfolder(context); -	context.data.word(202) = 0; +	context.ds.word(202) = 0;  	context.bx = 3547;  	checkcoords(context);  	worktoscreenm(context); @@ -15011,41 +15011,41 @@ static void loadfolder(Context & context) {  }  static void showfolder(Context & context) { -	context.data.byte(100) = 255; -	context._cmp(context.data.byte(288), 0); +	context.ds.byte(100) = 255; +	context._cmp(context.ds.byte(288), 0);  	if (context.flags.z()) goto closedfolder;  	usetempcharset(context);  	createpanel2(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 0;  	context.bx = 0;  	context.al = 0;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 143;  	context.bx = 0;  	context.al = 1;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 0;  	context.bx = 92;  	context.al = 2;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 143;  	context.bx = 92;  	context.al = 3;  	context.ah = 0;  	showframe(context);  	folderexit(context); -	context._cmp(context.data.byte(288), 1); +	context._cmp(context.ds.byte(288), 1);  	if (context.flags.z()) goto noleftpage;  	showleftpage(context);  noleftpage: -	context._cmp(context.data.byte(288), 12); +	context._cmp(context.ds.byte(288), 12);  	if (context.flags.z()) goto norightpage;  	showrightpage(context);  norightpage: @@ -15054,13 +15054,13 @@ norightpage:  	return;  closedfolder:  	createpanel2(context); -	context.ds = context.data.word(462); +	context.ds = context.ds.word(462);  	context.di = 143-28;  	context.bx = 0;  	context.al = 0;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(462); +	context.ds = context.ds.word(462);  	context.di = 143-28;  	context.bx = 92;  	context.al = 1; @@ -15072,7 +15072,7 @@ closedfolder:  }  static void folderexit(Context & context) { -	context.ds = context.data.word(460); +	context.ds = context.ds.word(460);  	context.di = 296;  	context.bx = 178;  	context.al = 6; @@ -15082,7 +15082,7 @@ static void folderexit(Context & context) {  }  static void showleftpage(Context & context) { -	context.ds = context.data.word(460); +	context.ds = context.ds.word(460);  	context.di = 0;  	context.bx = 12;  	context.al = 3; @@ -15093,7 +15093,7 @@ static void showleftpage(Context & context) {  leftpageloop:  	context.push(context.cx);  	context.push(context.bx); -	context.ds = context.data.word(460); +	context.ds = context.ds.word(460);  	context.di = 0;  	context.al = 4;  	context.ah = 0; @@ -15102,22 +15102,22 @@ leftpageloop:  	context.cx = context.pop();  	context._add(context.bx, 16);  	if (--context.cx) goto leftpageloop; -	context.ds = context.data.word(460); +	context.ds = context.ds.word(460);  	context.di = 0;  	context.al = 5;  	context.ah = 0;  	showframe(context); -	context.data.word(77) = 8; -	context.data.word(71) = 91; -	context.data.byte(72) = 1; -	context.bl = context.data.byte(288); +	context.ds.word(77) = 8; +	context.ds.word(71) = 91; +	context.ds.byte(72) = 1; +	context.bl = context.ds.byte(288);  	context._sub(context.bl, 1);  	context._sub(context.bl, 1);  	context._add(context.bl, context.bl);  	context.bh = 0;  	context._add(context.bx, context.bx); -	context.es = context.data.word(466); -	context.si = context.data.word(context.bx); +	context.es = context.ds.word(466); +	context.si = context.ds.word(context.bx);  	context._add(context.si, 66*2);  	context.di = 2;  	context.bx = 48; @@ -15127,16 +15127,16 @@ twolotsleft:  	context.push(context.cx);  contleftpage:  	printdirect(context); -	context._add(context.bx, context.data.word(77)); +	context._add(context.bx, context.ds.word(77));  	context._cmp(context.al, 0);  	if (!context.flags.z()) goto contleftpage;  	context.cx = context.pop();  	if (--context.cx) goto twolotsleft; -	context.data.byte(72) = 0; -	context.data.word(71) = 0; -	context.data.word(77) = 10; -	context.es = context.data.word(400); -	context.ds = context.data.word(400); +	context.ds.byte(72) = 0; +	context.ds.word(71) = 0; +	context.ds.word(77) = 10; +	context.es = context.ds.word(400); +	context.ds = context.ds.word(400);  	context.di = (48*320)+2;  	context.si = (48*320)+2+130;  	context.cx = 120; @@ -15146,10 +15146,10 @@ flipfolder:  	context.push(context.si);  	context.cx = 65;  flipfolderline: -	context.al = context.data.byte(context.di); -	context.ah = context.data.byte(context.si); -	context.data.byte(context.di) = context.ah; -	context.data.byte(context.si) = context.al; +	context.al = context.ds.byte(context.di); +	context.ah = context.ds.byte(context.si); +	context.ds.byte(context.di) = context.ah; +	context.ds.byte(context.si) = context.al;  	context._sub(context.si, 1);  	context._add(context.di, 1);  	if (--context.cx) goto flipfolderline; @@ -15163,7 +15163,7 @@ flipfolderline:  }  static void showrightpage(Context & context) { -	context.ds = context.data.word(460); +	context.ds = context.ds.word(460);  	context.di = 143;  	context.bx = 12;  	context.al = 0; @@ -15174,7 +15174,7 @@ static void showrightpage(Context & context) {  rightpageloop:  	context.push(context.cx);  	context.push(context.bx); -	context.ds = context.data.word(460); +	context.ds = context.ds.word(460);  	context.di = 143;  	context.al = 1;  	context.ah = 0; @@ -15183,20 +15183,20 @@ rightpageloop:  	context.cx = context.pop();  	context._add(context.bx, 16);  	if (--context.cx) goto rightpageloop; -	context.ds = context.data.word(460); +	context.ds = context.ds.word(460);  	context.di = 143;  	context.al = 2;  	context.ah = 0;  	showframe(context); -	context.data.word(77) = 8; -	context.data.byte(72) = 1; -	context.bl = context.data.byte(288); +	context.ds.word(77) = 8; +	context.ds.byte(72) = 1; +	context.bl = context.ds.byte(288);  	context._sub(context.bl, 1);  	context._add(context.bl, context.bl);  	context.bh = 0;  	context._add(context.bx, context.bx); -	context.es = context.data.word(466); -	context.si = context.data.word(context.bx); +	context.es = context.ds.word(466); +	context.si = context.ds.word(context.bx);  	context._add(context.si, 66*2);  	context.di = 152;  	context.bx = 48; @@ -15206,30 +15206,30 @@ twolotsright:  	context.push(context.cx);  contrightpage:  	printdirect(context); -	context._add(context.bx, context.data.word(77)); +	context._add(context.bx, context.ds.word(77));  	context._cmp(context.al, 0);  	if (!context.flags.z()) goto contrightpage;  	context.cx = context.pop();  	if (--context.cx) goto twolotsright; -	context.data.byte(72) = 0; -	context.data.word(77) = 10; +	context.ds.byte(72) = 0; +	context.ds.word(77) = 10;  	return;  }  static void entersymbol(Context & context) { -	context.data.byte(131) = 1; +	context.ds.byte(131) = 1;  	getridofreels(context);  	context.dx = 2351;  	loadintotemp(context); -	context.data.byte(291) = 24; -	context.data.byte(293) = 0; -	context.data.byte(294) = 24; -	context.data.byte(296) = 0; +	context.ds.byte(291) = 24; +	context.ds.byte(293) = 0; +	context.ds.byte(294) = 24; +	context.ds.byte(296) = 0;  	redrawmainscrn(context);  	showsymbol(context);  	undertextline(context);  	worktoscreenm(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  symbolloop:  	delpointer(context);  	updatesymboltop(context); @@ -15243,21 +15243,21 @@ symbolloop:  	dumpsymbol(context);  	context.bx = 3589;  	checkcoords(context); -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto symbolloop; -	context._cmp(context.data.byte(295), 3); +	context._cmp(context.ds.byte(295), 3);  	if (!context.flags.z()) goto symbolwrong; -	context._cmp(context.data.byte(292), 5); +	context._cmp(context.ds.byte(292), 5);  	if (!context.flags.z()) goto symbolwrong;  	context.al = 43;  	removesetobject(context);  	context.al = 46;  	placesetobject(context); -	context.ah = context.data.byte(185); +	context.ah = context.ds.byte(185);  	context._add(context.ah, 12);  	context.al = 0;  	turnanypathon(context); -	context.data.byte(131) = 0; +	context.ds.byte(131) = 0;  	redrawmainscrn(context);  	getridoftemp(context);  	restorereels(context); @@ -15270,11 +15270,11 @@ symbolwrong:  	removesetobject(context);  	context.al = 43;  	placesetobject(context); -	context.ah = context.data.byte(185); +	context.ah = context.ds.byte(185);  	context._add(context.ah, 12);  	context.al = 0;  	turnanypathoff(context); -	context.data.byte(131) = 0; +	context.ds.byte(131) = 0;  	redrawmainscrn(context);  	getridoftemp(context);  	restorereels(context); @@ -15283,94 +15283,94 @@ symbolwrong:  }  static void quitsymbol(Context & context) { -	context._cmp(context.data.byte(291), 24); +	context._cmp(context.ds.byte(291), 24);  	if (!context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(294), 24); +	context._cmp(context.ds.byte(294), 24);  	if (!context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(100), 222); +	context._cmp(context.ds.byte(100), 222);  	if (context.flags.z()) goto alreadyqs; -	context.data.byte(100) = 222; +	context.ds.byte(100) = 222;  	context.al = 18;  	commandonly(context);  alreadyqs: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notqs;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto doqs;  notqs:  	return;  doqs: -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  	return;  }  static void settopleft(Context & context) { -	context._cmp(context.data.byte(293), 0); +	context._cmp(context.ds.byte(293), 0);  	if (!context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(100), 210); +	context._cmp(context.ds.byte(100), 210);  	if (context.flags.z()) goto alreadytopl; -	context.data.byte(100) = 210; +	context.ds.byte(100) = 210;  	context.al = 19;  	commandonly(context);  alreadytopl: -	context._cmp(context.data.word(202), 0); +	context._cmp(context.ds.word(202), 0);  	if (context.flags.z()) goto notopleft; -	context.data.byte(293) = -1; +	context.ds.byte(293) = -1;  notopleft:  	return;  }  static void settopright(Context & context) { -	context._cmp(context.data.byte(293), 0); +	context._cmp(context.ds.byte(293), 0);  	if (!context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(100), 211); +	context._cmp(context.ds.byte(100), 211);  	if (context.flags.z()) goto alreadytopr; -	context.data.byte(100) = 211; +	context.ds.byte(100) = 211;  	context.al = 20;  	commandonly(context);  alreadytopr: -	context._cmp(context.data.word(202), 0); +	context._cmp(context.ds.word(202), 0);  	if (context.flags.z()) goto notopright; -	context.data.byte(293) = 1; +	context.ds.byte(293) = 1;  notopright:  	return;  }  static void setbotleft(Context & context) { -	context._cmp(context.data.byte(296), 0); +	context._cmp(context.ds.byte(296), 0);  	if (!context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(100), 212); +	context._cmp(context.ds.byte(100), 212);  	if (context.flags.z()) goto alreadybotl; -	context.data.byte(100) = 212; +	context.ds.byte(100) = 212;  	context.al = 21;  	commandonly(context);  alreadybotl: -	context._cmp(context.data.word(202), 0); +	context._cmp(context.ds.word(202), 0);  	if (context.flags.z()) goto nobotleft; -	context.data.byte(296) = -1; +	context.ds.byte(296) = -1;  nobotleft:  	return;  }  static void setbotright(Context & context) { -	context._cmp(context.data.byte(296), 0); +	context._cmp(context.ds.byte(296), 0);  	if (!context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(100), 213); +	context._cmp(context.ds.byte(100), 213);  	if (context.flags.z()) goto alreadybotr; -	context.data.byte(100) = 213; +	context.ds.byte(100) = 213;  	context.al = 22;  	commandonly(context);  alreadybotr: -	context._cmp(context.data.word(202), 0); +	context._cmp(context.ds.word(202), 0);  	if (context.flags.z()) goto nobotright; -	context.data.byte(296) = 1; +	context.ds.byte(296) = 1;  nobotright:  	return;  }  static void dumpsymbol(Context & context) { -	context.data.byte(109) = 0; +	context.ds.byte(109) = 0;  	context.di = 64;  	context.bx = 56+20;  	context.cl = 104; @@ -15384,15 +15384,15 @@ static void showsymbol(Context & context) {  	context.ah = 0;  	context.di = 64;  	context.bx = 56; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context); -	context.al = context.data.byte(291); +	context.al = context.ds.byte(291);  	context.ah = 0;  	context.di = context.ax;  	context._add(context.di, 64-44); -	context.al = context.data.byte(292); +	context.al = context.ds.byte(292);  	context.bx = 56+20; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.ah = 32;  	context.push(context.ax);  	context.push(context.di); @@ -15417,14 +15417,14 @@ static void showsymbol(Context & context) {  	nextsymbol(context);  	context._add(context.di, 49);  	showframe(context); -	context.al = context.data.byte(294); +	context.al = context.ds.byte(294);  	context.ah = 0;  	context.di = context.ax;  	context._add(context.di, 64-44); -	context.al = context.data.byte(295); +	context.al = context.ds.byte(295);  	context._add(context.al, 6);  	context.bx = 56+49; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.ah = 32;  	context.push(context.ax);  	context.push(context.di); @@ -15468,88 +15468,88 @@ botwrap:  }  static void updatesymboltop(Context & context) { -	context._cmp(context.data.byte(293), 0); +	context._cmp(context.ds.byte(293), 0);  	if (context.flags.z()) goto topfinished; -	context._cmp(context.data.byte(293), -1); +	context._cmp(context.ds.byte(293), -1);  	if (context.flags.z()) goto backwards; -	context._add(context.data.byte(291), 1); -	context._cmp(context.data.byte(291), 49); +	context._add(context.ds.byte(291), 1); +	context._cmp(context.ds.byte(291), 49);  	if (!context.flags.z()) goto notwrapfor; -	context.data.byte(291) = 0; -	context._sub(context.data.byte(292), 1); -	context._cmp(context.data.byte(292), -1); +	context.ds.byte(291) = 0; +	context._sub(context.ds.byte(292), 1); +	context._cmp(context.ds.byte(292), -1);  	if (!context.flags.z()) goto topfinished; -	context.data.byte(292) = 5; +	context.ds.byte(292) = 5;  	return;  notwrapfor: -	context._cmp(context.data.byte(291), 24); +	context._cmp(context.ds.byte(291), 24);  	if (!context.flags.z()) goto topfinished; -	context.data.byte(293) = 0; +	context.ds.byte(293) = 0;  	return;  backwards: -	context._sub(context.data.byte(291), 1); -	context._cmp(context.data.byte(291), -1); +	context._sub(context.ds.byte(291), 1); +	context._cmp(context.ds.byte(291), -1);  	if (!context.flags.z()) goto notwrapback; -	context.data.byte(291) = 48; -	context._add(context.data.byte(292), 1); -	context._cmp(context.data.byte(292), 6); +	context.ds.byte(291) = 48; +	context._add(context.ds.byte(292), 1); +	context._cmp(context.ds.byte(292), 6);  	if (!context.flags.z()) goto topfinished; -	context.data.byte(292) = 0; +	context.ds.byte(292) = 0;  	return;  notwrapback: -	context._cmp(context.data.byte(291), 24); +	context._cmp(context.ds.byte(291), 24);  	if (!context.flags.z()) goto topfinished; -	context.data.byte(293) = 0; +	context.ds.byte(293) = 0;  topfinished:  	return;  }  static void updatesymbolbot(Context & context) { -	context._cmp(context.data.byte(296), 0); +	context._cmp(context.ds.byte(296), 0);  	if (context.flags.z()) goto botfinished; -	context._cmp(context.data.byte(296), -1); +	context._cmp(context.ds.byte(296), -1);  	if (context.flags.z()) goto backwardsbot; -	context._add(context.data.byte(294), 1); -	context._cmp(context.data.byte(294), 49); +	context._add(context.ds.byte(294), 1); +	context._cmp(context.ds.byte(294), 49);  	if (!context.flags.z()) goto notwrapforb; -	context.data.byte(294) = 0; -	context._sub(context.data.byte(295), 1); -	context._cmp(context.data.byte(295), -1); +	context.ds.byte(294) = 0; +	context._sub(context.ds.byte(295), 1); +	context._cmp(context.ds.byte(295), -1);  	if (!context.flags.z()) goto botfinished; -	context.data.byte(295) = 5; +	context.ds.byte(295) = 5;  	return;  notwrapforb: -	context._cmp(context.data.byte(294), 24); +	context._cmp(context.ds.byte(294), 24);  	if (!context.flags.z()) goto botfinished; -	context.data.byte(296) = 0; +	context.ds.byte(296) = 0;  	return;  backwardsbot: -	context._sub(context.data.byte(294), 1); -	context._cmp(context.data.byte(294), -1); +	context._sub(context.ds.byte(294), 1); +	context._cmp(context.ds.byte(294), -1);  	if (!context.flags.z()) goto notwrapbackb; -	context.data.byte(294) = 48; -	context._add(context.data.byte(295), 1); -	context._cmp(context.data.byte(295), 6); +	context.ds.byte(294) = 48; +	context._add(context.ds.byte(295), 1); +	context._cmp(context.ds.byte(295), 6);  	if (!context.flags.z()) goto botfinished; -	context.data.byte(295) = 0; +	context.ds.byte(295) = 0;  	return;  notwrapbackb: -	context._cmp(context.data.byte(294), 24); +	context._cmp(context.ds.byte(294), 24);  	if (!context.flags.z()) goto botfinished; -	context.data.byte(296) = 0; +	context.ds.byte(296) = 0;  botfinished:  	return;  }  static void dumpsymbox(Context & context) { -	context._cmp(context.data.word(303), -1); +	context._cmp(context.ds.word(303), -1);  	if (context.flags.z()) goto nodumpsym; -	context.di = context.data.word(303); -	context.bx = context.data.word(305); +	context.di = context.ds.word(303); +	context.bx = context.ds.word(305);  	context.cl = 30;  	context.ch = 77;  	multidump(context); -	context.data.word(303) = -1; +	context.ds.word(303) = -1;  nodumpsym:  	return;  } @@ -15571,7 +15571,7 @@ static void usediary(Context & context) {  	showpointer(context);  	worktoscreen(context);  	delpointer(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  diaryloop:  	delpointer(context);  	readmouse(context); @@ -15583,13 +15583,13 @@ diaryloop:  	dumptextline(context);  	context.bx = 3651;  	checkcoords(context); -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto diaryloop;  	getridoftemp(context);  	getridoftemptext(context);  	getridoftempcharset(context);  	restorereels(context); -	context.data.byte(131) = 0; +	context.ds.byte(131) = 0;  	redrawmainscrn(context);  	worktoscreenm(context);  	return; @@ -15602,52 +15602,52 @@ static void showdiary(Context & context) {  	context.ah = 0;  	context.di = 68+24;  	context.bx = 48+12+37; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context);  	context.al = 2;  	context.ah = 0;  	context.di = 68+24+176;  	context.bx = 48+12+108; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context);  	return;  }  static void showdiarykeys(Context & context) { -	context._cmp(context.data.byte(282), 0); +	context._cmp(context.ds.byte(282), 0);  	if (context.flags.z()) goto nokeyatall; -	context._sub(context.data.byte(282), 1); -	context._cmp(context.data.byte(282), 0); +	context._sub(context.ds.byte(282), 1); +	context._cmp(context.ds.byte(282), 0);  	if (context.flags.z()) goto nokeyatall; -	context._cmp(context.data.byte(278), 'N'); +	context._cmp(context.ds.byte(278), 'N');  	if (!context.flags.z()) goto nokeyn;  	context.al = 3; -	context._cmp(context.data.byte(282), 1); +	context._cmp(context.ds.byte(282), 1);  	if (context.flags.z()) goto gotkeyn;  	context.al = 4;  gotkeyn:  	context.ah = 0;  	context.di = 68+24+94;  	context.bx = 48+12+97; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context); -	context._cmp(context.data.byte(282), 1); +	context._cmp(context.ds.byte(282), 1);  	if (!context.flags.z()) goto notshown;  	showdiarypage(context);  notshown:  	return;  nokeyn:  	context.al = 5; -	context._cmp(context.data.byte(282), 1); +	context._cmp(context.ds.byte(282), 1);  	if (context.flags.z()) goto gotkeyp;  	context.al = 6;  gotkeyp:  	context.ah = 0;  	context.di = 68+24+151;  	context.bx = 48+12+71; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context); -	context._cmp(context.data.byte(282), 1); +	context._cmp(context.ds.byte(282), 1);  	if (!context.flags.z()) goto notshowp;  	showdiarypage(context);  notshowp: @@ -15657,13 +15657,13 @@ nokeyatall:  }  static void dumpdiarykeys(Context & context) { -	context._cmp(context.data.byte(282), 1); +	context._cmp(context.ds.byte(282), 1);  	if (!context.flags.z()) goto notdumpdiary; -	context._cmp(context.data.byte(43), 1); +	context._cmp(context.ds.byte(43), 1);  	if (context.flags.z()) goto notsartadd; -	context._cmp(context.data.byte(289), 5); +	context._cmp(context.ds.byte(289), 5);  	if (!context.flags.z()) goto notsartadd; -	context._cmp(context.data.byte(289), 5); +	context._cmp(context.ds.byte(289), 5);  	if (!context.flags.z()) goto notsartadd;  	context.al = 6;  	getlocation(context); @@ -15710,53 +15710,53 @@ notdumpdiary:  }  static void diarykeyp(Context & context) { -	context._cmp(context.data.byte(100), 214); +	context._cmp(context.ds.byte(100), 214);  	if (context.flags.z()) goto alreadykeyp; -	context.data.byte(100) = 214; +	context.ds.byte(100) = 214;  	context.al = 23;  	commandonly(context);  alreadykeyp: -	context._cmp(context.data.word(202), 0); +	context._cmp(context.ds.word(202), 0);  	if (context.flags.z()) goto notkeyp; -	context.ax = context.data.word(212); -	context._cmp(context.ax, context.data.word(202)); +	context.ax = context.ds.word(212); +	context._cmp(context.ax, context.ds.word(202));  	if (context.flags.z()) goto notkeyp; -	context._cmp(context.data.byte(282), 0); +	context._cmp(context.ds.byte(282), 0);  	if (!context.flags.z()) goto notkeyp;  	context.al = 16;  	playchannel1(context); -	context.data.byte(282) = 12; -	context.data.byte(278) = 'P'; -	context._sub(context.data.byte(289), 1); -	context._cmp(context.data.byte(289), -1); +	context.ds.byte(282) = 12; +	context.ds.byte(278) = 'P'; +	context._sub(context.ds.byte(289), 1); +	context._cmp(context.ds.byte(289), -1);  	if (!context.flags.z()) goto notkeyp; -	context.data.byte(289) = 11; +	context.ds.byte(289) = 11;  notkeyp:  	return;  }  static void diarykeyn(Context & context) { -	context._cmp(context.data.byte(100), 213); +	context._cmp(context.ds.byte(100), 213);  	if (context.flags.z()) goto alreadykeyn; -	context.data.byte(100) = 213; +	context.ds.byte(100) = 213;  	context.al = 23;  	commandonly(context);  alreadykeyn: -	context._cmp(context.data.word(202), 0); +	context._cmp(context.ds.word(202), 0);  	if (context.flags.z()) goto notkeyn; -	context.ax = context.data.word(212); -	context._cmp(context.ax, context.data.word(202)); +	context.ax = context.ds.word(212); +	context._cmp(context.ax, context.ds.word(202));  	if (context.flags.z()) goto notkeyn; -	context._cmp(context.data.byte(282), 0); +	context._cmp(context.ds.byte(282), 0);  	if (!context.flags.z()) goto notkeyn;  	context.al = 16;  	playchannel1(context); -	context.data.byte(282) = 12; -	context.data.byte(278) = 'N'; -	context._add(context.data.byte(289), 1); -	context._cmp(context.data.byte(289), 12); +	context.ds.byte(282) = 12; +	context.ds.byte(278) = 'N'; +	context._add(context.ds.byte(289), 1); +	context._cmp(context.ds.byte(289), 12);  	if (!context.flags.z()) goto notkeyn; -	context.data.byte(289) = 0; +	context.ds.byte(289) = 0;  notkeyn:  	return;  } @@ -15766,17 +15766,17 @@ static void showdiarypage(Context & context) {  	context.ah = 0;  	context.di = 68+24;  	context.bx = 48+12; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	showframe(context); -	context.al = context.data.byte(289); +	context.al = context.ds.byte(289);  	findtext1(context); -	context.data.byte(72) = 1; +	context.ds.byte(72) = 1;  	usetempcharset(context);  	context.di = 68+24+48;  	context.bx = 48+12+16;  	context.dl = 240;  	context.ah = 16; -	context.data.word(71) = 91+91; +	context.ds.word(71) = 91+91;  	printdirect(context);  	context.di = 68+24+129;  	context.bx = 48+12+16; @@ -15788,8 +15788,8 @@ static void showdiarypage(Context & context) {  	context.dl = 240;  	context.ah = 16;  	printdirect(context); -	context.data.byte(72) = 0; -	context.data.word(71) = 0; +	context.ds.byte(72) = 0; +	context.ds.word(71) = 0;  	usecharset1(context);  	return;  } @@ -15798,37 +15798,37 @@ static void findtext1(Context & context) {  	context.ah = 0;  	context.si = context.ax;  	context._add(context.si, context.si); -	context.es = context.data.word(466); -	context.ax = context.data.word(context.si); +	context.es = context.ds.word(466); +	context.ax = context.ds.word(context.si);  	context._add(context.ax, 66*2);  	context.si = context.ax;  	return;  }  static void zoomonoff(Context & context) { -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(234), 2); +	context._cmp(context.ds.byte(234), 2);  	if (context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(100), 222); +	context._cmp(context.ds.byte(100), 222);  	if (context.flags.z()) goto alreadyonoff; -	context.data.byte(100) = 222; +	context.ds.byte(100) = 222;  	context.al = 39;  	commandonly(context);  alreadyonoff: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto nozoomonoff;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto dozoomonoff;  nozoomonoff:  	return;  dozoomonoff: -	context.al = context.data.byte(8); +	context.al = context.ds.byte(8);  	context._xor(context.al, 1); -	context.data.byte(8) = context.al; +	context.ds.byte(8) = context.al;  	createpanel(context); -	context.data.byte(62) = 0; +	context.ds.byte(62) = 0;  	drawfloor(context);  	printsprites(context);  	reelsonscreen(context); @@ -15843,18 +15843,18 @@ dozoomonoff:  }  static void saveload(Context & context) { -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(234), 2); +	context._cmp(context.ds.byte(234), 2);  	if (context.flags.z()) { blank(context); return; }; -	context._cmp(context.data.byte(100), 253); +	context._cmp(context.ds.byte(100), 253);  	if (context.flags.z()) goto alreadyops; -	context.data.byte(100) = 253; +	context.ds.byte(100) = 253;  	context.al = 43;  	commandonly(context);  alreadyops: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto noops;  	context._and(context.ax, 1);  	if (context.flags.z()) goto noops; @@ -15864,11 +15864,11 @@ noops:  }  static void dosaveload(Context & context) { -	context.data.byte(231) = 0; -	context.data.word(79) = 70; -	context.data.word(81) = 182-8; -	context.data.byte(82) = 181; -	context.data.byte(131) = 1; +	context.ds.byte(231) = 0; +	context.ds.word(79) = 70; +	context.ds.word(81) = 182-8; +	context.ds.byte(82) = 181; +	context.ds.byte(131) = 1;  	clearwork(context);  	createpanel2(context);  	undertextline(context); @@ -15883,7 +15883,7 @@ restartops:  	showmainops(context);  	worktoscreenm(context);  donefirstops: -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  waitops:  	readmouse(context);  	showpointer(context); @@ -15893,27 +15893,27 @@ waitops:  	delpointer(context);  	context.bx = 3693;  	checkcoords(context); -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto waitops; -	context._cmp(context.data.byte(103), 2); +	context._cmp(context.ds.byte(103), 2);  	if (context.flags.z()) goto restartops; -	context.data.word(79) = 13; -	context.data.word(81) = 182; -	context.data.byte(82) = 240; -	context._cmp(context.data.byte(103), 4); +	context.ds.word(79) = 13; +	context.ds.word(81) = 182; +	context.ds.byte(82) = 240; +	context._cmp(context.ds.byte(103), 4);  	if (context.flags.z()) goto justret;  	getridoftemp(context);  	restoreall(context);  	redrawmainscrn(context);  	worktoscreenm(context); -	context.data.byte(100) = 200; +	context.ds.byte(100) = 200;  justret: -	context.data.byte(131) = 0; +	context.ds.byte(131) = 0;  	return;  }  static void getbackfromops(Context & context) { -	context._cmp(context.data.byte(56), 2); +	context._cmp(context.ds.byte(56), 2);  	if (context.flags.z()) goto opsblock1;  	getback1(context);  	return; @@ -15923,19 +15923,19 @@ opsblock1:  }  static void showmainops(Context & context) { -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+10;  	context.bx = 52+10;  	context.al = 8;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+59;  	context.bx = 52+30;  	context.al = 7;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+128+4;  	context.bx = 52+12;  	context.al = 1; @@ -15945,25 +15945,25 @@ static void showmainops(Context & context) {  }  static void showdiscops(Context & context) { -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+128+4;  	context.bx = 52+12;  	context.al = 1;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+10;  	context.bx = 52+10;  	context.al = 9;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+59;  	context.bx = 52+30;  	context.al = 10;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+176+2;  	context.bx = 52+60-4;  	context.al = 5; @@ -15979,30 +15979,30 @@ static void loadsavebox(Context & context) {  }  static void loadgame(Context & context) { -	context._cmp(context.data.byte(100), 246); +	context._cmp(context.ds.byte(100), 246);  	if (context.flags.z()) goto alreadyload; -	context.data.byte(100) = 246; +	context.ds.byte(100) = 246;  	context.al = 41;  	commandonly(context);  alreadyload: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto noload;  	context._cmp(context.ax, 1);  	if (context.flags.z()) goto doload;  noload:  	return;  doload: -	context.data.byte(340) = 1; +	context.ds.byte(340) = 1;  	showopbox(context);  	showloadops(context); -	context.data.byte(341) = 0; +	context.ds.byte(341) = 0;  	showslots(context);  	shownames(context); -	context.data.byte(231) = 0; +	context.ds.byte(231) = 0;  	worktoscreenm(context);  	namestoold(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  loadops:  	delpointer(context);  	readmouse(context); @@ -16012,9 +16012,9 @@ loadops:  	dumptextline(context);  	context.bx = 3735;  	checkcoords(context); -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto loadops; -	context._cmp(context.data.byte(103), 2); +	context._cmp(context.ds.byte(103), 2);  	if (context.flags.z()) goto quitloaded;  	getridoftemp(context);  	context.dx = context.ds; @@ -16022,30 +16022,30 @@ loadops:  	context.bx = 7782;  	startloading(context);  	loadroomssample(context); -	context.data.byte(74) = 1; -	context.data.byte(188) = 255; +	context.ds.byte(74) = 1; +	context.ds.byte(188) = 255;  	clearsprites(context);  	initman(context);  	initrain(context); -	context.data.word(79) = 13; -	context.data.word(81) = 182; -	context.data.byte(82) = 240; +	context.ds.word(79) = 13; +	context.ds.word(81) = 182; +	context.ds.byte(82) = 240;  	startup(context);  	worktoscreen(context); -	context.data.byte(103) = 4; +	context.ds.byte(103) = 4;  quitloaded:  	return;  }  static void getbacktoops(Context & context) { -	context._cmp(context.data.byte(100), 201); +	context._cmp(context.ds.byte(100), 201);  	if (context.flags.z()) goto alreadygetops; -	context.data.byte(100) = 201; +	context.ds.byte(100) = 201;  	context.al = 42;  	commandonly(context);  alreadygetops: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto nogetbackops;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto dogetbackops; @@ -16053,19 +16053,19 @@ nogetbackops:  	return;  dogetbackops:  	oldtonames(context); -	context.data.byte(103) = 2; +	context.ds.byte(103) = 2;  	return;  }  static void discops(Context & context) { -	context._cmp(context.data.byte(100), 249); +	context._cmp(context.ds.byte(100), 249);  	if (context.flags.z()) goto alreadydiscops; -	context.data.byte(100) = 249; +	context.ds.byte(100) = 249;  	context.al = 43;  	commandonly(context);  alreadydiscops: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto nodiscops;  	context._and(context.ax, 1);  	if (!context.flags.z()) goto dodiscops; @@ -16073,12 +16073,12 @@ nodiscops:  	return;  dodiscops:  	scanfornames(context); -	context.data.byte(340) = 2; +	context.ds.byte(340) = 2;  	showopbox(context);  	showdiscops(context); -	context.data.byte(341) = 0; +	context.ds.byte(341) = 0;  	worktoscreenm(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  discopsloop:  	delpointer(context);  	readmouse(context); @@ -16088,39 +16088,39 @@ discopsloop:  	dumptextline(context);  	context.bx = 3777;  	checkcoords(context); -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto discopsloop;  	return;  }  static void savegame(Context & context) { -	context._cmp(context.data.byte(56), 2); +	context._cmp(context.ds.byte(56), 2);  	if (!context.flags.z()) goto cansaveok;  	blank(context);  	return;  cansaveok: -	context._cmp(context.data.byte(100), 247); +	context._cmp(context.ds.byte(100), 247);  	if (context.flags.z()) goto alreadysave; -	context.data.byte(100) = 247; +	context.ds.byte(100) = 247;  	context.al = 44;  	commandonly(context);  alreadysave: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._and(context.ax, 1);  	if (!context.flags.z()) goto dosave;  	return;  dosave: -	context.data.byte(340) = 2; +	context.ds.byte(340) = 2;  	showopbox(context);  	showsaveops(context); -	context.data.byte(341) = 0; +	context.ds.byte(341) = 0;  	showslots(context);  	shownames(context);  	worktoscreenm(context);  	namestoold(context); -	context.data.word(394) = 0; -	context.data.word(396) = 0; -	context.data.byte(103) = 0; +	context.ds.word(394) = 0; +	context.ds.word(396) = 0; +	context.ds.byte(103) = 0;  saveops:  	delpointer(context);  	checkinput(context); @@ -16131,33 +16131,33 @@ saveops:  	dumptextline(context);  	context.bx = 3819;  	checkcoords(context); -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto saveops;  	return;  }  static void actualsave(Context & context) { -	context._cmp(context.data.byte(100), 222); +	context._cmp(context.ds.byte(100), 222);  	if (context.flags.z()) goto alreadyactsave; -	context.data.byte(100) = 222; +	context.ds.byte(100) = 222;  	context.al = 44;  	commandonly(context);  alreadyactsave: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._and(context.ax, 1);  	if (context.flags.z()) goto noactsave;  	context.dx = context.ds;  	context.ds = context.dx;  	context.si = 8367; -	context.al = context.data.byte(341); +	context.al = context.ds.byte(341);  	context.ah = 0;  	context.cx = 17;  	context._mul(context.cx);  	context._add(context.si, context.ax);  	context._add(context.si, 1); -	context._cmp(context.data.byte(context.si), 0); +	context._cmp(context.ds.byte(context.si), 0);  	if (context.flags.z()) goto noactsave; -	context.al = context.data.byte(9); +	context.al = context.ds.byte(9);  	context.ah = 0;  	context.cx = 32;  	context._mul(context.cx); @@ -16169,102 +16169,102 @@ alreadyactsave:  	context.es = context.cs;  	context.cx = 16;  	while(--context.cx) 	context._movsw(); - 	context.al = context.data.byte(531); -	context.data.byte(context.bx+13) = context.al; -	context.al = context.data.byte(148); -	context.data.byte(context.bx+15) = context.al; -	context.al = context.data.byte(149); -	context.data.byte(context.bx+16) = context.al; -	context.al = context.data.byte(35); -	context.data.byte(context.bx+20) = context.al; -	context.al = context.data.byte(475); -	context.data.byte(context.bx+21) = context.al; -	context.al = context.data.byte(133); -	context.data.byte(context.bx+22) = context.al; + 	context.al = context.ds.byte(531); +	context.ds.byte(context.bx+13) = context.al; +	context.al = context.ds.byte(148); +	context.ds.byte(context.bx+15) = context.al; +	context.al = context.ds.byte(149); +	context.ds.byte(context.bx+16) = context.al; +	context.al = context.ds.byte(35); +	context.ds.byte(context.bx+20) = context.al; +	context.al = context.ds.byte(475); +	context.ds.byte(context.bx+21) = context.al; +	context.al = context.ds.byte(133); +	context.ds.byte(context.bx+22) = context.al;  	context.al = 255; -	context.data.byte(context.bx+27) = context.al; +	context.ds.byte(context.bx+27) = context.al;  	saveposition(context);  	getridoftemp(context);  	restoreall(context); -	context.data.word(79) = 13; -	context.data.word(81) = 182; -	context.data.byte(82) = 240; +	context.ds.word(79) = 13; +	context.ds.word(81) = 182; +	context.ds.byte(82) = 240;  	redrawmainscrn(context);  	worktoscreenm(context); -	context.data.byte(103) = 4; +	context.ds.byte(103) = 4;  noactsave:  	return;  }  static void actualload(Context & context) { -	context._cmp(context.data.byte(100), 221); +	context._cmp(context.ds.byte(100), 221);  	if (context.flags.z()) goto alreadyactload; -	context.data.byte(100) = 221; +	context.ds.byte(100) = 221;  	context.al = 41;  	commandonly(context);  alreadyactload: -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto notactload;  	context._cmp(context.ax, 1);  	if (!context.flags.z()) goto notactload;  	context.dx = context.ds;  	context.ds = context.dx;  	context.si = 8367; -	context.al = context.data.byte(341); +	context.al = context.ds.byte(341);  	context.ah = 0;  	context.cx = 17;  	context._mul(context.cx);  	context._add(context.si, context.ax);  	context._add(context.si, 1); -	context._cmp(context.data.byte(context.si), 0); +	context._cmp(context.ds.byte(context.si), 0);  	if (context.flags.z()) goto notactload;  	loadposition(context); -	context.data.byte(103) = 1; +	context.ds.byte(103) = 1;  notactload:  	return;  }  static void selectslot2(Context & context) { -	context._cmp(context.data.word(202), 0); +	context._cmp(context.ds.word(202), 0);  	if (context.flags.z()) goto noselslot2; -	context.data.byte(340) = 2; +	context.ds.byte(340) = 2;  noselslot2:  	selectslot(context);  	return;  }  static void checkinput(Context & context) { -	context._cmp(context.data.byte(340), 3); +	context._cmp(context.ds.byte(340), 3);  	if (context.flags.z()) goto nokeypress;  	readkey(context); -	context.al = context.data.byte(142); +	context.al = context.ds.byte(142);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto nokeypress;  	context._cmp(context.al, 13);  	if (!context.flags.z()) goto notret; -	context.data.byte(340) = 3; +	context.ds.byte(340) = 3;  	goto afterkey;  notret:  	context._cmp(context.al, 8);  	if (!context.flags.z()) goto nodel2; -	context._cmp(context.data.byte(342), 0); +	context._cmp(context.ds.byte(342), 0);  	if (context.flags.z()) goto nokeypress;  	getnamepos(context); -	context._sub(context.data.byte(342), 1); -	context.data.byte(context.bx) = 0; -	context.data.byte(context.bx+1) = 1; +	context._sub(context.ds.byte(342), 1); +	context.ds.byte(context.bx) = 0; +	context.ds.byte(context.bx+1) = 1;  	goto afterkey;  nodel2:  spacepress: -	context._cmp(context.data.byte(342), 14); +	context._cmp(context.ds.byte(342), 14);  	if (context.flags.z()) goto nokeypress;  	getnamepos(context); -	context._add(context.data.byte(342), 1); -	context.al = context.data.byte(142); -	context.data.byte(context.bx+1) = context.al; -	context.data.byte(context.bx+2) = 0; -	context.data.byte(context.bx+3) = 1; +	context._add(context.ds.byte(342), 1); +	context.al = context.ds.byte(142); +	context.ds.byte(context.bx+1) = context.al; +	context.ds.byte(context.bx+2) = 0; +	context.ds.byte(context.bx+3) = 1;  	goto afterkey;  nokeypress:  	return; @@ -16278,7 +16278,7 @@ afterkey:  }  static void getnamepos(Context & context) { -	context.al = context.data.byte(341); +	context.al = context.ds.byte(341);  	context.ah = 0;  	context.cx = 17;  	context._mul(context.cx); @@ -16286,20 +16286,20 @@ static void getnamepos(Context & context) {  	context.es = context.dx;  	context.bx = 8367;  	context._add(context.bx, context.ax); -	context.al = context.data.byte(342); +	context.al = context.ds.byte(342);  	context.ah = 0;  	context._add(context.bx, context.ax);  	return;  }  static void showopbox(Context & context) { -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60;  	context.bx = 52;  	context.al = 0;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60;  	context.bx = 52+55;  	context.al = 4; @@ -16309,13 +16309,13 @@ static void showopbox(Context & context) {  }  static void showloadops(Context & context) { -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+128+4;  	context.bx = 52+12;  	context.al = 1;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+176+2;  	context.bx = 52+60-4;  	context.al = 5; @@ -16330,13 +16330,13 @@ static void showloadops(Context & context) {  }  static void showsaveops(Context & context) { -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+128+4;  	context.bx = 52+12;  	context.al = 1;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+176+2;  	context.bx = 52+60-4;  	context.al = 5; @@ -16351,35 +16351,35 @@ static void showsaveops(Context & context) {  }  static void selectslot(Context & context) { -	context._cmp(context.data.byte(100), 244); +	context._cmp(context.ds.byte(100), 244);  	if (context.flags.z()) goto alreadysel; -	context.data.byte(100) = 244; +	context.ds.byte(100) = 244;  	context.al = 45;  	commandonly(context);  alreadysel: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._cmp(context.ax, 1);  	if (!context.flags.z()) goto noselslot; -	context._cmp(context.ax, context.data.word(212)); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto noselslot; -	context._cmp(context.data.byte(340), 3); +	context._cmp(context.ds.byte(340), 3);  	if (!context.flags.z()) goto notnocurs; -	context._sub(context.data.byte(340), 1); +	context._sub(context.ds.byte(340), 1);  notnocurs:  	oldtonames(context); -	context.ax = context.data.word(200); +	context.ax = context.ds.word(200);  	context._sub(context.ax, 52+4);  	context.cl = -1;  getslotnum:  	context._add(context.cl, 1);  	context._sub(context.ax, 11);  	if (!context.flags.c()) goto getslotnum; -	context.data.byte(341) = context.cl; +	context.ds.byte(341) = context.cl;  	delpointer(context);  	showopbox(context);  	showslots(context);  	shownames(context); -	context._cmp(context.data.byte(340), 1); +	context._cmp(context.ds.byte(340), 1);  	if (context.flags.z()) goto isloadmode;  	showsaveops(context);  	readmouse(context); @@ -16402,7 +16402,7 @@ static void showslots(Context & context) {  	context.di = 60+7;  	context.bx = 52+8;  	context.al = 2; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.ah = 0;  	showframe(context);  	context.di = 60+10; @@ -16412,10 +16412,10 @@ slotloop:  	context.push(context.cx);  	context.push(context.di);  	context.push(context.bx); -	context._cmp(context.cl, context.data.byte(341)); +	context._cmp(context.cl, context.ds.byte(341));  	if (!context.flags.z()) goto nomatchslot;  	context.al = 3; -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.ah = 0;  	showframe(context);  nomatchslot: @@ -16443,9 +16443,9 @@ shownameloop:  	context.push(context.bx);  	context.push(context.si);  	context.al = 4; -	context._cmp(context.cl, context.data.byte(341)); +	context._cmp(context.cl, context.ds.byte(341));  	if (!context.flags.z()) goto nomatchslot2; -	context._cmp(context.data.byte(340), 2); +	context._cmp(context.ds.byte(340), 2);  	if (!context.flags.z()) goto loadmode;  	context.dx = context.si;  	context.cx = 15; @@ -16453,29 +16453,29 @@ shownameloop:  zerostill:  	context._sub(context.si, 1);  	context._sub(context.cl, 1); -	context._cmp(context.data.byte(context.si), 1); +	context._cmp(context.ds.byte(context.si), 1);  	if (!context.flags.z()) goto foundcharacter;  	goto zerostill;  foundcharacter: -	context.data.byte(342) = context.cl; -	context.data.byte(context.si) = '/'; -	context.data.byte(context.si+1) = 0; +	context.ds.byte(342) = context.cl; +	context.ds.byte(context.si) = '/'; +	context.ds.byte(context.si+1) = 0;  	context.push(context.si);  	context.si = context.dx;  	context.dl = 200;  	context.ah = 0;  	printdirect(context);  	context.si = context.pop(); -	context.data.byte(context.si) = 0; -	context.data.byte(context.si+1) = 1; +	context.ds.byte(context.si) = 0; +	context.ds.byte(context.si+1) = 1;  	goto afterprintname;  loadmode:  	context.al = 0;  	context.dl = 200;  	context.ah = 0; -	context.data.word(71) = 91; +	context.ds.word(71) = 91;  	printdirect(context); -	context.data.word(71) = 0; +	context.ds.word(71) = 0;  	goto afterprintname;  nomatchslot2:  	context.dl = 200; @@ -16499,7 +16499,7 @@ static void namestoold(Context & context) {  	context.ds = context.cs;  	context.si = 8367;  	context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.cx = 17*4;  	while(--context.cx) 	context._movsb();   	return; @@ -16509,7 +16509,7 @@ static void oldtonames(Context & context) {  	context.es = context.cs;  	context.di = 8367;  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5); -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.cx = 17*4;  	while(--context.cx) 	context._movsb();   	return; @@ -16521,7 +16521,7 @@ static void makeheader(Context & context) {  	context.di = 5952;  	context.ax = 17;  	storeit(context); -	context.ax = 68-context.data.byte(1); +	context.ax = 68-context.ds.byte(1);  	storeit(context);  	context.ax = 0+2080+30000+(16*114)+((114+2)*2)+18000;  	storeit(context); @@ -16529,7 +16529,7 @@ static void makeheader(Context & context) {  	storeit(context);  	context.ax = 48;  	storeit(context); -	context.ax = 991-context.data.byte(537); +	context.ax = 991-context.ds.byte(537);  	storeit(context);  	return;  } @@ -16547,7 +16547,7 @@ static void findlen(Context & context) {  	context._sub(context.bx, 1);  	context._add(context.bx, context.ax);  nextone: -	context._cmp(context.cl, context.data.byte(context.bx)); +	context._cmp(context.cl, context.ds.byte(context.bx));  	if (!context.flags.z()) goto foundlen;  	context._sub(context.bx, 1);  	context._sub(context.ax, 1); @@ -16561,18 +16561,18 @@ static void decide(Context & context) {  	setmode(context);  	loadpalfromiff(context);  	clearpalette(context); -	context.data.byte(234) = 0; -	context.data.word(21) = 0; -	context.data.byte(231) = 0; -	context.data.word(79) = 70; -	context.data.word(81) = 182-8; -	context.data.byte(82) = 181; -	context.data.byte(131) = 1; +	context.ds.byte(234) = 0; +	context.ds.word(21) = 0; +	context.ds.byte(231) = 0; +	context.ds.word(79) = 70; +	context.ds.word(81) = 182-8; +	context.ds.byte(82) = 181; +	context.ds.byte(131) = 1;  	loadsavebox(context);  	showdecisions(context);  	worktoscreen(context);  	fadescreenup(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  waitdecide:  	readmouse(context);  	showpointer(context); @@ -16582,22 +16582,22 @@ waitdecide:  	delpointer(context);  	context.bx = 4884;  	checkcoords(context); -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto waitdecide; -	context._cmp(context.data.byte(103), 4); +	context._cmp(context.ds.byte(103), 4);  	if (context.flags.z()) goto hasloadedroom;  	getridoftemp(context);  hasloadedroom: -	context.data.word(79) = 13; -	context.data.word(81) = 182; -	context.data.byte(82) = 240; +	context.ds.word(79) = 13; +	context.ds.word(81) = 182; +	context.ds.byte(82) = 240;  	return;  }  static void showdecisions(Context & context) {  	createpanel2(context);  	showopbox(context); -	context.ds = context.data.word(458); +	context.ds = context.ds.word(458);  	context.di = 60+17;  	context.bx = 52+13;  	context.al = 6; @@ -16608,31 +16608,31 @@ static void showdecisions(Context & context) {  }  static void newgame(Context & context) { -	context._cmp(context.data.byte(100), 251); +	context._cmp(context.ds.byte(100), 251);  	if (context.flags.z()) goto alreadynewgame; -	context.data.byte(100) = 251; +	context.ds.byte(100) = 251;  	context.al = 47;  	commandonly(context);  alreadynewgame: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._cmp(context.ax, 1);  	if (!context.flags.z()) goto nonewgame; -	context.data.byte(103) = 3; +	context.ds.byte(103) = 3;  nonewgame:  	return;  }  static void doload(Context & context) { -	context.data.byte(340) = 1; +	context.ds.byte(340) = 1;  	showopbox(context);  	showloadops(context); -	context.data.byte(341) = 0; +	context.ds.byte(341) = 0;  	showslots(context);  	shownames(context); -	context.data.byte(231) = 0; +	context.ds.byte(231) = 0;  	worktoscreenm(context);  	namestoold(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  loadops:  	delpointer(context);  	readmouse(context); @@ -16642,9 +16642,9 @@ loadops:  	dumptextline(context);  	context.bx = 3735;  	checkcoords(context); -	context._cmp(context.data.byte(103), 0); +	context._cmp(context.ds.byte(103), 0);  	if (context.flags.z()) goto loadops; -	context._cmp(context.data.byte(103), 2); +	context._cmp(context.ds.byte(103), 2);  	if (context.flags.z()) goto quitloaded;  	getridoftemp(context);  	context.dx = context.ds; @@ -16652,37 +16652,37 @@ loadops:  	context.bx = 7782;  	startloading(context);  	loadroomssample(context); -	context.data.byte(74) = 1; -	context.data.byte(188) = 255; +	context.ds.byte(74) = 1; +	context.ds.byte(188) = 255;  	clearsprites(context);  	initman(context);  	initrain(context); -	context.data.word(79) = 13; -	context.data.word(81) = 182; -	context.data.byte(82) = 240; +	context.ds.word(79) = 13; +	context.ds.word(81) = 182; +	context.ds.byte(82) = 240;  	startup(context);  	worktoscreen(context); -	context.data.byte(103) = 4; +	context.ds.byte(103) = 4;  quitloaded:  	return;  }  static void loadold(Context & context) { -	context._cmp(context.data.byte(100), 252); +	context._cmp(context.ds.byte(100), 252);  	if (context.flags.z()) goto alreadyloadold; -	context.data.byte(100) = 252; +	context.ds.byte(100) = 252;  	context.al = 48;  	commandonly(context);  alreadyloadold: -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._and(context.ax, 1);  	if (context.flags.z()) goto noloadold;  	doload(context); -	context._cmp(context.data.byte(103), 4); +	context._cmp(context.ds.byte(103), 4);  	if (context.flags.z()) goto noloadold;  	showdecisions(context);  	worktoscreenm(context); -	context.data.byte(103) = 0; +	context.ds.byte(103) = 0;  noloadold:  	return;  } @@ -16690,17 +16690,17 @@ noloadold:  static void createname(Context & context) {  	context.push(context.ax);  	context.di = 4932; -	context.data.byte(context.di+0) = context.dl; -	context.data.byte(context.di+3) = context.cl; +	context.ds.byte(context.di+0) = context.dl; +	context.ds.byte(context.di+3) = context.cl;  	context.al = context.dh;  	context.ah = '0'-1;  findten:  	context._add(context.ah, 1);  	context._sub(context.al, 10);  	if (!context.flags.c()) goto findten; -	context.data.byte(context.di+1) = context.ah; +	context.ds.byte(context.di+1) = context.ah;  	context._add(context.al, 10+'0'); -	context.data.byte(context.di+2) = context.al; +	context.ds.byte(context.di+2) = context.al;  	context.ax = context.pop();  	context.cl = '0'-1;  thousandsc: @@ -16708,60 +16708,60 @@ thousandsc:  	context._sub(context.ax, 1000);  	if (!context.flags.c()) goto thousandsc;  	context._add(context.ax, 1000); -	context.data.byte(context.di+4) = context.cl; +	context.ds.byte(context.di+4) = context.cl;  	context.cl = '0'-1;  hundredsc:  	context._add(context.cl, 1);  	context._sub(context.ax, 100);  	if (!context.flags.c()) goto hundredsc;  	context._add(context.ax, 100); -	context.data.byte(context.di+5) = context.cl; +	context.ds.byte(context.di+5) = context.cl;  	context.cl = '0'-1;  tensc:  	context._add(context.cl, 1);  	context._sub(context.ax, 10);  	if (!context.flags.c()) goto tensc;  	context._add(context.ax, 10); -	context.data.byte(context.di+6) = context.cl; +	context.ds.byte(context.di+6) = context.cl;  	context._add(context.al, '0'); -	context.data.byte(context.di+7) = context.al; +	context.ds.byte(context.di+7) = context.al;  	return;  }  static void trysoundalloc(Context & context) { -	context._cmp(context.data.byte(358), 1); +	context._cmp(context.ds.byte(358), 1);  	if (context.flags.z()) goto gotsoundbuff; -	context._add(context.data.byte(357), 1); +	context._add(context.ds.byte(357), 1);  	context.bx = (16384+2048)/16;  	allocatemem(context); -	context.data.word(353) = context.ax; +	context.ds.word(353) = context.ax;  	context.push(context.ax);  	context.al = context.ah;  	context.cl = 4;  	context._shr(context.al, context.cl); -	context.data.byte(356) = context.al; +	context.ds.byte(356) = context.al;  	context.ax = context.pop();  	context.cl = 4;  	context._shl(context.ax, context.cl); -	context.data.word(355) = context.ax; +	context.ds.word(355) = context.ax;  	context._cmp(context.ax, 0x0b7ff);  	if (!context.flags.c()) goto soundfail; -	context.es = context.data.word(353); +	context.es = context.ds.word(353);  	context.di = 0;  	context.cx = 16384/2;  	context.ax = 0x7f7f;  	while(--context.cx) 	context._stosw(); -	context.data.byte(358) = 1; +	context.ds.byte(358) = 1;  	return;  soundfail: -	context.es = context.data.word(353); +	context.es = context.ds.word(353);  	deallocatemem(context);  gotsoundbuff:  	return;  }  static void playchannel0(Context & context) { -	context._cmp(context.data.byte(378), 255); +	context._cmp(context.ds.byte(378), 255);  	if (context.flags.z()) goto dontbother4;  	context.push(context.es);  	context.push(context.ds); @@ -16769,34 +16769,34 @@ static void playchannel0(Context & context) {  	context.push(context.cx);  	context.push(context.di);  	context.push(context.si); -	context.data.byte(507) = context.al; -	context.es = context.data.word(420); +	context.ds.byte(507) = context.al; +	context.es = context.ds.word(420);  	context._cmp(context.al, 12);  	if (context.flags.c()) goto notsecondbank; -	context.es = context.data.word(422); +	context.es = context.ds.word(422);  	context._sub(context.al, 12);  notsecondbank: -	context.data.byte(508) = context.ah; +	context.ds.byte(508) = context.ah;  	context.ah = 0;  	context._add(context.ax, context.ax);  	context.bx = context.ax;  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.bx); -	context.ah = 0; -	context.data.word(502) = context.ax; -	context.ax = context.data.word(context.bx+1); -	context.data.word(504) = context.ax; -	context.ax = context.data.word(context.bx+3); -	context.data.word(506) = context.ax; -	context._cmp(context.data.byte(508), 0); +	context.al = context.ds.byte(context.bx); +	context.ah = 0; +	context.ds.word(502) = context.ax; +	context.ax = context.ds.word(context.bx+1); +	context.ds.word(504) = context.ax; +	context.ax = context.ds.word(context.bx+3); +	context.ds.word(506) = context.ax; +	context._cmp(context.ds.byte(508), 0);  	if (context.flags.z()) goto nosetloop; -	context.ax = context.data.word(502); -	context.data.word(510) = context.ax; -	context.ax = context.data.word(504); -	context.data.word(512) = context.ax; -	context.ax = context.data.word(506); -	context.data.word(514) = context.ax; +	context.ax = context.ds.word(502); +	context.ds.word(510) = context.ax; +	context.ax = context.ds.word(504); +	context.ds.word(512) = context.ax; +	context.ax = context.ds.word(506); +	context.ds.word(514) = context.ax;  nosetloop:  	context.si = context.pop();  	context.di = context.pop(); @@ -16809,9 +16809,9 @@ dontbother4:  }  static void playchannel1(Context & context) { -	context._cmp(context.data.byte(378), 255); +	context._cmp(context.ds.byte(378), 255);  	if (context.flags.z()) goto dontbother5; -	context._cmp(context.data.byte(515), 7); +	context._cmp(context.ds.byte(515), 7);  	if (context.flags.z()) goto dontbother5;  	context.push(context.es);  	context.push(context.ds); @@ -16819,11 +16819,11 @@ static void playchannel1(Context & context) {  	context.push(context.cx);  	context.push(context.di);  	context.push(context.si); -	context.data.byte(515) = context.al; -	context.es = context.data.word(420); +	context.ds.byte(515) = context.al; +	context.es = context.ds.word(420);  	context._cmp(context.al, 12);  	if (context.flags.c()) goto notsecondbank1; -	context.es = context.data.word(422); +	context.es = context.ds.word(422);  	context._sub(context.al, 12);  notsecondbank1:  	context.ah = 0; @@ -16831,13 +16831,13 @@ notsecondbank1:  	context.bx = context.ax;  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context.ah = 0; -	context.data.word(517) = context.ax; -	context.ax = context.data.word(context.bx+1); -	context.data.word(519) = context.ax; -	context.ax = context.data.word(context.bx+3); -	context.data.word(521) = context.ax; +	context.ds.word(517) = context.ax; +	context.ax = context.ds.word(context.bx+1); +	context.ds.word(519) = context.ax; +	context.ax = context.ds.word(context.bx+3); +	context.ds.word(521) = context.ax;  	context.si = context.pop();  	context.di = context.pop();  	context.cx = context.pop(); @@ -16851,121 +16851,121 @@ dontbother5:  static void makenextblock(Context & context) {  	volumeadjust(context);  	loopchannel0(context); -	context._cmp(context.data.word(521), 0); +	context._cmp(context.ds.word(521), 0);  	if (context.flags.z()) goto mightbeonlych0; -	context._cmp(context.data.word(506), 0); +	context._cmp(context.ds.word(506), 0);  	if (context.flags.z()) goto mightbeonlych1; -	context._sub(context.data.word(506), 1); -	context._sub(context.data.word(521), 1); +	context._sub(context.ds.word(506), 1); +	context._sub(context.ds.word(521), 1);  	bothchannels(context);  	return;  mightbeonlych1: -	context.data.byte(507) = 255; -	context._cmp(context.data.word(521), 0); +	context.ds.byte(507) = 255; +	context._cmp(context.ds.word(521), 0);  	if (context.flags.z()) goto notch1only; -	context._sub(context.data.word(521), 1); +	context._sub(context.ds.word(521), 1);  	channel1only(context);  notch1only:  	return;  mightbeonlych0: -	context.data.byte(515) = 255; -	context._cmp(context.data.word(506), 0); +	context.ds.byte(515) = 255; +	context._cmp(context.ds.word(506), 0);  	if (context.flags.z()) goto notch0only; -	context._sub(context.data.word(506), 1); +	context._sub(context.ds.word(506), 1);  	channel0only(context);  	return;  notch0only: -	context.es = context.data.word(353); -	context.di = context.data.word(525); +	context.es = context.ds.word(353); +	context.di = context.ds.word(525);  	context.cx = 1024;  	context.ax = 0x7f7f;  	while(--context.cx) 	context._stosw();  	context._and(context.di, 16384-1); -	context.data.word(525) = context.di; +	context.ds.word(525) = context.di;  	return;  }  static void volumeadjust(Context & context) { -	context.al = context.data.byte(388); +	context.al = context.ds.byte(388);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto volok; -	context.al = context.data.byte(386); -	context._cmp(context.al, context.data.byte(387)); +	context.al = context.ds.byte(386); +	context._cmp(context.al, context.ds.byte(387));  	if (context.flags.z()) goto volfinish; -	context._add(context.data.byte(389), 64); +	context._add(context.ds.byte(389), 64);  	if (!context.flags.z()) goto volok; -	context.al = context.data.byte(386); -	context._add(context.al, context.data.byte(388)); -	context.data.byte(386) = context.al; +	context.al = context.ds.byte(386); +	context._add(context.al, context.ds.byte(388)); +	context.ds.byte(386) = context.al;  	return;  volfinish: -	context.data.byte(388) = 0; +	context.ds.byte(388) = 0;  volok:  	return;  }  static void loopchannel0(Context & context) { -	context._cmp(context.data.word(506), 0); +	context._cmp(context.ds.word(506), 0);  	if (!context.flags.z()) goto notloop; -	context._cmp(context.data.byte(508), 0); +	context._cmp(context.ds.byte(508), 0);  	if (context.flags.z()) goto notloop; -	context._cmp(context.data.byte(508), 255); +	context._cmp(context.ds.byte(508), 255);  	if (context.flags.z()) goto endlessloop; -	context._sub(context.data.byte(508), 1); +	context._sub(context.ds.byte(508), 1);  endlessloop: -	context.ax = context.data.word(510); -	context.data.word(502) = context.ax; -	context.ax = context.data.word(512); -	context.data.word(504) = context.ax; -	context.ax = context.data.word(506); -	context._add(context.ax, context.data.word(514)); -	context.data.word(506) = context.ax; +	context.ax = context.ds.word(510); +	context.ds.word(502) = context.ax; +	context.ax = context.ds.word(512); +	context.ds.word(504) = context.ax; +	context.ax = context.ds.word(506); +	context._add(context.ax, context.ds.word(514)); +	context.ds.word(506) = context.ax;  	return;  notloop:  	return;  }  static void cancelch0(Context & context) { -	context.data.byte(508) = 0; -	context.data.word(506) = 0; -	context.data.byte(507) = 255; +	context.ds.byte(508) = 0; +	context.ds.word(506) = 0; +	context.ds.byte(507) = 255;  	return;  }  static void cancelch1(Context & context) { -	context.data.word(521) = 0; -	context.data.byte(515) = 255; +	context.ds.word(521) = 0; +	context.ds.byte(515) = 255;  	return;  }  static void channel0tran(Context & context) { -	context._cmp(context.data.byte(386), 0); +	context._cmp(context.ds.byte(386), 0);  	if (!context.flags.z()) goto lowvolumetran;  	context.cx = 1024;  	while(--context.cx) 	context._movsw();   	return;  lowvolumetran:  	context.cx = 1024; -	context.bh = context.data.byte(386); +	context.bh = context.ds.byte(386);  	context.bl = 0;  	context._add(context.bx, 16384-256);  volloop:  	context._lodsw();  	context.bl = context.al; -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context.bl = context.ah; -	context.ah = context.data.byte(context.bx); +	context.ah = context.ds.byte(context.bx);  	context._stosw();  	if (--context.cx) goto volloop;  	return;  }  static void domix(Context & context) { -	context._cmp(context.data.byte(386), 0); +	context._cmp(context.ds.byte(386), 0);  	if (!context.flags.z()) goto lowvolumemix;  slow:  	context._lodsb(); -	context.ah = context.data.byte(context.bx); +	context.ah = context.ds.byte(context.bx);  	context._add(context.bx, 1);  	context._cmp(context.al, context.dh);  	if (!context.flags.c()) goto toplot; @@ -17006,12 +17006,12 @@ nodistort:  lowvolumemix:  	context._lodsb();  	context.push(context.bx); -	context.bh = context.data.byte(386); +	context.bh = context.ds.byte(386);  	context._add(context.bh, 63);  	context.bl = context.al; -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context.bx = context.pop(); -	context.ah = context.data.byte(context.bx); +	context.ah = context.ds.byte(context.bx);  	context._add(context.bx, 1);  	context._cmp(context.al, context.dh);  	if (!context.flags.c()) goto toplotv; @@ -17053,7 +17053,7 @@ doneit:  }  static void entrytexts(Context & context) { -	context._cmp(context.data.byte(9), 21); +	context._cmp(context.ds.byte(9), 21);  	if (!context.flags.z()) goto notloc15;  	context.al = 28;  	context.cx = 60; @@ -17063,7 +17063,7 @@ static void entrytexts(Context & context) {  	setuptimeduse(context);  	return;  notloc15: -	context._cmp(context.data.byte(9), 30); +	context._cmp(context.ds.byte(9), 30);  	if (!context.flags.z()) goto notloc43;  	context.al = 27;  	context.cx = 60; @@ -17073,7 +17073,7 @@ notloc15:  	setuptimeduse(context);  	return;  notloc43: -	context._cmp(context.data.byte(9), 23); +	context._cmp(context.ds.byte(9), 23);  	if (!context.flags.z()) goto notloc23;  	context.al = 29;  	context.cx = 60; @@ -17083,7 +17083,7 @@ notloc43:  	setuptimeduse(context);  	return;  notloc23: -	context._cmp(context.data.byte(9), 31); +	context._cmp(context.ds.byte(9), 31);  	if (!context.flags.z()) goto notloc44;  	context.al = 30;  	context.cx = 60; @@ -17093,7 +17093,7 @@ notloc23:  	setuptimeduse(context);  	return;  notloc44: -	context._cmp(context.data.byte(9), 20); +	context._cmp(context.ds.byte(9), 20);  	if (!context.flags.z()) goto notsarters2;  	context.al = 31;  	context.cx = 60; @@ -17103,7 +17103,7 @@ notloc44:  	setuptimeduse(context);  	return;  notsarters2: -	context._cmp(context.data.byte(9), 24); +	context._cmp(context.ds.byte(9), 24);  	if (!context.flags.z()) goto notedenlob;  	context.al = 32;  	context.cx = 60; @@ -17113,7 +17113,7 @@ notsarters2:  	setuptimeduse(context);  	return;  notedenlob: -	context._cmp(context.data.byte(9), 34); +	context._cmp(context.ds.byte(9), 34);  	if (!context.flags.z()) goto noteden2;  	context.al = 33;  	context.cx = 60; @@ -17127,71 +17127,71 @@ noteden2:  }  static void entryanims(Context & context) { -	context.data.word(23) = -1; -	context.data.byte(32) = -1; -	context._cmp(context.data.byte(9), 33); +	context.ds.word(23) = -1; +	context.ds.byte(32) = -1; +	context._cmp(context.ds.byte(9), 33);  	if (!context.flags.z()) goto notinthebeach;  	switchryanoff(context); -	context.data.word(21) = 76*2; -	context.data.word(23) = 0; -	context.data.word(25) = 76; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 76*2; +	context.ds.word(23) = 0; +	context.ds.word(25) = 76; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	return;  notinthebeach: -	context._cmp(context.data.byte(9), 44); +	context._cmp(context.ds.byte(9), 44);  	if (!context.flags.z()) goto notsparkys;  	context.al = 8;  	resetlocation(context); -	context.data.word(21) = 50*2; -	context.data.word(23) = 247; -	context.data.word(25) = 297; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 50*2; +	context.ds.word(23) = 247; +	context.ds.word(25) = 297; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	switchryanoff(context);  	return;  notsparkys: -	context._cmp(context.data.byte(9), 22); +	context._cmp(context.ds.byte(9), 22);  	if (!context.flags.z()) goto notinthelift; -	context.data.word(21) = 31*2; -	context.data.word(23) = 0; -	context.data.word(25) = 30; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 31*2; +	context.ds.word(23) = 0; +	context.ds.word(25) = 30; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	switchryanoff(context);  	return;  notinthelift: -	context._cmp(context.data.byte(9), 26); +	context._cmp(context.ds.byte(9), 26);  	if (!context.flags.z()) goto notunderchurch; -	context.data.byte(292) = 2; -	context.data.byte(295) = 1; +	context.ds.byte(292) = 2; +	context.ds.byte(295) = 1;  	return;  notunderchurch: -	context._cmp(context.data.byte(9), 45); +	context._cmp(context.ds.byte(9), 45);  	if (!context.flags.z()) goto notenterdream; -	context.data.byte(54) = 0; -	context.data.word(21) = 296; -	context.data.word(23) = 45; -	context.data.word(25) = 198; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.byte(54) = 0; +	context.ds.word(21) = 296; +	context.ds.word(23) = 45; +	context.ds.word(25) = 198; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	switchryanoff(context);  	return;  notenterdream: -	context._cmp(context.data.byte(184), 46); +	context._cmp(context.ds.byte(184), 46);  	if (!context.flags.z()) goto notcrystal; -	context._cmp(context.data.byte(43), 1); +	context._cmp(context.ds.byte(43), 1);  	if (!context.flags.z()) goto notcrystal;  	context.al = 0;  	removefreeobject(context);  	return;  notcrystal: -	context._cmp(context.data.byte(9), 9); +	context._cmp(context.ds.byte(9), 9);  	if (!context.flags.z()) goto nottopchurch;  	context.al = 2;  	checkifpathison(context);  	if (context.flags.z()) goto nottopchurch; -	context._cmp(context.data.byte(44), 0); +	context._cmp(context.ds.byte(44), 0);  	if (context.flags.z()) goto nottopchurch;  	context.al = 3;  	checkifpathison(context); @@ -17205,7 +17205,7 @@ makedoorsopen:  	placesetobject(context);  	return;  nottopchurch: -	context._cmp(context.data.byte(9), 47); +	context._cmp(context.ds.byte(9), 47);  	if (!context.flags.z()) goto notdreamcentre;  	context.al = 4;  	placesetobject(context); @@ -17213,30 +17213,30 @@ nottopchurch:  	placesetobject(context);  	return;  notdreamcentre: -	context._cmp(context.data.byte(9), 38); +	context._cmp(context.ds.byte(9), 38);  	if (!context.flags.z()) goto notcarpark; -	context.data.word(21) = 57*2; -	context.data.word(23) = 4; -	context.data.word(25) = 57; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 57*2; +	context.ds.word(23) = 4; +	context.ds.word(25) = 57; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	switchryanoff(context);  	return;  notcarpark: -	context._cmp(context.data.byte(9), 32); +	context._cmp(context.ds.byte(9), 32);  	if (!context.flags.z()) goto notalley; -	context.data.word(21) = 66*2; -	context.data.word(23) = 0; -	context.data.word(25) = 66; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.word(21) = 66*2; +	context.ds.word(23) = 0; +	context.ds.word(25) = 66; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	switchryanoff(context);  	return;  notalley: -	context._cmp(context.data.byte(9), 24); +	context._cmp(context.ds.byte(9), 24);  	if (!context.flags.z()) goto notedensagain;  	context.al = 2; -	context.ah = context.data.byte(185); +	context.ah = context.ds.byte(185);  	context._sub(context.ah, 1);  	turnanypathon(context);  notedensagain: @@ -17244,7 +17244,7 @@ notedensagain:  }  static void initialinv(Context & context) { -	context._cmp(context.data.byte(184), 24); +	context._cmp(context.ds.byte(184), 24);  	if (context.flags.z()) goto isedens;  	return;  isedens: @@ -17273,20 +17273,20 @@ isedens:  	context.al = 16;  	context.ah = 2;  	pickupob(context); -	context.data.byte(32) = 1; -	context.data.word(29) = 0; -	context.data.word(31) = 6; -	context.data.byte(27) = 1; -	context.data.byte(26) = 1; +	context.ds.byte(32) = 1; +	context.ds.word(29) = 0; +	context.ds.word(31) = 6; +	context.ds.byte(27) = 1; +	context.ds.byte(26) = 1;  	switchryanoff(context);  	return;  }  static void pickupob(Context & context) { -	context.data.byte(107) = context.ah; -	context.data.byte(102) = 2; -	context.data.byte(89) = context.al; -	context.data.byte(99) = context.al; +	context.ds.byte(107) = context.ah; +	context.ds.byte(102) = 2; +	context.ds.byte(89) = context.al; +	context.ds.byte(99) = context.al;  	getanyad(context);  	transfertoex(context);  	return; @@ -17297,10 +17297,10 @@ static void checkforemm(Context & context) {  }  static void checkbasemem(Context & context) { -	context.bx = context.data.word(534); +	context.bx = context.ds.word(534);  	context._cmp(context.bx, 0x9360);  	if (!context.flags.c()) goto enoughmem; -	context.data.byte(532) = 5; +	context.ds.byte(532) = 5;  	{ quickquit(context); return; };  enoughmem:  	return; @@ -17309,86 +17309,86 @@ enoughmem:  static void allocatebuffers(Context & context) {  	context.bx = 0+2080+30000+(16*114)+((114+2)*2)+18000/16;  	allocatemem(context); -	context.data.word(398) = context.ax; +	context.ds.word(398) = context.ax;  	trysoundalloc(context);  	context.bx = 0+(66*60)/16;  	allocatemem(context); -	context.data.word(418) = context.ax; +	context.ds.word(418) = context.ax;  	trysoundalloc(context); -	context.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-context.data.byte(537)+68-context.data.byte(1)/16; +	context.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-context.ds.byte(537)+68-context.ds.byte(1)/16;  	allocatemem(context); -	context.data.word(412) = context.ax; +	context.ds.word(412) = context.ax;  	trysoundalloc(context);  	context.bx = 16*80/16;  	allocatemem(context); -	context.data.word(426) = context.ax; +	context.ds.word(426) = context.ax;  	trysoundalloc(context);  	context.bx = 64*128/16;  	allocatemem(context); -	context.data.word(428) = context.ax; +	context.ds.word(428) = context.ax;  	trysoundalloc(context);  	context.bx = 22*8*20*8/16;  	allocatemem(context); -	context.data.word(402) = context.ax; +	context.ds.word(402) = context.ax;  	allocatework(context);  	context.bx = 2048/16;  	allocatemem(context); -	context.data.word(420) = context.ax; +	context.ds.word(420) = context.ax;  	context.bx = 2048/16;  	allocatemem(context); -	context.data.word(422) = context.ax; +	context.ds.word(422) = context.ax;  	return;  }  static void clearbuffers(Context & context) { -	context.es = context.data.word(412); -	context.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-context.data.byte(537)+68-context.data.byte(1)/2; +	context.es = context.ds.word(412); +	context.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-context.ds.byte(537)+68-context.ds.byte(1)/2;  	context.ax = 0;  	context.di = 0;  	while(--context.cx) 	context._stosw(); -	context.es = context.data.word(398); +	context.es = context.ds.word(398);  	context.cx = 0+2080+30000+(16*114)+((114+2)*2)+18000/2;  	context.ax = 0x0ffff;  	context.di = 0;  	while(--context.cx) 	context._stosw(); -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.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);  	context.ds = context.cs;  	context.si = 537; -	context.cx = 991-context.data.byte(537); +	context.cx = 991-context.ds.byte(537);  	while(--context.cx) 	context._movsb(); - 	context.es = context.data.word(412); -	context.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-context.data.byte(537); + 	context.es = context.ds.word(412); +	context.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-context.ds.byte(537);  	context.ds = context.cs;  	context.si = 1; -	context.cx = 68-context.data.byte(1); +	context.cx = 68-context.ds.byte(1);  	while(--context.cx) 	context._movsb();   	clearchanges(context);  	return;  }  static void clearchanges(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.cx = 250*2;  	context.ax = 0x0ffff;  	context.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);  	while(--context.cx) 	context._stosw(); -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.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);  	context.es = context.cs;  	context.di = 537; -	context.cx = 991-context.data.byte(537); +	context.cx = 991-context.ds.byte(537);  	while(--context.cx) 	context._movsb(); - 	context.ds = context.data.word(412); -	context.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-context.data.byte(537); + 	context.ds = context.ds.word(412); +	context.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-context.ds.byte(537);  	context.es = context.cs;  	context.di = 1; -	context.cx = 68-context.data.byte(1); +	context.cx = 68-context.ds.byte(1);  	while(--context.cx) 	context._movsb(); - 	context.data.byte(10) = 0; -	context.data.word(12) = 0; -	context.data.word(14) = 0; -	context.es = context.data.word(398); + 	context.ds.byte(10) = 0; +	context.ds.word(12) = 0; +	context.ds.word(14) = 0; +	context.es = context.ds.word(398);  	context.cx = 0+2080+30000+(16*114)+((114+2)*2)+18000/2;  	context.ax = 0x0ffff;  	context.di = 0; @@ -17409,85 +17409,85 @@ static void clearchanges(Context & context) {  }  static void clearbeforeload(Context & context) { -	context._cmp(context.data.byte(74), 1); +	context._cmp(context.ds.byte(74), 1);  	if (!context.flags.z()) goto noclear;  	clearreels(context);  	clearrest(context); -	context.data.byte(74) = 0; +	context.ds.byte(74) = 0;  noclear:  	return;  }  static void clearreels(Context & context) { -	context.es = context.data.word(430); +	context.es = context.ds.word(430);  	deallocatemem(context); -	context.es = context.data.word(432); +	context.es = context.ds.word(432);  	deallocatemem(context); -	context.es = context.data.word(434); +	context.es = context.ds.word(434);  	deallocatemem(context);  	return;  }  static void clearrest(Context & context) { -	context.es = context.data.word(418); +	context.es = context.ds.word(418);  	context.cx = 66*60/2;  	context.ax = 0;  	context.di = 0;  	while(--context.cx) 	context._stosw(); -	context.es = context.data.word(416); +	context.es = context.ds.word(416);  	deallocatemem(context); -	context.es = context.data.word(444); +	context.es = context.ds.word(444);  	deallocatemem(context); -	context.es = context.data.word(450); +	context.es = context.ds.word(450);  	deallocatemem(context); -	context.es = context.data.word(448); +	context.es = context.ds.word(448);  	deallocatemem(context); -	context.es = context.data.word(440); +	context.es = context.ds.word(440);  	deallocatemem(context); -	context.es = context.data.word(442); +	context.es = context.ds.word(442);  	deallocatemem(context); -	context.es = context.data.word(436); +	context.es = context.ds.word(436);  	deallocatemem(context); -	context.es = context.data.word(446); +	context.es = context.ds.word(446);  	deallocatemem(context); -	context.es = context.data.word(438); +	context.es = context.ds.word(438);  	deallocatemem(context);  	return;  }  static void seecommandtail(Context & context) { -	context.data.word(372) = 0x220; -	context.data.byte(378) = 5; -	context.data.byte(379) = 1; -	context.data.byte(73) = 0; +	context.ds.word(372) = 0x220; +	context.ds.byte(378) = 5; +	context.ds.byte(379) = 1; +	context.ds.byte(73) = 0;  	context.bx = 2; -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context.dx = context.es;  	context._sub(context.ax, context.dx); -	context.data.word(534) = context.ax; +	context.ds.word(534) = context.ax;  	context.bx = 0x02c; -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context.push(context.es);  	context.push(context.bx);  	context.es = context.ax;  	context.bx = 0;  findblaster: -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._cmp(context.ax, 0);  	if (context.flags.z()) goto endofenvironment;  	context._cmp(context.al, 'B');  	if (!context.flags.z()) goto notblast;  	context._cmp(context.ah, 'L');  	if (!context.flags.z()) goto notblast; -	context._cmp(context.data.byte(context.bx+2), 'A'); +	context._cmp(context.ds.byte(context.bx+2), 'A');  	if (!context.flags.z()) goto notblast; -	context._cmp(context.data.byte(context.bx+3), 'S'); +	context._cmp(context.ds.byte(context.bx+3), 'S');  	if (!context.flags.z()) goto notblast; -	context._cmp(context.data.byte(context.bx+4), 'T'); +	context._cmp(context.ds.byte(context.bx+4), 'T');  	if (!context.flags.z()) goto notblast; -	context._cmp(context.data.byte(context.bx+5), 'E'); +	context._cmp(context.ds.byte(context.bx+5), 'E');  	if (!context.flags.z()) goto notblast; -	context._cmp(context.data.byte(context.bx+6), 'R'); +	context._cmp(context.ds.byte(context.bx+6), 'R');  	if (!context.flags.z()) goto notblast;  	context._add(context.bx, 7);  	parseblaster(context); @@ -17505,7 +17505,7 @@ endofenvironment:  static void parseblaster(Context & context) {  lookattail: -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto endtail;  	context._cmp(context.al, 13); @@ -17534,35 +17534,35 @@ lookattail:  	if (--context.cx) goto lookattail;  	return;  issoundint: -	context.al = context.data.byte(context.bx+1); +	context.al = context.ds.byte(context.bx+1);  	context._sub(context.al, '0'); -	context.data.byte(378) = context.al; +	context.ds.byte(378) = context.al;  	context._add(context.bx, 1);  	goto lookattail;  isdma: -	context.al = context.data.byte(context.bx+1); +	context.al = context.ds.byte(context.bx+1);  	context._sub(context.al, '0'); -	context.data.byte(379) = context.al; +	context.ds.byte(379) = context.al;  	context._add(context.bx, 1);  	goto lookattail;  isbaseadd:  	context.push(context.cx); -	context.al = context.data.byte(context.bx+2); +	context.al = context.ds.byte(context.bx+2);  	context._sub(context.al, '0');  	context.ah = 0;  	context.cl = 4;  	context._shl(context.ax, context.cl);  	context._add(context.ax, 0x200); -	context.data.word(372) = context.ax; +	context.ds.word(372) = context.ax;  	context.cx = context.pop();  	context._add(context.bx, 1);  	goto lookattail;  isbright: -	context.data.byte(73) = 1; +	context.ds.byte(73) = 1;  	context._add(context.bx, 1);  	goto lookattail;  isnosound: -	context.data.byte(378) = 255; +	context.ds.byte(378) = 255;  	context._add(context.bx, 1);  	goto lookattail;  endtail: @@ -17570,10 +17570,10 @@ endtail:  }  static void startup(Context & context) { -	context.data.byte(142) = 0; -	context.data.byte(105) = 0; +	context.ds.byte(142) = 0; +	context.ds.byte(105) = 0;  	createpanel(context); -	context.data.byte(62) = 1; +	context.ds.byte(62) = 1;  	drawfloor(context);  	showicon(context);  	getunderzoom(context); @@ -17587,11 +17587,11 @@ static void startup(Context & context) {  static void startup1(Context & context) {  	clearpalette(context); -	context.data.byte(61) = 0; -	context.data.byte(142) = '0'; -	context.data.byte(105) = 0; +	context.ds.byte(61) = 0; +	context.ds.byte(142) = '0'; +	context.ds.byte(105) = 0;  	createpanel(context); -	context.data.byte(62) = 1; +	context.ds.byte(62) = 1;  	drawfloor(context);  	showicon(context);  	getunderzoom(context); @@ -17610,9 +17610,9 @@ static void screenupdate(Context & context) {  	mainscreen(context);  	animpointer(context);  	showpointer(context); -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) goto iswatchingmode; -	context._cmp(context.data.byte(188), 255); +	context._cmp(context.ds.byte(188), 255);  	if (!context.flags.z()) goto finishearly;  iswatchingmode:  	vsync(context); @@ -17625,7 +17625,7 @@ iswatchingmode:  	watchcount(context);  	zoom(context);  	showpointer(context); -	context._cmp(context.data.byte(391), 0); +	context._cmp(context.ds.byte(391), 0);  	if (!context.flags.z()) goto finishearly;  	vsync(context);  	readmouse2(context); @@ -17654,74 +17654,74 @@ finishearly:  }  static void watchreel(Context & context) { -	context._cmp(context.data.word(23), -1); +	context._cmp(context.ds.word(23), -1);  	if (context.flags.z()) goto notplayingreel; -	context.al = context.data.byte(475); -	context._cmp(context.al, context.data.byte(477)); +	context.al = context.ds.byte(475); +	context._cmp(context.al, context.ds.byte(477));  	if (!context.flags.z()) goto waitstopwalk; -	context.al = context.data.byte(135); -	context._cmp(context.al, context.data.byte(133)); +	context.al = context.ds.byte(135); +	context._cmp(context.al, context.ds.byte(133));  	if (context.flags.z()) goto notwatchpath;  waitstopwalk:  	return;  notwatchpath: -	context._sub(context.data.byte(26), 1); -	context._cmp(context.data.byte(26), -1); +	context._sub(context.ds.byte(26), 1); +	context._cmp(context.ds.byte(26), -1);  	if (!context.flags.z()) goto showwatchreel; -	context.al = context.data.byte(27); -	context.data.byte(26) = context.al; -	context.ax = context.data.word(23); -	context._cmp(context.ax, context.data.word(25)); +	context.al = context.ds.byte(27); +	context.ds.byte(26) = context.al; +	context.ax = context.ds.word(23); +	context._cmp(context.ax, context.ds.word(25));  	if (!context.flags.z()) goto ismorereel; -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) goto showwatchreel; -	context.data.word(23) = -1; -	context.data.byte(32) = -1; -	context._cmp(context.data.word(29), -1); +	context.ds.word(23) = -1; +	context.ds.byte(32) = -1; +	context._cmp(context.ds.word(29), -1);  	if (context.flags.z()) goto nomorereel; -	context.data.byte(32) = 1; +	context.ds.byte(32) = 1;  	goto notplayingreel;  ismorereel: -	context._add(context.data.word(23), 1); +	context._add(context.ds.word(23), 1);  showwatchreel: -	context.ax = context.data.word(23); -	context.data.word(239) = context.ax; +	context.ax = context.ds.word(23); +	context.ds.word(239) = context.ax;  	plotreel(context); -	context.ax = context.data.word(239); -	context.data.word(23) = context.ax; +	context.ax = context.ds.word(239); +	context.ds.word(23) = context.ax;  	checkforshake(context);  nomorereel:  	return;  notplayingreel: -	context._cmp(context.data.byte(32), 1); +	context._cmp(context.ds.byte(32), 1);  	if (!context.flags.z()) goto notholdingreel; -	context.ax = context.data.word(29); -	context.data.word(239) = context.ax; +	context.ax = context.ds.word(29); +	context.ds.word(239) = context.ax;  	plotreel(context);  	return;  notholdingreel: -	context._cmp(context.data.byte(32), 2); +	context._cmp(context.ds.byte(32), 2);  	if (!context.flags.z()) goto notreleasehold; -	context._sub(context.data.byte(26), 1); -	context._cmp(context.data.byte(26), -1); +	context._sub(context.ds.byte(26), 1); +	context._cmp(context.ds.byte(26), -1);  	if (!context.flags.z()) goto notlastspeed2; -	context.al = context.data.byte(27); -	context.data.byte(26) = context.al; -	context._add(context.data.word(29), 1); +	context.al = context.ds.byte(27); +	context.ds.byte(26) = context.al; +	context._add(context.ds.word(29), 1);  notlastspeed2: -	context.ax = context.data.word(29); -	context._cmp(context.ax, context.data.word(31)); +	context.ax = context.ds.word(29); +	context._cmp(context.ax, context.ds.word(31));  	if (!context.flags.z()) goto ismorereel2; -	context.data.word(29) = -1; -	context.data.byte(32) = -1; -	context.al = context.data.byte(33); -	context.data.byte(478) = context.al; -	context.data.byte(477) = context.al; +	context.ds.word(29) = -1; +	context.ds.byte(32) = -1; +	context.al = context.ds.byte(33); +	context.ds.byte(478) = context.al; +	context.ds.byte(477) = context.al;  	autosetwalk(context);  	return;  ismorereel2: -	context.ax = context.data.word(29); -	context.data.word(239) = context.ax; +	context.ax = context.ds.word(29); +	context.ds.word(239) = context.ax;  	plotreel(context);  	return;  notreleasehold: @@ -17729,22 +17729,22 @@ notreleasehold:  }  static void checkforshake(Context & context) { -	context._cmp(context.data.byte(184), 26); +	context._cmp(context.ds.byte(184), 26);  	if (!context.flags.z()) goto notstartshake;  	context._cmp(context.ax, 104);  	if (!context.flags.z()) goto notstartshake; -	context.data.byte(68) = -1; +	context.ds.byte(68) = -1;  notstartshake:  	return;  }  static void watchcount(Context & context) { -	context._cmp(context.data.byte(3), 0); +	context._cmp(context.ds.byte(3), 0);  	if (context.flags.z()) goto nowatchworn; -	context._add(context.data.byte(146), 1); -	context._cmp(context.data.byte(146), 9); +	context._add(context.ds.byte(146), 1); +	context._cmp(context.ds.byte(146), 9);  	if (context.flags.z()) goto flashdots; -	context._cmp(context.data.byte(146), 18); +	context._cmp(context.ds.byte(146), 18);  	if (context.flags.z()) goto uptime;  nowatchworn:  	return; @@ -17752,89 +17752,89 @@ flashdots:  	context.ax = 91*3+21;  	context.di = 268+4;  	context.bx = 21; -	context.ds = context.data.word(404); +	context.ds = context.ds.word(404);  	showframe(context);  	goto finishwatch;  uptime: -	context.data.byte(146) = 0; -	context._add(context.data.byte(5), 1); -	context._cmp(context.data.byte(5), 60); +	context.ds.byte(146) = 0; +	context._add(context.ds.byte(5), 1); +	context._cmp(context.ds.byte(5), 60);  	if (!context.flags.z()) goto finishtime; -	context.data.byte(5) = 0; -	context._add(context.data.byte(6), 1); -	context._cmp(context.data.byte(6), 60); +	context.ds.byte(5) = 0; +	context._add(context.ds.byte(6), 1); +	context._cmp(context.ds.byte(6), 60);  	if (!context.flags.z()) goto finishtime; -	context.data.byte(6) = 0; -	context._add(context.data.byte(7), 1); -	context._cmp(context.data.byte(7), 24); +	context.ds.byte(6) = 0; +	context._add(context.ds.byte(7), 1); +	context._cmp(context.ds.byte(7), 24);  	if (!context.flags.z()) goto finishtime; -	context.data.byte(7) = 0; +	context.ds.byte(7) = 0;  finishtime:  	showtime(context);  finishwatch: -	context.data.byte(266) = 1; +	context.ds.byte(266) = 1;  	return;  }  static void showtime(Context & context) { -	context._cmp(context.data.byte(3), 0); +	context._cmp(context.ds.byte(3), 0);  	if (context.flags.z()) goto nowatch; -	context.al = context.data.byte(5); +	context.al = context.ds.byte(5);  	context.cl = 0;  	twodigitnum(context);  	context.push(context.ax);  	context.al = context.ah;  	context.ah = 0;  	context._add(context.ax, 91*3+10); -	context.ds = context.data.word(404); +	context.ds = context.ds.word(404);  	context.di = 282+5;  	context.bx = 21;  	showframe(context);  	context.ax = context.pop();  	context.ah = 0;  	context._add(context.ax, 91*3+10); -	context.ds = context.data.word(404); +	context.ds = context.ds.word(404);  	context.di = 282+9;  	context.bx = 21;  	showframe(context); -	context.al = context.data.byte(6); +	context.al = context.ds.byte(6);  	context.cl = 0;  	twodigitnum(context);  	context.push(context.ax);  	context.al = context.ah;  	context.ah = 0;  	context._add(context.ax, 91*3); -	context.ds = context.data.word(404); +	context.ds = context.ds.word(404);  	context.di = 270+5;  	context.bx = 21;  	showframe(context);  	context.ax = context.pop();  	context.ah = 0;  	context._add(context.ax, 91*3); -	context.ds = context.data.word(404); +	context.ds = context.ds.word(404);  	context.di = 270+11;  	context.bx = 21;  	showframe(context); -	context.al = context.data.byte(7); +	context.al = context.ds.byte(7);  	context.cl = 0;  	twodigitnum(context);  	context.push(context.ax);  	context.al = context.ah;  	context.ah = 0;  	context._add(context.ax, 91*3); -	context.ds = context.data.word(404); +	context.ds = context.ds.word(404);  	context.di = 256+5;  	context.bx = 21;  	showframe(context);  	context.ax = context.pop();  	context.ah = 0;  	context._add(context.ax, 91*3); -	context.ds = context.data.word(404); +	context.ds = context.ds.word(404);  	context.di = 256+11;  	context.bx = 21;  	showframe(context);  	context.ax = 91*3+20; -	context.ds = context.data.word(404); +	context.ds = context.ds.word(404);  	context.di = 267+5;  	context.bx = 21;  	showframe(context); @@ -17843,14 +17843,14 @@ nowatch:  }  static void dumpwatch(Context & context) { -	context._cmp(context.data.byte(266), 1); +	context._cmp(context.ds.byte(266), 1);  	if (!context.flags.z()) goto nodumpwatch;  	context.di = 256;  	context.bx = 21;  	context.cl = 40;  	context.ch = 12;  	multidump(context); -	context.data.byte(266) = 0; +	context.ds.byte(266) = 0;  nodumpwatch:  	return;  } @@ -17862,11 +17862,11 @@ static void showbyte(Context & context) {  	context._shr(context.dl, 1);  	context._shr(context.dl, 1);  	onedigit(context); -	context.data.byte(context.di) = context.dl; +	context.ds.byte(context.di) = context.dl;  	context.dl = context.al;  	context._and(context.dl, 15);  	onedigit(context); -	context.data.byte(context.di+1) = context.dl; +	context.ds.byte(context.di+1) = context.dl;  	context._add(context.di, 3);  	return;  } @@ -17904,7 +17904,7 @@ word1:  	if (!context.flags.c()) goto word1;  	context._add(context.ax, context.bx);  	convnum(context); -	context.data.byte(context.di) = context.cl; +	context.ds.byte(context.di) = context.cl;  	context.bx = 1000;  	context.cl = 47;  word2: @@ -17913,7 +17913,7 @@ word2:  	if (!context.flags.c()) goto word2;  	context._add(context.ax, context.bx);  	convnum(context); -	context.data.byte(context.di+1) = context.cl; +	context.ds.byte(context.di+1) = context.cl;  	context.bx = 100;  	context.cl = 47;  word3: @@ -17922,7 +17922,7 @@ word3:  	if (!context.flags.c()) goto word3;  	context._add(context.ax, context.bx);  	convnum(context); -	context.data.byte(context.di+2) = context.cl; +	context.ds.byte(context.di+2) = context.cl;  	context.bx = 10;  	context.cl = 47;  word4: @@ -17931,11 +17931,11 @@ word4:  	if (!context.flags.c()) goto word4;  	context._add(context.ax, context.bx);  	convnum(context); -	context.data.byte(context.di+3) = context.cl; +	context.ds.byte(context.di+3) = context.cl;  	context._add(context.al, 48);  	context.cl = context.al;  	convnum(context); -	context.data.byte(context.di+4) = context.cl; +	context.ds.byte(context.di+4) = context.cl;  	return;  } @@ -17955,57 +17955,57 @@ noconvnum:  static void walkandexamine(Context & context) {  	finishedwalking(context);  	if (!context.flags.z()) goto noobselect; -	context.al = context.data.byte(307); -	context.data.byte(100) = context.al; -	context.al = context.data.byte(308); -	context.data.byte(99) = context.al; -	context.data.byte(306) = 0; -	context._cmp(context.data.byte(100), 5); +	context.al = context.ds.byte(307); +	context.ds.byte(100) = context.al; +	context.al = context.ds.byte(308); +	context.ds.byte(99) = context.al; +	context.ds.byte(306) = 0; +	context._cmp(context.ds.byte(100), 5);  	if (context.flags.z()) goto noobselect;  	examineob(context);  	return;  wantstowalk:  	setwalk(context); -	context.data.byte(473) = 1; +	context.ds.byte(473) = 1;  noobselect:  	return;  diff: -	context.data.byte(99) = context.al; -	context.data.byte(100) = context.ah; +	context.ds.byte(99) = context.al; +	context.ds.byte(100) = context.ah;  diff2: -	context._cmp(context.data.byte(492), 254); +	context._cmp(context.ds.byte(492), 254);  	if (!context.flags.z()) goto middleofwalk; -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) goto middleofwalk; -	context.al = context.data.byte(133); -	context._cmp(context.al, context.data.byte(135)); +	context.al = context.ds.byte(133); +	context._cmp(context.al, context.ds.byte(135));  	if (!context.flags.z()) goto middleofwalk; -	context._cmp(context.data.byte(100), 3); +	context._cmp(context.ds.byte(100), 3);  	if (!context.flags.z()) goto notblock; -	context.bl = context.data.byte(475); -	context._cmp(context.bl, context.data.byte(474)); +	context.bl = context.ds.byte(475); +	context._cmp(context.bl, context.ds.byte(474));  	if (!context.flags.z()) goto dontcheck; -	context.cl = context.data.byte(151); +	context.cl = context.ds.byte(151);  	context._add(context.cl, 12); -	context.ch = context.data.byte(152); +	context.ch = context.ds.byte(152);  	context._add(context.ch, 12);  	checkone(context);  	context._cmp(context.cl, 2);  	if (context.flags.c()) goto isblock;  dontcheck:  	getflagunderp(context); -	context._cmp(context.data.byte(153), 2); +	context._cmp(context.ds.byte(153), 2);  	if (context.flags.c()) goto isblock; -	context._cmp(context.data.byte(153), 128); +	context._cmp(context.ds.byte(153), 128);  	if (!context.flags.c()) goto isblock;  	goto toofaraway;  notblock: -	context.bl = context.data.byte(475); -	context._cmp(context.bl, context.data.byte(474)); +	context.bl = context.ds.byte(475); +	context._cmp(context.bl, context.ds.byte(474));  	if (!context.flags.z()) goto toofaraway; -	context._cmp(context.data.byte(100), 3); +	context._cmp(context.ds.byte(100), 3);  	if (context.flags.z()) goto isblock; -	context._cmp(context.data.byte(100), 5); +	context._cmp(context.ds.byte(100), 5);  	if (context.flags.z()) goto isaperson;  	examineobtext(context);  	return; @@ -18024,14 +18024,14 @@ toofaraway:  }  static void mainscreen(Context & context) { -	context.data.byte(237) = 0; +	context.ds.byte(237) = 0;  	context.bx = 4949; -	context._cmp(context.data.byte(3), 1); +	context._cmp(context.ds.byte(3), 1);  	if (context.flags.z()) goto checkmain;  	context.bx = 5011;  checkmain:  	checkcoords(context); -	context._cmp(context.data.byte(306), 0); +	context._cmp(context.ds.byte(306), 0);  	if (context.flags.z()) goto finishmain;  	walkandexamine(context);  finishmain: @@ -18039,48 +18039,48 @@ finishmain:  }  static void madmanrun(Context & context) { -	context._cmp(context.data.byte(9), 14); +	context._cmp(context.ds.byte(9), 14);  	if (!context.flags.z()) { identifyob(context); return; }; -	context._cmp(context.data.byte(148), 22); +	context._cmp(context.ds.byte(148), 22);  	if (!context.flags.z()) { identifyob(context); return; }; -	context._cmp(context.data.byte(234), 2); +	context._cmp(context.ds.byte(234), 2);  	if (!context.flags.z()) { identifyob(context); return; }; -	context._cmp(context.data.byte(53), 0); +	context._cmp(context.ds.byte(53), 0);  	if (!context.flags.z()) { identifyob(context); return; }; -	context._cmp(context.data.byte(100), 211); +	context._cmp(context.ds.byte(100), 211);  	if (context.flags.z()) goto alreadyrun; -	context.data.byte(100) = 211; +	context.ds.byte(100) = 211;  	context.al = 52;  	commandonly(context);  alreadyrun: -	context._cmp(context.data.word(202), 1); +	context._cmp(context.ds.word(202), 1);  	if (!context.flags.z()) goto norun; -	context.ax = context.data.word(202); -	context._cmp(context.ax, context.data.word(212)); +	context.ax = context.ds.word(202); +	context._cmp(context.ax, context.ds.word(212));  	if (context.flags.z()) goto norun; -	context.data.byte(65) = 8; +	context.ds.byte(65) = 8;  norun:  	return;  }  static void checkcoords(Context & context) {  loop048: -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._cmp(context.ax, 0x0ffff);  	if (context.flags.z()) goto nonefound;  	context.push(context.bx); -	context._cmp(context.data.word(198), context.ax); +	context._cmp(context.ds.word(198), context.ax);  	if (context.flags.l()) goto over045; -	context.ax = context.data.word(context.bx+2); -	context._cmp(context.data.word(198), context.ax); +	context.ax = context.ds.word(context.bx+2); +	context._cmp(context.ds.word(198), context.ax);  	if (!context.flags.ge()) goto over045; -	context.ax = context.data.word(context.bx+4); -	context._cmp(context.data.word(200), context.ax); +	context.ax = context.ds.word(context.bx+4); +	context._cmp(context.ds.word(200), context.ax);  	if (context.flags.l()) goto over045; -	context.ax = context.data.word(context.bx+6); -	context._cmp(context.data.word(200), context.ax); +	context.ax = context.ds.word(context.bx+6); +	context._cmp(context.ds.word(200), context.ax);  	if (!context.flags.ge()) goto over045; -	context.ax = context.data.word(context.bx+8); +	context.ax = context.ds.word(context.bx+8);  	__dispatch_call(context, context.ax);  finished:  	context.ax = context.pop(); @@ -18094,31 +18094,31 @@ nonefound:  }  static void identifyob(Context & context) { -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) { blank(context); return; }; -	context.ax = context.data.word(198); -	context._sub(context.ax, context.data.word(117)); +	context.ax = context.ds.word(198); +	context._sub(context.ax, context.ds.word(117));  	context._cmp(context.ax, 22*8);  	if (context.flags.c()) goto notover1;  	blank(context);  	return;  notover1: -	context.bx = context.data.word(200); -	context._sub(context.bx, context.data.word(119)); +	context.bx = context.ds.word(200); +	context._sub(context.bx, context.ds.word(119));  	context._cmp(context.bx, 20*8);  	if (context.flags.c()) goto notover2;  	blank(context);  	return;  notover2: -	context.data.byte(237) = 1; +	context.ds.byte(237) = 1;  	context.ah = context.bl;  	context.push(context.ax);  	findpathofpoint(context); -	context.data.byte(474) = context.dl; +	context.ds.byte(474) = context.dl;  	context.ax = context.pop();  	context.push(context.ax);  	findfirstpath(context); -	context.data.byte(476) = context.al; +	context.ds.byte(476) = context.al;  	context.ax = context.pop();  	checkifex(context);  	if (!context.flags.z()) goto finishidentify; @@ -18128,16 +18128,16 @@ notover2:  	if (!context.flags.z()) goto finishidentify;  	checkifset(context);  	if (!context.flags.z()) goto finishidentify; -	context.ax = context.data.word(198); -	context._sub(context.ax, context.data.word(117)); +	context.ax = context.ds.word(198); +	context._sub(context.ax, context.ds.word(117));  	context.cl = context.al; -	context.ax = context.data.word(200); -	context._sub(context.ax, context.data.word(119)); +	context.ax = context.ds.word(200); +	context._sub(context.ax, context.ds.word(119));  	context.ch = context.al;  	checkone(context);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto nothingund; -	context._cmp(context.data.byte(56), 1); +	context._cmp(context.ds.byte(56), 1);  	if (context.flags.z()) goto nothingund;  	context.ah = 3;  	obname(context); @@ -18149,33 +18149,33 @@ nothingund:  }  static void checkifperson(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5);  	context.cx = 12;  identifyreel:  	context.push(context.cx); -	context._cmp(context.data.byte(context.bx+4), 255); +	context._cmp(context.ds.byte(context.bx+4), 255);  	if (context.flags.z()) goto notareelid;  	context.push(context.es);  	context.push(context.bx);  	context.push(context.ax); -	context.ax = context.data.word(context.bx+0); -	context.data.word(239) = context.ax; +	context.ax = context.ds.word(context.bx+0); +	context.ds.word(239) = context.ax;  	getreelstart(context); -	context._cmp(context.data.word(context.si+2), 0x0ffff); +	context._cmp(context.ds.word(context.si+2), 0x0ffff);  	if (!context.flags.z()) goto notblankpers;  	context._add(context.si, 5);  notblankpers: -	context.cx = context.data.word(context.si+2); -	context.ax = context.data.word(context.si+0); +	context.cx = context.ds.word(context.si+2); +	context.ax = context.ds.word(context.si+0);  	context.push(context.cx);  	getreelframeax(context);  	context.cx = context.pop(); -	context._add(context.cl, context.data.byte(context.bx+4)); -	context._add(context.ch, context.data.byte(context.bx+5)); +	context._add(context.cl, context.ds.byte(context.bx+4)); +	context._add(context.ch, context.ds.byte(context.bx+5));  	context.dx = context.cx; -	context._add(context.dl, context.data.byte(context.bx+0)); -	context._add(context.dh, context.data.byte(context.bx+1)); +	context._add(context.dl, context.ds.byte(context.bx+0)); +	context._add(context.dh, context.ds.byte(context.bx+1));  	context.ax = context.pop();  	context.bx = context.pop();  	context.es = context.pop(); @@ -18188,9 +18188,9 @@ notblankpers:  	context._cmp(context.ah, context.dh);  	if (!context.flags.c()) goto notareelid;  	context.cx = context.pop(); -	context.ax = context.data.word(context.bx+2); -	context.data.word(249) = context.ax; -	context.al = context.data.byte(context.bx+4); +	context.ax = context.ds.word(context.bx+2); +	context.ds.word(249) = context.ax; +	context.al = context.ds.byte(context.bx+4);  	context.ah = 5;  	obname(context);  	context.al = 0; @@ -18205,25 +18205,25 @@ notareelid:  }  static void checkifset(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(127*5);  	context.cx = 127;  identifyset: -	context._cmp(context.data.byte(context.bx+4), 255); +	context._cmp(context.ds.byte(context.bx+4), 255);  	if (context.flags.z()) goto notasetid; -	context._cmp(context.al, context.data.byte(context.bx)); +	context._cmp(context.al, context.ds.byte(context.bx));  	if (context.flags.c()) goto notasetid; -	context._cmp(context.al, context.data.byte(context.bx+2)); +	context._cmp(context.al, context.ds.byte(context.bx+2));  	if (!context.flags.c()) goto notasetid; -	context._cmp(context.ah, context.data.byte(context.bx+1)); +	context._cmp(context.ah, context.ds.byte(context.bx+1));  	if (context.flags.c()) goto notasetid; -	context._cmp(context.ah, context.data.byte(context.bx+3)); +	context._cmp(context.ah, context.ds.byte(context.bx+3));  	if (!context.flags.c()) goto notasetid;  	pixelcheckset(context);  	if (context.flags.z()) goto notasetid;  	isitdescribed(context);  	if (context.flags.z()) goto notasetid; -	context.al = context.data.byte(context.bx+4); +	context.al = context.ds.byte(context.bx+4);  	context.ah = 1;  	obname(context);  	context.al = 0; @@ -18238,21 +18238,21 @@ notasetid:  }  static void checkifex(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(99*5);  	context.cx = 99;  identifyex: -	context._cmp(context.data.byte(context.bx+4), 255); +	context._cmp(context.ds.byte(context.bx+4), 255);  	if (context.flags.z()) goto notanexid; -	context._cmp(context.al, context.data.byte(context.bx)); +	context._cmp(context.al, context.ds.byte(context.bx));  	if (context.flags.c()) goto notanexid; -	context._cmp(context.al, context.data.byte(context.bx+2)); +	context._cmp(context.al, context.ds.byte(context.bx+2));  	if (!context.flags.c()) goto notanexid; -	context._cmp(context.ah, context.data.byte(context.bx+1)); +	context._cmp(context.ah, context.ds.byte(context.bx+1));  	if (context.flags.c()) goto notanexid; -	context._cmp(context.ah, context.data.byte(context.bx+3)); +	context._cmp(context.ah, context.ds.byte(context.bx+3));  	if (!context.flags.c()) goto notanexid; -	context.al = context.data.byte(context.bx+4); +	context.al = context.ds.byte(context.bx+4);  	context.ah = 4;  	obname(context);  	context.al = 1; @@ -18267,21 +18267,21 @@ notanexid:  }  static void checkiffree(Context & context) { -	context.es = context.data.word(412); +	context.es = context.ds.word(412);  	context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(79*5);  	context.cx = 79;  identifyfree: -	context._cmp(context.data.byte(context.bx+4), 255); +	context._cmp(context.ds.byte(context.bx+4), 255);  	if (context.flags.z()) goto notafreeid; -	context._cmp(context.al, context.data.byte(context.bx)); +	context._cmp(context.al, context.ds.byte(context.bx));  	if (context.flags.c()) goto notafreeid; -	context._cmp(context.al, context.data.byte(context.bx+2)); +	context._cmp(context.al, context.ds.byte(context.bx+2));  	if (!context.flags.c()) goto notafreeid; -	context._cmp(context.ah, context.data.byte(context.bx+1)); +	context._cmp(context.ah, context.ds.byte(context.bx+1));  	if (context.flags.c()) goto notafreeid; -	context._cmp(context.ah, context.data.byte(context.bx+3)); +	context._cmp(context.ah, context.ds.byte(context.bx+3));  	if (!context.flags.c()) goto notafreeid; -	context.al = context.data.byte(context.bx+4); +	context.al = context.ds.byte(context.bx+4);  	context.ah = 2;  	obname(context);  	context.al = 0; @@ -18300,16 +18300,16 @@ static void isitdescribed(Context & context) {  	context.push(context.cx);  	context.push(context.es);  	context.push(context.bx); -	context.al = context.data.byte(context.bx+4); +	context.al = context.ds.byte(context.bx+4);  	context.ah = 0;  	context._add(context.ax, context.ax);  	context.bx = context.ax; -	context.es = context.data.word(440); +	context.es = context.ds.word(440);  	context._add(context.bx, 0); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, 0+(130*2));  	context.bx = context.ax; -	context.dl = context.data.byte(context.bx); +	context.dl = context.ds.byte(context.bx);  	context.bx = context.pop();  	context.es = context.pop();  	context.cx = context.pop(); @@ -18321,8 +18321,8 @@ static void isitdescribed(Context & context) {  static void findpathofpoint(Context & context) {  	context.push(context.ax);  	context.bx = 0; -	context.es = context.data.word(450); -	context.al = context.data.byte(185); +	context.es = context.ds.word(450); +	context.al = context.ds.byte(185);  	context.ah = 0;  	context.cx = 144;  	context._mul(context.cx); @@ -18330,17 +18330,17 @@ static void findpathofpoint(Context & context) {  	context.cx = context.pop();  	context.dl = 0;  pathloop: -	context.al = context.data.byte(context.bx+6); +	context.al = context.ds.byte(context.bx+6);  	context._cmp(context.al, 255);  	if (!context.flags.z()) goto flunkedit; -	context.ax = context.data.word(context.bx+2); +	context.ax = context.ds.word(context.bx+2);  	context._cmp(context.ax, 0x0ffff);  	if (context.flags.z()) goto flunkedit;  	context._cmp(context.cl, context.al);  	if (context.flags.c()) goto flunkedit;  	context._cmp(context.ch, context.ah);  	if (context.flags.c()) goto flunkedit; -	context.ax = context.data.word(context.bx+4); +	context.ax = context.ds.word(context.bx+4);  	context._cmp(context.cl, context.al);  	if (!context.flags.c()) goto flunkedit;  	context._cmp(context.ch, context.ah); @@ -18359,8 +18359,8 @@ gotvalidpath:  static void findfirstpath(Context & context) {  	context.push(context.ax);  	context.bx = 0; -	context.es = context.data.word(450); -	context.al = context.data.byte(185); +	context.es = context.ds.word(450); +	context.al = context.ds.byte(185);  	context.ah = 0;  	context.cx = 144;  	context._mul(context.cx); @@ -18368,14 +18368,14 @@ static void findfirstpath(Context & context) {  	context.cx = context.pop();  	context.dl = 0;  fpathloop: -	context.ax = context.data.word(context.bx+2); +	context.ax = context.ds.word(context.bx+2);  	context._cmp(context.ax, 0x0ffff);  	if (context.flags.z()) goto nofirst;  	context._cmp(context.cl, context.al);  	if (context.flags.c()) goto nofirst;  	context._cmp(context.ch, context.ah);  	if (context.flags.c()) goto nofirst; -	context.ax = context.data.word(context.bx+4); +	context.ax = context.ds.word(context.bx+4);  	context._cmp(context.cl, context.al);  	if (!context.flags.c()) goto nofirst;  	context._cmp(context.ch, context.ah); @@ -18389,7 +18389,7 @@ nofirst:  	context.al = 0;  	return;  gotfirst: -	context.al = context.data.byte(context.bx+6); +	context.al = context.ds.byte(context.bx+6);  	return;  } @@ -18397,7 +18397,7 @@ static void turnpathon(Context & context) {  	context.push(context.ax);  	context.push(context.ax);  	context.cl = 255; -	context.ch = context.data.byte(185); +	context.ch = context.ds.byte(185);  	context._add(context.ch, 100);  	findormake(context);  	context.ax = context.pop(); @@ -18411,7 +18411,7 @@ static void turnpathon(Context & context) {  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax);  	context.al = 255; -	context.data.byte(context.bx+6) = context.al; +	context.ds.byte(context.bx+6) = context.al;  nopathon:  	return;  } @@ -18420,7 +18420,7 @@ static void turnpathoff(Context & context) {  	context.push(context.ax);  	context.push(context.ax);  	context.cl = 0; -	context.ch = context.data.byte(185); +	context.ch = context.ds.byte(185);  	context._add(context.ch, 100);  	findormake(context);  	context.ax = context.pop(); @@ -18434,7 +18434,7 @@ static void turnpathoff(Context & context) {  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax);  	context.al = 0; -	context.data.byte(context.bx+6) = context.al; +	context.ds.byte(context.bx+6) = context.al;  nopathoff:  	return;  } @@ -18451,7 +18451,7 @@ static void turnanypathon(Context & context) {  	context.ah = 0;  	context.cx = 144;  	context._mul(context.cx); -	context.es = context.data.word(450); +	context.es = context.ds.word(450);  	context.bx = 0;  	context._add(context.bx, context.ax);  	context.ax = context.pop(); @@ -18461,7 +18461,7 @@ static void turnanypathon(Context & context) {  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax);  	context.al = 255; -	context.data.byte(context.bx+6) = context.al; +	context.ds.byte(context.bx+6) = context.al;  	return;  } @@ -18477,7 +18477,7 @@ static void turnanypathoff(Context & context) {  	context.ah = 0;  	context.cx = 144;  	context._mul(context.cx); -	context.es = context.data.word(450); +	context.es = context.ds.word(450);  	context.bx = 0;  	context._add(context.bx, context.ax);  	context.ax = context.pop(); @@ -18487,7 +18487,7 @@ static void turnanypathoff(Context & context) {  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax);  	context.al = 0; -	context.data.byte(context.bx+6) = context.al; +	context.ds.byte(context.bx+6) = context.al;  	return;  } @@ -18500,33 +18500,33 @@ static void checkifpathison(Context & context) {  	context._add(context.ax, context.ax);  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.bx+6); +	context.al = context.ds.byte(context.bx+6);  	context._cmp(context.al, 255);  	return;  }  static void afternewroom(Context & context) { -	context._cmp(context.data.byte(186), 0); +	context._cmp(context.ds.byte(186), 0);  	if (context.flags.z()) goto notnew; -	context.data.word(328) = 0; +	context.ds.word(328) = 0;  	createpanel(context); -	context.data.byte(100) = 0; +	context.ds.byte(100) = 0;  	findroominloc(context); -	context._cmp(context.data.byte(63), 1); +	context._cmp(context.ds.byte(63), 1);  	if (context.flags.z()) goto ryansoff; -	context.al = context.data.byte(151); +	context.al = context.ds.byte(151);  	context._add(context.al, 12); -	context.ah = context.data.byte(152); +	context.ah = context.ds.byte(152);  	context._add(context.ah, 12);  	findpathofpoint(context); -	context.data.byte(475) = context.dl; +	context.ds.byte(475) = context.dl;  	findxyfrompath(context); -	context.data.byte(187) = 1; +	context.ds.byte(187) = 1;  ryansoff: -	context.data.byte(62) = 1; +	context.ds.byte(62) = 1;  	drawfloor(context); -	context.data.word(98) = 160; -	context.data.byte(186) = 0; +	context.ds.word(98) = 160; +	context.ds.byte(186) = 0;  	showicon(context);  	spriteupdate(context);  	printsprites(context); @@ -18544,50 +18544,50 @@ notnew:  }  static void atmospheres(Context & context) { -	context.cl = context.data.byte(148); -	context.ch = context.data.byte(149); +	context.cl = context.ds.byte(148); +	context.ch = context.ds.byte(149);  	context.bx = 5073;  nextatmos: -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context._cmp(context.al, 255);  	if (context.flags.z()) goto nomoreatmos; -	context._cmp(context.al, context.data.byte(184)); +	context._cmp(context.al, context.ds.byte(184));  	if (!context.flags.z()) goto wrongatmos; -	context.ax = context.data.word(context.bx+1); +	context.ax = context.ds.word(context.bx+1);  	context._cmp(context.ax, context.cx);  	if (!context.flags.z()) goto wrongatmos; -	context.ax = context.data.word(context.bx+3); -	context._cmp(context.al, context.data.byte(507)); +	context.ax = context.ds.word(context.bx+3); +	context._cmp(context.al, context.ds.byte(507));  	if (context.flags.z()) goto playingalready; -	context._cmp(context.data.byte(9), 45); +	context._cmp(context.ds.byte(9), 45);  	if (!context.flags.z()) goto notweb; -	context._cmp(context.data.word(23), 45); +	context._cmp(context.ds.word(23), 45);  	if (context.flags.z()) goto wrongatmos;  notweb:  	playchannel0(context); -	context._cmp(context.data.byte(184), 2); -	context._cmp(context.data.byte(149), 0); +	context._cmp(context.ds.byte(184), 2); +	context._cmp(context.ds.byte(149), 0);  	if (context.flags.z()) goto fullvol;  	if (!context.flags.z()) goto notlouisvol; -	context._cmp(context.data.byte(149), 10); +	context._cmp(context.ds.byte(149), 10);  	if (!context.flags.z()) goto notlouisvol; -	context._cmp(context.data.byte(148), 22); +	context._cmp(context.ds.byte(148), 22);  	if (!context.flags.z()) goto notlouisvol; -	context.data.byte(386) = 5; +	context.ds.byte(386) = 5;  notlouisvol:  playingalready: -	context._cmp(context.data.byte(184), 2); +	context._cmp(context.ds.byte(184), 2);  	if (!context.flags.z()) goto notlouisvol2; -	context._cmp(context.data.byte(148), 22); +	context._cmp(context.ds.byte(148), 22);  	if (context.flags.z()) goto louisvol; -	context._cmp(context.data.byte(148), 11); +	context._cmp(context.ds.byte(148), 11);  	if (!context.flags.z()) goto notlouisvol2;  fullvol: -	context.data.byte(386) = 0; +	context.ds.byte(386) = 0;  notlouisvol2:  	return;  louisvol: -	context.data.byte(386) = 5; +	context.ds.byte(386) = 5;  	return;  wrongatmos:  	context._add(context.bx, 5); @@ -18598,126 +18598,126 @@ nomoreatmos:  }  static void walkintoroom(Context & context) { -	context._cmp(context.data.byte(9), 14); +	context._cmp(context.ds.byte(9), 14);  	if (!context.flags.z()) goto notlair; -	context._cmp(context.data.byte(148), 22); +	context._cmp(context.ds.byte(148), 22);  	if (!context.flags.z()) goto notlair; -	context.data.byte(478) = 1; -	context.data.byte(477) = 1; +	context.ds.byte(478) = 1; +	context.ds.byte(477) = 1;  	autosetwalk(context);  notlair:  	return;  }  static void afterintroroom(Context & context) { -	context._cmp(context.data.byte(186), 0); +	context._cmp(context.ds.byte(186), 0);  	if (context.flags.z()) goto notnewintro;  	clearwork(context);  	findroominloc(context); -	context.data.byte(62) = 1; +	context.ds.byte(62) = 1;  	drawfloor(context);  	reelsonscreen(context);  	spriteupdate(context);  	printsprites(context);  	worktoscreen(context); -	context.data.byte(186) = 0; +	context.ds.byte(186) = 0;  notnewintro:  	return;  }  static void obname(Context & context) { -	context._cmp(context.data.byte(473), 0); +	context._cmp(context.ds.byte(473), 0);  	if (context.flags.z()) goto notnewpath; -	context.data.byte(473) = 0; +	context.ds.byte(473) = 0;  	goto diff;  notnewpath: -	context._cmp(context.ah, context.data.byte(100)); +	context._cmp(context.ah, context.ds.byte(100));  	if (context.flags.z()) goto notdiffob;  	goto diff;  notdiffob: -	context._cmp(context.al, context.data.byte(99)); +	context._cmp(context.al, context.ds.byte(99));  	if (!context.flags.z()) goto diff; -	context._cmp(context.data.byte(306), 1); +	context._cmp(context.ds.byte(306), 1);  	if (context.flags.z()) goto walkandexamine; -	context._cmp(context.data.word(202), 0); +	context._cmp(context.ds.word(202), 0);  	if (context.flags.z()) goto noobselect; -	context._cmp(context.data.byte(100), 3); +	context._cmp(context.ds.byte(100), 3);  	if (!context.flags.z()) goto isntblock; -	context._cmp(context.data.byte(153), 2); +	context._cmp(context.ds.byte(153), 2);  	if (context.flags.c()) goto noobselect;  isntblock: -	context.bl = context.data.byte(475); -	context._cmp(context.bl, context.data.byte(474)); +	context.bl = context.ds.byte(475); +	context._cmp(context.bl, context.ds.byte(474));  	if (!context.flags.z()) goto wantstowalk; -	context._cmp(context.data.byte(100), 3); +	context._cmp(context.ds.byte(100), 3);  	if (context.flags.z()) goto wantstowalk;  	finishedwalking(context);  	if (!context.flags.z()) goto noobselect; -	context._cmp(context.data.byte(100), 5); +	context._cmp(context.ds.byte(100), 5);  	if (context.flags.z()) goto wantstotalk; -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) goto noobselect;  	examineob(context);  	return;  wantstotalk: -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) goto noobselect;  	talk(context);  	return;  walkandexamine:  	finishedwalking(context);  	if (!context.flags.z()) goto noobselect; -	context.al = context.data.byte(307); -	context.data.byte(100) = context.al; -	context.al = context.data.byte(308); -	context.data.byte(99) = context.al; -	context.data.byte(306) = 0; -	context._cmp(context.data.byte(100), 5); +	context.al = context.ds.byte(307); +	context.ds.byte(100) = context.al; +	context.al = context.ds.byte(308); +	context.ds.byte(99) = context.al; +	context.ds.byte(306) = 0; +	context._cmp(context.ds.byte(100), 5);  	if (context.flags.z()) goto noobselect;  	examineob(context);  	return;  wantstowalk:  	setwalk(context); -	context.data.byte(473) = 1; +	context.ds.byte(473) = 1;  noobselect:  	return;  diff: -	context.data.byte(99) = context.al; -	context.data.byte(100) = context.ah; +	context.ds.byte(99) = context.al; +	context.ds.byte(100) = context.ah;  diff2: -	context._cmp(context.data.byte(492), 254); +	context._cmp(context.ds.byte(492), 254);  	if (!context.flags.z()) goto middleofwalk; -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (!context.flags.z()) goto middleofwalk; -	context.al = context.data.byte(133); -	context._cmp(context.al, context.data.byte(135)); +	context.al = context.ds.byte(133); +	context._cmp(context.al, context.ds.byte(135));  	if (!context.flags.z()) goto middleofwalk; -	context._cmp(context.data.byte(100), 3); +	context._cmp(context.ds.byte(100), 3);  	if (!context.flags.z()) goto notblock; -	context.bl = context.data.byte(475); -	context._cmp(context.bl, context.data.byte(474)); +	context.bl = context.ds.byte(475); +	context._cmp(context.bl, context.ds.byte(474));  	if (!context.flags.z()) goto dontcheck; -	context.cl = context.data.byte(151); +	context.cl = context.ds.byte(151);  	context._add(context.cl, 12); -	context.ch = context.data.byte(152); +	context.ch = context.ds.byte(152);  	context._add(context.ch, 12);  	checkone(context);  	context._cmp(context.cl, 2);  	if (context.flags.c()) goto isblock;  dontcheck:  	getflagunderp(context); -	context._cmp(context.data.byte(153), 2); +	context._cmp(context.ds.byte(153), 2);  	if (context.flags.c()) goto isblock; -	context._cmp(context.data.byte(153), 128); +	context._cmp(context.ds.byte(153), 128);  	if (!context.flags.c()) goto isblock;  	goto toofaraway;  notblock: -	context.bl = context.data.byte(475); -	context._cmp(context.bl, context.data.byte(474)); +	context.bl = context.ds.byte(475); +	context._cmp(context.bl, context.ds.byte(474));  	if (!context.flags.z()) goto toofaraway; -	context._cmp(context.data.byte(100), 3); +	context._cmp(context.ds.byte(100), 3);  	if (context.flags.z()) goto isblock; -	context._cmp(context.data.byte(100), 5); +	context._cmp(context.ds.byte(100), 5);  	if (context.flags.z()) goto isaperson;  	examineobtext(context);  	return; @@ -18736,17 +18736,17 @@ toofaraway:  }  static void finishedwalking(Context & context) { -	context._cmp(context.data.byte(492), 254); +	context._cmp(context.ds.byte(492), 254);  	if (!context.flags.z()) goto iswalking; -	context.al = context.data.byte(133); -	context._cmp(context.al, context.data.byte(135)); +	context.al = context.ds.byte(133); +	context._cmp(context.al, context.ds.byte(135));  iswalking:  	return;  }  static void examineobtext(Context & context) { -	context.bl = context.data.byte(99); -	context.bh = context.data.byte(100); +	context.bl = context.ds.byte(99); +	context.bh = context.ds.byte(100);  	context.al = 1;  	commandwithob(context);  	return; @@ -18775,13 +18775,13 @@ static void commandwithob(Context & context) {  	context.ah = 0;  	context._add(context.ax, context.ax);  	context.bx = context.ax; -	context.es = context.data.word(452); -	context.ax = context.data.word(context.bx); +	context.es = context.ds.word(452); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, 66*2);  	context.si = context.ax; -	context.di = context.data.word(79); -	context.bx = context.data.word(81); -	context.dl = context.data.byte(82); +	context.di = context.ds.word(79); +	context.bx = context.ds.word(81); +	context.dl = context.ds.byte(82);  	context.al = 0;  	context.ah = 0;  	printdirect(context); @@ -18789,19 +18789,19 @@ static void commandwithob(Context & context) {  	context.di = 5674;  	copyname(context);  	context.ax = context.pop(); -	context.di = context.data.word(84); +	context.di = context.ds.word(84);  	context._cmp(context.al, 0);  	if (context.flags.z()) goto noadd;  	context._add(context.di, 5);  noadd: -	context.bx = context.data.word(81); +	context.bx = context.ds.word(81);  	context.es = context.cs;  	context.si = 5674; -	context.dl = context.data.byte(82); +	context.dl = context.ds.byte(82);  	context.al = 0;  	context.ah = 0;  	printdirect(context); -	context.data.byte(109) = 1; +	context.ds.byte(109) = 1;  	return;  } @@ -18826,17 +18826,17 @@ static void commandonly(Context & context) {  	context.ah = 0;  	context._add(context.ax, context.ax);  	context.bx = context.ax; -	context.es = context.data.word(452); -	context.ax = context.data.word(context.bx); +	context.es = context.ds.word(452); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, 66*2);  	context.si = context.ax; -	context.di = context.data.word(79); -	context.bx = context.data.word(81); -	context.dl = context.data.byte(82); +	context.di = context.ds.word(79); +	context.bx = context.ds.word(81); +	context.dl = context.ds.byte(82);  	context.al = 0;  	context.ah = 0;  	printdirect(context); -	context.data.byte(109) = 1; +	context.ds.byte(109) = 1;  	return;  } @@ -18847,8 +18847,8 @@ static void printmessage(Context & context) {  	context.ah = 0;  	context._add(context.ax, context.ax);  	context.bx = context.ax; -	context.es = context.data.word(452); -	context.ax = context.data.word(context.bx); +	context.es = context.ds.word(452); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, 66*2);  	context.si = context.ax;  	context.di = context.pop(); @@ -18868,8 +18868,8 @@ static void printmessage2(Context & context) {  	context.ah = 0;  	context._add(context.ax, context.ax);  	context.bx = context.ax; -	context.es = context.data.word(452); -	context.ax = context.data.word(context.bx); +	context.es = context.ds.word(452); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, 66*2);  	context.si = context.ax;  	context.ax = context.pop(); @@ -18889,63 +18889,63 @@ searchmess:  }  static void blocknametext(Context & context) { -	context.bl = context.data.byte(99); -	context.bh = context.data.byte(100); +	context.bl = context.ds.byte(99); +	context.bh = context.ds.byte(100);  	context.al = 0;  	commandwithob(context);  	return;  }  static void personnametext(Context & context) { -	context.bl = context.data.byte(99); +	context.bl = context.ds.byte(99);  	context._and(context.bl, 127); -	context.bh = context.data.byte(100); +	context.bh = context.ds.byte(100);  	context.al = 2;  	commandwithob(context);  	return;  }  static void walktotext(Context & context) { -	context.bl = context.data.byte(99); -	context.bh = context.data.byte(100); +	context.bl = context.ds.byte(99); +	context.bh = context.ds.byte(100);  	context.al = 3;  	commandwithob(context);  	return;  }  static void getflagunderp(Context & context) { -	context.cx = context.data.word(198); -	context._sub(context.cx, context.data.word(117)); -	context.ax = context.data.word(200); -	context._sub(context.ax, context.data.word(119)); +	context.cx = context.ds.word(198); +	context._sub(context.cx, context.ds.word(117)); +	context.ax = context.ds.word(200); +	context._sub(context.ax, context.ds.word(119));  	context.ch = context.al;  	checkone(context); -	context.data.byte(153) = context.cl; -	context.data.byte(154) = context.ch; +	context.ds.byte(153) = context.cl; +	context.ds.byte(154) = context.ch;  	return;  }  static void setwalk(Context & context) { -	context._cmp(context.data.byte(492), 254); +	context._cmp(context.ds.byte(492), 254);  	if (!context.flags.z()) goto alreadywalking; -	context.al = context.data.byte(474); -	context._cmp(context.al, context.data.byte(475)); +	context.al = context.ds.byte(474); +	context._cmp(context.al, context.ds.byte(475));  	if (context.flags.z()) goto cantwalk2; -	context._cmp(context.data.byte(32), 1); +	context._cmp(context.ds.byte(32), 1);  	if (context.flags.z()) goto holdingreel; -	context._cmp(context.data.byte(32), 2); +	context._cmp(context.ds.byte(32), 2);  	if (context.flags.z()) goto cantwalk; -	context.data.byte(478) = context.al; -	context.data.byte(477) = context.al; -	context._cmp(context.data.word(202), 2); +	context.ds.byte(478) = context.al; +	context.ds.byte(477) = context.al; +	context._cmp(context.ds.word(202), 2);  	if (!context.flags.z()) goto notwalkandexam; -	context._cmp(context.data.byte(100), 3); +	context._cmp(context.ds.byte(100), 3);  	if (context.flags.z()) goto notwalkandexam; -	context.data.byte(306) = 1; -	context.al = context.data.byte(100); -	context.data.byte(307) = context.al; -	context.al = context.data.byte(99); -	context.data.byte(308) = context.al; +	context.ds.byte(306) = 1; +	context.al = context.ds.byte(100); +	context.ds.byte(307) = context.al; +	context.al = context.ds.byte(99); +	context.ds.byte(308) = context.al;  notwalkandexam:  	autosetwalk(context);  cantwalk: @@ -18954,95 +18954,95 @@ cantwalk2:  	facerightway(context);  	return;  alreadywalking: -	context.al = context.data.byte(474); -	context.data.byte(477) = context.al; +	context.al = context.ds.byte(474); +	context.ds.byte(477) = context.al;  	return;  holdingreel: -	context.data.byte(33) = context.al; -	context.data.byte(32) = 2; +	context.ds.byte(33) = context.al; +	context.ds.byte(32) = 2;  	return;  }  static void autosetwalk(Context & context) { -	context.al = context.data.byte(475); -	context._cmp(context.data.byte(477), context.al); +	context.al = context.ds.byte(475); +	context._cmp(context.ds.byte(477), context.al);  	if (!context.flags.z()) goto notsamealready;  	return;  notsamealready:  	getroomspaths(context);  	checkdest(context);  	context.push(context.bx); -	context.al = context.data.byte(475); +	context.al = context.ds.byte(475);  	context.ah = 0;  	context._add(context.ax, context.ax);  	context._add(context.ax, context.ax);  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context.ah = 0;  	context._sub(context.ax, 12); -	context.data.word(480) = context.ax; -	context.al = context.data.byte(context.bx+1); +	context.ds.word(480) = context.ax; +	context.al = context.ds.byte(context.bx+1);  	context.ah = 0;  	context._sub(context.ax, 12); -	context.data.word(482) = context.ax; +	context.ds.word(482) = context.ax;  	context.bx = context.pop(); -	context.al = context.data.byte(478); +	context.al = context.ds.byte(478);  	context.ah = 0;  	context._add(context.ax, context.ax);  	context._add(context.ax, context.ax);  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.bx); +	context.al = context.ds.byte(context.bx);  	context.ah = 0;  	context._sub(context.ax, 12); -	context.data.word(484) = context.ax; -	context.al = context.data.byte(context.bx+1); +	context.ds.word(484) = context.ax; +	context.al = context.ds.byte(context.bx+1);  	context.ah = 0;  	context._sub(context.ax, 12); -	context.data.word(486) = context.ax; +	context.ds.word(486) = context.ax;  	bresenhams(context); -	context._cmp(context.data.byte(493), 0); +	context._cmp(context.ds.byte(493), 0);  	if (context.flags.z()) goto normalline; -	context.al = context.data.byte(494); +	context.al = context.ds.byte(494);  	context._sub(context.al, 1); -	context.data.byte(492) = context.al; -	context.data.byte(493) = 1; +	context.ds.byte(492) = context.al; +	context.ds.byte(493) = 1;  	return;  normalline: -	context.data.byte(492) = 0; +	context.ds.byte(492) = 0;  	return;  }  static void checkdest(Context & context) {  	context.push(context.bx);  	context._add(context.bx, 12*8); -	context.ah = context.data.byte(475); +	context.ah = context.ds.byte(475);  	context.cl = 4;  	context._shl(context.ah, context.cl); -	context.al = context.data.byte(478); +	context.al = context.ds.byte(478);  	context.cl = 24; -	context.ch = context.data.byte(478); +	context.ch = context.ds.byte(478);  checkdestloop: -	context.dh = context.data.byte(context.bx); +	context.dh = context.ds.byte(context.bx);  	context._and(context.dh, 0xf0); -	context.dl = context.data.byte(context.bx); +	context.dl = context.ds.byte(context.bx);  	context._and(context.dl, 0xf);  	context._cmp(context.ax, context.dx);  	if (!context.flags.z()) goto nextcheck; -	context.al = context.data.byte(context.bx+1); +	context.al = context.ds.byte(context.bx+1);  	context._and(context.al, 15); -	context.data.byte(478) = context.al; +	context.ds.byte(478) = context.al;  	context.bx = context.pop();  	return;  nextcheck: -	context.dl = context.data.byte(context.bx); +	context.dl = context.ds.byte(context.bx);  	context._and(context.dl, 0xf0);  	context._shr(context.dl, 1);  	context._shr(context.dl, 1);  	context._shr(context.dl, 1);  	context._shr(context.dl, 1); -	context.dh = context.data.byte(context.bx); +	context.dh = context.ds.byte(context.bx);  	context._and(context.dh, 0xf);  	context._shl(context.dh, 1);  	context._shl(context.dh, 1); @@ -19050,13 +19050,13 @@ nextcheck:  	context._shl(context.dh, 1);  	context._cmp(context.ax, context.dx);  	if (!context.flags.z()) goto nextcheck2; -	context.ch = context.data.byte(context.bx+1); +	context.ch = context.ds.byte(context.bx+1);  	context._and(context.ch, 15);  nextcheck2:  	context._add(context.bx, 2);  	context._sub(context.cl, 1);  	if (!context.flags.z()) goto checkdestloop; -	context.data.byte(478) = context.ch; +	context.ds.byte(478) = context.ch;  	context.bx = context.pop();  	return;  } @@ -19067,60 +19067,60 @@ static void bresenhams(Context & context) {  	context.es = context.dx;  	context.di = 8344;  	context.si = 1; -	context.data.byte(493) = 0; -	context.cx = context.data.word(484); -	context._sub(context.cx, context.data.word(480)); +	context.ds.byte(493) = 0; +	context.cx = context.ds.word(484); +	context._sub(context.cx, context.ds.word(480));  	if (context.flags.z()) goto vertline;  	if (!context.flags.s()) goto line1;  	context._neg(context.cx); -	context.bx = context.data.word(484); -	context._xchg(context.bx, context.data.word(480)); -	context.data.word(484) = context.bx; -	context.bx = context.data.word(486); -	context._xchg(context.bx, context.data.word(482)); -	context.data.word(486) = context.bx; -	context.data.byte(493) = 1; +	context.bx = context.ds.word(484); +	context._xchg(context.bx, context.ds.word(480)); +	context.ds.word(484) = context.bx; +	context.bx = context.ds.word(486); +	context._xchg(context.bx, context.ds.word(482)); +	context.ds.word(486) = context.bx; +	context.ds.byte(493) = 1;  line1: -	context.bx = context.data.word(486); -	context._sub(context.bx, context.data.word(482)); +	context.bx = context.ds.word(486); +	context._sub(context.bx, context.ds.word(482));  	if (context.flags.z()) goto horizline;  	if (!context.flags.s()) goto line3;  	context._neg(context.bx);  	context._neg(context.si);  line3:  	context.push(context.si); -	context.data.byte(491) = 0; +	context.ds.byte(491) = 0;  	context._cmp(context.bx, context.cx);  	if (context.flags.le()) goto line4; -	context.data.byte(491) = 1; +	context.ds.byte(491) = 1;  	context._xchg(context.bx, context.cx);  line4:  	context._shl(context.bx, 1); -	context.data.word(488) = context.bx; +	context.ds.word(488) = context.bx;  	context._sub(context.bx, context.cx);  	context.si = context.bx;  	context._sub(context.bx, context.cx); -	context.data.word(490) = context.bx; -	context.ax = context.data.word(480); -	context.bx = context.data.word(482); +	context.ds.word(490) = context.bx; +	context.ax = context.ds.word(480); +	context.bx = context.ds.word(482);  	context.ah = context.bl;  	context._add(context.cx, 1);  	context.bx = context.pop(); -	context._cmp(context.data.byte(491), 1); +	context._cmp(context.ds.byte(491), 1);  	if (context.flags.z()) goto hislope;  	goto loslope;  vertline: -	context.ax = context.data.word(482); -	context.bx = context.data.word(486); +	context.ax = context.ds.word(482); +	context.bx = context.ds.word(486);  	context.cx = context.bx;  	context._sub(context.cx, context.ax);  	if (!context.flags.ge()) goto line31;  	context._neg(context.cx);  	context.ax = context.bx; -	context.data.byte(493) = 1; +	context.ds.byte(493) = 1;  line31:  	context._add(context.cx, 1); -	context.bx = context.data.word(480); +	context.bx = context.ds.word(480);  	context._xchg(context.ax, context.bx);  	context.ah = context.bl;  	context.bx = context.si; @@ -19130,8 +19130,8 @@ line32:  	if (--context.cx) goto line32;  	goto lineexit;  horizline: -	context.ax = context.data.word(480); -	context.bx = context.data.word(482); +	context.ax = context.ds.word(480); +	context.bx = context.ds.word(482);  	context.ah = context.bl;  	context._add(context.cx, 1);  horizloop: @@ -19145,11 +19145,11 @@ loloop:  	context._add(context.al, 1);  	context._or(context.si, context.si);  	if (!context.flags.s()) goto line12; -	context._add(context.si, context.data.word(488)); +	context._add(context.si, context.ds.word(488));  	if (--context.cx) goto loloop;  	goto lineexit;  line12: -	context._add(context.si, context.data.word(490)); +	context._add(context.si, context.ds.word(490));  	context._add(context.ah, context.bl);  	if (--context.cx) goto loloop;  	goto lineexit; @@ -19159,33 +19159,33 @@ hiloop:  	context._add(context.ah, context.bl);  	context._or(context.si, context.si);  	if (!context.flags.s()) goto line23; -	context._add(context.si, context.data.word(488)); +	context._add(context.si, context.ds.word(488));  	if (--context.cx) goto hiloop;  	goto lineexit;  line23: -	context._add(context.si, context.data.word(490)); +	context._add(context.si, context.ds.word(490));  	context._add(context.al, 1);  	if (--context.cx) goto hiloop;  lineexit:  	context._sub(context.di, 8344);  	context.ax = context.di;  	context._shr(context.ax, 1); -	context.data.byte(494) = context.al; +	context.ds.byte(494) = context.al;  	return;  }  static void workoutframes(Context & context) { -	context.bx = context.data.word(480); +	context.bx = context.ds.word(480);  	context._add(context.bx, 32); -	context.ax = context.data.word(484); +	context.ax = context.ds.word(484);  	context._add(context.ax, 32);  	context._sub(context.bx, context.ax);  	if (!context.flags.c()) goto notneg1;  	context._neg(context.bx);  notneg1: -	context.cx = context.data.word(482); +	context.cx = context.ds.word(482);  	context._add(context.cx, 32); -	context.ax = context.data.word(486); +	context.ax = context.ds.word(486);  	context._add(context.ax, 32);  	context._sub(context.cx, context.ax);  	if (!context.flags.c()) goto notneg2; @@ -19209,16 +19209,16 @@ tendstohoriz:  	context.dl = 1;  	goto gotquad;  gotquad: -	context.bx = context.data.word(480); +	context.bx = context.ds.word(480);  	context._add(context.bx, 32); -	context.ax = context.data.word(484); +	context.ax = context.ds.word(484);  	context._add(context.ax, 32);  	context._sub(context.bx, context.ax);  	if (context.flags.c()) goto isinright;  isinleft: -	context.cx = context.data.word(482); +	context.cx = context.ds.word(482);  	context._add(context.cx, 32); -	context.ax = context.data.word(486); +	context.ax = context.ds.word(486);  	context._add(context.ax, 32);  	context._sub(context.cx, context.ax);  	if (!context.flags.c()) goto topleft; @@ -19232,9 +19232,9 @@ topleft:  	context._add(context.dl, 6);  	goto success;  isinright: -	context.cx = context.data.word(482); +	context.cx = context.ds.word(482);  	context._add(context.cx, 32); -	context.ax = context.data.word(486); +	context.ax = context.ds.word(486);  	context._add(context.ax, 32);  	context._sub(context.cx, context.ax);  	if (!context.flags.c()) goto botright; @@ -19247,17 +19247,17 @@ botright:  noswap2:  success:  	context._and(context.dl, 7); -	context.data.byte(135) = context.dl; -	context.data.byte(136) = 0; +	context.ds.byte(135) = context.dl; +	context.ds.byte(136) = 0;  	return;  }  static void getroomspaths(Context & context) { -	context.al = context.data.byte(185); +	context.al = context.ds.byte(185);  	context.ah = 0;  	context.cx = 144;  	context._mul(context.cx); -	context.es = context.data.word(450); +	context.es = context.ds.word(450);  	context.bx = 0;  	context._add(context.bx, context.ax);  	return; @@ -19302,10 +19302,10 @@ static void findobname(Context & context) {  	context.bx = 64*2;  	context._mul(context.bx);  	context.si = context.ax; -	context.ds = context.data.word(448); +	context.ds = context.ds.word(448);  	context._add(context.si, 0+24);  	context.cx = 0+24+(1026*2); -	context.ax = context.data.word(context.si); +	context.ax = context.ds.word(context.si);  	context._add(context.ax, context.cx);  	context.si = context.ax;  	context.ax = context.pop(); @@ -19313,41 +19313,41 @@ static void findobname(Context & context) {  notpersonname:  	context._cmp(context.ah, 4);  	if (!context.flags.z()) goto notextraname; -	context.ds = context.data.word(398); +	context.ds = context.ds.word(398);  	context._add(context.bx, 0+2080+30000+(16*114)); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, 0+2080+30000+(16*114)+((114+2)*2));  	context.si = context.ax;  	return;  notextraname:  	context._cmp(context.ah, 2);  	if (!context.flags.z()) goto notfreename; -	context.ds = context.data.word(438); +	context.ds = context.ds.word(438);  	context._add(context.bx, 0); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, 0+(82*2));  	context.si = context.ax;  	return;  notfreename:  	context._cmp(context.ah, 1);  	if (!context.flags.z()) goto notsetname; -	context.ds = context.data.word(440); +	context.ds = context.ds.word(440);  	context._add(context.bx, 0); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, 0+(130*2));  	context.si = context.ax;  	return;  notsetname: -	context.ds = context.data.word(442); +	context.ds = context.ds.word(442);  	context._add(context.bx, 0); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, 0+(98*2));  	context.si = context.ax;  	return;  }  static void showicon(Context & context) { -	context._cmp(context.data.byte(184), 50); +	context._cmp(context.ds.byte(184), 50);  	if (!context.flags.c()) goto isdream1;  	showpanel(context);  	showman(context); @@ -19356,37 +19356,37 @@ static void showicon(Context & context) {  	zoomicon(context);  	return;  isdream1: -	context.ds = context.data.word(464); +	context.ds = context.ds.word(464);  	context.di = 72;  	context.bx = 2;  	context.al = 45;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(464); +	context.ds = context.ds.word(464);  	context.di = 72+47;  	context.bx = 2;  	context.al = 46;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(464); +	context.ds = context.ds.word(464);  	context.di = 69-10;  	context.bx = 21;  	context.al = 49;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(464); +	context.ds = context.ds.word(464);  	context.di = 160+88;  	context.bx = 2;  	context.al = 45;  	context.ah = 4;  	showframe(context); -	context.ds = context.data.word(464); +	context.ds = context.ds.word(464);  	context.di = 160+43;  	context.bx = 2;  	context.al = 46;  	context.ah = 4;  	showframe(context); -	context.ds = context.data.word(464); +	context.ds = context.ds.word(464);  	context.di = 160+101;  	context.bx = 21;  	context.al = 49; @@ -19397,25 +19397,25 @@ isdream1:  }  static void middlepanel(Context & context) { -	context.ds = context.data.word(464); +	context.ds = context.ds.word(464);  	context.di = 72+47+20;  	context.bx = 0;  	context.al = 48;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(464); +	context.ds = context.ds.word(464);  	context.di = 72+19;  	context.bx = 21;  	context.al = 47;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(464); +	context.ds = context.ds.word(464);  	context.di = 160+23;  	context.bx = 0;  	context.al = 48;  	context.ah = 4;  	showframe(context); -	context.ds = context.data.word(464); +	context.ds = context.ds.word(464);  	context.di = 160+71;  	context.bx = 21;  	context.al = 47; @@ -19425,21 +19425,21 @@ static void middlepanel(Context & context) {  }  static void showman(Context & context) { -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.di = 0;  	context.bx = 0;  	context.al = 0;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.di = 0;  	context.bx = 114;  	context.al = 1;  	context.ah = 0;  	showframe(context); -	context._cmp(context.data.byte(4), 0); +	context._cmp(context.ds.byte(4), 0);  	if (context.flags.z()) goto notverycool; -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.di = 28;  	context.bx = 25;  	context.al = 2; @@ -19450,13 +19450,13 @@ notverycool:  }  static void showpanel(Context & context) { -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.di = 72;  	context.bx = 0;  	context.al = 19;  	context.ah = 0;  	showframe(context); -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.di = 192;  	context.bx = 0;  	context.al = 19; @@ -19471,48 +19471,48 @@ static void roomname(Context & context) {  	context.al = 53;  	context.dl = 240;  	printmessage(context); -	context.bl = context.data.byte(185); +	context.bl = context.ds.byte(185);  	context._cmp(context.bl, 32);  	if (context.flags.c()) goto notover32;  	context._sub(context.bl, 32);  notover32:  	context.bh = 0;  	context._add(context.bx, context.bx); -	context.es = context.data.word(436); +	context.es = context.ds.word(436);  	context._add(context.bx, 0); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._add(context.ax, 0+(38*2));  	context.si = context.ax; -	context.data.word(77) = 7; +	context.ds.word(77) = 7;  	context.di = 88;  	context.bx = 25;  	context.dl = 120; -	context._cmp(context.data.byte(3), 1); +	context._cmp(context.ds.byte(3), 1);  	if (context.flags.z()) goto gotpl;  	context.dl = 160;  gotpl:  	context.al = 0;  	context.ah = 0;  	printdirect(context); -	context.data.word(77) = 10; +	context.ds.word(77) = 10;  	usecharset1(context);  	return;  }  static void usecharset1(Context & context) { -	context.ax = context.data.word(404); -	context.data.word(268) = context.ax; +	context.ax = context.ds.word(404); +	context.ds.word(268) = context.ax;  	return;  }  static void usetempcharset(Context & context) { -	context.ax = context.data.word(406); -	context.data.word(268) = context.ax; +	context.ax = context.ds.word(406); +	context.ds.word(268) = context.ax;  	return;  }  static void showexit(Context & context) { -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.di = 274;  	context.bx = 154;  	context.al = 11; @@ -19523,12 +19523,12 @@ static void showexit(Context & context) {  static void panelicons1(Context & context) {  	context.di = 0; -	context._cmp(context.data.byte(3), 1); +	context._cmp(context.ds.byte(3), 1);  	if (context.flags.z()) goto watchison;  	context.di = 48;  watchison:  	context.push(context.di); -	context.ds = context.data.word(410); +	context.ds = context.ds.word(410);  	context._add(context.di, 204);  	context.bx = 4;  	context.al = 2; @@ -19536,9 +19536,9 @@ watchison:  	showframe(context);  	context.di = context.pop();  	context.push(context.di); -	context._cmp(context.data.byte(8), 1); +	context._cmp(context.ds.byte(8), 1);  	if (context.flags.z()) goto zoomisoff; -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context._add(context.di, 228);  	context.bx = 8;  	context.al = 5; @@ -19551,9 +19551,9 @@ zoomisoff:  }  static void showwatch(Context & context) { -	context._cmp(context.data.byte(3), 0); +	context._cmp(context.ds.byte(3), 0);  	if (context.flags.z()) goto nowristwatch; -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.di = 250;  	context.bx = 1;  	context.al = 6; @@ -19565,9 +19565,9 @@ nowristwatch:  }  static void zoomicon(Context & context) { -	context._cmp(context.data.byte(8), 0); +	context._cmp(context.ds.byte(8), 0);  	if (context.flags.z()) goto nozoom1; -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.di = 8;  	context.bx = 132-1;  	context.al = 8; @@ -19578,20 +19578,20 @@ nozoom1:  }  static void showblink(Context & context) { -	context._cmp(context.data.byte(131), 1); +	context._cmp(context.ds.byte(131), 1);  	if (context.flags.z()) goto finblink1; -	context._add(context.data.byte(472), 1); -	context._cmp(context.data.byte(4), 0); +	context._add(context.ds.byte(472), 1); +	context._cmp(context.ds.byte(4), 0);  	if (!context.flags.z()) goto finblink1; -	context._cmp(context.data.byte(184), 50); +	context._cmp(context.ds.byte(184), 50);  	if (!context.flags.c()) goto eyesshut; -	context.al = context.data.byte(472); +	context.al = context.ds.byte(472);  	context._cmp(context.al, 3);  	if (!context.flags.z()) goto finblink1; -	context.data.byte(472) = 0; -	context.al = context.data.byte(471); +	context.ds.byte(472) = 0; +	context.al = context.ds.byte(471);  	context._add(context.al, 1); -	context.data.byte(471) = context.al; +	context.ds.byte(471) = context.al;  	context._cmp(context.al, 6);  	if (context.flags.c()) goto nomorethan6;  	context.al = 6; @@ -19599,8 +19599,8 @@ nomorethan6:  	context.ah = 0;  	context.bx = 5691;  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.bx); -	context.ds = context.data.word(408); +	context.al = context.ds.byte(context.bx); +	context.ds = context.ds.word(408);  	context.di = 44;  	context.bx = 32;  	context.ah = 0; @@ -19612,11 +19612,11 @@ eyesshut:  }  static void dumpblink(Context & context) { -	context._cmp(context.data.byte(4), 0); +	context._cmp(context.ds.byte(4), 0);  	if (!context.flags.z()) goto nodumpeye; -	context._cmp(context.data.byte(472), 0); +	context._cmp(context.ds.byte(472), 0);  	if (!context.flags.z()) goto nodumpeye; -	context.al = context.data.byte(471); +	context.al = context.ds.byte(471);  	context._cmp(context.al, 6);  	if (!context.flags.c()) goto nodumpeye;  	context.push(context.ds); @@ -19641,9 +19641,9 @@ static void worktoscreenm(Context & context) {  }  static void blank(Context & context) { -	context._cmp(context.data.byte(100), 199); +	context._cmp(context.ds.byte(100), 199);  	if (context.flags.z()) goto alreadyblnk; -	context.data.byte(100) = 199; +	context.ds.byte(100) = 199;  	context.al = 0;  	commandonly(context);  alreadyblnk: @@ -19662,14 +19662,14 @@ static void hangonp(Context & context) {  	context._add(context.cx, context.cx);  	context.ax = context.pop();  	context._add(context.cx, context.ax); -	context.data.word(138) = 0; -	context.al = context.data.byte(231); -	context.ah = context.data.byte(106); +	context.ds.word(138) = 0; +	context.al = context.ds.byte(231); +	context.ah = context.ds.byte(106);  	context.push(context.ax); -	context.data.byte(234) = 3; -	context.data.byte(106) = 0; +	context.ds.byte(234) = 3; +	context.ds.byte(106) = 0;  	context.push(context.cx); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	readmouse(context);  	animpointer(context);  	showpointer(context); @@ -19685,19 +19685,19 @@ hangloop:  	vsync(context);  	dumppointer(context);  	context.cx = context.pop(); -	context.ax = context.data.word(202); +	context.ax = context.ds.word(202);  	context._cmp(context.ax, 0);  	if (context.flags.z()) goto notpressed; -	context._cmp(context.ax, context.data.word(212)); +	context._cmp(context.ax, context.ds.word(212));  	if (!context.flags.z()) goto getoutofit;  notpressed:  	if (--context.cx) goto hangloop;  getoutofit:  	delpointer(context);  	context.ax = context.pop(); -	context.data.byte(231) = context.al; -	context.data.byte(106) = context.ah; -	context.data.byte(234) = 0; +	context.ds.byte(231) = context.al; +	context.ds.byte(106) = context.ah; +	context.ds.byte(234) = 0;  	return;  } @@ -19729,7 +19729,7 @@ monloop1:  static void getunderzoom(Context & context) {  	context.di = 8+5;  	context.bx = 132+4; -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5);  	context.cl = 46;  	context.ch = 40; @@ -19738,7 +19738,7 @@ static void getunderzoom(Context & context) {  }  static void dumpzoom(Context & context) { -	context._cmp(context.data.byte(8), 1); +	context._cmp(context.ds.byte(8), 1);  	if (!context.flags.z()) goto notzoomon;  	context.di = 8+5;  	context.bx = 132+4; @@ -19752,7 +19752,7 @@ notzoomon:  static void putunderzoom(Context & context) {  	context.di = 8+5;  	context.bx = 132+4; -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5);  	context.cl = 46;  	context.ch = 40; @@ -19761,12 +19761,12 @@ static void putunderzoom(Context & context) {  }  static void crosshair(Context & context) { -	context._cmp(context.data.byte(100), 3); +	context._cmp(context.ds.byte(100), 3);  	if (context.flags.z()) goto nocross; -	context._cmp(context.data.byte(100), 10); +	context._cmp(context.ds.byte(100), 10);  	if (!context.flags.c()) goto nocross; -	context.es = context.data.word(400); -	context.ds = context.data.word(408); +	context.es = context.ds.word(400); +	context.ds = context.ds.word(408);  	context.di = 8+24;  	context.bx = 132+19;  	context.al = 9; @@ -19774,8 +19774,8 @@ static void crosshair(Context & context) {  	showframe(context);  	return;  nocross: -	context.es = context.data.word(400); -	context.ds = context.data.word(408); +	context.es = context.ds.word(400); +	context.ds = context.ds.word(408);  	context.di = 8+24;  	context.bx = 132+19;  	context.al = 29; @@ -19786,23 +19786,23 @@ nocross:  static void showpointer(Context & context) {  	showblink(context); -	context.di = context.data.word(198); -	context.data.word(220) = context.di; -	context.bx = context.data.word(200); -	context.data.word(222) = context.bx; -	context._cmp(context.data.byte(106), 1); +	context.di = context.ds.word(198); +	context.ds.word(220) = context.di; +	context.bx = context.ds.word(200); +	context.ds.word(222) = context.bx; +	context._cmp(context.ds.byte(106), 1);  	if (context.flags.z()) goto itsanobject;  	context.push(context.bx);  	context.push(context.di); -	context.ds = context.data.word(408); -	context.al = context.data.byte(231); +	context.ds = context.ds.word(408); +	context.al = context.ds.byte(231);  	context._add(context.al, 20);  	context.ah = 0;  	context._add(context.ax, context.ax);  	context.si = context.ax;  	context._add(context.ax, context.ax);  	context._add(context.si, context.ax); -	context.cx = context.data.word(context.si); +	context.cx = context.ds.word(context.si);  	context._cmp(context.cl, 12);  	if (!context.flags.c()) goto notsmallx;  	context.cl = 12; @@ -19811,10 +19811,10 @@ notsmallx:  	if (!context.flags.c()) goto notsmally;  	context.ch = 12;  notsmally: -	context.data.byte(227) = context.cl; -	context.data.byte(228) = context.ch; +	context.ds.byte(227) = context.cl; +	context.ds.byte(228) = context.ch;  	context.push(context.ds); -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.si = 0+(228*13)+32+60;  	multiget(context);  	context.ds = context.pop(); @@ -19822,7 +19822,7 @@ notsmally:  	context.bx = context.pop();  	context.push(context.di);  	context.push(context.bx); -	context.al = context.data.byte(231); +	context.al = context.ds.byte(231);  	context._add(context.al, 20);  	context.ah = 0;  	showframe(context); @@ -19830,11 +19830,11 @@ notsmally:  	context.di = context.pop();  	return;  itsanobject: -	context.al = context.data.byte(89); -	context.ds = context.data.word(398); -	context._cmp(context.data.byte(102), 4); +	context.al = context.ds.byte(89); +	context.ds = context.ds.word(398); +	context._cmp(context.ds.byte(102), 4);  	if (context.flags.z()) goto itsfrominv; -	context.ds = context.data.word(446); +	context.ds = context.ds.word(446);  itsfrominv:  	context.cl = context.al;  	context._add(context.al, context.al); @@ -19847,7 +19847,7 @@ itsfrominv:  	context._add(context.ax, context.ax);  	context._add(context.si, context.ax);  	context.ax = 2080; -	context.cx = context.data.word(context.si); +	context.cx = context.ds.word(context.si);  	context._cmp(context.cl, 12);  	if (!context.flags.c()) goto notsmallx2;  	context.cl = 12; @@ -19856,8 +19856,8 @@ notsmallx2:  	if (!context.flags.c()) goto notsmally2;  	context.ch = 12;  notsmally2: -	context.data.byte(227) = context.cl; -	context.data.byte(228) = context.ch; +	context.ds.byte(227) = context.cl; +	context.ds.byte(228) = context.ch;  	context.ax = context.pop();  	context.push(context.di);  	context.push(context.bx); @@ -19868,13 +19868,13 @@ notsmally2:  	context.al = context.cl;  	context.ah = 0;  	context._shr(context.ax, 1); -	context._sub(context.data.word(220), context.ax); +	context._sub(context.ds.word(220), context.ax);  	context._sub(context.di, context.ax);  	context.al = context.ch;  	context._shr(context.ax, 1); -	context._sub(context.data.word(222), context.ax); +	context._sub(context.ds.word(222), context.ax);  	context._sub(context.bx, context.ax); -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.si = 0+(228*13)+32+60;  	multiget(context);  	context.ds = context.pop(); @@ -19885,7 +19885,7 @@ notsmally2:  	showframe(context);  	context.bx = context.pop();  	context.di = context.pop(); -	context.ds = context.data.word(408); +	context.ds = context.ds.word(408);  	context.al = 3;  	context.ah = 128;  	showframe(context); @@ -19893,20 +19893,20 @@ notsmally2:  }  static void delpointer(Context & context) { -	context.ax = context.data.word(220); +	context.ax = context.ds.word(220);  	context._cmp(context.ax, 0x0ffff);  	if (context.flags.z()) goto nevershown; -	context.data.word(224) = context.ax; -	context.ax = context.data.word(222); -	context.data.word(226) = context.ax; -	context.cl = context.data.byte(227); -	context.data.byte(229) = context.cl; -	context.ch = context.data.byte(228); -	context.data.byte(230) = context.ch; -	context.ds = context.data.word(412); +	context.ds.word(224) = context.ax; +	context.ax = context.ds.word(222); +	context.ds.word(226) = context.ax; +	context.cl = context.ds.byte(227); +	context.ds.byte(229) = context.cl; +	context.ch = context.ds.byte(228); +	context.ds.byte(230) = context.ch; +	context.ds = context.ds.word(412);  	context.si = 0+(228*13)+32+60; -	context.di = context.data.word(224); -	context.bx = context.data.word(226); +	context.di = context.ds.word(224); +	context.bx = context.ds.word(226);  	multiput(context);  nevershown:  	return; @@ -19914,30 +19914,30 @@ nevershown:  static void dumppointer(Context & context) {  	dumpblink(context); -	context.cl = context.data.byte(229); -	context.ch = context.data.byte(230); -	context.di = context.data.word(224); -	context.bx = context.data.word(226); +	context.cl = context.ds.byte(229); +	context.ch = context.ds.byte(230); +	context.di = context.ds.word(224); +	context.bx = context.ds.word(226);  	multidump(context); -	context.bx = context.data.word(222); -	context.di = context.data.word(220); -	context._cmp(context.di, context.data.word(224)); +	context.bx = context.ds.word(222); +	context.di = context.ds.word(220); +	context._cmp(context.di, context.ds.word(224));  	if (!context.flags.z()) goto difffound; -	context._cmp(context.bx, context.data.word(226)); +	context._cmp(context.bx, context.ds.word(226));  	if (context.flags.z()) goto notboth;  difffound: -	context.cl = context.data.byte(227); -	context.ch = context.data.byte(228); +	context.cl = context.ds.byte(227); +	context.ch = context.ds.byte(228);  	multidump(context);  notboth:  	return;  }  static void undertextline(Context & context) { -	context.di = context.data.word(79); -	context.bx = context.data.word(81); +	context.di = context.ds.word(79); +	context.bx = context.ds.word(81);  	context._sub(context.bx, 3); -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.si = 0;  	context.cl = 228;  	context.ch = 13; @@ -19946,10 +19946,10 @@ static void undertextline(Context & context) {  }  static void deltextline(Context & context) { -	context.di = context.data.word(79); -	context.bx = context.data.word(81); +	context.di = context.ds.word(79); +	context.bx = context.ds.word(81);  	context._sub(context.bx, 3); -	context.ds = context.data.word(412); +	context.ds = context.ds.word(412);  	context.si = 0;  	context.cl = 228;  	context.ch = 13; @@ -19958,11 +19958,11 @@ static void deltextline(Context & context) {  }  static void dumptextline(Context & context) { -	context._cmp(context.data.byte(109), 1); +	context._cmp(context.ds.byte(109), 1);  	if (!context.flags.z()) goto nodumptextline; -	context.data.byte(109) = 0; -	context.di = context.data.word(79); -	context.bx = context.data.word(81); +	context.ds.byte(109) = 0; +	context.di = context.ds.word(79); +	context.bx = context.ds.word(81);  	context._sub(context.bx, 3);  	context.cl = 228;  	context.ch = 13; @@ -19972,19 +19972,19 @@ nodumptextline:  }  static void animpointer(Context & context) { -	context._cmp(context.data.byte(234), 2); +	context._cmp(context.ds.byte(234), 2);  	if (context.flags.z()) goto combathand; -	context._cmp(context.data.byte(234), 3); +	context._cmp(context.ds.byte(234), 3);  	if (context.flags.z()) goto mousehand; -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (context.flags.z()) goto notwatchpoint; -	context.data.byte(231) = 11; +	context.ds.byte(231) = 11;  	return;  notwatchpoint: -	context.data.byte(231) = 0; -	context._cmp(context.data.byte(237), 0); +	context.ds.byte(231) = 0; +	context._cmp(context.ds.byte(237), 0);  	if (context.flags.z()) goto gothand; -	context._cmp(context.data.byte(476), 0); +	context._cmp(context.ds.byte(476), 0);  	if (context.flags.z()) goto gothand;  arrow:  	getflagunderp(context); @@ -19992,133 +19992,133 @@ arrow:  	if (context.flags.c()) goto gothand;  	context._cmp(context.cl, 128);  	if (!context.flags.c()) goto gothand; -	context.data.byte(231) = 3; +	context.ds.byte(231) = 3;  	context._test(context.cl, 4);  	if (!context.flags.z()) goto gothand; -	context.data.byte(231) = 4; +	context.ds.byte(231) = 4;  	context._test(context.cl, 16);  	if (!context.flags.z()) goto gothand; -	context.data.byte(231) = 5; +	context.ds.byte(231) = 5;  	context._test(context.cl, 2);  	if (!context.flags.z()) goto gothand; -	context.data.byte(231) = 6; +	context.ds.byte(231) = 6;  	context._test(context.cl, 8);  	if (!context.flags.z()) goto gothand; -	context.data.byte(231) = 8; +	context.ds.byte(231) = 8;  gothand:  	return;  mousehand: -	context._cmp(context.data.byte(235), 0); +	context._cmp(context.ds.byte(235), 0);  	if (context.flags.z()) goto rightspeed3; -	context._sub(context.data.byte(235), 1); +	context._sub(context.ds.byte(235), 1);  	goto finflashmouse;  rightspeed3: -	context.data.byte(235) = 5; -	context._add(context.data.byte(236), 1); -	context._cmp(context.data.byte(236), 16); +	context.ds.byte(235) = 5; +	context._add(context.ds.byte(236), 1); +	context._cmp(context.ds.byte(236), 16);  	if (!context.flags.z()) goto finflashmouse; -	context.data.byte(236) = 0; +	context.ds.byte(236) = 0;  finflashmouse: -	context.al = context.data.byte(236); +	context.al = context.ds.byte(236);  	context.ah = 0;  	context.bx = 5698;  	context._add(context.bx, context.ax); -	context.al = context.data.byte(context.bx); -	context.data.byte(231) = context.al; +	context.al = context.ds.byte(context.bx); +	context.ds.byte(231) = context.al;  	return;  combathand: -	context.data.byte(231) = 0; -	context._cmp(context.data.byte(184), 14); +	context.ds.byte(231) = 0; +	context._cmp(context.ds.byte(184), 14);  	if (!context.flags.z()) goto notarrow; -	context._cmp(context.data.byte(100), 211); +	context._cmp(context.ds.byte(100), 211);  	if (!context.flags.z()) goto notarrow; -	context.data.byte(231) = 5; +	context.ds.byte(231) = 5;  notarrow:  	return;  }  static void readmouse(Context & context) { -	context.ax = context.data.word(202); -	context.data.word(212) = context.ax; -	context.ax = context.data.word(198); -	context.data.word(214) = context.ax; -	context.ax = context.data.word(200); -	context.data.word(216) = context.ax; +	context.ax = context.ds.word(202); +	context.ds.word(212) = context.ax; +	context.ax = context.ds.word(198); +	context.ds.word(214) = context.ax; +	context.ax = context.ds.word(200); +	context.ds.word(216) = context.ax;  	mousecall(context); -	context.data.word(198) = context.cx; -	context.data.word(200) = context.dx; -	context.data.word(202) = context.bx; +	context.ds.word(198) = context.cx; +	context.ds.word(200) = context.dx; +	context.ds.word(202) = context.bx;  	return;  }  static void readmouse1(Context & context) { -	context.ax = context.data.word(198); -	context.data.word(214) = context.ax; -	context.ax = context.data.word(200); -	context.data.word(216) = context.ax; +	context.ax = context.ds.word(198); +	context.ds.word(214) = context.ax; +	context.ax = context.ds.word(200); +	context.ds.word(216) = context.ax;  	mousecall(context); -	context.data.word(198) = context.cx; -	context.data.word(200) = context.dx; -	context.data.word(204) = context.bx; +	context.ds.word(198) = context.cx; +	context.ds.word(200) = context.dx; +	context.ds.word(204) = context.bx;  	return;  }  static void readmouse2(Context & context) { -	context.ax = context.data.word(198); -	context.data.word(214) = context.ax; -	context.ax = context.data.word(200); -	context.data.word(216) = context.ax; +	context.ax = context.ds.word(198); +	context.ds.word(214) = context.ax; +	context.ax = context.ds.word(200); +	context.ds.word(216) = context.ax;  	mousecall(context); -	context.data.word(198) = context.cx; -	context.data.word(200) = context.dx; -	context.data.word(206) = context.bx; +	context.ds.word(198) = context.cx; +	context.ds.word(200) = context.dx; +	context.ds.word(206) = context.bx;  	return;  }  static void readmouse3(Context & context) { -	context.ax = context.data.word(198); -	context.data.word(214) = context.ax; -	context.ax = context.data.word(200); -	context.data.word(216) = context.ax; +	context.ax = context.ds.word(198); +	context.ds.word(214) = context.ax; +	context.ax = context.ds.word(200); +	context.ds.word(216) = context.ax;  	mousecall(context); -	context.data.word(198) = context.cx; -	context.data.word(200) = context.dx; -	context.data.word(208) = context.bx; +	context.ds.word(198) = context.cx; +	context.ds.word(200) = context.dx; +	context.ds.word(208) = context.bx;  	return;  }  static void readmouse4(Context & context) { -	context.ax = context.data.word(202); -	context.data.word(212) = context.ax; -	context.ax = context.data.word(198); -	context.data.word(214) = context.ax; -	context.ax = context.data.word(200); -	context.data.word(216) = context.ax; +	context.ax = context.ds.word(202); +	context.ds.word(212) = context.ax; +	context.ax = context.ds.word(198); +	context.ds.word(214) = context.ax; +	context.ax = context.ds.word(200); +	context.ds.word(216) = context.ax;  	mousecall(context); -	context.data.word(198) = context.cx; -	context.data.word(200) = context.dx; -	context.ax = context.data.word(204); -	context._or(context.ax, context.data.word(206)); -	context._or(context.ax, context.data.word(208)); +	context.ds.word(198) = context.cx; +	context.ds.word(200) = context.dx; +	context.ax = context.ds.word(204); +	context._or(context.ax, context.ds.word(206)); +	context._or(context.ax, context.ds.word(208));  	context._or(context.bx, context.ax); -	context.data.word(202) = context.bx; +	context.ds.word(202) = context.bx;  	return;  }  static void readkey(Context & context) { -	context.bx = context.data.word(396); -	context._cmp(context.bx, context.data.word(394)); +	context.bx = context.ds.word(396); +	context._cmp(context.bx, context.ds.word(394));  	if (context.flags.z()) goto nokey;  	context._add(context.bx, 1);  	context._and(context.bx, 15); -	context.data.word(396) = context.bx; +	context.ds.word(396) = context.bx;  	context.di = 5715;  	context._add(context.di, context.bx); -	context.al = context.data.byte(context.di); -	context.data.byte(142) = context.al; +	context.al = context.ds.byte(context.di); +	context.ds.byte(142) = context.al;  	return;  nokey: -	context.data.byte(142) = 0; +	context.ds.byte(142) = 0;  	return;  } @@ -20127,7 +20127,7 @@ static void convertkey(Context & context) {  	context.ah = 0;  	context.di = 5731;  	context._add(context.di, context.ax); -	context.al = context.data.byte(context.di); +	context.al = context.ds.byte(context.di);  	return;  } @@ -20174,41 +20174,41 @@ hangonloop:  static void loadtraveltext(Context & context) {  	context.dx = 2247;  	standardload(context); -	context.data.word(456) = context.ax; +	context.ds.word(456) = context.ax;  	return;  }  static void loadintotemp(Context & context) {  	context.ds = context.cs;  	standardload(context); -	context.data.word(458) = context.ax; +	context.ds.word(458) = context.ax;  	return;  }  static void loadintotemp2(Context & context) {  	context.ds = context.cs;  	standardload(context); -	context.data.word(460) = context.ax; +	context.ds.word(460) = context.ax;  	return;  }  static void loadintotemp3(Context & context) {  	context.ds = context.cs;  	standardload(context); -	context.data.word(462) = context.ax; +	context.ds.word(462) = context.ax;  	return;  }  static void loadtempcharset(Context & context) {  	standardload(context); -	context.data.word(406) = context.ax; +	context.ds.word(406) = context.ax;  	return;  }  static void standardload(Context & context) {  	openfile(context);  	readheader(context); -	context.bx = context.data.word(context.di); +	context.bx = context.ds.word(context.di);  	context.push(context.bx);  	context.cl = 4;  	context._shr(context.bx, context.cl); @@ -20225,21 +20225,21 @@ static void standardload(Context & context) {  static void loadtemptext(Context & context) {  	standardload(context); -	context.data.word(466) = context.ax; +	context.ds.word(466) = context.ax;  	return;  }  static void loadroom(Context & context) { -	context.data.byte(74) = 1; -	context.data.word(328) = 0; -	context.data.word(138) = 0; -	context.data.word(121) = 104; -	context.data.word(123) = 38; -	context.data.word(79) = 13; -	context.data.word(81) = 182; -	context.data.byte(82) = 240; -	context.al = context.data.byte(188); -	context.data.byte(9) = context.al; +	context.ds.byte(74) = 1; +	context.ds.word(328) = 0; +	context.ds.word(138) = 0; +	context.ds.word(121) = 104; +	context.ds.word(123) = 38; +	context.ds.word(79) = 13; +	context.ds.word(81) = 182; +	context.ds.byte(82) = 240; +	context.al = context.ds.byte(188); +	context.ds.byte(9) = context.al;  	getroomdata(context);  	startloading(context);  	loadroomssample(context); @@ -20250,18 +20250,18 @@ static void loadroom(Context & context) {  }  static void loadroomssample(Context & context) { -	context.al = context.data.byte(531); +	context.al = context.ds.byte(531);  	context._cmp(context.al, 255);  	if (context.flags.z()) goto loadedalready; -	context._cmp(context.al, context.data.byte(530)); +	context._cmp(context.al, context.ds.byte(530));  	if (context.flags.z()) goto loadedalready; -	context.data.byte(530) = context.al; -	context.al = context.data.byte(530); +	context.ds.byte(530) = context.al; +	context.al = context.ds.byte(530);  	context.cl = '0';  	twodigitnum(context);  	context.di = 1909;  	context._xchg(context.al, context.ah); -	context.data.word(context.di+10) = context.ax; +	context.ds.word(context.di+10) = context.ax;  	context.dx = context.di;  	loadsecondsample(context);  loadedalready: @@ -20269,50 +20269,50 @@ loadedalready:  }  static void getridofreels(Context & context) { -	context._cmp(context.data.byte(74), 0); +	context._cmp(context.ds.byte(74), 0);  	if (context.flags.z()) goto dontgetrid; -	context.es = context.data.word(430); +	context.es = context.ds.word(430);  	deallocatemem(context); -	context.es = context.data.word(432); +	context.es = context.ds.word(432);  	deallocatemem(context); -	context.es = context.data.word(434); +	context.es = context.ds.word(434);  	deallocatemem(context);  dontgetrid:  	return;  }  static void getridofall(Context & context) { -	context.es = context.data.word(416); +	context.es = context.ds.word(416);  	deallocatemem(context); -	context.es = context.data.word(444); +	context.es = context.ds.word(444);  	deallocatemem(context); -	context.es = context.data.word(430); +	context.es = context.ds.word(430);  	deallocatemem(context); -	context.es = context.data.word(432); +	context.es = context.ds.word(432);  	deallocatemem(context); -	context.es = context.data.word(434); +	context.es = context.ds.word(434);  	deallocatemem(context); -	context.es = context.data.word(450); +	context.es = context.ds.word(450);  	deallocatemem(context); -	context.es = context.data.word(448); +	context.es = context.ds.word(448);  	deallocatemem(context); -	context.es = context.data.word(440); +	context.es = context.ds.word(440);  	deallocatemem(context); -	context.es = context.data.word(442); +	context.es = context.ds.word(442);  	deallocatemem(context); -	context.es = context.data.word(436); +	context.es = context.ds.word(436);  	deallocatemem(context); -	context.es = context.data.word(446); +	context.es = context.ds.word(446);  	deallocatemem(context); -	context.es = context.data.word(438); +	context.es = context.ds.word(438);  	deallocatemem(context);  	return;  }  static void restorereels(Context & context) { -	context._cmp(context.data.byte(74), 0); +	context._cmp(context.ds.byte(74), 0);  	if (context.flags.z()) goto dontrestore; -	context.al = context.data.byte(184); +	context.al = context.ds.byte(184);  	getroomdata(context);  	context.dx = context.bx;  	openfile(context); @@ -20322,17 +20322,17 @@ static void restorereels(Context & context) {  	dontloadseg(context);  	dontloadseg(context);  	allocateload(context); -	context.data.word(430) = context.ax; +	context.ds.word(430) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(432) = context.ax; +	context.ds.word(432) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(434) = context.ax; +	context.ds.word(434) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context); @@ -20342,17 +20342,17 @@ dontrestore:  }  static void restoreall(Context & context) { -	context.al = context.data.byte(9); +	context.al = context.ds.byte(9);  	getroomdata(context);  	context.dx = context.bx;  	openfile(context);  	readheader(context);  	allocateload(context);  	context.ds = context.ax; -	context.data.word(416) = context.ax; +	context.ds.word(416) = context.ax;  	context.dx = 0;  	loadseg(context); -	context.ds = context.data.word(400); +	context.ds = context.ds.word(400);  	context.dx = 0;  	context.cx = 132*66;  	context.al = 0; @@ -20360,59 +20360,59 @@ static void restoreall(Context & context) {  	loadseg(context);  	sortoutmap(context);  	allocateload(context); -	context.data.word(444) = context.ax; +	context.ds.word(444) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	dontloadseg(context);  	allocateload(context); -	context.data.word(430) = context.ax; +	context.ds.word(430) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(432) = context.ax; +	context.ds.word(432) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(434) = context.ax; +	context.ds.word(434) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(450) = context.ax; +	context.ds.word(450) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(448) = context.ax; +	context.ds.word(448) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(440) = context.ax; +	context.ds.word(440) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(442) = context.ax; +	context.ds.word(442) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(436) = context.ax; +	context.ds.word(436) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(446) = context.ax; +	context.ds.word(446) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	dontloadseg(context);  	allocateload(context); -	context.data.word(438) = context.ax; +	context.ds.word(438) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context); @@ -20424,9 +20424,9 @@ static void restoreall(Context & context) {  static void sortoutmap(Context & context) {  	context.push(context.es);  	context.push(context.di); -	context.ds = context.data.word(400); +	context.ds = context.ds.word(400);  	context.si = 0; -	context.es = context.data.word(418); +	context.es = context.ds.word(418);  	context.di = 0;  	context.cx = 60;  blimey: @@ -20444,43 +20444,43 @@ blimey:  }  static void startloading(Context & context) { -	context.data.byte(64) = 0; -	context.al = context.data.byte(context.bx+13); -	context.data.byte(531) = context.al; -	context.al = context.data.byte(context.bx+15); -	context.data.byte(148) = context.al; -	context.al = context.data.byte(context.bx+16); -	context.data.byte(149) = context.al; -	context.al = context.data.byte(context.bx+20); -	context.data.byte(35) = context.al; -	context.al = context.data.byte(context.bx+21); -	context.data.byte(475) = context.al; -	context.data.byte(478) = context.al; -	context.data.byte(477) = context.al; -	context.al = context.data.byte(context.bx+22); -	context.data.byte(133) = context.al; -	context.data.byte(135) = context.al; -	context.al = context.data.byte(context.bx+23); -	context.data.byte(39) = context.al; -	context.al = context.data.byte(context.bx+24); -	context.data.byte(36) = context.al; -	context.al = context.data.byte(context.bx+25); -	context.data.byte(38) = context.al; -	context.data.byte(65) = -1; -	context.al = context.data.byte(context.bx+27); +	context.ds.byte(64) = 0; +	context.al = context.ds.byte(context.bx+13); +	context.ds.byte(531) = context.al; +	context.al = context.ds.byte(context.bx+15); +	context.ds.byte(148) = context.al; +	context.al = context.ds.byte(context.bx+16); +	context.ds.byte(149) = context.al; +	context.al = context.ds.byte(context.bx+20); +	context.ds.byte(35) = context.al; +	context.al = context.ds.byte(context.bx+21); +	context.ds.byte(475) = context.al; +	context.ds.byte(478) = context.al; +	context.ds.byte(477) = context.al; +	context.al = context.ds.byte(context.bx+22); +	context.ds.byte(133) = context.al; +	context.ds.byte(135) = context.al; +	context.al = context.ds.byte(context.bx+23); +	context.ds.byte(39) = context.al; +	context.al = context.ds.byte(context.bx+24); +	context.ds.byte(36) = context.al; +	context.al = context.ds.byte(context.bx+25); +	context.ds.byte(38) = context.al; +	context.ds.byte(65) = -1; +	context.al = context.ds.byte(context.bx+27);  	context.push(context.ax); -	context.al = context.data.byte(context.bx+31); -	context.ah = context.data.byte(184); -	context.data.byte(184) = context.al; +	context.al = context.ds.byte(context.bx+31); +	context.ah = context.ds.byte(184); +	context.ds.byte(184) = context.al;  	context.dx = context.bx;  	openfile(context);  	readheader(context);  	allocateload(context);  	context.ds = context.ax; -	context.data.word(416) = context.ax; +	context.ds.word(416) = context.ax;  	context.dx = 0;  	loadseg(context); -	context.ds = context.data.word(400); +	context.ds = context.ds.word(400);  	context.dx = 0;  	context.cx = 132*66;  	context.al = 0; @@ -20488,69 +20488,69 @@ static void startloading(Context & context) {  	loadseg(context);  	sortoutmap(context);  	allocateload(context); -	context.data.word(444) = context.ax; +	context.ds.word(444) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context); -	context.ds = context.data.word(428); +	context.ds = context.ds.word(428);  	context.dx = 0;  	context.cx = 64*128;  	context.al = 255;  	fillspace(context);  	loadseg(context);  	allocateload(context); -	context.data.word(430) = context.ax; +	context.ds.word(430) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(432) = context.ax; +	context.ds.word(432) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(434) = context.ax; +	context.ds.word(434) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(450) = context.ax; +	context.ds.word(450) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(448) = context.ax; +	context.ds.word(448) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(440) = context.ax; +	context.ds.word(440) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(442) = context.ax; +	context.ds.word(442) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(436) = context.ax; +	context.ds.word(436) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context);  	allocateload(context); -	context.data.word(446) = context.ax; +	context.ds.word(446) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context); -	context.ds = context.data.word(426); +	context.ds = context.ds.word(426);  	context.dx = 0;  	context.cx = 16*80;  	context.al = 255;  	fillspace(context);  	loadseg(context);  	allocateload(context); -	context.data.word(438) = context.ax; +	context.ds.word(438) = context.ax;  	context.ds = context.ax;  	context.dx = 0;  	loadseg(context); @@ -20559,17 +20559,17 @@ static void startloading(Context & context) {  	deletetaken(context);  	setallchanges(context);  	autoappear(context); -	context.al = context.data.byte(188); +	context.al = context.ds.byte(188);  	getroomdata(context); -	context.data.byte(65) = -1; -	context.data.byte(56) = 0; -	context.data.word(98) = 160; -	context.data.byte(188) = 255; -	context.data.byte(492) = 254; +	context.ds.byte(65) = -1; +	context.ds.byte(56) = 0; +	context.ds.word(98) = 160; +	context.ds.byte(188) = 255; +	context.ds.byte(492) = 254;  	context.ax = context.pop();  	context._cmp(context.al, 255);  	if (context.flags.z()) goto dontwalkin; -	context.data.byte(475) = context.al; +	context.ds.byte(475) = context.al;  	context.push(context.bx);  	autosetwalk(context);  	context.bx = context.pop(); @@ -20596,7 +20596,7 @@ lookx2:  	context.ah = 0;  	context.cx = 144;  	context._mul(context.cx); -	context.es = context.data.word(450); +	context.es = context.ds.word(450);  	context.bx = 0;  	context._add(context.bx, context.ax);  	context.ax = context.pop(); @@ -20606,40 +20606,40 @@ lookx2:  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax);  	context.al = 0; -	context.data.byte(context.bx+6) = context.al; +	context.ds.byte(context.bx+6) = context.al;  	return;  }  static void findxyfrompath(Context & context) {  	getroomspaths(context); -	context.al = context.data.byte(475); +	context.al = context.ds.byte(475);  	context.ah = 0;  	context._add(context.ax, context.ax);  	context._add(context.ax, context.ax);  	context._add(context.ax, context.ax);  	context._add(context.bx, context.ax); -	context.ax = context.data.word(context.bx); +	context.ax = context.ds.word(context.bx);  	context._sub(context.al, 12);  	context._sub(context.ah, 12); -	context.data.byte(151) = context.al; -	context.data.byte(152) = context.ah; +	context.ds.byte(151) = context.al; +	context.ds.byte(152) = context.ah;  	return;  }  static void findroominloc(Context & context) { -	context.al = context.data.byte(149); +	context.al = context.ds.byte(149);  	context.cx = -6;  looky:  	context._add(context.cx, 6);  	context._sub(context.al, 10);  	if (!context.flags.c()) goto looky; -	context.al = context.data.byte(148); +	context.al = context.ds.byte(148);  	context._sub(context.cx, 1);  lookx:  	context._add(context.cx, 1);  	context._sub(context.al, 11);  	if (!context.flags.c()) goto lookx; -	context.data.byte(185) = context.cl; +	context.ds.byte(185) = context.cl;  	return;  } @@ -20655,7 +20655,7 @@ static void getroomdata(Context & context) {  static void readheader(Context & context) {  	context.ds = context.cs;  	context.dx = 5881; -	context.cx = 5958-context.data.byte(5881); +	context.cx = 5958-context.ds.byte(5881);  	readfromfile(context);  	context.es = context.cs;  	context.di = 5952; @@ -20665,7 +20665,7 @@ static void readheader(Context & context) {  static void allocateload(Context & context) {  	context.push(context.es);  	context.push(context.di); -	context.bx = context.data.word(context.di); +	context.bx = context.ds.word(context.di);  	context.cl = 4;  	context._shr(context.bx, context.cl);  	allocatemem(context); @@ -20692,37 +20692,37 @@ static void fillspace(Context & context) {  }  static void getridoftemp(Context & context) { -	context.es = context.data.word(458); +	context.es = context.ds.word(458);  	deallocatemem(context);  	return;  }  static void getridoftemptext(Context & context) { -	context.es = context.data.word(466); +	context.es = context.ds.word(466);  	deallocatemem(context);  	return;  }  static void getridoftemp2(Context & context) { -	context.es = context.data.word(460); +	context.es = context.ds.word(460);  	deallocatemem(context);  	return;  }  static void getridoftemp3(Context & context) { -	context.es = context.data.word(462); +	context.es = context.ds.word(462);  	deallocatemem(context);  	return;  }  static void getridoftempcharset(Context & context) { -	context.es = context.data.word(406); +	context.es = context.ds.word(406);  	deallocatemem(context);  	return;  }  static void getridoftempsp(Context & context) { -	context.es = context.data.word(464); +	context.es = context.ds.word(464);  	deallocatemem(context);  	return;  } @@ -20730,30 +20730,30 @@ static void getridoftempsp(Context & context) {  static void readsetdata(Context & context) {  	context.dx = 1870;  	standardload(context); -	context.data.word(404) = context.ax; +	context.ds.word(404) = context.ax;  	context.dx = 1935;  	standardload(context); -	context.data.word(408) = context.ax; +	context.ds.word(408) = context.ax;  	context.dx = 1948;  	standardload(context); -	context.data.word(410) = context.ax; +	context.ds.word(410) = context.ax;  	context.dx = 1832;  	standardload(context); -	context.data.word(414) = context.ax; +	context.ds.word(414) = context.ax;  	context.dx = 2234;  	standardload(context); -	context.data.word(454) = context.ax; +	context.ds.word(454) = context.ax;  	context.dx = 2286;  	standardload(context); -	context.data.word(452) = context.ax; -	context.ax = context.data.word(404); -	context.data.word(268) = context.ax; -	context._cmp(context.data.byte(378), 255); +	context.ds.word(452) = context.ax; +	context.ax = context.ds.word(404); +	context.ds.word(268) = context.ax; +	context._cmp(context.ds.byte(378), 255);  	if (context.flags.z()) goto novolumeload;  	context.dx = 2299;  	openfile(context);  	context.cx = 2048-256; -	context.ds = context.data.word(353); +	context.ds = context.ds.word(353);  	context.dx = 16384;  	readfromfile(context);  	closefile(context); @@ -20775,7 +20775,7 @@ static void dreamweb(Context & context) {  	clearpalette(context);  	set16colpalette(context);  	readsetdata(context); -	context.data.byte(391) = 0; +	context.ds.byte(391) = 0;  	context.dx = 1922;  	loadsample(context);  	setsoundoff(context); @@ -20791,7 +20791,7 @@ dodecisions:  	cls(context);  	setmode(context);  	decide(context); -	context._cmp(context.data.byte(103), 4); +	context._cmp(context.ds.byte(103), 4);  	if (context.flags.z()) goto mainloop;  	titles(context);  	credits(context); @@ -20799,22 +20799,22 @@ playgame:  	clearchanges(context);  	setmode(context);  	loadpalfromiff(context); -	context.data.byte(9) = 255; -	context.data.byte(67) = 1; -	context.data.byte(188) = 35; -	context.data.byte(386) = 7; +	context.ds.byte(9) = 255; +	context.ds.byte(67) = 1; +	context.ds.byte(188) = 35; +	context.ds.byte(386) = 7;  	loadroom(context);  	clearsprites(context);  	initman(context);  	entrytexts(context);  	entryanims(context); -	context.data.byte(183) = 3; +	context.ds.byte(183) = 3;  	initialinv(context); -	context.data.byte(153) = 32; +	context.ds.byte(153) = 32;  	startup1(context); -	context.data.byte(387) = 0; -	context.data.byte(388) = -1; -	context.data.byte(100) = 255; +	context.ds.byte(387) = 0; +	context.ds.byte(388) = -1; +	context.ds.byte(100) = 255;  	goto mainloop;  loadnew:  	clearbeforeload(context); @@ -20823,36 +20823,36 @@ loadnew:  	initman(context);  	entrytexts(context);  	entryanims(context); -	context.data.byte(188) = 255; +	context.ds.byte(188) = 255;  	startup(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  	worktoscreenm(context);  	goto mainloop;  alreadyloaded: -	context.data.byte(188) = 255; +	context.ds.byte(188) = 255;  	clearsprites(context);  	initman(context);  	startup(context); -	context.data.byte(100) = 255; +	context.ds.byte(100) = 255;  mainloop:  	screenupdate(context); -	context._cmp(context.data.byte(391), 0); +	context._cmp(context.ds.byte(391), 0);  	if (!context.flags.z()) goto endofgame; -	context._cmp(context.data.byte(56), 1); +	context._cmp(context.ds.byte(56), 1);  	if (context.flags.z()) goto gameover; -	context._cmp(context.data.byte(56), 2); +	context._cmp(context.ds.byte(56), 2);  	if (context.flags.z()) goto gameover; -	context._cmp(context.data.word(21), 0); +	context._cmp(context.ds.word(21), 0);  	if (context.flags.z()) goto notwatching; -	context.al = context.data.byte(477); -	context._cmp(context.al, context.data.byte(475)); +	context.al = context.ds.byte(477); +	context._cmp(context.al, context.ds.byte(475));  	if (!context.flags.z()) goto mainloop; -	context._sub(context.data.word(21), 1); +	context._sub(context.ds.word(21), 1);  	if (!context.flags.z()) goto mainloop;  notwatching: -	context._cmp(context.data.byte(56), 4); +	context._cmp(context.ds.byte(56), 4);  	if (context.flags.z()) goto gameover; -	context._cmp(context.data.byte(188), 255); +	context._cmp(context.ds.byte(188), 255);  	if (!context.flags.z()) goto loadnew;  	goto mainloop;  gameover: @@ -21427,7 +21427,7 @@ void __start(Context &context) {  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -	context.data.assign(src, src + sizeof(src)); dreamweb(context); } +	context.ds.assign(src, src + sizeof(src)); dreamweb(context); }  void __dispatch_call(Context &context, unsigned addr) {  	switch(addr) { diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h index fb634b6e05..6adcdc73be 100644 --- a/engines/dreamweb/runtime.h +++ b/engines/dreamweb/runtime.h @@ -114,12 +114,10 @@ class SegmentRef {  	Segment			*_segment;  public: -	SegmentRef(Context *ctx): _context(ctx), _value(), _segment() { +	SegmentRef(Context *ctx, uint16 value = 0, Segment *segment = 0): _context(ctx), _value(value), _segment(segment) {  	} -	inline void reset(uint16 value) { -		 -	} +	inline void reset(uint16 value);  	inline SegmentRef& operator=(const uint16 id) {  		return *this; @@ -143,6 +141,11 @@ public:  		assert(_segment != 0);  		return _segment->word(index);  	} + +	inline void assign(const uint8 *b, const uint8 *e) { +		assert(_segment != 0); +		_segment->assign(b, e); +	}  };  struct Flags { @@ -174,9 +177,12 @@ struct Flags {  };  class Context { -	Common::HashMap<uint16, Segment> _segments; +	typedef Common::HashMap<uint16, Segment> SegmentMap; +	SegmentMap _segments;  public: +	enum { kDefaultDataSegment }; +	  	Register ax, dx, bx, cx, si, di;  	RegisterPart<kLowPartOfRegister> al;  	RegisterPart<kHighPartOfRegister> ah; @@ -191,9 +197,18 @@ public:  	Flags flags;  	inline Context(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx), cs(this), ds(this), es(this) { -		 +		_segments[kDefaultDataSegment] = Segment(); +		cs.reset(1); +		ds.reset(1); +		es.reset(1);  	} - +	 +	SegmentRef getSegment(uint16 value) { +		SegmentMap::iterator i = _segments.find(value); +		assert(i != _segments.end()); +		return SegmentRef(this, value, &i->_value); +	} +	  	inline void _cmp(uint8 a, uint8 b) {  		uint8 x = a;  		_sub(x, b); @@ -342,10 +357,12 @@ public:  		stack.pop_back();  		return v;  	} -	 -	Segment data;  }; +inline void SegmentRef::reset(uint16 value) { +	*this = _context->getSegment(value); +} +  }  #endif  | 
