SymbOS MSX multitasking operating system - help needed! (Development Foros MSX)MSX Resource Center MSXdev 2008 - MSX1 development bonanza!           
                       
English Nederlands Español Português Russian                  
 Noticias
   Página principal
  Almacén de noticias
  Temas de noticias

 Recursos
   Foros MSX
  Artículos
  Analisis
  Informe de ferias/RUs
  Álbum de fotos
  Ferias y encuentros
  Encuestas
  Enlaces
  Buscar

 Software
   Descargas
  Tienda Online

 MRC
   Quiénes somos
  Únete a nuestro equipo
  Donar
  Políticas
  Contacta con nosotros
  Enlázanos
  Estadísticas

 Buscar
 
  

  

 Login
 

Login

Contraseña




¿Aún no tienes una cuenta? ¡Conviértete en miembro del MSX Resource Center! ¡Únete a nosotros!.


 Estadísticas
 

Hay 157 invitados y 0 miembros en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Development - SymbOS MSX multitasking operating system - help needed!

Ir a la página ( Página anterior 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 Siguiente página )
Autor

SymbOS MSX multitasking operating system - help needed!

ARTRAG
msx master
Mensajes: 1563
Publicado: Mayo 09 2006, 18:16   
time depends on the active screen and on the orizontal width of the block
(and on the refresh rate 50/60Hz and on the sprite active and on the moon phase..)

given the screen and the logical operation,

a 16x4 block is faster than a 8x8

you can assume a formula like

T = a* dx*dy + b*dx

where a and b depends on the screen mode on the logical operation

go here for measures

http://map.tni.nl/articles/vdp_commands_speed.php
Prodatron
msx master
Mensajes: 1088
Publicado: Mayo 09 2006, 18:23   
Yes, I saw the test results on this page, I just don't know, what kind of blocks he filled/copied.
For proportional text output I will need to copy (logical) single W x 8 blocks for each char, where W is between 1 and 8. I am sure, normally you would use byte copy, if the text is not proportional, so I wonder, if in my case it won't be too slow at the end.
ARTRAG
msx master
Mensajes: 1563
Publicado: Mayo 09 2006, 18:32   
I've no fresh data, sorry
flyguille
msx master
Mensajes: 1175
Publicado: Mayo 09 2006, 18:41   
Quote:

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?




good enough just for typing and showing littles sentences at a time....

very slow for re-drawing all a window at a PAINT event

the vdp allow to do scrooling by itself so that helps, but clipping at the same time is a lot of work for only the CPU taking including seconds to do that.

a fast way is prebuffering but that eats a lot of RAM but it is clean, easy and faster.








manuel
msx guru
Mensajes: 3321
Publicado: Mayo 09 2006, 18:55   
Prodatron
msx master
Mensajes: 1088
Publicado: Mayo 09 2006, 19:34   
Quote:

good enough just for typing and showing littles sentences at a time....
very slow for re-drawing all a window at a PAINT event



Hm, bad news. Maybe I should prepare a line of proportional text in the CPU memory and copy it with "vram write" or the "highspeed put byte" command into the vram? Did someone already write a fast proportional text output routine? Just want to know, if it is somehow possible...
PingPong
msx professional
Mensajes: 836
Publicado: Mayo 09 2006, 20:29   
Prodatron, i've wrote a 'drawchar' routine that draw a 8x8 pattern requiring hl pointing to the charater shape, d=foreground color e=background color . This sub can draw at any x,y location. To give you an idea of much is fast i can draw about 768 8x8 patterns in less more than 1 second.

If you want, i can send you the source.

Regarding vdp command speed, as already said by artrag, depends much. However, to give an example:

Blitting an area in logical (pixel mode) can copy from a specified location to another location about 100000 pixels/sec. @50hz
Blitting an area in byte ( so called high-speed mode) can copy from a specified location to another location about 175000 bytes/sec. @50hz

If, you disable the HW sprites, you can increase the speed a little. For example:
with sprites on
Blitting an area in byte ( so called high-speed mode) can copy from a specified location to another location about 175000 bytes/sec. @50hz

with sprites off
Blitting an area in byte ( so called high-speed mode) can copy from a specified location to another location about 220000 bytes/sec. @50hz






PingPong
msx professional
Mensajes: 836
Publicado: Mayo 09 2006, 20:31   
Umh, I forgot: it is not a proportional routine, it draws an 8x8 pixels area, using 1 bit per pixel font stored in RAM not VRAM
PingPong
msx professional
Mensajes: 836
Publicado: Mayo 09 2006, 20:36   
Fill box operations are roungly 2x faster than copy operations. If you want bigger charaters maybe you can get decent result by submitting to vdp single box fill operations for each dot you want to draw. However this can be better that let do the hard work to the cpu only if you work with charaters bigger than 1 dot (for example x/y zoommed charaters).
Prodatron
msx master
Mensajes: 1088
Publicado: Mayo 09 2006, 21:08   
Thanx, PingPong, maybe your routine can be useful for chars inside the text line. I would be interested in the source (jmika at symbos dot de). Anyway I have more and more the feeling, that preparing a text line in the CPU memory and then copying it into the screen ram will be the fastest way.

Another problem: Currently I try to switch to screen mode 6 with this sequence:
di

ld a,8
out (#99),a
ld a,128+0
out (#99),a

ld a,32
out (#99),a
ld a,128+1
out (#99),a

ld a,0
out (#99),a
ld a,128+2
out (#99),a

ei

After this I set the palette like described here ( http://map.tni.nl/articles/vdp_tut.php#palette ) and then I write 256 bytes starting from address 0 in the VRAM. Unfortunately the screen stays completely black and empty. In the debugger, I can see, that the bytes have written correctly in the VRAM but I don't see anything on the screen.
Any idea what I did wrong?
Edwin
msx professional
Mensajes: 590
Publicado: Mayo 09 2006, 21:12   
You need to set bit 6 of register one. This enables the screen.
Edwin
msx professional
Mensajes: 590
Publicado: Mayo 09 2006, 21:19   
For practical purposes you need to set a few more registers though. I usually set the screen by writing the first 12 registers with an otir to port $9B. You can copy values for that from basic screens (easiest with an emulator) and change them as you figure out what you need.
Prodatron
msx master
Mensajes: 1088
Publicado: Mayo 09 2006, 21:29   
Great, now I see something Now there is a repeat of the screen data every 8 lines. So you are right, I didn't initialize all necessary things. Where do I find the default values ("basic screens"?
Edwin
msx professional
Mensajes: 590
Publicado: Mayo 09 2006, 21:36   
With that I meant, do a

10 screen 5
20 goto 20

and copy the values from debugger or something
manuel
msx guru
Mensajes: 3321
Publicado: Mayo 09 2006, 21:37   
check the regs in the emulator when you set it to a screen mode in basic.
 
Ir a la página ( Página anterior 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 Siguiente página )
 







(c) 1994 - 2008 Fundación MSX Resource Center. MSX es una marca registrada de MSX Licensing Corporation