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


Forums > C64 Coding > Turning screen off/on
2015-07-10 18:20
The Phantom

Registered: Jan 2004
Posts: 360
Turning screen off/on

Hey all...

Here I am with another perplexing question. Well, for me anyway.

I've been experimenting with code stuffs while having the screen turned off and am impressed with the results.

I was in deep conversation with Elwix last night, talking about this and he thinks it can be done. I myself, could not figure it out. So I'll ask the question, regardless of how it will make me look.

Is it possible to turn off say, HALF the screen while having graphics displayed on the other half?

I'm not looking for code, I just want to know if it is possible, and if you have done it, how difficult it was (if at all).

Thanks for taking the time to read this :D
2015-07-10 18:35
Mixer

Registered: Apr 2008
Posts: 452
Depends on which of the many possible halves you wish to be visible and which not.
2015-07-10 18:36
T.M.R
Account closed

Registered: Dec 2001
Posts: 749
Quoting The Phantom
Is it possible to turn off say, HALF the screen while having graphics displayed on the other half?


No, the VIC-II won't let you mix and match like that.
2015-07-10 18:47
algorithm

Registered: May 2002
Posts: 705
Just fake a blank screen area :-) alternatively you can use a similar method as in removing side borders. Which makes that whole line equivelant to d020. But need to do this every line with precise timing obviously
2015-07-10 19:15
JackAsser

Registered: Jun 2002
Posts: 2014
Using d011 with a simple raster split won't cut it. Turning off the screen normally is done to remove bad lines and get more performance / more stable timing (as in digi playback). You can semi-turn of the screen by altering $d011 every 7th scan line to prevent bad lines from occur. This is essentially a variant of a trick called FLD.
2015-07-10 19:19
Flavioweb

Registered: Nov 2011
Posts: 463
You can turn on/off ALL screen area, setting (or clearing) the DEN bit of $D011 during an arbitrary cycle of raster line $30.
This work only for ALL screen area.
As stated by Algorithm, you can do just the opposite of the "open side border" trick, closing it for all screen lenght...
Badlines still where they are.

I suppose that "the thing that amazes you" is the fact that, with screen "turned off", no badlines are active, so you have more (cpu) time to "do things"...
2015-07-10 19:48
Oswald

Registered: Apr 2002
Posts: 5094
inverse of sideborder removing logically shouldnt happen, hence there is side and middle border unit, right? any explanation on it ? trick shoud be done on the left border?
2015-07-10 20:03
tlr

Registered: Sep 2003
Posts: 1790
Quote: inverse of sideborder removing logically shouldnt happen, hence there is side and middle border unit, right? any explanation on it ? trick shoud be done on the left border?

It's completely logical. Just change the 38/40 column bit so the left side compare to stop rendering the border misses.
2015-07-10 20:03
Flavioweb

Registered: Nov 2011
Posts: 463
Quote: inverse of sideborder removing logically shouldnt happen, hence there is side and middle border unit, right? any explanation on it ? trick shoud be done on the left border?

Vic "turn on" border on cycle 56 and "turn off" border in cycle 17 of the next line.
Doing "the trick" here should keep border closed.
2015-07-10 21:24
Perplex

Registered: Feb 2009
Posts: 255
Using the trick Jackasser mentioned you can also display a fullscreen hires bitmap image without badlines, though with the limitation that colours will be the same for each row.
2015-07-10 22:47
Krill

Registered: Apr 2002
Posts: 2980
Quoting Perplex
Using the trick Jackasser mentioned you can also display a fullscreen hires bitmap image without badlines, though with the limitation that colours will be the same for each row.
Hmm, it's different, i think. Jackasser's approach is moving the screen out of the way by setting YSCROLL in $d011 as rarely as possible, which is once for 7 raster lines. But your suggestion is a variant of line-crunching, which is setting $d011 every line, beginning in the last raster line of a char row.

The Phantom: What is it that you want to achieve? Generally Jackasser's suggestion is the easiest way to get rid of badlines in an arbitrary screen area while displaying graphics data in the remainder. There's also a way to turn off all badlines and thus graphics rendering with just a few writes to $d011 once a frame, so you can display sprites without badline interference.
2015-07-11 11:53
The Phantom

Registered: Jan 2004
Posts: 360
Nice.

I was playing with splits with the screen turned off. What amazed me so much was I was able to get 13 splits per scan line, without the bad line. I made no "real" effort to do this, so I imagine a lot more can be done.

For the last couple weeks, I've been trying to accomplish the same results without turning the screen off, but cannot. I can't get more than 10 splits (per line) with the screen on.

With the help being offered here, I know my efforts won't be for nothing. So keep helping everyone :D

It IS appreciated. Thanks everyone :D
2015-07-11 12:40
Oswald

Registered: Apr 2002
Posts: 5094
so afterall there's just one border drawing mechanism, and side and top/bottm logics to toggle it ? what if with screen off we do an inverse sideborder removal? guess nothing :)
2015-07-11 12:52
Flavioweb

Registered: Nov 2011
Posts: 463
Horizontal flip/flop works only if DEN bit is set. If you want to open side border in top/bottom border area, you need to "open" also the top/bottom border, otherwise nothing happen.
2015-07-11 14:02
algorithm

Registered: May 2002
Posts: 705
You can have a full screen non bad line mode with sprites only via the approach of removing top and bottom border only that you would use values such as $03 then $0b.
2015-07-12 03:29
ChristopherJam

Registered: Aug 2004
Posts: 1409
I've been meaning to ask the same question, partly prompted by the loading thread over at Release id #139503 : Spindle 2.0

Bashing $d011 at least once every seven lines was the best I could come up with too.
2015-07-12 05:23
Flavioweb

Registered: Nov 2011
Posts: 463
Quoting ChristopherJam

Bashing $d011 at least once every seven lines was the best I could come up with too.

As algorirhm stated, you can have a bottom/top open border with fullscreen without badlines (and no gfx), but where sprites are allowed, or have a normal screen with same condition clearing DEN bit on line $30 and set it again in $31-33.
You need to fight against cycles used by sprites anyway.
2015-07-12 05:52
ChristopherJam

Registered: Aug 2004
Posts: 1409
Yes, but I want (eg) 16 rows of chars fetched normally, and the next 191 lines completely free of DMA without having to tickle VIC on a regular basis. Not doable, so far as I'm aware.

Ah well. ldy $d012:lda killtable,y:sta $d011 from time to time when I know I'm free is still better than dealing with 43 cycles ripped from under my feet mid transfer.
2015-07-12 07:24
Oswald

Registered: Apr 2002
Posts: 5094
"43 cycles ripped from under my feet mid transfer."

thats the spirit! my precioussssss!! (cycles) :)

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
Durandal
Quetzal/Chrome
Alakran_64
Guests online: 117
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Violator  (9.7)
4 Acidchild  (9.7)
5 Cash  (9.6)

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