Hallo Rhialto, Spiro,
Thanks for answering. I know how it generally works, just like the story
Rhialto works. Unfortunately I'm a hairsplitter in this case and I need the
details.
> The original IRQ routine calls $F2B0. At $F2E9 it checks $0020. I don't
know
> where this variable is intialised. Following both possibilities $F2F9 or
> $F99C I have no idea where the JMP instruction at $0600 is executed.
> As you see JOBSZP+x ($00+x) is filled with a code. Where is this code
> examined and acted upon?
The above part describes the part in the code where I stuck. To be exactly:
I stuck at $F2E9.
After some studying yesterday evening, my intuition says the program resumes
at $F2F9. The subroutine at $F393 transforms $E0 into $60 for the variable
JOB/$45. At $F3F7 JOB is cheked on #$60, true, so it "execute memory"
subroutine at $F36E is called. This routine adds 3 to JOBN/$3F. Remember:
> STA JOBSZP+3 ; transmit
^
|
JOBN contains the value 3 so the result is 6. This ends up executing the
program at $0600. If this is correct, then the main question is:
--- What is the initial value of DRVST / $20 as this seems the key of my
problem ??? ---
For Spiro:
> You can read german, don't you?
Das solltest du jetzt schon wissen :)
> and send the relevant parts,
Please do, especially those regarding DRVST. Many thanks.
___
/ __|__
/ / |_/ Groetjes, Ruud
\ \__|_\
\___| http://Ruud.C64.org
Message was sent through the cbm-hackers mailing list
Archive generated by hypermail 2.1.1.