[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Apple IIgs ROM 03 Bug
- Subject: Apple IIgs ROM 03 Bug
- From: "Bryan Parkoff" <nospam@nospam.com>
- Date: Thu, 15 Nov 2007 01:03:37 -0600
- Newsgroups: comp.sys.apple2
- Organization: Road Runner High Speed Online http://www.rr.com
- Xref: g2news1.google.com comp.sys.apple2:30483
I find this interesting why Apple IIgs ROM 03 has bug. I booted DOS 3.3
Master on Apple //e. I copied $C600-C6FF to $2000-20FF and bsaved DISK_II.
I booted DOS 3.3 Master on Apple IIgs. I bloaded DISK_II into $2000. I
want to step $2000 through $2021 using command "*2000S" so I can see 6-2
encoding translation. The problem is that step does not save 8 flags into
stack properly. Zero flag is always set while the process of $2000-$2021
executes BEQ instruction every time $03 through $7F in X register. It may
be the cause when you want to step BIT instruction and see Z flag.
I wrote short code to test 8 flags in stack and pull it into A register
like this below.
$3000: A2 03 LDX #03
$3002: 86 06 STX 06
$3004: 8A TXA
$3005: 0A ASL
$3006: 24 06 BIT 06
$3008: 08 PHP
$3009: 68 PLA
$300A: 9D 00 03 STA 0300,X
$300D: E8 INX
$300E: 10 F2 BPL 3002 {-0E}
$3010: 60 RTS
This code above shows correct value on $300-$37F. I compared it to step
on $2000-$2021. Do you have idea why step has bug? Did Apple Computer, Inc
make mistake not to fix step code?
Bryan Parkoff