SegaCD main routine
Posted: Mon Jul 09, 2007 9:21 pm
Hi you all.
Finally, I've decided to ask this one big question ? How does the SegaCD actually runs ?
I mean, from a cartridge point of view, it's damn so simple. Offset $4 is the PC initial value, the 68k reads from it and goes on. After each instruction, you just increment PC, there you are.
What about the CD ?
I mean, I can't make something like :
BSR loop2
if loop2 isn't alreday in memory.
So, how ?
I've thought about a lot of things, the most possible one would be : the subCPU loads (but how ?!?) data from CD, put it into its huge RAM, and passes it to the mainCPU thanks to the Comm Port.
But then, how does the subCPU where to load data from ? Do I have to tell it "go to sector 54126" ? Or do I have to ask it "copy data from $78EF 4520 to Comm Port" ?
It's even so intersting since I guess the same routine must bu used for Saturn, and everything else.
Please, teach me.
Finally, I've decided to ask this one big question ? How does the SegaCD actually runs ?
I mean, from a cartridge point of view, it's damn so simple. Offset $4 is the PC initial value, the 68k reads from it and goes on. After each instruction, you just increment PC, there you are.
What about the CD ?
I mean, I can't make something like :
BSR loop2
if loop2 isn't alreday in memory.
So, how ?
I've thought about a lot of things, the most possible one would be : the subCPU loads (but how ?!?) data from CD, put it into its huge RAM, and passes it to the mainCPU thanks to the Comm Port.
But then, how does the subCPU where to load data from ? Do I have to tell it "go to sector 54126" ? Or do I have to ask it "copy data from $78EF 4520 to Comm Port" ?
It's even so intersting since I guess the same routine must bu used for Saturn, and everything else.
Please, teach me.