b3rendsh / msxdos2s

MSXDOS 2 smaller 32K rom and updated BEER IDE driver
9 stars 0 forks source link

MSX2 machine without internal floppy fails to boot with both DOS 2.2 and BEER 2.0 installed #2

Closed b3rendsh closed 7 months ago

b3rendsh commented 7 months ago

The following machine configuration in OpenMSX will faill to boot: Yamaha YS-503IIIR, MSXDOS 2.2 cart in slot 1 and Solid BEER IDE in cart2 with the MSXMENU V1.68 diskimage and with the BEER 2.0 rom applied as hddrom.rom in the OpenMSX/share/extensions folder. A "Not enough memory" will be displayed.

The solution is to remove the customized drive assignment routines in the BEER 2.0 disk system as commented in the floppy part 1..3 in the source code. This will also make the BEER interface more compliant with the standard way how drives are assigned when MSXDOS 2.2 or higher is the master disk system.

b3rendsh commented 7 months ago

Fixed in version 2.0.1. This also removes limitations in which slot the beer interface should be if there is another disk system in the machine with a higher DOS version.

ATroubleshooter commented 7 months ago

hi, @b3rendsh Looks like MiSiX no longer starts up with this firmware update. screenshot

Locks right here. Thank you!

b3rendsh commented 7 months ago

That's a bummer. For this use case it looks like you need the customized BEER 1.9 drive assignment and to work with DOS 2.2 it must be removed. We can't have it both ways, or at least it's not something I can change. If you compile with the FLOPPY option then you get the 1.9 drive assignment back. Maybe it's possible to configure MiSiX differently.

ATroubleshooter commented 7 months ago

@b3rendsh Hi!

I assembled it with FLOPPY option. MiSiX now starts up fine.

Thank you.

b3rendsh commented 7 months ago

@ATroubleshooter When looking into Misix boot process I noticed the Default DPB label in the beer driver was offset 1 byte compared to the standard DOS 1.0 structure. I have changed this and am now able to boot the Misix disk image without the FLOPPY option. Booting with MSXDOS or CP/M should be unaffected by this update, and MSXDOS 2.2 doesn't use the Default DPB.

ATroubleshooter commented 7 months ago

@ATroubleshooter When looking into Misix boot process I noticed the Default DPB label in the beer driver was offset 1 byte compared to the standard DOS 1.0 structure. I have changed this and am now able to boot the Misix disk image without the FLOPPY option. Booting with MSXDOS or CP/M should be unaffected by this update, and MSXDOS 2.2 doesn't use the Default DPB.

That's great, @b3rendsh !

Hope there's really gonna be no regressions. I'll test it ASAP.

Thank you!

ATroubleshooter commented 7 months ago

@b3rendsh Hi!

Alright, I tested it. Looks like it works. Drive letters go where they should. Works with DOS2.20 from the test disk either, only there's something wrong with drive C:

screeshot

But, what I have long wanted to point out, the updated ROM still has the very same issue as all of your previous versions (I noticed it since 2.00), i.e. - for some reason with MiSiX and with CP/M Plus we're getting locked when trying to change to non-existent drive letters (usually E:), like this:

screeshot

whereas the legacy(1.9) versions of the firmware were just giving an error:

screeshot

It would be just fine if it gets fixed.

Thank you!

ATroubleshooter commented 7 months ago

@b3rendsh

But, what I have long wanted to point out, the updated ROM still has the very same issue as all of your previous versions (I noticed it since 2.00), i.e. - for some reason with MiSiX and with CP/M Plus we're getting locked when trying to change to non-existent drive letters (usually E:), like this:

Though for MiSiX you can change to E:, you're getting locked when you're trying to DIR on it.

Thank you

b3rendsh commented 7 months ago

@ATroubleshooter Thanks for your extensive test report, it's very helpful. I also noticed there's this extra phantom drive (E:). It shouldn't be created in the first place and if there is a phantom drive then the system should return an invalid drive error if you try to access it. I will create a new issue and investigate.

ytsejam78 commented 7 months ago

Hello, remember if you are testing MISIX there's always one extra drive which is the ramdisk. How MISIX assigns a letter to this drive I have no idea. Depending on the system, and provided the disk has 4 partitions (A,B,C,D) it could be assigned E: or H:

b3rendsh commented 7 months ago

Hello, remember if you are testing MISIX there's always one extra drive which is the ramdisk. How MISIX assigns a letter to this drive I have no idea. Depending on the system, and provided the disk has 4 partitions (A,B,C,D) it could be assigned E: or H:

The MiSiX BIOS uses the system variable NMBDRV that contains the total number of drives in the machine, as determined by the master disk system. It will add 1 to this value and and use that as drive letter (1=A, 2=B, etc.) for the ramdisk i.e. the first free drive letter will be used for the ramdisk. So indeed something to test, the assigned ramdisk letter probably changes again when the phantom drive issue is resolved.