[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: $c019 softswitch



David Wilson <david@uow.edu.au> wrote:

> bobryan9@my-dejanews.com writes:
> >At ftp://ground.ecn.uiowa.edu/apple2/MiscInfo/memory.softswitches there is
> >a list of softswitches.
> 
> >What is this softswitch used for, and what does it do?::
> 
> >RDVBLBAR        =       $C019           ;not VBL (VBL signal low)
> 
> ReaD Vertical BLanking (active low). Bit 7 of this location will be a 0
> when the video beam is in the vertical retrace region. This can be used
> to force updates of the video screen to be synchronised with the 50/60Hz
> refresh - ie you will never get a screen with half old data and half new
> displayed. It can also be used to allow fancy split screen effects (ie
> 1/3 HIRES, 1/3 TEXT, 1/3 LORES or other combinations). It is not a softswitch,
> rather it is a status flag.

I agree with David's description, but I just wanted to add the following
points about RDVBLBAR:

1. It doesn't exist on the original ][ or ][+, only the IIe and IIgs.

2. The IIc uses this location for a different but related purpose:
reading it returns a "VBL interrupt pending" flag and clears the flag.
I think the polarity is inverted from the IIe: bit 7 set indicates that
VBLInt is pending.  You can't safely use this if the mouse firmware is
active, because the mouse requires VBL itself.

3. If you have a mouse card in a ][, ][+ or IIe, it can be used to
generate a vertical blanking interrupt.  The same facility is provided
by the mouse firmware in the IIc and IIgs.

-- 
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand