peek &hf3b1 (Development Foros MSX)MSX Resource Center            
                       
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 39 invitados y 2 miembros en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Development - peek &hf3b1

Ir a la página ( 1 | 2 Siguiente página )
Autor

peek &hf3b1

DarQ
msx professional
Mensajes: 844
Publicado: Agosto 16 2005, 16:16   
Hi

that address tells you how many lines there are on the screen. 24 in screen 0. if i poke to it, i can make it all work with just 10 lines, which seems to print a lot faster.

anyway, its not the speed im asking for. can i have 2 small screens with each 12 lines on top of eachother? each scrolling their contents up if they run out of lines? but not disturbing the screen on top?

who knows it, please say it!

thnx
flyguille
msx master
Mensajes: 1237
Publicado: Agosto 16 2005, 17:31   
yes, you can...

but you needs to switch all the time before to print on one or other screen

F3b1 set up the line limit... and it can be as big a 255 lines.... (you will fuck the patterns if you don't move it at the ends of the VRAM. )

also make sure to use KEY OFF all the time...

IIRC the start line is being calculated by the base addr of the name table... plus the width left margin...

mmmmm

maybe the C-BIOS's programmers can confirm it... or place here the correct poke addr.
DarQ
msx professional
Mensajes: 844
Publicado: Agosto 16 2005, 18:06   
the baseaddress of the name table in screen 0 = 0 or am i wrong?

well, i now can write chars to the bottom of the screen with f3b1=12.

but how can i send a linefeed? so it scrolls up at the end?

btw: i have keyoff, but why do i have to do keyoff all the time?
flyguille
msx master
Mensajes: 1237
Publicado: Agosto 16 2005, 19:06   
no... just make sure key is off... nothing more

about the scroll... the best way is to place the cursor at the end and sends a PRINT

it will scroll...

yes, the baseaddr is 0

maybe there is a peek... i will asks

DarQ
msx professional
Mensajes: 844
Publicado: Agosto 16 2005, 19:19   
it doesnt really work. it only works partly for the upper part of the screen. if i put the cursor with pokes &hf3dc and &hf3dd at the lower right bottom of the screen (in the lower part of the lines). .. nothing happens..

only the upper part will scroll upwards when i found my cursor back. the lower part doesnt want to scroll up at all.
flyguille
msx master
Mensajes: 1237
Publicado: Agosto 16 2005, 20:40   
no, man

uses LOCATE, plus PRINT

we are talking of basic programming here ?
[D-Tail]

msx guru
Mensajes: 3026
Publicado: Agosto 16 2005, 23:52   
Euhh... wot 'bout a screensplit of screen 0 and... screen 0?
flyguille
msx master
Mensajes: 1237
Publicado: Agosto 17 2005, 00:14   
no D-Tail

is possible to put limits to the BASIC to works in a screen area and not in the whole screen, in order to show text, and scroll the text....

the same can be done in screen 1 or screen 2(1) and use the text scroll for scroll the graphics

but offcourse..... if you want to program a bit of assembler
there in MRC is another threas where is a full assembler code, compiled, with that you can to scrool in the eight directions ....
DarQ
msx professional
Mensajes: 844
Publicado: Agosto 17 2005, 01:06   
no, locate and poking the cursor to a location dont work for the lower part of the screen. only for the upper part. i tried both ofcourse in basic.

and no i dont want to use asm right now. want to do it in basic. but remember, i do NOT want a horizontal scroller but 2 vertical scrolling `terminals`.

i think you might understood me wrong or i didnt specify my wishes clear enough. doenst matter but i want 2 seperate vertical scrolling windows. they only have to scroll up when a new line is added, just like the normal basic environment. but then split in half en duplicated.

see it like displaying to large textfiles at once, both with scrolling capabilities.

i can put a horizontal scroller downthere and i can put status information there, but i also have to make it scroll upwards, just like the upper part of the screen does.

anyway, thnx fly and dtail for your replies
NYYRIKKI
msx master
Mensajes: 1533
Publicado: Agosto 17 2005, 10:21   

If you are using BASIC, I suggest you to use ESC+"M" and ESC+"L" VT-52 codes to scroll your windows. For more information, look for example here:

http://www.berkhan.com/basic/manual_7/manual_e/data/chap7-1.htm


DarQ
msx professional
Mensajes: 844
Publicado: Agosto 17 2005, 16:35   
Well, that also doesnt work for the lower part of the screen.

i tried everything but everytime its only the upperpart of the screen that scrolls.

i just can't seem to have the lower part do anything.. i can only vpoke to it. but vpoking code 27+asc(M or L) is quite useless

though its an interesting site. didnt know using escapes was possible like this
BiFi
msx guru
Mensajes: 3142
Publicado: Agosto 17 2005, 18:25   
Sometimes you need to do something yourself... That POKE &HF3B1,value only works with the top value lines. to scroll the lower part, you can do 2 things:
  1. copy the lower part to RAM from the next line and copy it back with 80 spaces added to it
  2. copy the upper part to RAM, let the BIOS do its scrolling work and restore the upper part
I'd suggest doing the first as the second looks pretty ugly.

I did something like this about 10 years ago when I was investigating MIDI... I wrote a split screen chat to do something useful with the MIDI routines that came up during those investigations. Though the lower part was done completely in BASIC back then

I just checked the BASIC file. It used a VT-52 code to scroll the lower part: ESC+J
AuroraMSX

msx master
Mensajes: 1277
Publicado: Agosto 17 2005, 18:32   
Quote:

Well, that also doesnt work for the lower part of the screen.

i tried everything but everytime its only the upperpart of the screen that scrolls.

i just can't seem to have the lower part do anything.. i can only vpoke to it. but vpoking code 27+asc(M or L) is quite useless

though its an interesting site. didnt know using escapes was possible like this



Ehm, VPOKEing and escape codes don't match. You'll have to use plain old LOCATE and PRINT

scroll bottom half of the screen one line up:

LOCATE 1,13: PRINT CHR$(27)+"M";


Scroll top part (or actually, scroll complete screen up, and then bottom part back down):

LOCATE 1,1: PRINT CHR$(27)+"M";: LOCATE 1,13: PRINT CHR$(27)+"L"


(I can't remember if top left of the screen is 1,1 or 0,0 for LOCATE. Change accrodingly...)

BiFi
msx guru
Mensajes: 3142
Publicado: Agosto 17 2005, 18:36   
LOCATE 0,0 in MSX-BASIC
LOCATE 1,1 in GW-BASIC (or other PC BASICs)
DarQ
msx professional
Mensajes: 844
Publicado: Agosto 17 2005, 18:43   
i think i will use BiFi's approach. if needed i will copy vram upwards to have the lower part scroll as well...
although aurora's idea is nice too.
 
Ir a la página ( 1 | 2 Siguiente página )
 







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