DREAMWEB: 'lineroutine', 'increment1', 'increment2' are only used inside bresenhams()

This commit is contained in:
Filippos Karapetis 2011-12-13 01:14:26 +02:00
parent b27a6e72ad
commit 1994bf73ce
4 changed files with 163 additions and 161 deletions

View file

@ -148,6 +148,9 @@ p = parser(skip_binary_data = [
'ch1blocksplayed', 'ch1blocksplayed',
'soundemmpage', 'soundemmpage',
'speechemmpage', 'speechemmpage',
'lineroutine',
'increment1',
'increment2',
# vgagrafx.asm # vgagrafx.asm
'cityname', 'cityname',
'extragraphics1', 'extragraphics1',

View file

@ -2876,14 +2876,14 @@ void DreamGenContext::getDestInfo() {
push(ax); push(ax);
dx = data; dx = data;
es = dx; es = dx;
si = 1249; si = 1244;
_add(si, ax); _add(si, ax);
cl = es.byte(si); cl = es.byte(si);
ax = pop(); ax = pop();
push(cx); push(cx);
dx = data; dx = data;
es = dx; es = dx;
si = 1265; si = 1260;
_add(si, ax); _add(si, ax);
ax = pop(); ax = pop();
} }
@ -2935,7 +2935,7 @@ clearedlocations:
bx = ax; bx = ax;
dx = data; dx = data;
es = dx; es = dx;
_add(bx, 1249); _add(bx, 1244);
es.byte(bx) = 0; es.byte(bx) = 0;
} }
@ -2971,7 +2971,7 @@ void DreamGenContext::execCommand() {
es = cs; es = cs;
bx = offset_comlist; bx = offset_comlist;
ds = cs; ds = cs;
si = 1283; si = 1278;
al = ds.byte(si); al = ds.byte(si);
_cmp(al, 0); _cmp(al, 0);
if (!flags.z()) if (!flags.z())
@ -3064,7 +3064,7 @@ dirroot:
si = offset_rootdir; si = offset_rootdir;
_inc(si); _inc(si);
es = cs; es = cs;
di = 1125; di = 1120;
_inc(di); _inc(di);
cx = 12; cx = 12;
_movsb(cx, true); _movsb(cx, true);
@ -3166,7 +3166,7 @@ notyetassigned:
push(bx); push(bx);
_add(bx, 2); _add(bx, 2);
ds = cs; ds = cs;
si = 1283; si = 1278;
checkpass: checkpass:
_lodsw(); _lodsw();
ah = es.byte(bx); ah = es.byte(bx);
@ -3237,7 +3237,7 @@ void DreamGenContext::read() {
return; return;
okcom: okcom:
es = cs; es = cs;
di = 1125; di = 1120;
ax = data.word(kTextfile1); ax = data.word(kTextfile1);
data.word(kMonsource) = ax; data.word(kMonsource) = ax;
ds = ax; ds = ax;
@ -3367,7 +3367,7 @@ keyok2:
ds = cs; ds = cs;
si = offset_operand1+1; si = offset_operand1+1;
es = cs; es = cs;
di = 1125+1; di = 1120+1;
cx = 12; cx = 12;
_movsb(cx, true); _movsb(cx, true);
monitorLogo(); monitorLogo();
@ -3494,7 +3494,7 @@ void DreamGenContext::parser() {
al = '='; al = '=';
_stosb(); _stosb();
ds = cs; ds = cs;
si = 1283; si = 1278;
notspace1: notspace1:
_lodsw(); _lodsw();
_cmp(al, 32); _cmp(al, 32);
@ -4519,7 +4519,7 @@ nomatchslot:
void DreamGenContext::clearBuffers() { void DreamGenContext::clearBuffers() {
STACK_CHECK; STACK_CHECK;
es = data.word(kBuffers); es = data.word(kBuffers);
cx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+916-459+68-0)/2; 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)+911-454+68-0)/2;
ax = 0; ax = 0;
di = 0; di = 0;
_stosw(cx, true); _stosw(cx, true);
@ -4531,11 +4531,11 @@ void DreamGenContext::clearBuffers() {
es = data.word(kBuffers); es = data.word(kBuffers);
di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)); di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
ds = cs; ds = cs;
si = 459; si = 454;
cx = (916-459); cx = (911-454);
_movsb(cx, true); _movsb(cx, true);
es = data.word(kBuffers); es = data.word(kBuffers);
di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+916-459); 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)+911-454);
ds = cs; ds = cs;
si = 0; si = 0;
cx = (68-0); cx = (68-0);
@ -4553,11 +4553,11 @@ void DreamGenContext::clearChanges() {
ds = data.word(kBuffers); ds = data.word(kBuffers);
si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)); si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
es = cs; es = cs;
di = 459; di = 454;
cx = (916-459); cx = (911-454);
_movsb(cx, true); _movsb(cx, true);
ds = data.word(kBuffers); ds = data.word(kBuffers);
si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+916-459); 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)+911-454);
es = cs; es = cs;
di = 0; di = 0;
cx = (68-0); cx = (68-0);
@ -4571,7 +4571,7 @@ void DreamGenContext::clearChanges() {
di = 0; di = 0;
_stosw(cx, true); _stosw(cx, true);
es = cs; es = cs;
di = 1249; di = 1244;
al = 1; al = 1;
_stosb(2); _stosb(2);
al = 0; al = 0;
@ -4818,111 +4818,111 @@ void DreamGenContext::__start() {
//0x0190: .... .... .... .... //0x0190: .... .... .... ....
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x01a0: .... .... .... .... //0x01a0: .... .... .... ....
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, 0xff,
//0x01b0: .... .... .... .... //0x01b0: .... .... .... ....
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x01, 0x2c, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x01, 0x2c, 0x00, 0x14, 0x00, 0x02, 0x00, 0x01, 0x01, 0x37,
//0x01c0: .... .... .... ,... //0x01c0: .... ..., .... ...7
0x02, 0x00, 0x01, 0x01, 0x37, 0x00, 0x00, 0x00, 0x32, 0x14, 0x00, 0x18, 0x16, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x32, 0x14, 0x00, 0x18, 0x16, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x18, 0x21,
//0x01d0: .... 7... 2... ..J. //0x01d0: ...2 .... .J.. ...!
0x01, 0x00, 0x00, 0x18, 0x21, 0x0a, 0x4b, 0x00, 0x01, 0x00, 0x01, 0x01, 0x2c, 0x00, 0x1b, 0x00, 0x0a, 0x4b, 0x00, 0x01, 0x00, 0x01, 0x01, 0x2c, 0x00, 0x1b, 0x00, 0x02, 0x00, 0x02, 0x01, 0x2c,
//0x01e0: .... !.K. .... ,... //0x01e0: .K.. ..., .... ...,
0x02, 0x00, 0x02, 0x01, 0x2c, 0x00, 0x60, 0x00, 0x03, 0x00, 0x04, 0x01, 0x2c, 0x00, 0x76, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x04, 0x01, 0x2c, 0x00, 0x76, 0x00, 0x02, 0x00, 0x05, 0x01, 0x2c,
//0x01f0: .... ,.`. .... ,.v. //0x01f0: .`.. ..., .v.. ...,
0x02, 0x00, 0x05, 0x01, 0x2c, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, 0x16, 0x14, 0x35, 0x00, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, 0x16, 0x14, 0x35, 0x00, 0x03, 0x00, 0x00, 0x05, 0x16,
//0x0200: .... ,... .... ..5. //0x0200: .... .... .5.. ....
0x03, 0x00, 0x00, 0x05, 0x16, 0x14, 0x28, 0x00, 0x01, 0x00, 0x02, 0x05, 0x16, 0x14, 0x32, 0x00, 0x14, 0x28, 0x00, 0x01, 0x00, 0x02, 0x05, 0x16, 0x14, 0x32, 0x00, 0x01, 0x00, 0x03, 0x02, 0x0b,
//0x0210: .... ..(. .... ..2. //0x0210: .(.. .... .2.. ....
0x01, 0x00, 0x03, 0x02, 0x0b, 0x0a, 0xc0, 0x00, 0x01, 0x00, 0x00, 0x02, 0x0b, 0x0a, 0xb6, 0x00, 0x0a, 0xc0, 0x00, 0x01, 0x00, 0x00, 0x02, 0x0b, 0x0a, 0xb6, 0x00, 0x02, 0x00, 0x01, 0x08, 0x0b,
//0x0220: .... .... .... .... //0x0220: .... .... .... ....
0x02, 0x00, 0x01, 0x08, 0x0b, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x01, 0x17, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x01, 0x17, 0x00, 0x32, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1c, 0x0b,
//0x0230: .... .... .... .2.. //0x0230: .... .... 2... ....
0x03, 0x00, 0x00, 0x1c, 0x0b, 0x14, 0xfa, 0x00, 0x04, 0x00, 0x00, 0x17, 0x00, 0x32, 0x2b, 0x00, 0x14, 0xfa, 0x00, 0x04, 0x00, 0x00, 0x17, 0x00, 0x32, 0x2b, 0x00, 0x02, 0x00, 0x08, 0x17, 0x0b,
//0x0240: .... .... .... .2+. //0x0240: .... .... 2+.. ....
0x02, 0x00, 0x08, 0x17, 0x0b, 0x28, 0x82, 0x00, 0x02, 0x00, 0x01, 0x17, 0x16, 0x28, 0x7a, 0x00, 0x28, 0x82, 0x00, 0x02, 0x00, 0x01, 0x17, 0x16, 0x28, 0x7a, 0x00, 0x02, 0x00, 0x02, 0x17, 0x16,
//0x0250: .... .(.. .... .(z. //0x0250: (... .... (z.. ....
0x02, 0x00, 0x02, 0x17, 0x16, 0x28, 0x69, 0x00, 0x02, 0x00, 0x03, 0x17, 0x16, 0x28, 0x51, 0x00, 0x28, 0x69, 0x00, 0x02, 0x00, 0x03, 0x17, 0x16, 0x28, 0x51, 0x00, 0x02, 0x00, 0x04, 0x17, 0x0b,
//0x0260: .... .(i. .... .(Q. //0x0260: (i.. .... (Q.. ....
0x02, 0x00, 0x04, 0x17, 0x0b, 0x28, 0x87, 0x00, 0x02, 0x00, 0x05, 0x17, 0x16, 0x28, 0x91, 0x00, 0x28, 0x87, 0x00, 0x02, 0x00, 0x05, 0x17, 0x16, 0x28, 0x91, 0x00, 0x02, 0x00, 0x06, 0x04, 0x16,
//0x0270: .... .(.. .... .(.. //0x0270: (... .... (... ....
0x02, 0x00, 0x06, 0x04, 0x16, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0xc8, 0x00, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0xc8, 0x00, 0x00, 0x00, 0x14, 0x2d, 0x16,
//0x0280: .... .... ...- .... //0x0280: .... ..-. .... ..-.
0x00, 0x00, 0x14, 0x2d, 0x16, 0x1e, 0x27, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0x19, 0x00, 0x1e, 0x27, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0x19, 0x00, 0x02, 0x00, 0x00, 0x08, 0x16,
//0x0290: ...- ..'. ...- .... //0x0290: .'.. ..-. .... ....
0x02, 0x00, 0x00, 0x08, 0x16, 0x28, 0x20, 0x00, 0x02, 0x00, 0x00, 0x07, 0x0b, 0x14, 0x40, 0x00, 0x28, 0x20, 0x00, 0x02, 0x00, 0x00, 0x07, 0x0b, 0x14, 0x40, 0x00, 0x02, 0x00, 0x00, 0x16, 0x16,
//0x02a0: .... .( . .... ..@. //0x02a0: ( .. .... .@.. ....
0x02, 0x00, 0x00, 0x16, 0x16, 0x14, 0x52, 0x00, 0x02, 0x00, 0x00, 0x1b, 0x0b, 0x1e, 0x00, 0x00, 0x14, 0x52, 0x00, 0x02, 0x00, 0x00, 0x1b, 0x0b, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x14, 0x00,
//0x02b0: .... ..R. .... .... //0x02b0: .R.. .... .... ....
0x02, 0x00, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x21, 0x28, 0x15, 0x00, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x21, 0x28, 0x15, 0x00, 0x01, 0x00, 0x00, 0x1d, 0x0b,
//0x02c0: .... .... .... !(.. //0x02c0: .... ...! (... ....
0x01, 0x00, 0x00, 0x1d, 0x0b, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x16, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00,
//0x02d0: .... .... .... .... //0x02d0: .... .... .... ....
0x02, 0x00, 0x00, 0x19, 0x00, 0x32, 0x04, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x79, 0x00, 0x32, 0x04, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x79, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16,
//0x02e0: .... .2.. ...2 ..y. //0x02e0: 2... ..2. .y.. ..2.
0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x00, 0x00, 0x14, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xc0, 0x00, 0x1e, 0x00, 0x00, 0x14, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xc0, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16,
//0x02f0: ...2 .... ...4 .... //0x02f0: .... ..4. .... ..4.
0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xe9, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x68, 0x00, 0x1e, 0xe9, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x68, 0x00, 0x37, 0x00, 0x00, 0x35, 0x21,
//0x0300: ...4 .... ...2 .(h. //0x0300: .... ..2. (h.7 ..5!
0x37, 0x00, 0x00, 0x35, 0x21, 0x00, 0x63, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x00, 0x00, 0x00, 0x63, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x00, 0x00, 0x03, 0x00, 0x00, 0x32, 0x16,
//0x0310: 7..5 !.c. ...2 .(.. //0x0310: .c.. ..2. (... ..2.
0x03, 0x00, 0x00, 0x32, 0x16, 0x1e, 0xa2, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x39, 0x00, 0x1e, 0xa2, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x39, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16,
//0x0320: ...2 .... ...4 ..9. //0x0320: .... ..4. .9.. ..4.
0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x36, 0x00, 0x00, 0x48, 0x00, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x36, 0x00, 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, 0x37, 0x2c,
//0x0330: ...4 .... ...6 ..H. //0x0330: .... ..6. .H.. ..7,
0x03, 0x00, 0x00, 0x37, 0x2c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0e, 0x16,
//0x0340: ...7 ,... .... .... //0x0340: .... .... .... ....
0x1c, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x2c, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x2c, 0x01, 0x01, 0x00, 0x00, 0x0a, 0x16,
//0x0350: .... .... .... ..,. //0x0350: .... .... .,.. ....
0x01, 0x00, 0x00, 0x0a, 0x16, 0x1e, 0xae, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x16, 0x14, 0x00, 0x00, 0x1e, 0xae, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x16, 0x14, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0b, 0x0b,
//0x0360: .... .... .... .... //0x0360: .... .... .... ....
0x01, 0x00, 0x00, 0x0b, 0x0b, 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x0b, 0x1e, 0x00, 0x00, 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x0b, 0x1e, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x16,
//0x0370: .... .... 2... .... //0x0370: ...2 .... ...2 ....
0x32, 0x14, 0x00, 0x0b, 0x16, 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0e, 0x21, 0x28, 0x00, 0x00, 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0e, 0x21, 0x28, 0x00, 0x00, 0x32, 0x14, 0x00, 0xff, 0x44,
//0x0380: 2... .... 2... !(.. //0x0380: ...2 ...! (..2 ...D
0x32, 0x14, 0x00, 0xff, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 0x39, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 0x39, 0x00, 0x00, 0x01, 0x45, 0x58,
//0x0390: 2... DREA MWEB .V99 //0x0390: REAM WEB. V99. ..EX
0x00, 0x00, 0x01, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 0x45, 0x4c, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20,
//0x03a0: ...E XIT HEL //0x03a0: IT HELP
0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44,
//0x03b0: P L IST //0x03b0: LI ST READ
0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20,
//0x03c0: REA D L OGON //0x03c0: LO GON
0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c,
//0x03d0: KEY S . //0x03d0: KEYS .. PUBL
0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x55, 0x42, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20,
//0x03e0: .PUB LIC PUB //0x03e0: IC PUBL IC
0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f,
//0x03f0: LIC ...B LACK //0x03f0: . ..BL ACKD RAGO
0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00,
//0x0400: DRAG ON R YAN //0x0400: N RY AN ...
0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x20, 0x20, 0x20, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49,
//0x0410: .. .HEN DRIX //0x0410: HEND RIX LOUI
0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x53, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d,
//0x0420: LOU IS ...S //0x0420: S . ..SE PTIM
0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20,
//0x0430: EPTI MUS B ECKE //0x0430: US BE CKET T
0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
//0x0440: TT .. . //0x0440: ...
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
//0x0450: ." ROOT //0x0450: ."R OOT .
0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30,
//0x0460: ." //0x0460: " .00
0x20, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x4f, 0x42, 0x4a, 0x45, 0x43,
//0x0470: .0 000. 00.. ...$ //0x0470: 00.0 0... ..$O BJEC
0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
//0x0480: OBJE CT N AME ONE //0x0480: T NA ME O NE
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
//0x0490: //0x0490:
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01,
//0x04a0: .... .... //0x04a0: . .... .... ....
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44, 0x3a, 0x00, 0x00,
//0x04b0: .... .... .... .... //0x04b0: .... .... .... D:..
0x02, 0x44, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x04c0: .D:. .... .... ....
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,
//0x04c0: .... .... .... ....
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01,
//0x04d0: .... .... .... .... //0x04d0: .... .... .... ....
0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x02,
//0x04e0: .... .... .... .... //0x04e0: .... .... .... ....
0x00, 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x04f0: .... .... .... .... //0x04f0: .... .... .... ....
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,
//0x0500: .... .... .... .... //0x0500: .... .... .... ....
@ -4938,9 +4938,9 @@ void DreamGenContext::__start() {
//0x0550: .... .... .... .... //0x0550: .... .... .... ....
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,
//0x0560: .... .... .... .... //0x0560: .... .... .... ....
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, 0xff, 0xff,
//0x0570: .... .... .... .... //0x0570: .... .... .... ....
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, }; 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, };
ds.assign(src, src + sizeof(src)); ds.assign(src, src + sizeof(src));
dreamweb(); dreamweb();
} }

View file

@ -32,14 +32,14 @@
namespace DreamGen { namespace DreamGen {
static const uint16 offset_rootdir = 0x0457; static const uint16 offset_money1poke = 0x046e;
static const uint16 offset_money2poke = 0x0478; static const uint16 offset_operand1 = 0x0444;
static const uint16 offset_keys = 0x03df; static const uint16 offset_comlist = 0x039e;
static const uint16 offset_money1poke = 0x0473; static const uint16 offset_commandline = 0x047b;
static const uint16 offset_comlist = 0x03a3; static const uint16 offset_rootdir = 0x0452;
static const uint16 offset_openchangesize = 0x03a1; static const uint16 offset_money2poke = 0x0473;
static const uint16 offset_commandline = 0x0480; static const uint16 offset_openchangesize = 0x039c;
static const uint16 offset_operand1 = 0x0449; static const uint16 offset_keys = 0x03da;
static const uint16 kStartvars = 0; static const uint16 kStartvars = 0;
static const uint16 kProgresspoints = 1; static const uint16 kProgresspoints = 1;
static const uint16 kWatchon = 2; static const uint16 kWatchon = 2;
@ -359,32 +359,29 @@ static const uint16 kLinestartx = 431;
static const uint16 kLinestarty = 433; static const uint16 kLinestarty = 433;
static const uint16 kLineendx = 435; static const uint16 kLineendx = 435;
static const uint16 kLineendy = 437; static const uint16 kLineendy = 437;
static const uint16 kIncrement1 = 439; static const uint16 kLinepointer = 439;
static const uint16 kIncrement2 = 441; static const uint16 kLinedirection = 440;
static const uint16 kLineroutine = 443; static const uint16 kLinelength = 441;
static const uint16 kLinepointer = 444; static const uint16 kLiftsoundcount = 442;
static const uint16 kLinedirection = 445; static const uint16 kCh0blockstocopy = 443;
static const uint16 kLinelength = 446; static const uint16 kCh0playing = 445;
static const uint16 kLiftsoundcount = 447; static const uint16 kCh0repeat = 446;
static const uint16 kCh0blockstocopy = 448; static const uint16 kCh1playing = 447;
static const uint16 kCh0playing = 450; static const uint16 kCh1blockstocopy = 448;
static const uint16 kCh0repeat = 451; static const uint16 kSoundbufferwrite = 450;
static const uint16 kCh1playing = 452; static const uint16 kCurrentsample = 452;
static const uint16 kCh1blockstocopy = 453; static const uint16 kRoomssample = 453;
static const uint16 kSoundbufferwrite = 455; static const uint16 kReelroutines = 454;
static const uint16 kCurrentsample = 457; static const uint16 kBasicsample = 911;
static const uint16 kRoomssample = 458; static const uint16 kCurrentfile = 1120;
static const uint16 kReelroutines = 459; static const uint16 kRoomscango = 1244;
static const uint16 kBasicsample = 916; static const uint16 kRoompics = 1260;
static const uint16 kCurrentfile = 1125; static const uint16 kOplist = 1275;
static const uint16 kRoomscango = 1249; static const uint16 kInputline = 1278;
static const uint16 kRoompics = 1265; static const uint16 kPresslist = 1406;
static const uint16 kOplist = 1280; static const uint16 kQuitrequested = 1412;
static const uint16 kInputline = 1283; static const uint16 kSubtitles = 1413;
static const uint16 kPresslist = 1411; static const uint16 kForeignrelease = 1414;
static const uint16 kQuitrequested = 1417;
static const uint16 kSubtitles = 1418;
static const uint16 kForeignrelease = 1419;
static const uint16 kBlocktextdat = (0); static const uint16 kBlocktextdat = (0);
static const uint16 kPersonframes = (0); static const uint16 kPersonframes = (0);
static const uint16 kDebuglevel1 = (0); static const uint16 kDebuglevel1 = (0);
@ -423,8 +420,8 @@ static const uint16 kListofchanges = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768
static const uint16 kUndertimedtext = (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)); static const uint16 kUndertimedtext = (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));
static const uint16 kRainlist = (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)); static const uint16 kRainlist = (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));
static const uint16 kInitialreelrouts = (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)); static const uint16 kInitialreelrouts = (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));
static const uint16 kInitialvars = (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)+916-459); static const uint16 kInitialvars = (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)+911-454);
static const uint16 kLengthofbuffer = (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)+916-459+68-0); static const uint16 kLengthofbuffer = (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)+911-454+68-0);
static const uint16 kReellist = (0+(36*144)); static const uint16 kReellist = (0+(36*144));
static const uint16 kIntext = (0+(38*2)); static const uint16 kIntext = (0+(38*2));
static const uint16 kLengthofmap = (0+(66*60)); static const uint16 kLengthofmap = (0+(66*60));
@ -475,7 +472,7 @@ static const uint16 kKeypady = (72);
static const uint16 kZoomx = (8); static const uint16 kZoomx = (8);
static const uint16 kInventx = (80); static const uint16 kInventx = (80);
static const uint16 kMenux = (80+40); static const uint16 kMenux = (80+40);
static const uint16 kLenofreelrouts = (916-459); static const uint16 kLenofreelrouts = (911-454);
static const uint16 kHeaderlen = (96); static const uint16 kHeaderlen = (96);

View file

@ -230,33 +230,35 @@ void DreamBase::bresenhams() {
} }
uint16 delta1, delta2; uint16 delta1, delta2;
byte lineRoutine;
if (deltaY > deltaX) { if (deltaY > deltaX) {
data.byte(kLineroutine) = 1; lineRoutine = 1;
delta1 = deltaY; delta1 = deltaY;
delta2 = deltaX; delta2 = deltaX;
} else { } else {
data.byte(kLineroutine) = 0; lineRoutine = 0;
delta1 = deltaX; delta1 = deltaX;
delta2 = deltaY; delta2 = deltaY;
} }
data.word(kIncrement1) = delta2 * 2; uint16 increment1 = delta2 * 2;
uint16 increment2 = delta2 * 2 - delta1 * 2;
int16 remainder = delta2 * 2 - delta1; int16 remainder = delta2 * 2 - delta1;
data.word(kIncrement2) = delta2 * 2 - delta1 * 2;
++delta1; ++delta1;
int8 x = (int8)startX; int8 x = (int8)startX;
int8 y = (int8)startY; int8 y = (int8)startY;
data.byte(kLinelength) = delta1; data.byte(kLinelength) = delta1;
if (data.byte(kLineroutine) != 1) { if (lineRoutine != 1) {
for (; delta1; --delta1) { for (; delta1; --delta1) {
lineData->x = x; lineData->x = x;
lineData->y = y; lineData->y = y;
++lineData; ++lineData;
++x; ++x;
if (remainder < 0) { if (remainder < 0) {
remainder += data.word(kIncrement1); remainder += increment1;
} else { } else {
remainder += data.word(kIncrement2); remainder += increment2;
y += increment; y += increment;
} }
} }
@ -267,9 +269,9 @@ void DreamBase::bresenhams() {
++lineData; ++lineData;
y += increment; y += increment;
if (remainder < 0) { if (remainder < 0) {
remainder += data.word(kIncrement1); remainder += increment1;
} else { } else {
remainder += data.word(kIncrement2); remainder += increment2;
++x; ++x;
} }
} }