Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in 
CSDb User Forums


Forums > C64 Coding > keep top 2 rows of screen from vertical scrolling
2021-07-19 03:09
TheWarCriminal

Registered: May 2011
Posts: 16
keep top 2 rows of screen from vertical scrolling

I lost my code from years ago that would keep the top 2 rows of the character screen (1024+80) from vertical scrolling with no flickering. I used it for the BBS I was creating back then. With recent devs in CBASE not performing how I would like it too I have started back recoding that BBS but I need 2 very important things. First off is a no vertical scroll on the top 2 rows. I know CBASE has one but it flickers and is compiled. Would like one in ML or someone point me in a starting direction. The 2nd one is a date ML routine. I know how to check the time and convert it into a readable format but the timer does not hold a date so it keeps resetting at 24hr. Since I am coding this BBS for WinVice is there a way to get the info from the emulated RTC?

I know this sounds like I have no clue what I am doing but when you have been away from c64 coding for 3 decades you loose the knowledge. Just getting reacquainted with BASIC V2 is a hazzle when you are so used to VB.NET behind code. One oh the things that constantly get me is the string setup: BASIC V2 is string$ where as VB.NET is $string. Which ever company decided to screw around with the context should have left it alone.

Any help would be appreciated in this. (I have searched the forums here, Google and Internet Archive c64 Books)
 
... 28 posts hidden. Click here to view all posts....
 
2021-07-19 14:53
Krill

Registered: Apr 2002
Posts: 1974
For scrolling the screen up while leaving the top two rows unchanged, try something like this:

- copy the KERNAL screen scroll routine at $e8ea-$e964 http://unusedino.de/ec64/technical/aay/c64/rome8ea.htm to some spare RAM.
- change the argument byte at the RAM equivalent of "E8F6: A2 FF LDX #$FF" to $01, so that it's ldx #$01.
- call the RAM subroutine whenever you need to scroll.

I'm not sure what you mean by "flickering", though.
2021-07-19 20:15
Silver Dream !

Registered: Nov 2005
Posts: 73
I am not sure whether you try to use the KERNAL scrolling or you want to scroll screen content yourself. In the first case you need to patch KERNAL, which is more tricky but surely possible. In the latter you just scroll your content starting (or ending - depending on the direction) at $0450 / $d850. I also assume that you're not trying to do this in CBM BASIC as this would be too slow to be of any real use.
2021-07-19 20:19
Silver Dream !

Registered: Nov 2005
Posts: 73
Quoting Krill
I'm not sure what you mean by "flickering", though.


Me neither. I'd guess he lets the KERNAL do the scrolling while constantly overwriting the top lines with desired stuff.
2021-07-19 20:21
Groepaz

Registered: Dec 2001
Posts: 9973
yes, thats what the BBS things usually do. and considering how you size optimize those programs, its probably ok too :)
2021-07-19 20:34
Count Zero

Registered: Jan 2003
Posts: 1398
And for reversiness you need to of course put the reverse versions of the screencodes into !scr.

Likely you try to replace something originally starting with {Home}{RvsOn} and using CHROUT?
And wouldn't CHROUT be a good routine to replace to gain great speeds on RS232 output anyhow?
Leading to - why at all scroll the screen when looking at user actions (as its unlikely for the call waiting screen to flicker :) ) The output routine can handle suppressing it, no?

Keep us updated on your progress of outperforming recent CBASE devs.
2021-07-19 20:43
Krill

Registered: Apr 2002
Posts: 1974
Quoting Silver Dream !
I'd guess he lets the KERNAL do the scrolling while constantly overwriting the top lines with desired stuff.
Quoting Groepaz
yes, thats what the BBS things usually do. and considering how you size optimize those programs, its probably ok too :)
Oh well, that tweaked KERNAL scroll routine i suggested can be reduced to just copying and patching its head until the critical ldx #$01, then jumping to the rest of the code in KERNAL. Not very big.
2021-07-19 22:51
Silver Dream !

Registered: Nov 2005
Posts: 73
The potential issue I can think of is that in order to employ the call-scroll-when-needed approach one has to track when scrolling is required. Whereas just CHROUTing and letting KERNAL do the tracking work is surely easier (and shorter).
2021-07-19 23:41
Groepaz

Registered: Dec 2001
Posts: 9973
I'd worry about all that once the rs232 things work and transfer protocolls are implemented :)
2021-07-20 20:32
TheWarCriminal

Registered: May 2011
Posts: 16
Since no one actually paid attention to the top lines of the code there is a lda TEXTFLAG that compares it to 01 which is on or 0 which is off. If off then code is not executed. This is for xfers and waiting screen. I did think it through.

I never said I was trying to OUT DO the CBASE devs. I wanted something for me so I could easily mod. If that upsets ppl then that is on them.

And what CBASE does is what I am trying not to do. The top 2 rows do stay but once the screen scrolls it "flickers" cause it has to overwrite again. I know how to split screen and bank it but that would not work since it would require a 3rd line to hide the that line going up to 2. If it needs it for smooth operation then I will make it 3.

The lines are for letting me know who is online, the time/date and location of the bbs they are in.

I know about rvs on but the assembler does not allow special characters inside quotes. (C64 Studio ASM)
2021-07-20 20:47
Krill

Registered: Apr 2002
Posts: 1974
Quoting TheWarCriminal
I know about rvs on but the assembler does not allow special characters inside quotes. (C64 Studio ASM)
Does it have to be inside quotes?

Surely that assembler allows for something rather common like
RVSON  = $12
RVSOFF = $92

.byte RVSON, "HELLO", RVSOFF
Previous - 1 | 2 | 3 | 4 | 5 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Ze Smasher/F4CG
Majikeyric/ONS+HF
icon/The Silents, Sp..
Guests online: 45
Top Demos
1 Edge of Disgrace  (9.6)
2 Bromance  (9.6)
3 Coma Light 13  (9.6)
4 Uncensored  (9.6)
5 Memento Mori  (9.5)
6 Comaland 100%  (9.5)
7 Lunatico  (9.5)
8 Unboxed  (9.5)
9 Christmas Megademo  (9.5)
10 Wonderland XII  (9.5)
Top onefile Demos
1 Copper Booze  (9.7)
2 Barry Boomer - Trapp..  (9.5)
3 Daah, Those Acid Pil..  (9.5)
4 Dawnfall V1.1  (9.5)
5 To Norah  (9.5)
6 Lovecats  (9.5)
7 Elite Code Mechanics  (9.4)
8 Quadrants  (9.4)
9 For Your Sprites Only  (9.4)
10 Oldschool Sprite Demo  (9.4)
Top Groups
1 Booze Design  (9.4)
2 Oxyron  (9.4)
3 PriorArt  (9.3)
4 Crest  (9.3)
5 Triad  (9.3)
Top Webmasters
1 Morpheus  (9.7)
2 Perff  (9.6)
3 Slaygon  (9.6)
4 Sabbi  (9.4)
5 CreaMD  (9.3)

Home - Disclaimer
Copyright © No Name 2001-2021
Page generated in: 0.044 sec.