A DOSPlus Extender for Drivewire & CoCo-SDC

A place to discuss everything Dragon related that doesn't fall into the other categories.
MaestroSoftware
Posts: 24
Joined: Wed Jan 01, 2014 6:59 pm

Re: A DOSPlus Extender for Drivewire & CoCo-SDC

Post by MaestroSoftware »

Hi Tony.

I didn't quite get it : do you have BOTH a Race Expansion Cage and a Multipak, or just the Race? If it's the former, I'm getting really jealous.

I haven't started adapting DosPlusExtender for the Race Board (I've got very little Dragon-time and spend it all on my hard drive project).

I've started browsing through Pere's code and it's the most thoroughly documented code I've ever read (and I've been working in IT for the last 23 years). Anyhow, I don't think there's any way to know the "current slot" for a Race Board .So, the problem I see adapting DosPlusExtender occurs at bootup. The initialization code will be unable to know from which Race slot it is being run and get back to that same slot after checking all slots for presence of FDD/CocoSDC. From a first - pretty rough - analysis, I guess I'll have to assume that DosPlusExtender is being started from the only CocoSDC plugged in the Race board. I thought about slightly perverse setups (based on my current use of DosPlusExtender booted from RAM and run in RAM to perform memory block copies while the current slot is occupied by my hard drive controller) in which this assumption does not hold.

Is this assumption acceptable for you?

Philippe
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: A DOSPlus Extender for Drivewire & CoCo-SDC

Post by pser1 »

MaestroSoftware wrote: Sun May 09, 2021 1:50 am Pere, you wondered if you are the only Dragon user with physical floppies, a CocoSDC and a MultiPak.
Maybe you are but I will receive my CocoSDC soon and I do have a Race-electronics kind of Multipak for the Dragon ( http://worldofdragon.org/index.php?titl ... nsion_Cage ). When I get my CocoSDC, I'll certainly try and setup/patch/recompile your Dosplus Extender to handle my CocoSDC/floppy configuration.

I haven't looked deeply at the code yet, but the Race Expansion Cage is less subtle than the Multipak. Whereas the MPI does have a hardware switch, can select different slots for CTS and SCS, and allows for PEEKing the current slot, the Race Expansion only accepts

Code: Select all

POKE &HFEFF,x 
with x being the selected slot.

Well, I'll give it a try... and I might be the only Dragon user with physical floppies, a CocoSDC, and a Race Expansion Board.
Hello Philippe,
having failed all tries to send a zip file using my Thunderbird, I am attaching it here
cheers!
Pack.ZIP
(535.24 KiB) Downloaded 309 times
tjewell
Posts: 346
Joined: Mon Oct 19, 2009 4:58 pm
Location: Cambridge, England

Re: A DOSPlus Extender for Drivewire & CoCo-SDC

Post by tjewell »

MaestroSoftware wrote: Thu May 20, 2021 4:20 pm I didn't quite get it : do you have BOTH a Race Expansion Cage and a Multipak, or just the Race? If it's the former, I'm getting really jealous.
Hi Philippe - I hate to make you jealous, but yes, I do have both! I will admit, I picked up the Race as a curiosity - it popped up on eBay a few years back. I've never really used it in anger, except to test that it worked okay (it does). The multipak clone is a little more flexible, and, well smaller! So that gets more use.

I guess you could get round the problem with not knowing the current slot by presuming that the SDC is always in slot 0, the FDC is always in slot 1, etc? Or is it not that simple?

Cheers, Tony
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: A DOSPlus Extender for Drivewire & CoCo-SDC

Post by pser1 »

tjewell wrote: Wed May 26, 2021 11:52 am I guess you could get round the problem with not knowing the current slot by presuming that the SDC is always in slot 0, the FDC is always in slot 1, etc? Or is it not that simple?
Cheers, Tony
Hello Tony!
the DosPlus uses the standard Tandy $FF7F address as slot switch, so POKEing there a value 0-1-2-3 will enable the slot 1-2-3-4
But Philippe needs to use $FEFF instead, so maybe using an Hexadecimal editor (HxD) it could be possible to search and change
all occurrences of $FF7F by $FEFF.
There are some lda $ff7f, ldb $ff7f, sta $ff7f, stb $ff7F even some cmpa $ff7f
Honestly there are a lot of points where this byte is used, so the changes should be done carefully ...
cheers
pere
MaestroSoftware
Posts: 24
Joined: Wed Jan 01, 2014 6:59 pm

Re: A DOSPlus Extender for Drivewire & CoCo-SDC

Post by MaestroSoftware »

Tony: yes indeed I could make the assumption that the CocoSDC is in slot 0, and the FDC in slot 1. Not very elegant, but allows for some quick coding.

Pere: I'm afraid values to be POKEd in FF7F are not the same as FEFF (see https://www.lomont.org/software/misc/co ... rdware.pdf, p.59) And there are a couple of LD and CMP that need to be taken care of. Not the end of the world obviously... when I get my hands on a working Dragon :-(
Last edited by MaestroSoftware on Thu May 27, 2021 1:41 pm, edited 1 time in total.
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: A DOSPlus Extender for Drivewire & CoCo-SDC

Post by pser1 »

MaestroSoftware wrote: Thu May 27, 2021 7:00 am Pere: I'm afraid values to be POKEd in FF7F are not the same as FFEF (see https://www.lomont.org/software/misc/co ... rdware.pdf, p.59) And there are a couple of LD and CMP that need to be taken care of. Not the end of the world obviously... when I get my hands on a working Dragon :-(
Hello Philippe,
in Lomont's document I have just found info about the Tandy Multipack, using $ff7f but I have not found anything about the Race module
that seems to use $feff instead ...
So I cannot see the different values that RACE uses to set a slot as 'selected'
cheers!
pere
MaestroSoftware
Posts: 24
Joined: Wed Jan 01, 2014 6:59 pm

Re: A DOSPlus Extender for Drivewire & CoCo-SDC

Post by MaestroSoftware »

I plan to scan my Race Electronics manual for upload to the archive, but basically : whereas 4 bits are used in address $FF7F for the MPI (2 bits for SCS , 2 bits for CTS), for Race, you just POKE 0, 1, 2 or 3 to $FEFF - and no info can be read from that address
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: A DOSPlus Extender for Drivewire & CoCo-SDC

Post by pser1 »

MaestroSoftware wrote: Thu May 27, 2021 1:32 pm I plan to scan my Race Electronics manual for upload to the archive, but basically : whereas 4 bits are used in address $FF7F for the MPI (2 bits for SCS , 2 bits for CTS), for Race, you just POKE 0, 1, 2 or 3 to $FEFF - and no info can be read from that address
oops, this hurst!
The only way to overcome this will be saving the value in a system variable (1st RAM page)
but this will need changes in the source code and a recompilation, of course ...
cheers!
pere
MaestroSoftware
Posts: 24
Joined: Wed Jan 01, 2014 6:59 pm

Re: A DOSPlus Extender for Drivewire & CoCo-SDC

Post by MaestroSoftware »

I was starting to rewrite the parts of DosPlusExtender that apply to mpi in order to detect the Race expansion and make it behave like an MPI. But there's something fundamental I don't understand: does DosPlusExtender allow you to work simultaneously with physical floppies and CocoSDC on a Dragon 32?

If so, I don't understand how. When you switch the MPI to the floppy disk controller slot, the DOSPlusExtender ROM is not available anymore (but DragonDOS 1.0 for instance - whatever is in the EPROM of your floppy disk controller cartridge - is present at C000-DFFF, instead of DosPlus).
So either you have to copy the floppy disk access routines to RAM in mode 1 (impossible for D32), or you have to copy them to lower RAM (but I don't see that in the source code), or maybe you use the special capability of the MPI to select a different slot for CTS (ROM) and SCS (floppy disk controller I/O addresses) . However, the Race board does NOT have that capability. Pere, can you please explain how you do it? I'm afraid copying all disk access routines to lower memory will be pretty hard (maybe in the two upper buffers, but fitting that in 512 bytes would be a challenge).

Or, in other words, when the current MPI slot is the Floppy Disk Controlle (for floppy access), how can DosPlus(extended) still be present at C000-EFFF in a D32? It seems that you performed a lot of magic, Pere, and I'm not even talking about DW support !
bluearcus
Posts: 142
Joined: Wed Sep 07, 2016 4:45 pm

Re: A DOSPlus Extender for Drivewire & CoCo-SDC

Post by bluearcus »

The !SCS/!P2 and !CTS/!R2 plus !CART signals are controlled by the lower and upper and nibbles respectively of the multipak control register, so it's possible to swap in the physical disk controller but keep the SDC ROM bank the same...

From Ed's Mega Mini MPI design notes...
The upper four bits of the register are the slot number (in binary) that will be connected to /CTS and /CART (these two are bundled together). The lower four bits indicate the slot that is to receive /SCS.

As you can see, although Tandy only produced MPI’s with four slots, the system will accommodate up to sixteen. This is great, because it allows us an easy way to extend MPI functionality and avoid address conflicts by assigning additional hardware to a ‘virtual slot’ somewhere above the usual four.
Post Reply