Problems with DOS using an Y-type connection

For the discussion of all hardware related topics.
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Problems with DOS using an Y-type connection

Post by pser1 »

Hello,
I am coding programms to run on a Dragon 64 and the module Dragon-MSX2+ by John Whitworth
As I am streaming data from a CoCo-SDC, my setup consists right now of an "oojamaflip" (by John Withworth) so that the CoCo-SDC
sits inside the Dragon case and then the MSX2+ module in the expansion port. That way both modules are parallel connected.
Well, if I do start with DosPlus50 or any Dragon Data DDOS 1.x, as soon as I access the SDC, for instance with DIR or LOAD, the result
uses to be garbage characters on the screen and most of the time the computer hangs and needs reset or power cycling :-(
Much to our surprise, if we do use SuperDosE8 or Eurohard DOS4.2 everything works flawlessly! How come does this work?

Another chance is modifying the setup and add a multiport, for instance the mini-MPI by Ed Snider. This simple change makes
all of the disk accesses work with no issues no matter the DOS we have started with.
So the problem seems to have two solutions. One software just changing the DOS, this demonstrates that some DOS versions behave
very differently from the others. But cannot tell what is that difference that helps just a few versions.

But as the fact of adding the MPI solves the problem too, it seems to point to a hardware problem too. Maybe some shared pins with
oojamaflip that now are isolated by the MPI are the responsible for the CoCo-SDC missbehaviour, but which ones?

I am attaching here the unassembled source file for SuperDosE6, made by Phill Harvey-Smith and the unassembled DosPlus5.0 (by Sixxie). I have added the Tandy MPI schematics so that any hardware guru could have a look at it and most probably will discover the problem when it is
not in the setup.
Any hint or idea about any reason that explains the way the two solutions do work will be highly appreciated.
Thanks beforehand
cheers
pere
superdos-e6-03(Phill).zip
Unassembled SuperDOS E6 (by Phill Harvey-Smith)
(34.78 KiB) Downloaded 357 times
DosPlus5.0.zip
unassembled DosPlus5.0 (by Ciaran Anscomb)
(56.35 KiB) Downloaded 376 times
Multi-Pak Interface (26-3124) Schematic (Tandy).zip
std Tandy Multipack for CoCo Computer
(1.46 MiB) Downloaded 354 times
Last edited by pser1 on Wed Dec 30, 2020 6:07 pm, edited 2 times in total.
sorchard
Posts: 530
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: Problems with DOS using an Y-type connection

Post by sorchard »

Hello Pere,

My first thought is that the problem is address contention, but that would mean it's a bad idea to connect any of these devices together through a Y-splitter.

What is the memory map of the Dragon-MSX2+ ?
Stew
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Problems with DOS using an Y-type connection

Post by pser1 »

Hi Stewart,
pleased to hear from you again!!
In fact the two modules are set in parallel using the oojamaflip that was built and sold by John Whitworth ...
The memory mapping for ports is that one:

Code: Select all

				; V9958 registers
PDATA		equ	$ff58		; VRAM data - Port #0
PCONF		equ	$ff59		; status, setup and VRAM address - Port #1
PPAL		equ	$ff5a		; palette port (via Reg#16)- Port #2
PINDA		equ	$ff5b		; indirect addressing (through Reg#17) - Port #3
				; YM2149 registers
FMPORT		equ	$ff5c		; PSG YM2149 register select port
FMDATA		equ	$ff5d		; PSG YM2149 data port 
				; YM2413 registers
VREG		equ	$ff56		; register Port for YM2413
VDATA		equ	$ff57		; data Port for YM2413
But John is testing the same setup using addresses in the range $ff76 to $ff7d with same result.
Remember that using Eurohard Dos4.2 the problems do disappear!
cheers!

Happy New Year!
pere
sorchard
Posts: 530
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: Problems with DOS using an Y-type connection

Post by sorchard »

Happy new year to you too Pere!

I think the CoCoSDC uses the SCS (P2) line in the cartridge port for its address decoding which might explain why there are problems with the address range $ff56 - $ff5d: Reading $ff56 could read from the CoCoSDC and the YM2413 at the same time. (The YM2413 outputs test data, unless this has been specifically designed away in the Dragon-MSX hardware)

I can't explain why there should be a problem with $ff76 - $ff7d. That doesn't make any sense to me.

Does the MSX hardware use interrupts?
Stew
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Problems with DOS using an Y-type connection

Post by pser1 »

Hi Stew,
thanks a lot for your help.
You are right, the SDC could react for any address from $ff40-$ff5f so could be problems with the MSX2+ module,
but what I have explained happens with *no* use at all of the module. Just its presence on the setup creates the
problems when accessing the SDC, but *only* with DPlus5.0 and DDOS1.x
I don't know why the SuperDosE8 and the Eurohard4.2 do work without issues
And , of course, just inserting the mini-MPI allows any kind of DOS to be used with no problems
The worst new is that the range $ff7x fails in John's setup and this really makes no sense concerning addresses
I will need to talk to John Whitworth, maybe that P2 pin is enabled even when the module is not in use
cheers!
pere

@John Whitworth
Hi John, could you tell us if the P2 pin (CTS) is active by default in the CPLD code (for both address ranges)?
dublevay
Posts: 173
Joined: Wed Jan 23, 2019 3:41 pm

Re: Problems with DOS using an Y-type connection

Post by dublevay »

Thanks for starting this conversation off Pere, and thanks for responding Stew.

So as Pere says, there are two modes for the DMSX2 board. Originally $FF5x was meant for CocoSDC use with an MPI. And $FF7x was meant for DragonMMC use with the Oojamaflip.

Both of those original use cases work flawlessly.

Pere then sent me some of his fabulous high res, high colour images that he'd tested with the MPI and the $FF5x range, but with code that would use the FF7x so that I could try it out with the Oojamflip and the CocoSDC. That's when I re-discovered the 'different DOS' issue (we'd already seen it on the original FF7x-only boards when used with Oojamaflip and CocoSDC).

Within the DMSX2 decoding logic...

INPUT:
$FF5x and $FF7x addressing is mutually exclusive, controlled by jumper setting.
  • for $FF5x, the full port addresses are gated with /P2 to ensure MPI compatibility.
  • for $FF7x, the full port addresses are used to decode, but are not gated with /P2.
OUTPUT:
  • for $FF5x, /DSD is always Hi-Z.
  • for $FF7x, /DSD is pulled low only when either of the audio chips is addressed.
So when using the CocoSDC with audio circuitry, I would fully expect to see some sort of issue, but we have only been testing video, or with the DMSX2 idle. I'll be adding a /DSD jumper to our next boards, to allow override of this.
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Problems with DOS using an Y-type connection

Post by pser1 »

ok, besides that hardware puzzle, we have the surprise that in both setup configurations using the oojamaflip, so having
the modules in parallel, problems do arise with certain DOS versions whilst a few ones do work flawlessly.
How come a DOS change can overcome a hardware conflict?
regards
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Problems with DOS using an Y-type connection

Post by pser1 »

Hi Stew,
I forgot to answer your question about interrupts ...
The V9958 sends an interrupt every frame (/FS) to the computer via the NMI pin
We know that this could produce abnormal read/write results as this interrupt is
the one that ends the reading loop (that uses FIRQ)
regards
dublevay
Posts: 173
Joined: Wed Jan 23, 2019 3:41 pm

Re: Problems with DOS using an Y-type connection

Post by dublevay »

And just to add to that of course, using the DragonMMC - which is an earlier DragonDOS I think, everything works fine with the Oojamaflip.
bluearcus
Posts: 142
Joined: Wed Sep 07, 2016 4:45 pm

Re: Problems with DOS using an Y-type connection

Post by bluearcus »

This feels to me like the same SDC 'I wonder, is it a power issue' problem which frequently prevents OS9 booting on Dragon 64s...

The fact the EH DragonDOS and SuperDOS E6 seem to be hugely more reliable gives some additional testing options to try.
Post Reply