SymbOS MSX multitasking operating system - help needed!

Page 314/398
307 | 308 | 309 | 310 | 311 | 312 | 313 | | 315 | 316 | 317 | 318 | 319

By edoz

Prophet (2437)

edoz's picture

10-01-2014, 09:48

I think captain Kirk would say "We have to change the timeline" Big smile

By Trebmint2

Master (242)

Trebmint2's picture

10-01-2014, 11:32

I think the Symbos 2.1 release or should that be Symbos 2.014 or SymbOS 2o14. With this release and Notepad it might just start to be that everyday useable OS everyone wants.

It amazes me what Prodatron has and is still achieving, and knowing a little of whats planned I think this will be an interesting year

By edoz

Prophet (2437)

edoz's picture

10-01-2014, 11:50

Sounds good to me Big smile Always in for more surprises!!

By jltursan

Prophet (2619)

jltursan's picture

10-01-2014, 12:16

Wow!, that looks cool!. Agreed that the coloured icons add a lot to the windows appearance Smile

By edoz

Prophet (2437)

edoz's picture

10-01-2014, 15:43

Can I help to convert all the icons to 16 colors in symbos ?

By Prodatron

Paragon (1808)

Prodatron's picture

10-01-2014, 22:18

@Edoz: Thanks for the offer! Smile Let's speak about that in 2 weeks!
Here is a new screenshot:

Alternative fonts inside the multiline-textinput-control are possible on the MSX now, too. Unfortunately they are significant slower than the standard system font, as they can't be pre-buffered in the VRAM, so when printing text the CPU has to write every single char into the video ram first. This wasn't noticeable in the past (e.g. in SymZilla) but as Notepad can display a huge amount of text now it's quite obvious.
Have to fix two more bugs and add some stuff to the bootloader before it's time for a preview version.

By edoz

Prophet (2437)

edoz's picture

11-01-2014, 00:07

Nice screenshot, impressive those fonts. I was wondering how do you get things compatible between multiple z80 platforms ? Has every z80 system a different kernel ? Or is the kernel talking to system specific drivers were you did talk about? And those 'form' objects, like a text box are they some objects on the kernel or in some visual layer ?

By PingPong

Prophet (3885)

PingPong's picture

11-01-2014, 00:29

Prodatron wrote:

@Edoz: Thanks for the offer! Smile Let's speak about that in 2 weeks!
Here is a new screenshot:

so when printing text the CPU has to write every single char into the video ram first.

Hi, prodatron, nice to hear you back!
Are you sending charater byte data via VDP logical pixel-based commands or direct VRAM access by reading/masking/writing bytes in VRAM?

By Prodatron

Paragon (1808)

Prodatron's picture

11-01-2014, 01:03

edoz wrote:

I was wondering how do you get things compatible between multiple z80 platforms ?

SymbOS is devided into different modules. In general there are a few small modules, which do direct hardware access (low level modules). Most of the code in SymbOS is hardware independant. So when porting SymbOS to another platform usually (in theory) you only have to rewrite the low level modules.
It's not exactly that easy, as also the memory layout may be different between the platforms. Example: The CPC has its screen ram (16K) inside the first 64K, the MSX has a dedicated VRAM (128K) and the PCWs screen ram (23KB) can be placed anywhere inside the first 128K. So each version has to be arranged and assembled a little bit different.

Regarding the low level routines we have:
- memory banking/mapping routines (inside the kernel)
- screen manager (low level screen routines for painting lines, boxes, text, bitmaps, also do copying and scrolling of screen areas)
- device manager (keyboard, mouse, screen mode, colours, RTC, mass storage sector read/write)

Everything else in SymbOS is more or less platform independant. There are still some small platform specific exceptions in the high level code of SymbOS (especially inside the desktop manager = GUI), but this is not that much. Of course every new feature needs to be tested on all platforms, most run fine without platform specific modifications (otherwise you would become mad...). The multiline-textinput-control was a little bit more complex, especially the possibility of using alternative fonts required some tweaks, as there are some differences between the CPC and MSX.

The kernel itself is a microkernel, so it is only responsible for process management, memory management and inter-process-communication. Everthing else is done by additional processes (the "desktop manager" for the GUI and the "system manager" for application and filesystem handling).

By Prodatron

Paragon (1808)

Prodatron's picture

11-01-2014, 00:55

Hi PingPong!

PingPong wrote:

Are you sending charater byte data via VDP logical pixel-based commands or direct VRAM access by reading/masking/writing bytes in VRAM?

I use the latter one, so I write complete bytes into the VRAM. More specific: For each char I first write one 8x? rectangle (?=height of the font) into the VRAM to a non-visible area and then let the VDP copy the char with its individual width to its position on the screen (pixel-based). This should be faster than writing the char pixel-wise directly to its destination, as in this case the Z80 would have to do the 2x or 4x amount of OUTs.
But I hope there is still room for optimizations...

Page 314/398
307 | 308 | 309 | 310 | 311 | 312 | 313 | | 315 | 316 | 317 | 318 | 319