disk emulation

Door PingPong

Prophet (4093)

afbeelding van PingPong

22-08-2010, 18:05

there are several projects that emulate a disk drive for msx, using memory, SD cards, etc.

My question is, In order to emulate a virtual disk drive what kind of BIOS routines should be provided?

(I'm guessing something like read sector, write sector and so on?)

Does exists a sw that allow one msx to share its internal disk to another msx connected to the former in some way?

(like a share on modern pc)

Aangemeld of registreer om reacties te plaatsen

Van PingPong

Prophet (4093)

afbeelding van PingPong

24-08-2010, 09:49

No News about this topic? Crying

Van cax

Prophet (3740)

afbeelding van cax

24-08-2010, 11:34

All I can tell you is there exist a number of networking tools that enable disk sharing via Classroom Network, as found in (Russian) Yamaha MSX2 KYBT2 classes -
a number of YIS503IIIR (diskless student) connected to single YIS-805/128R (teacher) using bus topology.
Just one machine had physical floppy drives (A: and B: ) which were seen from all diskless machines.

One tool required to initialize the network by sending from a teacher machine to student machines a modified disk rom (kept in student's machine RAM).
Then you were running a special monitor tool on a teacher machine that routed all read/write requests coming from students to corresponding disks.

Another tool used the similar technique to send a modified disk rom to students in order to stop them being diskless and have a regular ramdisk (not the MSX-BASIC built-in "mem:" disk) they could run DOS with.
Afterwards they used special tools to send files back and forth between them, so it didn't look like drive sharing in the tool above.
Anyway I chose to tell you about this tool because you are after disk drive emulation and I re-used this modified disk ROM with ramdisk support in MicroWAVer tool.
This way I can load DOS into diskless machines via cassette connector.

If you want to look at how disk rom is patched to support ramdisk - look at SRC\ram-dos\DISK.RAM
from http://cax.nm.ru/msx/tools/mwaver-17_07_2005-src.zip
You should load the (unpatched) DISK.ROM from the same folder into $4000 , then DISK.RAM (the patch) into $8000 and then CALL $8000.
To understand things better you may peek into RAMDisk.asm.

Good luck !

Van PingPong

Prophet (4093)

afbeelding van PingPong

24-08-2010, 15:21

thx cax this is a very useful starting point. i will look asap.

Van Manuel

Ascended (19270)

afbeelding van Manuel

24-08-2010, 19:06

You can also take a look at the Nowind ROM code.

Van NYYRIKKI

Enlighted (6016)

afbeelding van NYYRIKKI

25-08-2010, 02:55

My question is, In order to emulate a virtual disk drive what kind of BIOS routines should be provided?
- Make PHYDIO compatible read/write routine
- Put jump to your code to address pointed by word in #4011 in disk ROM.

This method works pretty well... For example fMSX emulator uses this method for disk emulation.

Does exists a sw that allow one msx to share its internal disk to another msx connected to the former in some way?
Hmm... Victor van Acht made software that allowed sharing of disk drives by using Joystick ports. I have not tried it, but sources are available on MSX Info Pages.