| |
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.... |
| |
Count Zero
Registered: Jan 2003 Posts: 1821 |
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. |
| |
Krill
Registered: Apr 2002 Posts: 2839 |
Quoting Silver Dream !I'd guess he lets the KERNAL do the scrolling while constantly overwriting the top lines with desired stuff. Quoting Groepazyes, 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. |
| |
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). |
| |
chatGPZ
Registered: Dec 2001 Posts: 11112 |
I'd worry about all that once the rs232 things work and transfer protocolls are implemented :) |
| |
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) |
| |
Krill
Registered: Apr 2002 Posts: 2839 |
Quoting TheWarCriminalI 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 likeRVSON = $12
RVSOFF = $92
.byte RVSON, "HELLO", RVSOFF |
| |
Krill
Registered: Apr 2002 Posts: 2839 |
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. =) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11112 |
i wonder what the intend of the adc 192 in there is (a missing # there?) |
| |
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. |
| |
Krill
Registered: Apr 2002 Posts: 2839 |
As Groepaz suggested, seems like you want to ADC #192 (the literal value) instead of ADC 192 (the value at address 192). |
Previous - 1 | 2 | 3 | 4 | 5 - Next |