[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: KEGS' Bug Discover
- Subject: Re: KEGS' Bug Discover
- From: kadickey@alumni.princeton.edu (Kent Dickey)
- Date: 10 Jan 2004 21:52:00 GMT
- Newsgroups: comp.sys.apple2
- Organization: .
- References: <HZHLb.12993$1F4.1947@fe2.texas.rr.com>
- Xref: archiver1.google.com comp.sys.apple2:2382
In article <HZHLb.12993$1F4.1947@fe2.texas.rr.com>,
Bryan Parkoff <bryan.nospam.parkoff@nospam.com> wrote:
> I have talked to Kent that KEGS has a HUGE emulated 65816 bugs. Not all
>Apple II and IIgs software can run on KEGS properly. I do KNOW why, but I
>did explain every details in my e-mail to him.
> Hopefully, Kent will accept my advice so HUGE bugs can be fixed in 65816
>coding.
>
>--
>Bryan Parkoff
Bryan's bug report concerns KEGS bugs with the instruction pointer wrapping
into a subsequent bank incorrectly. This was intended to be handled by
some fix-up code in the function get_remaining_operands() in engine_c.c,
but unfortunately it looks like I forgot to do it there. Oops. :-)
His bug report I think is not really correct (what he thought was wrong
is actually correct, but it's hard for me to parse his email), but it made
me look at the code closer.
While reviewing this case, I decided to look into and fix some other
bank-crossing bugs in KEGS, all relatively minor. Addressing modes like
direct page and stack can never leave bank 0 (they should wrap around
from 0x00ffff to 0x000000 or 0x000000 to 0x00ffff) and that also wasn't
always handled correctly. I also finally answered a pending comment in
the code as to how JSR (abs,x) really should work (it uses K as the bank
register, and the abs + x and abs+x+1 must stay in that bank), and fixed
the code. THe 65816 has a lot of weird cases around bank crossings
making it easy to not get all the cases right unless it's reviewed
carefully.
So there were bugs, (and there are still others, including some I don't
know about), but I would be surprised if any of the bugs affected any
programs, including demos. My testing shows no difference to everything
I ran. I would say these bugs were very minor. KEGS has had more
serious bugs in the past that no one has complained about. :-)
Kent Dickey