Problems with DOS using an Y-type connection

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

Re: Problems with DOS using an Y-type connection

Post by pser1 »

in fact the Dragon-MMC emulates both the Dragon-DOS and Extended Basic if I remember correctly
It seems to be a DDOS1.0 derivative, but there must be some changes (hard/soft) that make it
behave in a different way than the strandard DOS1.x do
When we start one of these from an SDC bank, problems keep arising, only DOS4.2 solves all of them
regards
pere
dublevay
Posts: 80
Joined: Wed Jan 23, 2019 3:41 pm

Re: Problems with DOS using an Y-type connection

Post by dublevay »

And I can confirm it's not a power issue. I am using one of Prime's replacement power boards, rated at 2A or higher (I think) on the 5V line.

Sounds like we need Jordi Palet to tell us what he (probably) did to Eurohard DOS 4.2! :lol:
sorchard
Posts: 455
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: Problems with DOS using an Y-type connection

Post by sorchard »

Just guessing because I know very little about any of the hardware involved... At the moment I suspect the differences between the DOS versions is down to a chance ordering of reads and writes, and/or stack contents when the hardware issue occurs.

I assume nmi from the MSX side is disabled until required? Any chance it is firing during startup? That could mess things up.

I would be looking closely at the address decoding in the msx hardware. Are mpu reads gated with E? Are mpu writes gated via E or Q? Can you get an oscilloscope onto the msx chip selects to verify they are not getting briefly selected when /p2 is active?
Stew
dublevay
Posts: 80
Joined: Wed Jan 23, 2019 3:41 pm

Re: Problems with DOS using an Y-type connection

Post by dublevay »

Hmmm...you may be on to something here - and Prime has mentioned this before actually, although because it worked in most circumstances, I thought it was probably OK.

I am reading and writing on E=1. P2 is gated as part of the 'MPI_active' argument.

Code: Select all

// Set port addressing
	
	assign V9958_addressed = ((Addr>=16'hFF78 && Addr<=16'hFF7B) && MPI_notset) || ((Addr>=16'hFF58 && Addr<=16'hFF5B) && MPI_active);
	assign YM2413_addressed = ((Addr==16'hFF76 || Addr==16'hFF77) && MPI_notset) || ((Addr==16'hFF56 || Addr==16'hFF57) && MPI_active); //7e & 7f  became 76 & 77.
	assign YM2149_reg_addressed = (Addr==16'hFF7C && MPI_notset) || (Addr==16'hFF5C && MPI_active);	
	assign YM2149_data_addressed = (Addr==16'hFF7D && MPI_notset) || (Addr==16'hFF5D && MPI_active);	
	assign DMSX2_conf_addressed = (Addr==16'hFF7E && MPI_notset) || (Addr==16'hFF5E && MPI_active);	//55 became 5e.

	assign V9958_CSW = ~(V9958_addressed & WR & E);
	assign V9958_CSR = ~(V9958_addressed & RD & E);
	assign YM2413_CS = ~(YM2413_addressed & WR & E);
	assign YM2149_BC1 = ((YM2149_reg_addressed & WR) || (YM2149_data_addressed & RD)) & E;
	assign YM2149_BDIR = ((YM2149_reg_addressed & WR) || (YM2149_data_addressed & WR)) & E;	
But why would it be causing any issues when the DMSX2 is effectively idle?
bluearcus
Posts: 86
Joined: Wed Sep 07, 2016 4:45 pm

Re: Problems with DOS using an Y-type connection

Post by bluearcus »

I have an upgraded 2A 5V power setup as well... and it seems to improve reliability of OS9 CoCoSDC booting, but it definitely doesn't categorically fix it.

A cold Dragon 64 is poor, a Dragon 32(64) is generally better, and the machines improve as they warm up. On those lines, I've done some recapping in the area of the 6809, SAM and PIA handling the FIRQ, and I perceive that maybe improves things slightly too. But no magic fix so far.

If there's something about Superdos E6 or Eurohard DragonDOS that makes a definitive difference to these 'brown out' style SDC errors, that would be brilliant to find out. My suspicion is that it is something that the SDC is doing (it is very liberal with it's interpretation of the FIRQ timing - it pushes the FIRQ line low very very early) which is causing a brown-out on the main board.

Another attack I have considered is to get Darren Atkinson to make a test firmware or two which sticks more closely to a real double density DRQ interrupt timing - and see if that improves things.
sorchard
Posts: 455
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: Problems with DOS using an Y-type connection

Post by sorchard »

dublevay wrote: Wed Dec 30, 2020 11:26 pm But why would it be causing any issues when the DMSX2 is effectively idle?
I was thinking that maybe the DMSX2 was being addressed when it shouldn't because the mpu address bus is not always valid, but as you are gating via e this shouldn't be an issue. (The DOS addresses being so similar to the DMSX2 increases the chance of spurious triggering as the address bus changes shortly after e falls)

A write on falling e is possible assuming 30ns of valid data is enough. A write on falling q gets plenty of data hold time.

Another thing I would try with the DMSX2 is removing the graphic & sound ICs and see what difference that makes. Then try each IC in isolation to see which one is conflicting.

Has anyone tried it with a real disk cart instead of the CoCoSDC? If the DragonMMC works, and other disk adapters work, then it's not looking good for the CoCoSDC.
Stew
dublevay
Posts: 80
Joined: Wed Jan 23, 2019 3:41 pm

Re: Problems with DOS using an Y-type connection

Post by dublevay »

Thanks Stew. I can try it with DragonDrive, which is as close to a real drive as I am going to get right now. Can also try it with the ICs out as well, and see what that does.
dublevay
Posts: 80
Joined: Wed Jan 23, 2019 3:41 pm

Re: Problems with DOS using an Y-type connection

Post by dublevay »

bluearcus wrote: Wed Dec 30, 2020 11:27 pm If there's something about Superdos E6 or Eurohard DragonDOS that makes a definitive difference to these 'brown out' style SDC errors, that would be brilliant to find out. My suspicion is that it is something that the SDC is doing (it is very liberal with it's interpretation of the FIRQ timing - it pushes the FIRQ line low very very early) which is causing a brown-out on the main board.
With OS9, I thought someone came to the conclusion that it was something to do with a really bad setting of the RTC when OS9 boots? Might have been Rob Schofield?
bluearcus
Posts: 86
Joined: Wed Sep 07, 2016 4:45 pm

Re: Problems with DOS using an Y-type connection

Post by bluearcus »

I don't think the clock module has anything to do with it... that's late on in the boot process, and the crashes appear to be almost immediately after loading the boot track, or during the boot module's attempt to load the OS9Boot file.

But I have observed very very similar crashes with all disk booting on the SDC, not just OS9 (for example autorunning of SDCExplorer)...
dublevay
Posts: 80
Joined: Wed Jan 23, 2019 3:41 pm

Re: Problems with DOS using an Y-type connection

Post by dublevay »

Have just tried taking all of the MSX chips out - and the same issues occur. So it must be something to do with the combination of the CocoSDC, most DOS versions and the CPLD itself!!

The only thing really left that the board is outputting is DSD for the FF7x range, so I'm about to update the CPLD again to disable that for now.
Post Reply