listhelper-moderate
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Qemu-devel post from address@hidden requires approval


From: qemu-devel-owner
Subject: Qemu-devel post from address@hidden requires approval
Date: Wed, 04 Jul 2007 21:54:32 -0400

As list administrator, your authorization is requested for the
following mailing list posting:

    List:    address@hidden
    From:    address@hidden
    Subject: [Bug report] [0.9.0 x86/Linux] Sine / Cosine emulated incorrectly 
for QuickBasic 4.5
    Reason:  Post by non-member to a members-only list

At your convenience, visit:

    http://lists.nongnu.org/mailman/admindb/qemu-devel
        
to approve or deny the request.
--- Begin Message --- Subject: [Bug report] [0.9.0 x86/Linux] Sine / Cosine emulated incorrectly for QuickBasic 4.5 Date: Thu, 5 Jul 2007 13:54:27 +1200 (NZST)
Hey there,

I've been doing a bit of programming with QuickBasic
using MS-DOS 6.22 running under QEMU 0.9.0/x86/Linux.
It's all fine and dandy except for one (big) problem:
sin() and cos() don't work correctly.

Here's a demonstration:
http://nonlogic.org/dump/bin/1183539319-glitchy.exe

It works fine on a real PC, and even VMWare, but not
under QEMU. I'm pretty sure it's QEMU, as I don't have
the problem running it under QBasic 1.0, which I hear
*emulates* sin() and cos(). But, let's face it,
compared with QuickBasic 4.5, QBasic 1.0 sucks.

What happens under QEMU is, after drawing 1/8, it
draws the third 1/8 when it should be drawing the
second 1/8, and vice versa. Same goes with the sixth
and seventh 1/8s.

Here's the source code:
  CONST pi = 3.141592653589793#
  CONST p256 = pi / 128
  
  SCREEN 13
  FOR i = 0 TO 31
    PALETTE 0 + i, i * &H10101
    PALETTE 32 + i, i * &H2
    PALETTE 64 + i, i * &H200
    PALETTE 96 + i, i * &H202
    PALETTE 128 + i, i * &H20000
    PALETTE 160 + i, i * &H20002
    PALETTE 192 + i, i * &H20200
    PALETTE 224 + i, i * &H20202
  NEXT
  
  FOR i = 0 TO 256
    PSET (i, 0), i
    px = 160 + SIN(i * p256) * 80
    py = 100 + -COS(i * p256) * 80
    PSET (px, py), i
    t = TIMER
    DO: LOOP WHILE TIMER - t < .01
  NEXT

Note that it breaks with ANY use of sin() or cos()
under QB4.5.

--GreaseMonkey

Send instant messages to your online friends http://au.messenger.yahoo.com 



--- End Message ---
--- Begin Message --- Subject: confirm 7efaa8fcdb91465e6058ecb2e511841df0942eee
If you reply to this message, keeping the Subject: header intact,
Mailman will discard the held message.  Do this if the message is
spam.  If you reply to this message and include an Approved: header
with the list password in it, the message will be approved for posting
to the list.  The Approved: header can also appear in the first line
of the body of the reply.

--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]