Rookie Drive - virtual USB drive for MSX

Rookie Drive - virtual USB drive for MSX

by Pac on 25-11-2016, 21:26
Topic: Hardware
Languages:

Rookie Drive is the result of the motivation and enthusiasm for exploring and learning about the MSX architecture and programming. This personal project begins in the mind of the user xavirompe who felt the call of his old MSX Sony HB-20P many years later, resulting in a new MSX hardware device.

This interface consists of an USB virtual drive for the MSX computers that lets us to connect pendrives or hard disks. It is based on the file manage and control chip CH376S which supports FAT12, FAT16 and FAT32 file systems. At present the cartridge is able to manage .DSK files up to 720KB and with the embeded driver (CALL commands) we can open and list files as well as swap, make, format disk images and boot with the last image mounted.

xavirompe expects to improve its features, if possible, so any help or suggestion are very welcome.

Relevant link: Rookie drive project site (Spanish)

Media browser (3)

  • Rookie Drive - virtual USB drive for MSX
  • Rookie Drive - virtual USB drive for MSX
  • Rookie Drive - virtual USB drive for MSX

Comments (22)

By msxtrd

Champion (277)

msxtrd's picture

25-11-2016, 21:42

Thumbs up, always nice to see new projects Smile)

By hamlet

Scribe (4106)

hamlet's picture

25-11-2016, 23:09

Yes, this will be a must have for me!

By Prodatron

Paragon (1857)

Prodatron's picture

25-11-2016, 23:34

Really interesting! Is it compareable to this?
http://www.cpcwiki.eu/index.php/Albireo

By xavirompe

Resident (59)

xavirompe's picture

26-11-2016, 00:55

Hi, Prodatron,

Rookie drive is based on same CH376 chip, but for now Rookie drive is only oriented to the use of .DSK disk images.

I think the info of Albiero is true, the CH376 can handle other kinds of USB devices, not only mass storage ones, but maybe a headache, because the CH376 only implements at high level mass storage devices.

Now I am working hard to get a good finished version of the driver, the goal is to get an affordable and easy to use device.

By SLotman

Paragon (1242)

SLotman's picture

26-11-2016, 06:07

Nice! Very cool to finally see pendrives/flashdrives/thumbdrives being used on MSX Smile

some suggestions: (just wishful thinking!)

  • Some way to change directories. So we can have DSKs into folders like \MSX1\ , \MSX2\, etc.
  • Some API to address those commands directly in ASM.
  • maybe access to ISO files? Or any other large storage format, to mimick HD or CD-ROM?

By Louthrax

Prophet (2496)

Louthrax's picture

26-11-2016, 12:58

What about a Nextor driver ?

This could also be a "simplified" version of Nextor, that takes advantages of the chip's FAT management (would be way faster too). Something like linking the MSX-DOS 2 entry points to "chip functions"...

Must say I really like the simplicity of the PCB here.

By sd_snatcher

Prophet (3675)

sd_snatcher's picture

27-11-2016, 01:12

Nice! Finally an USB interface for the MSX!

Tip1: Since you're beginning to develop MSX hardware, it's very advisable always look at this article and check if your design is following these guidelines.

Tip2: I/O ports are not a great idea for external devices on the MSX architecture. You should prefer memory-mapped I/O for its many advantages.

By gdx

Enlighted (6436)

gdx's picture

27-11-2016, 10:04

xavirompe wrote:

Rookie drive is based on same CH376 chip, but for now Rookie drive is only oriented to the use of .DSK disk images.

What benefits will it have compared to SofaRunIt or HDemu or DSK emulation with Nextor?

By ray2day

Paladin (752)

ray2day's picture

27-11-2016, 18:08

cool Cool

(estimated) price = ?

By Wolverine_nl

Paragon (1160)

Wolverine_nl's picture

28-11-2016, 11:54

Very cool! Will be interested when it is something ready for production. Smile

By xavirompe

Resident (59)

xavirompe's picture

30-11-2016, 16:42

SLotman wrote:

Nice! Very cool to finally see pendrives/flashdrives/thumbdrives being used on MSX Smile

some suggestions: (just wishful thinking!)

  • Some way to change directories. So we can have DSKs into folders like \MSX1\ , \MSX2\, etc.
  • Some API to address those commands directly in ASM.
  • maybe access to ISO files? Or any other large storage format, to mimick HD or CD-ROM?

Hi great suggestions, but for now Rookie drive uses MSX-DOS 1.1 and 16Kb Rom, and the Rom space is over with the current set of functionality.
I like very much the suggestion about an API, very nice.

Thank you very much!

By xavirompe

Resident (59)

xavirompe's picture

30-11-2016, 16:50

Louthrax wrote:

What about a Nextor driver ?
.

Its a goal to reach, of course!

Louthrax wrote:

This could also be a "simplified" version of Nextor, that takes advantages of the chip's FAT management (would be way faster too). Something like linking the MSX-DOS 2 entry points to "chip functions"...

It's a good sugestion, I take note of all of them, for now the limits of the design, and knowledge, can't be done in the first version.

Louthrax wrote:

Must say I really like the simplicity of the PCB here.

Yeah!, me too!! this is muy first project for MSX, so I'm very happy now!! :-)

Thank you very much

By xavirompe

Resident (59)

xavirompe's picture

30-11-2016, 17:03

ray2day wrote:

cool Cool

(estimated) price = ?

I am thinking about it, these days I am working hard to show it next saturnday on RU #50 in Barcelona, after the meeting i would upload some demo videos to the net.

Next i will plan a version for sale, the current version its only for prototype and there are mistakes to correct.

When the next version come available for production I will show it and set the price.

Thank you

By xavirompe

Resident (59)

xavirompe's picture

30-11-2016, 17:08

sd_snatcher wrote:

Nice! Finally an USB interface for the MSX!

Tip1: Since you're beginning to develop MSX hardware, it's very advisable always look at this article and check if your design is following these guidelines.

Good to know, I need to aply some of the suggestions.

Quote:

Tip2: I/O ports are not a great idea for external devices on the MSX architecture. You should prefer memory-mapped I/O for its many advantages.

I need to learn about this question, some extra info about?

Thank you!

By Louthrax

Prophet (2496)

Louthrax's picture

30-11-2016, 18:02

Thinking about that again, if you manage to re-use the FAT32 handling from the chip, we would not have any limitations on the partition size, on top of a super-fast speed! Maybe some programs that are inspecting MSX-DOS 2 internal values would not work anymore, but that's not a big issue. And you could still launch disk images with SofaRunIt as this tool is only using pure MSX-DOS 2 functions...

Not saying that it would be easy : this approach probably can't be just a Nextor driver, but a rewrite or different version of Nextor. Maybe the MSXDOS2.SYS and COMMAND2.COM will need also need some rewrite.

By mau_rizio

Resident (49)

mau_rizio's picture

02-12-2016, 23:40

@xavirompe: Nice work Smile

What is a nextor drive?

By st1mpy

Paladin (947)

st1mpy's picture

10-12-2016, 13:54

Can it swap disks during the game?

By Louthrax

Prophet (2496)

Louthrax's picture

10-12-2016, 18:53

mau_rizio wrote:

@xavirompe: Nice work Smile

What is a nextor drive?

Nextor is an MSX-DOS 2 compatible operating system, with many improvements, made by Nestor Soriano (see here). You can write your own "low-level" drivers for new hardwares. It's great !

By xavirompe

Resident (59)

xavirompe's picture

14-12-2016, 10:56

st1mpy wrote:

Can it swap disks during the game?

Now I am working hard to reach this goal, but at the moment it is not implemented yet

By supmsx

Master (158)

supmsx's picture

16-12-2016, 13:21

Very good work

By mars2000you

Enlighted (6557)

mars2000you's picture

19-12-2016, 02:40

For the people interested by the new MSX-BASIC instructions added by this interface, I've updated the Wiki:

https://www.msx.org/wiki/RookieDrive_BASIC

By hamlet

Scribe (4106)

hamlet's picture

25-11-2018, 10:37

One of the best buys of the past year. Great device, thanks xavirompe!