Schrijver
| peek &hf3b1
|
DarQ msx professional Berichten: 836 | Geplaatst: 16 Augustus 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 Berichten: 1183 | Geplaatst: 16 Augustus 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 Berichten: 836 | Geplaatst: 16 Augustus 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 Berichten: 1183 | Geplaatst: 16 Augustus 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 Berichten: 836 | Geplaatst: 16 Augustus 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 Berichten: 1183 | Geplaatst: 16 Augustus 2005, 20:40   |
no, man
uses LOCATE, plus PRINT
we are talking of basic programming here ?
|
|
[D-Tail]
 msx guru Berichten: 2994 | Geplaatst: 16 Augustus 2005, 23:52   |
Euhh... wot 'bout a screensplit of screen 0 and... screen 0?  |
|
flyguille msx master Berichten: 1183 | Geplaatst: 17 Augustus 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 Berichten: 836 | Geplaatst: 17 Augustus 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 Berichten: 1503 | Geplaatst: 17 Augustus 2005, 10:21   |
|
|
DarQ msx professional Berichten: 836 | Geplaatst: 17 Augustus 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 Berichten: 3142 | Geplaatst: 17 Augustus 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: - copy the lower part to RAM from the next line and copy it back with 80 spaces added to it
- 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 Berichten: 1231 | Geplaatst: 17 Augustus 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 Berichten: 3142 | Geplaatst: 17 Augustus 2005, 18:36   |
LOCATE 0,0 in MSX-BASIC
LOCATE 1,1 in GW-BASIC (or other PC BASICs)
|
|
DarQ msx professional Berichten: 836 | Geplaatst: 17 Augustus 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.
|
|
|
|
|