[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freesci-develop] r1573 - freesci/branches/glutton/src/engine
From: |
freesci |
Subject: |
[freesci-develop] r1573 - freesci/branches/glutton/src/engine |
Date: |
Mon, 22 May 2006 19:33:08 +0200 |
Author: skovmanden
Date: 2006-05-22 19:33:04 +0200 (Mon, 22 May 2006)
New Revision: 1573
Modified:
freesci/branches/glutton/src/engine/vm.c
Log:
More conversation system improvements.
Lars
Modified: freesci/branches/glutton/src/engine/vm.c
===================================================================
--- freesci/branches/glutton/src/engine/vm.c 2006-05-22 15:29:21 UTC (rev
1572)
+++ freesci/branches/glutton/src/engine/vm.c 2006-05-22 17:33:04 UTC (rev
1573)
@@ -992,25 +992,40 @@
case 0x13: /* ugt? */
s->r_prev = s->r_acc;
r_temp = POP32();
- s->r_acc = make_reg(0, (r_temp.segment ==
s->r_acc.segment) && r_temp.offset > s->r_acc.offset);
+
+ if (s->r_acc.segment == 0 &&
+ s->r_acc.offset == 1000)
+ s->r_acc = make_reg(0, r_temp.segment != 0);
else
+ s->r_acc = make_reg(0, (r_temp.segment
== s->r_acc.segment) && r_temp.offset > s->r_acc.offset);
break;
case 0x14: /* uge? */
s->r_prev = s->r_acc;
r_temp = POP32();
- s->r_acc = make_reg(0, (r_temp.segment ==
s->r_acc.segment) && r_temp.offset >= s->r_acc.offset);
+
+ if (s->r_acc.segment == 0 &&
+ s->r_acc.offset == 1000)
+ s->r_acc = make_reg(0, r_temp.segment != 0);
else
+ s->r_acc = make_reg(0, (r_temp.segment
== s->r_acc.segment) && r_temp.offset >= s->r_acc.offset);
break;
case 0x15: /* ult? */
s->r_prev = s->r_acc;
r_temp = POP32();
- s->r_acc = make_reg(0, (r_temp.segment ==
s->r_acc.segment) && r_temp.offset < s->r_acc.offset);
+ if (s->r_acc.segment == 0 &&
+ s->r_acc.offset == 1000)
+ s->r_acc = make_reg(0, r_temp.segment == 0);
else
+ s->r_acc = make_reg(0, (r_temp.segment
== s->r_acc.segment) && r_temp.offset < s->r_acc.offset);
break;
case 0x16: /* ule? */
s->r_prev = s->r_acc;
r_temp = POP32();
- s->r_acc = make_reg(0, (r_temp.segment ==
s->r_acc.segment) && r_temp.offset <= s->r_acc.offset);
+
+ if (s->r_acc.segment == 0 &&
+ s->r_acc.offset == 1000)
+ s->r_acc = make_reg(0, r_temp.segment == 0);
else
+ s->r_acc = make_reg(0, (r_temp.segment
== s->r_acc.segment) && r_temp.offset <= s->r_acc.offset);
break;
case 0x17: /* bt */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freesci-develop] r1573 - freesci/branches/glutton/src/engine,
freesci <=