1>a= $1000, d= $60
2>a= $01FE, d=
$d0 or $f0 (depending on bank)
3>a= $01FF, d= $d0 or $f0 (depending on
bank)
1> So this is RTS
2> The LO Byte
3> The HI Byte
This is how i understood it, too. I am glad
we agree on this :-)
1>a= $1000, d= $20
2>a= $1001, d=
$d0 or $f0 (depending on bank)
3>???
4>a= $01FF, d= $ff
(shouldn't matter)
5>a= $01FE, d= $ff (shouldn't matter)
6>a= $1002,
d= $d0 or $f0 (depending on bank)
ok, i will try again:
# address R/W description for JSR
--- ------- ---
---------------------------------------------
1 PC R fetch opcode, increment
PC
2
PC R fetch low address byte, increment
PC
3 $0100,S R
internal operation (predecrement
S?)
4 $0100,S W
push PCH on stack, decrement S
5 $0100,S W push PCL on stack, decrement
S
6
PC R copy low address byte to PCL, fetch high
Adress byte to PCH
<1 processor fetches the opcode for JSR
($20) I could see this on the databus, right
?
<2 processor fetches low byte of target
adress I could see this on the databus too ... !?
<3 now adress changes and I can see a
stack hit .. so its starting to be interesting here :-)
<4 hm .. does the address change here ?
(does predecrement S?) mean that the address will change ?
if yes, i could detect an
address change and again i could see a stack hit (the second hit)
We just pushed the
HI-Byte of the return address. THis one is not interesting so i forget about
it
I am not interested in the
databus at this time.
<5 another address change. This could be
our 3rd stack hit in a row (or the second (see predecrement S?))
The low byte of the
return address is pushed. I don't care about that, because i am not interested
in
where to return to, but in
where to jump to.
<6 now the controller is changing the
adresslines again. The new PC is on the Adressbus.
and it fetches the High
Byte of the target adress, WHICH I COULD SEE ON THE DATABUS NOW !?? RIGHT
?
Do I totally misunderstand this, or
could it be like this.
Does anybody know how to
interpret (predecrement S?)
--Kroko