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

Apple IIgs ROM 03 Bug



    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