www.retrosoftware.co.uk
http://www.retrosoftware.co.uk/forum/

Defining screen mode using hardware registers
http://www.retrosoftware.co.uk/forum/viewtopic.php?f=73&t=71
Page 1 of 1

Author:  DaveF [ Thu Apr 03, 2008 4:49 pm ]
Post subject:  Defining screen mode using hardware registers

Hello

I'm trying to define my screen mode by writing into the CRTC registers and the video ULA. The problem I'm having is that it appears to work for a few frames, then it would appear to have the teletext bit set again in the video ULA.

If I re-write my value into the video ULA each frame it sort of works but occasionally there'll be a flash of teletext(!). Does anyone know what causes the BBC to do this? I don't really want to write into that register every frame.

Cheers.

Author:  FrancisL [ Thu Apr 03, 2008 4:51 pm ]
Post subject:  Re: Defining screen mode using hardware registers

Do you have some sample code to illustrate the problem?

Also, are you trying this on a real BBC or under emulation?

Kind regards,

Francis.

Author:  DaveF [ Thu Apr 03, 2008 4:53 pm ]
Post subject:  Re: Defining screen mode using hardware registers

It's under (BeebEm) emulation.

I'm pushed a bit today at work but I'll try and get some sample code knocked up tomorrow.

Author:  TomW [ Thu Apr 03, 2008 8:29 pm ]
Post subject:  Re: Defining screen mode using hardware registers

The OS rewrites the ULA control every few frames for flashing colours. Either set a graphics mode before rewriting all the registers (rather than doing it from mode 7) and put up with colours 8-15 flashing, disable all interrupts, or stop the vsync interrupt from getting to the OS (using IRQ1V).

Author:  RichTW [ Thu Apr 03, 2008 8:44 pm ]
Post subject:  Re: Defining screen mode using hardware registers

Or use *FX 154,n to write to the Video ULA, which also updates the OS's copy that is rewritten every flash period.

Author:  DaveF [ Fri Apr 04, 2008 8:58 am ]
Post subject:  Re: Defining screen mode using hardware registers

Aha! Cheers wizards!

Page 1 of 1 All times are UTC [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/