<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Mon, 10 Jan 2005 18:47:14 +0000
From   : Richard_Talbot-Watkins@...
Subject: Re: Video ULA shenanigans

tom wrote on 11/12/2004 16:07:55:

> Whilst on the subject of odd tricks, another one is to go into
> mode 5 (or "mode 8") but set up the CRTC registers as if
> in mode 7.
>
> [snip rest of excellent chunky mode details]

Thanks for that Tom.  Always good to know there's still Beeb secrets I'd
never encountered before (the last new revelation to me was 'vertical
rupture' about 3 years ago).  I'd always taken the algorithm in the AUG for
calculating Mode 7 CRTC addresses at face value, rather than actually
looking at what it was doing, probably because I'd never had any need to
scroll a Mode 7 screen.

So, just looking at the Mode 7 address calculation for a moment:

R12 = (address.hi - &74) EOR &20
R13 = (address.lo)

Some questions:

* Does this mean it's possible to set *any* character cell in a Mode 7
screen as the start address and achieve character-by-character horizontal
scrolling?  I never tried it...

* Subtracting &74 seems bizarre to me.  But nonetheless maybe implies that
memory in the range &7400..&7FFF can be addressed in Mode 7.  Is this true?
What is stopping us from setting a 64 row screen with 4 scanlines per row
(in 'chunky' Mode 2) and setting a start address of &7800?

Combining R12 and R13 to a 14-bit register, we get:

bits 0-11: address
bit 12: unknown
bit 13: addressing mode select (0 = normal, 1 = teletext style)

So it appears when bit 13 is clear, then bits 0-11 are mapped to address
lines A3-A14 - easy.

When bit 13 is set, it seems less obvious... it looks as if bits 0-9 are
mapped to address lines A0-A9 (to cover a full Teletext-sized screen), and
then maybe the remaining lines A10-A14 are hardwired appropriately, but I
don't understand why it seems necessary to also set bit 11, as is always
the case for normal Mode 7-range addresses.  What happens if it is not set?
Can we *really* start a Mode 7 screen at an address lower than &7C00?

And also, does anyone know if bit 12 of the address register is used for
anything?

Sorry for all the questions but I don't have a Beeb to experiment with at
the moment, and all this stuff has piqued my interest again!

Happy New Year to all!

Rich




**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
postmaster@...

This footnote also confirms that this email message has been checked
for all known viruses.

**********************************************************************
Sony Computer Entertainment Europe
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>