stardot / b-em

An opensource BBC Micro emulator for Win32 and Linux
http://stardot.org.uk/forums/viewtopic.php?f=4&t=10823
GNU General Public License v2.0
112 stars 57 forks source link

Disc not working #131

Closed bodhi-baum closed 3 years ago

bodhi-baum commented 3 years ago

Running latest b-em under Linux. Trying to see a directory via CAT or . lets the floppy sound occure but nothing more happens and the program does nothing more.

SteveFosdick commented 3 years ago

Can you help me reproduce this, please? What disc image have you loaded into the drive? If it's not a common one, can you attach it to this bug report? What model are you emulating when this happens? Could you check which DFS/ADFS version is running with *HELP?

bodhi-baum commented 3 years ago

Hello, I did a bit of testing and this are the results: Working: BBC B w/8271 FDC, BBC B w/opus 1770 FDC, BBC B w/ Solidisc 1770 FDC, BBC B w/watford 1770 FDC, BBC B+ 128k, BBC B+ 64k, BBC B, 65C02, Acorn 1770, BBC Master 128, BBC Master 128 w/MOS 3.22, BBC Master 128 w/MOS 3.5, BBC Master 128 w/MOS 3.52 and BBC Master Turbo

Not working: BBC B German, BBc w/1770 FDC, BBC B w/OS 0.1, BBC B with 65C02, no FDC

BBC Master 512 shows Disc error 50 at :0/000000

I used an .ssd for all of this. Hope this helps.

bodhi-baum commented 3 years ago

As I´m not familiar with BBC Micro I don´t know if it maybe is normal for some models not to react, but that BBC w/1770 FDC should work as it has a FDC 1770 drive emulated, shouldn´t it?

SteveFosdick commented 3 years ago

You're right that some of these don't work with disc.

OS 0.1 did not support sideways ROM and, as DFS is implemented as a sideways ROM, discs won't work with OS 0.1.

BBC B with 65C02 and no FDC doesn't have a floppy disc controller chip at all and no DFS in the ROM configuration. As a B-Em emulated machine it is designed for use with VDFS, a filing system that shares the host's files rather than working with disc images. It would also work with tape.

The Master 512 has an 80186 2nd processor and will try to boot into DOS so that won't work if the disc you have loaded is not a DOS disc for that 2nd processor.

The others I will look into later.

SteveFosdick commented 3 years ago

Ok, testing the ones where I know of no reason why they should not work, each case using the Welcone Disc as the test as this image comes with B-Em.

Gernan BBC B: ss1 then ss2

BBC B with WD1770: ss3 then ss4

Which SSD are you using? Can you attach it? Or can you re-test these models to see if you get the same results I do with the bundled welcome disc.

bodhi-baum commented 3 years ago

Where do I find this welcme disc?

bodhi-baum commented 3 years ago

Here is the file I used anyway. Disc157-TrickysoftPacManCB.ssd.zip

SteveFosdick commented 3 years ago

The welcome disc is bundle with B-Em in the discs directory as you clone it from GitHub.

The Tricky PacMan game on that disc works fine for me using the Models you were having trouble but which are supposed to work: German BBC B and Model B with WD1770.

When you say the disc noise starts and nothing further happens, does the disc noise continue all the time nothing else is happening, or does it stop again?

bodhi-baum commented 3 years ago

Hmm, I'm a bit embarrassed, but now it works for me too. I must have made a mistake in operating the programme. As they say in German: "Das Problem sitzt meist vor dem Monitor".

bodhi-baum commented 3 years ago

The noise stops,btw.

SteveFosdick commented 3 years ago

If the noise stops really quickly it is possible that this could be caused by file locking. On Linux, as the disc spins up b-em takes out an advisory file lock on the SSD file. This is so if you have another instance of b-em running also with the same disc image loaded, only one of them accesses it at once and there is no corruption. The lock is released when the disc spins down.

If the problem comes back, to see if file locking is the cause, you could execute the 'lslocks' command in a terminal window and check the output. If you need help you could post the output here.