SymbOS MSX multitasking operating system - help needed! (Development MSX-ôîðóìû)MSX Resource Center MSXdev 2008 - MSX1 development bonanza!       
         
English Nederlands Espaсol Portuguкs Russian              
 Новости
   Главная страница
  Архив новостей
  Темы новостей

 Ресурсы
   MSX-форумы
  Статьи
  Обзоры
  Отчёты о выставках
  Фотографии
  Выставки и собрания
  Опросы
  Ссылки
  Поиск

 Софт
   Скачать
  Веб-магазин

 MRC
   О нас
  Присоединяйтесь !
  Пожертвования
  Правила
  Написать нам
  Ссылки на нас
  Статистика

 Поиск
 
  

  

 Вход
 

Имя пользователя

Пароль




У Вас ещё нет аккаунта ? Станьте MSX-другом и зарегистрируйтесь прямо сейчас !


 Статистика
 

Сейчас на сайте
139 гостей и 2 MSX-друзей

Вы - анонимный пользователь.
 

MSX-форумы


MSX-форумы

Development - SymbOS MSX multitasking operating system - help needed!

Перейти на страницу ( 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 Следующая страница )
Автор

SymbOS MSX multitasking operating system - help needed!

Prodatron
msx master
Сообщений: 1088
Опубликовано: 08 мая 2006, 16:44   
Hi,

now I think it's a good idea to start an own thread for this project.
First for your information: SymbOS is currently an operating system for the Amstrad CPC computers:
http://www.symbos.de
SymbOS provides true multitasking and a complete Windows XX like GUI. It supports up to 576KB Ram for data and code execution (each application can address up to 63K in one piece) and includes a FAT12/16/32 implementation, which made it possible the first time for the CPC to access MS(X)-DOS discs native or hard discs with up to 128GB.

A week ago SymbOS CPC Release 1.0 has been published, and now I want to port it to the MSX2. This seems to be the other great plattform, which is able to run this operation system in quite a good way.
There already have been discussions in two other threads:
http://www.msx.org/forumtopic5436.html
http://www.msx.org/forumtopic6197.html

Yesterday I started to work on the MSX with the help of BlueMSX and I already managed to port the micro kernel. So it seems to be more easy and fast, as I first expected.

But now I definitely need your help. The following other parts of the operating systems include system dependant code, too:
1.) screen manager (=low level screen output routines)
2.) device manager (=keyboard, mouse, realtime clock, screen mode and colours)
3.) low level part of the file manager (=disc and hard disc sector read/write routines)

I will try to do the work for 2.) today by myself.

The difficult thing will be 1.):
@Sonic_aka_T, PingPong and others: Thanx for your offers to help me here! I hope this part will be manageable.

I wrote a description, which routines I need. You can download it here:
http://www.symbos.de/files/screenmanager.zip

So who would like to write some of the routines? If you need additional information and for any other questions you can write here or email me:
jmika at prodatron dot net.

Regarding 3.) I will write something later, too, but this part shouldn't so complicated like the screen routines.

I hope SymbOS MSX can become reality and want to thank everyone, who already helped me with information in the past.

CU,
Prodatron

Edwin
msx professional
Сообщений: 596
Опубликовано: 08 мая 2006, 23:35   
One to get you started. It should still be optimised. For one it used the slow pixel accurate fill and not the byte accurate one if possible. But hey, it's a start.

PNTBOX:
	ld 	(LMMV.C),a
	ld	a,$80
	jr	nc,$+4
	or	3
	ld	(LMMV.CM),a
	push	hl
	ld	hl,(winxbg)
	ex	de,hl
	or	a
	sbc	hl,de	
	ld	de,(winxps)
	jr	c,.off_left
	add	hl,de
	push	bc
	jr	.set_left
.off_left:
	add	hl,bc
	push	hl
	ex	de,hl
.set_left:
	ld	(LMMV.DX),hl
	pop	de
	add	hl,de
	or	a
	ld	bc,(winxps)
	sbc	hl,bc
	ld	bc,(winxln)
	sbc	hl,bc
	jr	c,.set_right
	ex	de,hl
	sbc	hl,de
	ex	de,hl
.set_right:
	ld	(LMMV.NX),de
	
	pop	hl
	ld	de,(winybg)
	or	a
	sbc	hl,de	
	ld	de,(winyps)
	jr	c,.off_top
	add	hl,de
	jr	.set_top
.off_top:
	ex	de,hl
	add	ix,de
.set_top:
	push	ix
	ld	(LMMV.DY),hl
	pop	de
	add	hl,de
	or	a
	ld	bc,(winyps)
	sbc	hl,bc
	ld	bc,(winyln)
	sbc	hl,bc
	jr	c,.set_bottom
	ex	de,hl
	sbc	hl,de
	ex	de,hl
.set_bottom:
	ld	(LMMV.NY),de

	call	WaitForVDP
        ld      a,36	; start at DX
        out     (99h),a
        ld      a,91h
        out     (99h),a

	ld	bc,$0B9B
	ld	hl,LMMV
	otir
	ret

LMMV:
.DX:	dw	0
.DY:	dw	0
.NX:	dw	0
.NY:	dw	0
.C:	db	0
	db	0
.CM:	db	0

WaitForVDP:
        ld      a,2	; select S#2
        out     (99h),a
        ld      a,8Fh
        out     (99h),a
.wait:
	in	a,(99h)
	rra
	jr	c,.wait
        xor 	a	; select S#0
        out     (99h),a
        ld      a,8Fh
        out     (99h),a
	ret


PS I hope it's free of bugs

PSS Yes, yes, the comments were lost somewhere

Prodatron
msx master
Сообщений: 1088
Опубликовано: 09 мая 2006, 00:08   
That's it?? Wow!! And it looks logical! I will try it soon. The VDP appears to be great! I am getting more and more impressed by the MSX.

Btw, Sonic_aka_T already asked me for clipping support routines. So I will add the routines used for the CPC soon. The thing why I didn't include them yet is the fact, that in my routines Y coordinates are limited to 8 bit. In general SymbOS (=the system independant desktop manager module) can handle 16bit for X and Y, but as the CPC can't display more than 200 lines (usually) the internal routines always work with 8bit for Y.
Ok, for the MSX normally it's the same, so it makes sense to use the same routines.

So please wait for an update. Btw, I think, many of you are from the netherlands? Unfortunately in the past I did the mistake to comment most of my source codes in german. Would this be a problem? (usually I can read most of the dutch language, too ) In any case I will try to translate as much as I can to english, if needed.

CU,
Prodatron
Edwin
msx professional
Сообщений: 596
Опубликовано: 09 мая 2006, 00:54   
You may be a bit less impressed after checking this.

The visible screen only exceeds one byte when using interlace. But I have hopes that someone will write the same stuff for v9990 so we can enjoy 640x400.

German comments should be no problem for most Dutchies. Don't know about the visitors from the rest of the world though.
Prodatron
msx master
Сообщений: 1088
Опубликовано: 09 мая 2006, 01:15   
Very good site! Currently I didn't find a summary of all VDP commands. Do you have a link for that?
Or is everything said on this site?
NYYRIKKI
msx master
Сообщений: 1503
Опубликовано: 09 мая 2006, 07:50   
Edwin
msx professional
Сообщений: 596
Опубликовано: 09 мая 2006, 11:02   
Now that I'm awake again, a few comments about the piece of code. The VDP access part can't be interrupted. I didn't put DI/EI's there because I have no clue how you will deal with things like this in your system. Also, I keep the status register set to 2 while waiting for any VDP commands to finish. That would be messy if interrupted by a standard ISR.
Also, it is a bit of a waste to wait for the VDP on a multitasking environment. Maybe something smarter can be done for this.
Prodatron
msx master
Сообщений: 1088
Опубликовано: 09 мая 2006, 16:53   
Thanx again for the information. Now I have a much better understanding about the possibilities and the usage of the VDP.
Currently I am excited about it, as it looks like a nice 2D accelerator I just hope, that the VDP itself is not too slow. I will make some tests by myself now to get an impression about the possible speed. Maybe I need to rethink something.
As an example now I think it could be optimal to store the complete font 12 or 16times in the VRAM to have a version for any pen(0-3)/paper(0-3) combination. But when plotting proportional text, the VDP has to do a lot of very small pixel copy operations (one for every char). I hope that it will still be fast enough...
ARTRAG
msx master
Сообщений: 1592
Опубликовано: 09 мая 2006, 16:58   
Quote:

As an example now I think it could be optimal to store the complete font 12 or 16times in the VRAM to have a version for any pen(0-3)/paper(0-3) combination. But when plotting proportional text, the VDP has to do a lot of very small pixel copy operations (one for every char). I hope that it will still be fast enough...



use TPSET copy, you store fonts once on "0" background and then copy them wherever you like
Prodatron
msx master
Сообщений: 1088
Опубликовано: 09 мая 2006, 17:26   
Do you mean setting bit3 of the command register 2E to 1? Is the VDP in transparent mode as fast as in normal mode? If yes, that's a good idea, as then I would only need to store it 6 times in memory (3 times with colours 1-3 and background=0; and 3 times with colour 0 and background 1-3).
Prodatron
msx master
Сообщений: 1088
Опубликовано: 09 мая 2006, 17:27   
Hm, but on the other hand I would need to fill the background first...
ARTRAG
msx master
Сообщений: 1592
Опубликовано: 09 мая 2006, 17:34   
Quote:


Is the VDP in transparent mode as fast as in normal mode?



transparent mode is fast as any other logical copy i.e. like a (dead) snail

on the other side, fast copy is limited to bytes, so, in sc5, you cannot use it when x
coordinate is odd, or the x coordinate is even but the width is odd

even worst in sc6, where you need x be multiple of 4
Prodatron
msx master
Сообщений: 1088
Опубликовано: 09 мая 2006, 17:42   
Today I ported the device manager module to the MSX successfully with the exception of the RTC. Does anyone have a hint, what is the easiest way to detect a present RTC?
Currently I don't know, if there is any standard proportional mouse for the MSX available. Any hints here?

Prodatron
msx master
Сообщений: 1088
Опубликовано: 09 мая 2006, 17:45   
Sorry, again I asked too fast again. I will write/read the "scratch" byte in block 2.
Prodatron
msx master
Сообщений: 1088
Опубликовано: 09 мая 2006, 18:05   
Quote:

transparent mode is fast as any other logical copy i.e. like a (dead) snail



Hm, any idea how many micro seconds it (more or less exactly) takes to copy a 8x8 pixel block inside the VRAM with logical copy?
 
Перейти на страницу ( 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 Следующая страница )
 







(c) 1994 - 2008 Центр Ресурсов MSX (MSX Resource Center foundation). MSX является торговой маркой корпорации по лицензированию MSX (MSX Licensing Corporation).