Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user maak ! (Registered 2024-04-18) You are not logged in - nap
CSDb User Forums


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

Registered: May 2011
Posts: 30
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 20:21
chatGPZ

Registered: Dec 2001
Posts: 11092
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: 1820
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: 2822
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: 107
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
chatGPZ

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

Registered: May 2011
Posts: 30
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: 2822
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
2021-07-20 20:53
Krill

Registered: Apr 2002
Posts: 2822
Quoting Silver Dream !
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).
Shouldn't take that much code or complexity to hook into the CHROUT vector IBSOUT = $0324/25 and custom-scroll (without the two top rows) whenever the next printed character would scroll. =)
2021-07-20 21:38
chatGPZ

Registered: Dec 2001
Posts: 11092
i wonder what the intend of the adc 192 in there is (a missing # there?)
2021-07-20 22:44
TheWarCriminal
Account closed

Registered: May 2011
Posts: 30
Krill: I will try that but C^$ ASM ACME uses !byte instead of .byte

Groepaz: the adc 192 is for adding 192 to the screen code going out to 1024+ for reverse which is not working. Even turning it on at location 199 prior to and turning it off before exiting is not working. I know the adc is working cause adding 128 gives a completely different screen code character. 192 stays the same as the source which is below that.

I am going to figure this out. 30 years ago this would be a cinch but it takes time for me to readjust from an easy environment.
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
VanessaE/Digital Aud..
TheRyk/MYD!
Earthshaker/Silicon ..
cba
Didi/Laxity
Paladin/G★P
Brataccas/HF
Airwolf/F4CG
kbs/Pht/Lxt
Low Spirit
CreaMD/React
Guests online: 122
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 The Ghost  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.9)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 Rainbow Connection  (9.5)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Onscreen 5k  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Logo Graphicians
1 Sander  (10)
2 Facet  (9.7)
3 Mermaid  (9.4)
4 Pal  (9.4)
5 Shine  (9.3)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.046 sec.