scroll_screen man page
scroll_screen — Requests a hardware scroll request. Allegro game programming library.
int scroll_screen(int x, int y);
Attempts to scroll the hardware screen to display a different part of the virtual screen (initially it will be positioned at 0, 0, which is the top left corner). You can use this to move the screen display around in a large virtual screen space, or to page flip back and forth between two non-overlapping areas of the virtual screen. Note that to draw outside the original position in the screen bitmap you will have to alter the clipping rectangle with set_clip_rect().
Mode-X scrolling is reliable and will work on any card, other drivers may not work or not work reliably. See the platform-specific section of the docs for more information.
Allegro will handle any necessary vertical retrace synchronisation when scrolling the screen, so you don't need to call vsync() before it. This means that scroll_screen() has the same time delay effects as vsync().
Returns zero on success. Returns non-zero if the graphics driver can't handle hardware scrolling or the virtual screen is not large enough.
set_gfx_mode(3), show_video_bitmap(3), request_scroll(3), request_video_bitmap(3), exscroll(3)
exscroll(3), gfx_capabilities(3), request_scroll(3), request_video_bitmap(3), screen(3), show_video_bitmap(3), vsync(3).