XRoar support for the RACE cage (4 slots)

A place to discuss everything Dragon related that doesn't fall into the other categories.
Post Reply
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

XRoar support for the RACE cage (4 slots)

Post by pser1 »

Hello Ciaran,
back home and beginning to make a few tests with your last XRoar version supporting the RACE module
I have started with DOS50E in slot 0 and Orchestra-90 in slot 3
The DOS starts flawlessly, I do mount a disk with lots of Orchestra files and then try to switch to slot3
and start the Orchestra ROM
I issue POKE&HFEFF,3:EXEC&HC000 but this uses to clear the screen and just show the std Basic message
Issuing again EXEC&HC000 uses to start the Orchestra, but then I cannot read the disks ...
Finally I saw the light :-(
The problem is that my Orchestra-90 version for the Dragon switches to the disk slot but expecting that
we have the Tandy MultiPort there, not the RACE, so I *must* create an Orchestra-90 version that uses
the &HFEFF address instead of the &HFF7F ... and of course this will happen with any other software
that currently works well on a multipack!
Will give it a try when I have the time to recompile that ROM
cheers
pere

Ps By the way, is there any chance to have the RACE cage start slot3 instead slot0
I think that telling so in the bat file makes no difference. Always slot 0 gets started ...
sixxie
Posts: 1346
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: XRoar support for the RACE cage (4 slots)

Post by sixxie »

pser1 wrote: Thu Aug 26, 2021 11:25 am Ps By the way, is there any chance to have the RACE cage start slot3 instead slot0
I think that telling so in the bat file makes no difference. Always slot 0 gets started ...
Oh no problem at all - is that what the real thing does?
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar support for the RACE cage (4 slots)

Post by pser1 »

Hello,
I cannot tell because I am not fortunate enough to have one of the RACE expansions :-(
In case Tony Jewell (or any other RACE user) has an Orchestra-90 or the CoCo-DAC by Ed Snider
that comes with the Dragon converted ROM, he could make some tests but for sure I don't expect
it to work, because I have modified the DP50E to use the RACE configuration address but
Orchestra uses the Tandy one ... I am sure that we must match them to make them work together
cheers!
pere
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar support for the RACE cage (4 slots)

Post by pser1 »

Hi Ciaran,
had the time to re-compile Orchestra-90 so that it POKEs &Hfeff instead of &Hff7f but doesn't solve the problem.
The Tandy MPI saves in the config byte both the /SCS (hardware) and the /CTS (ROM) slot so we have the chance to
keep the hardware addressed at $ff40-$ff5f from slot 0 and Orchestra-90 in slot3
But RACE doesn't allow for that, we just may change the 'current' slot to the desired one and this means immediately
that the ROM slot is 'lost' and program hangs.
The code I have changed to support RACE is this

Code: Select all

; regA come with $70,$71,$72,$73
CmdSlot	suba	#$70						; convert into 0-1-2-3 (low nibble)
	IF MPI
			ldb	>$ff7f					; get actual MPI configuration
			andb	#$f0						; save high nibble
			pshs	b							; onto stack
			adda	,s+						; add high nibble and clean stack
			sta	>$ff7f					; update MPI variable
	ELSE
			sta	>$feff					; set the desired slot
	ENDIF
			bra	cmP01						; exit
Will try to investigate if a switch to MAP1, so keeping the ROM in RAM could help solve that problem ...
any idea/hint will be highly appreciated
regards
pere
sixxie
Posts: 1346
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: XRoar support for the RACE cage (4 slots)

Post by sixxie »

Yeah, the other thing the RACE doesn't do - according to the archive page on it - is support READing from its selection register (indeed, that page claims that a READ also selects a different slot, almost certainly based on whatever happened to be on the data bus).

Which means you'd need to keep track of your slot selection somewhere else if you needed that - and that there's no real way of telling which slot you're running from.
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar support for the RACE cage (4 slots)

Post by pser1 »

sixxie wrote: Thu Aug 26, 2021 6:19 pm Yeah, the other thing the RACE doesn't do - according to the archive page on it - is support READing from its selection register (indeed, that page claims that a READ also selects a different slot, almost certainly based on whatever happened to be on the data bus).
Which means you'd need to keep track of your slot selection somewhere else if you needed that - and that there's no real way of telling which slot you're running from.
Hi,
this is not a problem, in DP50Ev0.2515 I keep a copy of the values POKEd to &Hfeff so that I can read this at any point,
but as it only uses the low nibble to know the connected slot, there is no way to save and keep alive the ROM when changing
to another hardware device ...
I have tried to switch to MAP1 but then Orchestra-90 hangs :-(
There must be some kind of detection trick inside the code that doesn't accept to work from RAM ... I haven't looked for that
because I just modified some commands to be compatible with Dragon, specially the disk routines and most of the original
code is still uncommented, so another work to do ...
Right now I am in some projects that do not allow me to open another line ... maybe in the near future, who knows
Anyway, the POKE&HFEFF,3:EXEC&HC000 works perfectly, so the RACE is well emulated in XRoar!
thanks a lot
cheers!
pere
sixxie
Posts: 1346
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: XRoar support for the RACE cage (4 slots)

Post by sixxie »

Coincidentally, I just had to fix something in the MPI support - FIRQs were getting through whichever slot was selected, and that's wrong!

Of course, I don't know what the RACE's behaviour is, but for now it inherits the "fix".
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar support for the RACE cage (4 slots)

Post by pser1 »

sixxie wrote: Thu Aug 26, 2021 8:27 pm Coincidentally, I just had to fix something in the MPI support - FIRQs were getting through whichever slot was selected, and that's wrong!
Of course, I don't know what the RACE's behaviour is, but for now it inherits the "fix".
I have downloaded the last snapshot and tested it (64bits Windows)
Same behaviour as previous one.
Once entered POKE&HFEFF,3:EXEC&HC002 Orchestra-90 starts but hangs, since I have added a routine that switches to MAP1
so working in RAM while copying ROMs from $8000 till $efff so that they are not lost while changing slots
cheers
pere
tjewell
Posts: 346
Joined: Mon Oct 19, 2009 4:58 pm
Location: Cambridge, England

Re: XRoar support for the RACE cage (4 slots)

Post by tjewell »

Just to let you know I have a RACE and an Orch-90 cart (both original and Ed's new one), so happy to test anything anyone wants tested on real hardware.

And indeed, you can't read the currently used slot - and yes, reading &HFEFF will change the active slot!
Post Reply