MSXPi: MSX-DOS driver development help needed

By ronivon

Expert (68)

ronivon's picture

09-03-2017, 20:49

Hi,

I am developing MSX-DOS driver for the MSXPi interface.
I been trying to understand the relationship between these tow routines:
DSKCHG
GETDPB

The docs for these routines are not very much helpful, and reading other drivers helped a little bit but I am still confused in how I use GETDPB to update the DPB with info about the new disk in the drive.

Anyone has gone through this, would give me some advice?
Appreciate, thanks

Login or register to post comments

By st1mpy

Champion (496)

st1mpy's picture

10-03-2017, 02:24

I was reading a doc I found, I'm not sure if it contains good info but, it says things like dpb is updated when msx-dos is started and when the disk media is changed, and goes on to explain the details of 21 byte dpb. (the doc is in Japanese)

By ronivon

Expert (68)

ronivon's picture

10-03-2017, 09:21

This is in english, the better I could find:
http://fms.komkon.org/MSX/Docs/DiskROM1.txt

The one you found has more details?

By Eugeny_Brychkov

Paragon (1080)

Eugeny_Brychkov's picture

24-03-2017, 20:45

In the course of disk access, ROM can call DSKCHG routine to see if media had been changed. If it was not changed, ROM reuses existing DPB. If DSKCHG says that media had been changed, then ROM calls GETDBP so that this routine reads the new media, and fills drive parameter block pointed by the disk-ROM so that disk-ROM starts using new media. What is being put into DPB is another story - either it is dummy data assuming that drive can only have some fixed media configuration, or driver really reads sector 0 (boot sector), or MBR and then boot sector (in case of HDD) to identify configuration and calculate required valued for DPB.

By ronivon

Expert (68)

ronivon's picture

31-03-2017, 13:03

Thanks Eugeny, valuable information.

I am ignoring the DPB routines, and can boot MSXDOS1 from usb stick, on a 16MB partition.
Now I need to enable DPB functions to allow full access to the USB file system in the partition.

Any helpful resource you may know or have, on how to get/calculate DPB for a hdd partition?