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

Re: help with DHR plotting



In article <Pine.SUN.3.91.951210100139.4708B-100000@owens>,
Cyrus Roton  <croton@ridgecrest.ca.us> wrote:
> I need help in debugging a double hi-res plotting routine. The
> following program steps are used in setting up for DHR plotting: 

[snip]

> The problem is that certain programs (not all of them) which use 80
> columns, seem to leave some softswitch or another set to interfere with
> this plotting.

I'll second what Neil Parker said - my first guess would be that
shadowing of the auxiliary memory double hi-res buffers has been
disabled.

Check the contents of location $C035: bits 4, 2 and 1 should be clear.
(Bits 6 and 0 must also be clear, bit 3 may be set either way - it
controls super hi-res shadowing, bits 5 and 7 are reserved on the ROM
1 motherboard.)

Note: you cannot reliably access this location from the monitor,
because it is saved on entry and restored on exit.  Use LDA/STA from a
machine language routine, with an AND instruction to clear the
required bits, or a TRB instruction to clear the appropriate bits
directly.  From BASIC, you can use PEEK and POKE, but it is a little
harder to do the bit manipulation.

Staying with the IIgs, my second suggestion would be that something
has turned on the "linearisation" bit in the NEWVIDEO register, which
causes some memory in bank 1 to get rearranged, preventing Double
Hi-res working properly.  This is less likely.

NEWVIDEO is at location $C029.  Bit 6 must be clear to disable
linearisation.  Bit 5 of this register determines whether double hi-res
graphics is displayed in monochrome or colour mode on an RGB monitor
(0 for colour).  Bit 7 is used to enable Super Hi-res graphics mode.
The other bits in this register MUST be preserved when modifying its
contents - you will cause an instant crash otherwise.
-- 
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand