MNBIOS status update

by flyguille on 16-06-2005, 20:46
Topic: Development
Languages:

Flyguille has given us a status update on his MNBIOS (MSX Non Basic Input Output System), a new OS for the MSX2 platform which can replace the original BIOS. The developer is inspired by the One Chip MSX-project and wants to stretch his MNBIOS beyond its current limits. The latest updates:

  • Multitask system based in multithreading with automatic and manual switching (allowing free and natural programming)
  • A scheduler agent for handling the automatic thread switcher. This agent supports "high priority" and "let me alone" as thread's property between others. That allows to do FULL SCREEN games with 100% cpu's time (being capable now of programming VDP tricks like screen splits)
  • Full support of multithread applications, that allows interactive applications
  • Broadcast system allowing to communicate threads with any other in simple or multi-broadcast
  • Full support of "Multi head CPU" architecture or "multi CPU" as subsystems architecture
  • Support of interaction between threads on one HIMEM DATA SEGMENT or any FILE. The threads can be on any CPU

Flyguille wants us to take note of the fact that all these new features only affect the speed with a mere 5%. In fact, it's only the multithreading support which causes the slowdown. In future versions, flyguille aims for a 100% compatible support of FAT32 and compatible boot/partition sectors, allowing to access FAT32 partitions on other HDD's like Windows XP's FAT32.

Last but not least, flyguille schedules the MNBIOS is due for a february, march or -at the latest- april 2006 release.

Relevant link: Official MNBIOS website

Comments (18)

By flyguille

Prophet (3029)

flyguille's picture

16-06-2005, 20:55

... And thanks to Sonic_aka_T by programmed the nice MNBIOS's logo screen with animation.

By Edwin

Paragon (1182)

Edwin's picture

16-06-2005, 21:11

February, that's going to be some hard work.

What does "NO MODAL" modal mean? That it does not support modal frames? Or some special way?

By [D-Tail]

Ascended (8232)

[D-Tail]'s picture

16-06-2005, 21:20

Idd, this sounds pretty frigging neat, dude! I can't wait to see the final version... Keep us updated!

BTW, like Edwin mentioned, what's 'NO MODAL'? I've a hard time translating it to Dutch ;)

By flyguille

Prophet (3029)

flyguille's picture

16-06-2005, 21:24

Normaly all in MSX is MODAL!... is to say... by example: at least that you make special programming if you opens a messagebox... you can't normaly interact with the pather form... that is because MSX normaly is single task.

Now, the multi-threading brings NO MODAL with easy programming, that is the ability to work with different parts of an application or object in real time without they interfere with to each other. The more visible example is the MODAL / NO MODAL forms.

By [D-Tail]

Ascended (8232)

[D-Tail]'s picture

16-06-2005, 21:26

BTW, is it already downloadable? Wink

By [D-Tail]

Ascended (8232)

[D-Tail]'s picture

16-06-2005, 21:29

Hmmm... I'd like to refer to "NO MODAL" as "interactive". Agree if I make that adaptation? Modal means something like 'the average'... You probably meant 'modular' or so?

By flyguille

Prophet (3029)

flyguille's picture

16-06-2005, 21:34

When i wrote that i was thinking: like in Visual Basic that when you creates a new form you needs to define the property MODAL... true or false, that makes that vehabior that i commented. I extended that vehabior when I program in the code the multi-threading application support.

By [D-Tail]

Ascended (8232)

[D-Tail]'s picture

16-06-2005, 21:35

Another BTW -- sorry for spamming here Wink --: you say a thread can be run on any CPU. How have you made this? There isn't a single dual-CPU MSX, is there? How can you be so sure that it will work then? Of course it'll work on a single-CPU MSX, but I can imagine extra difficulties with synchronisation on 'Objects' or data segments when more CPUs can interact. Can file access, memory access or any other form of shared access be synchronised? That is, lock the particular part you wish to access, access it, and free it again as soon as you are ready? I'm very curious! Smile

By flyguille

Prophet (3029)

flyguille's picture

16-06-2005, 22:00

No problem with multi CPU support... when you does a multi-threading O.S. you already are maintaining separately the several threads... (about memory data segments, filesystem..., kernel functions, etc.) so, no problem about if a given thread is executed by one or another CPU at that level.

Now, all we knows that MSX devices are not designed for multi-threading. But not problem with that on MNBIOS because on the MNBIOS's structure not all the CPU's has the same hardware privileges. Is to say... each CPU don't start executing in the same KERNEL. Because just like at PC world, each CPU's head has its own MMU unit. And this architecture is thought for the 1CM (well, maybe his big brother).

So each CPU's head deals with differents RAM pages!, and has its own kernel that cares not to use the same devices than the main CPU. Smile And that fits perfectly with what in the BETA version is supported "as a subsystems architecture. Indeed it is the same thing... the difference is that in multi-head architecture is all inside the FPGA and share the MAIN BUS that runs at a higher speed.

And that is PERFECTLY DOABLE thanks to the FPGA!!!!!.

On other hand, the "multi-cpu as subsystem architecture" (the alternative) needs dualchannel RAM or has all the sub-CPU synchronized with the negated main clock.

// all this support comes very primitively from BETA versions//.

Now it is fuly supported in all aspect of the core.

By flyguille

Prophet (3029)

flyguille's picture

16-06-2005, 22:11

And about the global variables... Yes, there is a mirroring system integrated in the kernel.

But there is too few global variable...

one example: BVAR.PROC.CURRENT_SCREEN_MODE

But, that is more an example of global variables for the MAIN CPU. Because others CPU are for other tasks and not for VDP tasks.

By karloch

Paragon (2045)

karloch's picture

16-06-2005, 23:22

Awesome work flyguille!

By viejo_archivero

Paragon (1372)

viejo_archivero's picture

16-06-2005, 23:26

Keep on the good work, fly!

By spl

Paragon (1461)

spl's picture

16-06-2005, 23:43

Good work!!

By NYYRIKKI

Enlighted (5295)

NYYRIKKI's picture

17-06-2005, 11:00

There isn't a single dual-CPU MSX, is there?
Oh yes there is! For example Konamiman has one... Maybe someone with external CPU can tell us, how well this support works.

lpadial.aamsx.org/page10.HTM

By flyguille

Prophet (3029)

flyguille's picture

17-06-2005, 14:04

Wow!, that is a lot more complex card than what i have in mind... But Lpadial is goin on the good way!.

By BiFi

Enlighted (4348)

BiFi's picture

18-06-2005, 13:05

I have checked the new version out and I wonder when Sonic's logo animation is shown.

By flyguille

Prophet (3029)

flyguille's picture

18-06-2005, 14:25

No, BIFI, the "status update" newpost is about which level i reached in this point of the development... But is not about a release!.

And the spanish translation es.msx.org changed the meaning of the last sentence.

A lot before than the scheluded date for the release, will goes a lot of screenshots (maybe for christmass)... and then a lot of DOCs will be released...

But, i will not do the same mistake twice.... I will NOT release it again with just the kernel and the shell. I hope that all understand why.

So, this is like HOLD ON guys!.

By flyguille

Prophet (3029)

flyguille's picture

18-06-2005, 14:33

mmmm....


Flyguille wants us to take note of the fact that all these new features only affect the speed with a mere 5%. In fact, it's only the multithreading support which causes the slowdown. In future versions, flyguille aims for a 100% compatible support of FAT32 and compatible boot/partition sectors, allowing to access FAT32 partitions on other HDD's like Windows XP's FAT32.

this sentence also changed the original the meaning ....

Full FAT32 compatibility support is in my TODO list now. And I aware about "that change" because in the BETA versions ISN't. That was a very requested feature.

But in the original sentence then says: "that this change will allows for a future version to jump then to jouliet system". And not to be caught in a 12x4 filesystem uncompatible with all!.