[Coco] 6309 Weirdness ??

Darren A. darccml at hotmail.com
Wed May 16 00:34:16 EDT 2007


>From: Robert Gault
>Subject: Re: [Coco] 6309 Weirdness ??
>Date: Tue, 15 May 2007 22:04:53 -0400
>
><snip>
>
>My tests indicate that you are misinterpreting your results.
>
>When I run the program
>	org $7000
>start	ldx #$1234
>$7003	addr pc,x
>$7006	swi
>	end
>the result is that regX contains $1234+$7003+3=$823A.
><snip>
>Your example LDX #-4  ADDR X,PC  will lead to disaster. Using -3, the 
>program should loop indefinitely at the addr x,pc instruction. But with -4, 
>the program will jump into the middle of the ldx #-4 instruction. The 
>result in most cases will be an illegal instruction resulting in the 6309 
>jumping to a special trap which in most cases will not have a vector 
>installed.
>
>--
-

Robert,

Did you run your test on real 6309 hardware or with an emulator?  When I run 
the example you provided:

  ORG   $7000
7000  LDX   #$1234
7003  ADDR  PC,X

..I get the same results you did if I run it on MESS (X = $823A), but I get 
a different result (X = $823B) when I run it on real hardware. This 
indicates to me that the CPU is calculating it as ($1234 + $7003 + 4).

Thus the example I gave:

      LDX   #-4
      ADDR  X,PC

...will, as you say, lead to disaster if run on MESS, but works on a real 
6309 (as long as interrupts are masked).  That was the point of my post; 
that the real CPU isn't behaving the way I was led to believe. I even tried 
it with two different processors (a 63B09E and a 63C09E) just to see if I 
had a defective one.

Darren

_________________________________________________________________
More photos, more messages, more storage—get 2GB with Windows Live Hotmail. 
http://imagine-windowslive.com/hotmail/?locale=en-us&ocid=TXT_TAGHM_migration_HM_mini_2G_0507




More information about the Coco mailing list