Folder as Hard Disk?

Page 1/3
| 2 | 3

By AxelStone

Prophet (2499)

AxelStone's picture

05-06-2016, 23:05

Hi, it's planned to add suport to use folders of host system as MSX hard disk, similar to folder as fdd function actually implemented?

Thanks. Cool

Login or register to post comments

By Manuel

Ascended (13469)

Manuel's picture

05-06-2016, 23:24

We don't plan anything, but it's certainly something that could be implemented. I thought there would be a feature request ticket in our tracker for this already, but I couldn't find it... Feel free to add it!

How exactly would you expect it to work, by the way?
E.g. a dir could be mapped to a partition of a harddisk. That would make it runnable. But a dir could also have its subdirs mapped to partitions of harddisks (in alphabetical order?). What partition format should be used? (Each harddisk interface on MSX uses its own partition format...)

By NYYRIKKI

Enlighted (4743)

NYYRIKKI's picture

06-06-2016, 18:48

Manuel wrote:

How exactly would you expect it to work, by the way?
E.g. a dir could be mapped to a partition of a harddisk. That would make it runnable. But a dir could also have its subdirs mapped to partitions of harddisks (in alphabetical order?). What partition format should be used? (Each harddisk interface on MSX uses its own partition format...)

I would say best would be "dir as partition" because you might want to copy files from directories to inside HDD image. Partition format should be selected automatically by checksum of the interface ROM (Similar as you now select the ROM mappers) This may sound like a big job, but I don't think there are actually very many variations and they are all pretty similar. I think FAT12 support would be enough for all practical needs.

By Manuel

Ascended (13469)

Manuel's picture

06-06-2016, 19:54

And what if you have multiple ide/SCSI/sd interfaces inthe msx?
Which partition number to use?
Is the partition format known for all these interfaces? Perhaps only support sunrise ide at first?

By NYYRIKKI

Enlighted (4743)

NYYRIKKI's picture

07-06-2016, 21:38

Manuel wrote:

And what if you have multiple ide/SCSI/sd interfaces inthe msx?
Which partition number to use?

Well, actually I think there we have a bigger problem of openMSX...

If I ie. want to add 2 external disk drive interfaces to a MSX that already has internal disk drives, that is not a problem on real hardware because disk drives that I have are memory mapped to the slots and MSX supports 4 disk interfaces with 4 physical drives on each although logical drives are limited to 8 in total regardless of the previously mentioned numbers. (Sure things like SymbOS might have their own limitations that are not related to any of these numbers. IIRC instead of 4/4/8 limitation current version of SymbOS has 2/2/26 limitation)

How ever AFAIK openMSX does not handle disk drives in a tree structure but first interfaces just reserve the first drives. (Correct me if I'm wrong.) I know this is useful only if you want to mass copy disks and doing that on emulator makes no sense, but anyway it is an added limitation that real hardware does not have. If you manage to solve that I think you will solve the multiple HDD interfaces -> Multiple HDDs -> Multiple partitions problem at the same time.

I think correct way to handle this would be that the more user friendly names like "diska" should be just automatically created "shortcuts" / "pointers" to a device names like "/SLOT3-2/TC8566AF/Drive0/" and similar way ie. "partition0" could be shortcut to ie. "/SLOT1/SunriseIDE/Drive0/Partition4" or "/SLOT2/GoudaSCSI/Drive3/Partition0". User should be able to alter the defaults with "set"-command or similar.

Quote:

Is the partition format known for all these interfaces? Perhaps only support sunrise ide at first?

Yes, I think Sunrise is easy way to start because it is pretty well known. The only weird part of it that I know is that the fdisk program writes the partition table "upside down" order. AFAIK there is no weird things with Nextor or MegaSCSI. From Novaxis I remember some weird issues because it used to write next partition pointer to sector 0 of current partition IIRC. Other than that I think it used standard MBR, but my memory might be doing tricks to me after all these years. How ever I don't think it actually takes hours to figure out these kind of customizations. How ever I think that from the start MSX has wanted to be PC compatible, so I don't expect to find any real weird stuff... IIRC I've read from somewhere that early versions of BEER interface used some more incompatible partition table, but then there was some conversion tool to update it to standard version that works with newer version of the ROM... This is yet another very faint memory from last millennium that I've not encountered my self.

By NYYRIKKI

Enlighted (4743)

NYYRIKKI's picture

07-06-2016, 22:17

Ok, I did some editing already, but thinking again... Maybe handling the partitions is not worth the trouble. If a person wants to use "dir as disk" feature with HDD I think it is reasonable to make it just a "device" that has one partition. This simplifies and unifies the handling.

I'm thinking the basic usage could be something like:
plug "/SLOT3-2/TC8566AF/Drive0/" "/c/temp/game1.dsk"
plug "/SLOT3-2/TC8566AF/Drive0/" "/c/temp/testdir/"
plug "/SLOT1" "/c/MSX/ROM/MANBOW2.ROM"
plug "/joyport1" "~/drivers/SegaPAD"

(Ok, "plug"-command could be called "mount" as well and "diska" could be alias / macro for the "plug")
I understand all of this requires quite a lot of rethinking & work compared to current logic, but in the end it could even make things more simple to handle in future. These ideas are not exactly meant to be taken literally, but you asked for an opinion Smile

By Manuel

Ascended (13469)

Manuel's picture

07-06-2016, 22:31

First about the disk interfaces remark: openMSX supports the same as the real hardware, as far as I know. But the designation of what is called 'diska' might be different from what is 'drive A' on the real MSX. That is because the latter is determined by the software and openMSX only emulates the hardware, which *runs* the software.
If you meant something else, then you lost me Smile

Regarding the rest of your comments: I certainly welcome your opinion and suggestions Smile I guess it will need some more discussion, but I still need to think about it myself and form an opinion.

About dir-as-harddisk/partition: what could be typical use cases? perhaps that clarifies what would be the best way to support it.
One example I can think of: you want to run a game that is larger than one floppy disk.
Would that game have DOS2 already included? I guess typically it was apparently meant for harddisk install, so it would not have DOS2. So you either have to add it manually, or you'll have to add it as an extra partition to an existing HDD with a bootable first partition. However, the latter is also a bit weird, because then the virtual HDD is spilt into 2 files, of which one is actually a dir! Or should it instead be inserted as a slave device in the Sunrise IDE, with it's own partition table etc.? (So you boot from the master.)

And that's only one use case... are there more?

Oh, Wouter just told me about a good idea: start simple at first by mapping the dir into a partionless harddisk (basically a very large FAT12 disk). You'd still get the DOS2 issue I mentioned above though, but it makes the usage quite simple otherwise.

By NYYRIKKI

Enlighted (4743)

NYYRIKKI's picture

07-06-2016, 22:47

Manuel wrote:

First about the disk interfaces remark: openMSX supports the same as the real hardware, as far as I know. But the designation of what is called 'diska' might be different from what is 'drive A' on the real MSX. That is because the latter is determined by the software and openMSX only emulates the hardware, which *runs* the software.
If you meant something else, then you lost me Smile

I meant that if you have ie. 3 x disk controller with 6 physical floppy drives (without any HDD interfaces or similar) do I get "diska", "diskb", "diskc", "diskd", "diske" and "diskf"?

Quote:

And that's only one use case... are there more?

I think one typical would be ie. developing / spreading HDD game that does not fit to FDD... In this case it would be very handy to be able to compile the files on fly directly to virtual HDD. Ok, I don't think there are many such a big projects, but sometimes it would be handy just because .LST files and such tend to become so big that they just don't fit to 720KB disk with rest of the stuff although the final product would be smaller.

Indeed DOS2 files should be in this case located either in same directory structure or then you could boot from your regular HDD image that is master and use the directory as slave device.

Quote:

Oh, Wouter just told me about a good idea: start simple at first by mapping the dir into a partionless harddisk (basically a very large FAT12 disk). You'd still get the DOS2 issue I mentioned above though, but it makes the usage quite simple otherwise.

Yes, this is same result that I came up with in the end with the exception that I don't think that all MSX HDD interfaces support unpartitioned media, so fixed 1 partition would be on the safe side and practically same thing.

By Manuel

Ascended (13469)

Manuel's picture

07-06-2016, 23:11

NYYRIKKI wrote:
Manuel wrote:

First about the disk interfaces remark: openMSX supports the same as the real hardware, as far as I know. But the designation of what is called 'diska' might be different from what is 'drive A' on the real MSX. That is because the latter is determined by the software and openMSX only emulates the hardware, which *runs* the software.
If you meant something else, then you lost me Smile

I meant that if you have ie. 3 x disk controller with 6 physical floppy drives (without any HDD interfaces or similar) do I get "diska", "diskb", "diskc", "diskd", "diske" and "diskf"?

I tried this:

$ openmsx -machine Toshiba_HX-10 -ext slotexpander  -ext Mitsubishi_ML-30DC_ML-30FD -ext Mitsubishi_ML-30DC_ML-30FD -ext Mitsubishi_ML-30DC_ML-30FD 

and that got me diska-diskf indeed Smile

Quote:
Quote:

Oh, Wouter just told me about a good idea: start simple at first by mapping the dir into a partionless harddisk (basically a very large FAT12 disk). You'd still get the DOS2 issue I mentioned above though, but it makes the usage quite simple otherwise.

Yes, this is same result that I came up with in the end with the exception that I don't think that all MSX HDD interfaces support unpartitioned media, so fixed 1 partition would be on the safe side and practically same thing.

Which do not support it? I know Sunrise IDE does, at least.

By NYYRIKKI

Enlighted (4743)

NYYRIKKI's picture

07-06-2016, 23:22

Manuel wrote:

and that got me diska-diskf indeed Smile

Ok, cool! Then I have nothing to complain... I think I've tried with Catapult only.

Quote:

Which do not support it? I know Sunrise IDE does, at least.

I also know that at least MegaSCSI & Nextor support drives without partitions, but other than that... I have no idea.

By Grauw

Enlighted (6255)

Grauw's picture

08-06-2016, 00:06

Would be welcome to me as well; currently I achieve sort-of the same with some TCL script invoking diskmanager, but it’s read-only and takes a short time to construct the image on boot.

Page 1/3
| 2 | 3
My MSX profile