News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Bryce

DMA Problem with ROMBoards

Started by Bryce, 18:18, 12 March 12

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Bryce

Hi all,
     while experimenting with some hardware here, I encountered a strange/interesting issue with the CPC6128+. If I connect a MegaFlash to the Plus and then try to run something that uses DMA Sound, the CPC freezes. I've connected other ROMBoards and they do exactly the same, so it's not a dodgy MegaFlash. I also didn't have ROMs 0 or 7 enabled on the MegaFlash. I can see no hardware reason for this, unless it's a bug in the ASIC. Does anyone else have a Plus and a ROMBoard to test this? Is it just my Plus, or is it a design bug?

Bryce.

andycadley

Curious. I haven't got a ROMboard to test it with, but it seems odd that only DMA sound would cause it. Are you trying any particular software out? Does plus stuff which doesn't use DMA sound all work fine?

Bryce

I'm running the Diagnostic Cartridge. Everything including Sprites, 4096 Colours etc work fine. If a ROMBoard is plugged in the DMA Sound test freezes just before it should start playing music. This even happens if the ROMBoard has no ROMs installed. If I remove the ROMBoard the test runs as it should. The plus has no further mods or expansions connected at the time.

Bryce.

andycadley

Does it crash if you try Burnin' Rubber? That uses the DMA for the tyre screech effect, so if it crashes then it probably rules out something like the diagnostics cart just doing something odd, like paging a ROM that wasn't expected or something.
I would have thought someone would have tried a ROMboard on a plus at some point in the past and I don't recall having ever heard of the issue before. I suppose it's not beyond the bounds of possibility that the DMA is putting values on the bus that might upset external hardware though.

TFM

Quote from: Bryce on 18:18, 12 March 12
Hi all,
     while experimenting with some hardware here, I encountered a strange/interesting issue with the CPC6128+. If I connect a MegaFlash to the Plus and then try to run something that uses DMA Sound, the CPC freezes. I've connected other ROMBoards and they do exactly the same, so it's not a dodgy MegaFlash. I also didn't have ROMs 0 or 7 enabled on the MegaFlash. I can see no hardware reason for this, unless it's a bug in the ASIC. Does anyone else have a Plus and a ROMBoard to test this? Is it just my Plus, or is it a design bug?

Bryce.

Well, I did run the Cadjo Clan DMA sound demo more often (it extensively uses DMA sound) and I always had connected a ROM-ROM-Box or an Eprom Card, or SF2. I never had problems. Maybe it's your Plus, but more comments on this topic would be beneficial.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

beaker

Quote from: andycadley on 21:08, 12 March 12
Does it crash if you try Burnin' Rubber? That uses the DMA for the tyre screech effect, so if it crashes then it probably rules out something like the diagnostics cart just doing something odd, like paging a ROM that wasn't expected or something.

I just had a quick 10 minute blast on Burnin' Rubber on my 6128+ with the Megaflash plugged in and it was fine...

Bryce

So did I, so it's not the DMA sound, but something the Diagnostic Cartridge is doing. Unfortunately, FOS doea exactly the same freeze on mine. Can you install and start FOS on your MegaFlash and see if it crashes or your Plus?

Bryce.

TFM

Quote from: Bryce on 22:43, 12 March 12
Can you install and start FOS on your MegaFlash and see if it crashes or your Plus?

Bryce.

All 6128 Plus and MegaFlash owners are called for help!  :)


FutureOS Plus does:

- Unlock the ASIC
- Write 256 byte to first hardware sprite
- Change X, Y coordinates of the first hardware sprite according to input devices
- Checks the analogue port constantly (for mouse arrow movement)
- (Therefore the Memory mapped page gets activated / deactivated)

That's all what it does IIRC. Shouldn't be a problem


Differences to Cadjo Clan demo: Mainly the check of the analogue joystick port
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Executioner

It sounds to me like it may be a conflict with the secondary ROM mapping register, although I can't see why FOS would be using that. Does Frogger work with the ROM board?

Bryce

Haven't checked frogger yet.

@TFM: The strange bit is, it's not just the Plus Version of FOS that crashes the Plus, the standard version does the same.

Bryce.

Ygdrazil

@Bryce

you sure move around!  ;D

Quote from: Bryce on 09:21, 13 March 12
Haven't checked frogger yet.

@TFM: The strange bit is, it's not just the Plus Version of FOS that crashes the Plus, the standard version does the same.

Bryce.

beaker

Just tried Frogger with the Megaflash plugged in and seems fine for me. If I get time tonight I'll try to put FOS on the megaflash and give it a go if my simple brain can work out how to do it - I've only just put the HxC as b drive and haven't added anything to the megaflash yet - how lazy am I?  ;D

Bryce

I'm beginning to think that it has something to do with keyboard scanning. The diagnostic Cartridge also starts scanning the keyboard at exactly the same time as it starts the DMA music.

Bryce.

arnoldemu

Quote from: Bryce on 13:27, 13 March 12
I'm beginning to think that it has something to do with keyboard scanning. The diagnostic Cartridge also starts scanning the keyboard at exactly the same time as it starts the DMA music.

Bryce.
it may be a bug in the cartridge.

the test cartridge activates rom 1 in the range &c000-&ffff. I think it means to access &81 to ensure it gets the cartridge page.
this part of the cartridge is meant to contain sound data I think which is copied to ram and played.

the rom in the expansion board takes priority, it then tries to play it.. perhaps it then ends up with an interrupt which is never acknowledged and it locks up.


My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Bryce

Arnoldemu, I tip my my hat in recognition in your general direction. That's the first decent explaination I've heard, why it might not work. Now I need to find out whether this is or a similar bug is why FOS doesn't run, or whether it's something completely different.

Bryce.

TFM

#15
Quote from: Bryce on 09:21, 13 March 12
Haven't checked frogger yet.

@TFM: The strange bit is, it's not just the Plus Version of FOS that crashes the Plus, the standard version does the same.

Bryce.

It uses RAM configuration &7FC3 (a bit unusual), so it's RAM mapping... This comes close to that what the Executioner said. Maybe... something connected to banking. You can play a bit with OUT commands...

Quote from: beaker on 13:15, 13 March 12
If I get time tonight I'll try to put FOS on the megaflash and give it a go if my simple brain can work out how to do it - I've only just put the HxC as b drive ...

Ok, just move the mouse arrow over the letters, click, then click at the DIR icon. Click at a filename and then the RUN icon (but the filename should be a FutureOS program).

Short description here: http://www.colorado-boys-muenchen.de/users/futureos/files/FutureOS_Manual.doc

Some more information here: http://www.colorado-boys-muenchen.de/users/futureos/files/FutureOS%20Handbook.docx

Quote from: arnoldemu on 14:58, 13 March 12
the rom in the expansion board takes priority, it then tries to play it.. perhaps it then ends up with an interrupt which is never acknowledged and it locks up.

Well, wouldn't in this case all ROMs cause troubles?
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Bryce

Do both Versions of FOS (Plus and standard) do this?

Bryce.

TFM

Quote from: Bryce on 15:53, 13 March 12
Do both Versions of FOS (Plus and standard) do this?

Bryce.

Yes, both use RAM config &C3, and also CP/M Plus does it. Just start CP/M Plus and check if it runs, also give SOS a try, it also uses &C3.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Bryce

SOS was my next on the list to try :) I want to try all the previous things on a classic CPC first (other than diagnostics), to rule out any problems with the MegaFlash and the FOS installation, then I will try out SOS (after testing your Init routine of course! :D )

Bryce.

TFM

Thanks' Bryce! Even in the darkest hours you still think about other people first! You'll be always a hero of the CPC scene  :) :) :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Bryce

It's not dark yet, it's only 4:10 here :D

Bryce.

arnoldemu

Quote from: TFM/FS on 15:46, 13 March 12

Well, wouldn't in this case all ROMs cause troubles?

All expansion roms in slot 1 could cause trouble when running the plus diagnostic cart and running the dma sound test, because the rom on the expansion board takes priority over cartridge roms *when* you choose them like a normal rom:

e.g.
ld bc,&df01
out (c),c

compared to the correct way:
ld bc,&df81
out (c),c

which should not cause problems and specifically chooses bank 1 of the cartridge rom.. but then also depends on how the expansion board decodes the rom select bits. (does it only decode lower 4 bits... and then the effect is the same.. or...)

and it also depends on what data they in them at the location the diagnostic cart wants to read.

the lockup sounds like it could be an interrupt that is never acknowledged.. but I don't know without simulating it.

As for the c3 problem, this is likely to be different?
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Bryce

Unlike cheaper ROMBoards from the 80's/90's the MegaFlash does decode all 8 bits from D0 to D7, does this mean it shouldn't have this issue?

Bryce.

andycadley

It means it should be fine if the cartridge software is doing what it's supposed to, but might go wrong if the cartridge software is trying to page it's ROMs using ROM numbers  < 15 (but there really isn't anything you could do about that)

beaker

#24
Quote from: Bryce on 22:43, 12 March 12
So did I, so it's not the DMA sound, but something the Diagnostic Cartridge is doing. Unfortunately, FOS doea exactly the same freeze on mine. Can you install and start FOS on your MegaFlash and see if it crashes or your Plus?

Bryce.

Thanks TFM for the document links.

OK, I want to check I am not being stupid as mine also crashed as well as soon as I loaded the desktop. Let me know if there's a better way of doing this as I am guessing all the way here. I downloaded FutureOS_System_.8_Preview!!!.zip from FutureOS - The revolutionary UltraOS for the CPC6128 and CPCPlus and extracted 180 FutureOS-ROMs .8 English 2011-10-10.dsk which I opened in the HxC floppy emulator software and exported to a .hfe file. I then used disckit3 in cpm to copy the image from the HxC to a real floppy in drive a. First I tried to use the rom manger from basic (-rma) to copy the rom images myself but that didn't really work when I typed |fdesk so I ran the disc.bas and chose option 7 even though it was meant for the original 6128. This put the roms in the following positions:

[attach=2]

When I boot up the CPC I get this:

[attach=3]

When I run |fdesk I get the following screen but the CPC appears frozen. The pointer won't move using either the cursor keys nor the using the direction buttons on the pad.

[attach=4]

Was this what you were expecting Bryce? Sorry I can't be more help; I am not hugely knowledgable about the CPC having only really used the 464 as a games machine as a kid...

Powered by SMFPacks Menu Editor Mod