[comp.sys.amiga.tech] Scrolling a SuperBitMap

mhell@mhell.UUCP (Manfred Hell) (05/07/90)

One of my application programs uses a SuperBitMap (1024 pixels hor.)
and an associated Screen with 640 pixels wide. This done as described
in the common manuals with InitBitMap and AllocRaster. While running 
the program users can scroll over the total area which is done by the
sequence of following functions:
Preparation:
InitBitMap() using 4 Planes
AllocRaster()
OpenScreen() using CUSTOMSCREEN, CUSTOMBITMAP amd HIRES
OpenWindow() using SUPERBITMAP
view=ViewAdress();
rxoffset=&(viewport->RasInfo->RxOffset); the pointer-variable that
                                   holds the xoffset for scrolling
To scroll i do for instance
*rxoffset+=4;
MakeScreen(screen);
MrgCop(view);
LoadView(view);

These three functions could be sustituited by ScrollVPort(), but 
this causes Interrupts to be disabled and I need interrupts running
undisturbed.
Here's the problem:
Doing this sequence repeatedly (for scrolling) display switches from
PAL to NTSC and back, that is on screenbottom a black area is blinking
hiding parts of the screen. The effect does NOT come up when using
Workbench 1.2 or using a display with only 2 Planes! It was verified
on different machines with different system-configurations ( with and
without PC-Board, Harddisks ). Further i notized, that when screen is
in the 'NTSC'-state obviously processor is blocked out from memory-
access, because program runs slower.
What happens? Where's the mistake? In my programm or in WB1.3 ?

Thanks for any hint!



--
Manfred Hell
....!cbmehq!cbmger!mhell!mhell