'=========================================================================== ' Subject: HORIZONTAL PAN DEMO Date: Unknown Date (00:00) ' Author: Christy Gemmell Code: QB, QBasic, PDS ' Keys: HORIZONTAL,PAN,DEMO Packet: EGAVGA.ABC '=========================================================================== ' PANDEM.BAS demonstrates how to pan EGA/VGA screens ' ' Author: Christy Gemmell ' DECLARE SUB PanDisplay (x%, y%) CONST FALSE = 0, TRUE = NOT FALSE SCREEN 9 LINE (0, 0)-(639, 349), 9, BF VIEW SCREEN (40, 25)-(600, 325), 0, 15 CIRCLE (319, 174), 150, 14 PAINT (319, 174), 14, 14 x% = 0: y% = 0: Esc$ = CHR$(27) LeftArrow$ = CHR$(0) + CHR$(75): RightArrow$ = CHR$(0) + CHR$(77) UpArrow$ = CHR$(0) + CHR$(72): DownArrow$ = CHR$(0) + CHR$(80) DO DO KeyStroke$ = INKEY$ LOOP WHILE KeyStroke$ = "" Pan% = TRUE SELECT CASE KeyStroke$ CASE LeftArrow$ IF x% > 0 THEN x% = x% - 1 CASE RightArrow$ IF x% < 79 THEN x% = x% + 1 CASE UpArrow$ IF y% > 0 THEN y% = y% - 1 CASE DownArrow$ IF y% < 22 THEN y% = y% + 1 CASE ELSE Pan% = FALSE END SELECT IF Pan% THEN PanDisplay x%, y% * 5 LOOP UNTIL KeyStroke$ = Esc$ END ' Set display window co-ordinates -- [MAIN CODE!!] ' Works on EGA, VGA, MCGA, no CGA SUB PanDisplay (x%, y%) STATIC OUT &H3D4, 12: OUT &H3D5, y% ' Scroll screen vertically OUT &H3D4, 13: OUT &H3D5, x% ' Scroll screen horizontally END SUB