home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / progbas / pbwiz12.arj / VGADEMO.BAS < prev    next >
Encoding:
BASIC Source File  |  1992-02-27  |  3.0 KB  |  99 lines

  1. '   +----------------------------------------------------------------------+
  2. '   |                                                                      |
  3. '   |         PBWIZ  Copyright (c) 1991-1992  Thomas G. Hanlin III         |
  4. '   |                                                                      |
  5. '   |                      PowerBASIC Wizard's Library                     |
  6. '   |                                                                      |
  7. '   +----------------------------------------------------------------------+
  8.  
  9.    $INCLUDE "pbwiz.inc"
  10.  
  11.    $LINK "equipmen.obj"
  12.    $LINK "g13a.obj"
  13.    $LINK "g13b.pbu"
  14.    $LINK "gn0a.obj"
  15.    $LINK "gn0b.pbu"
  16.  
  17.    DEFINT A-Z
  18.  
  19.    RANDOMIZE TIMER
  20.  
  21.    CALL GetDisplay (Adapter, Mono)
  22.  
  23.    IF Adapter <> 6 THEN
  24.       PRINT "Sorry.  VGADEMO requires a VGA to run."
  25.       END
  26.    END IF
  27.  
  28.    CALL G13Mode (1)                    ' ...put into low-res VGA mode
  29.    CALL G13Color (4, 2)
  30.    CALL G13WriteLn ("PBWiz gives you access to 256-color VGA")
  31.    CALL G13Color (0, 3)
  32.    CALL G13WriteLn ("modes from  320x200 to 360x480  on any ")
  33.    CALL G13Color (7, 1)
  34.    CALL G13WriteLn ("standard VGA.   This is 320x200.   The ")
  35.    CALL G13Color (5, 8)
  36.    CALL G13WriteLn ("360x480 mode is shown on the next page.")
  37.    CALL G13WriteLn ("")
  38.    CALL G13Color (4, 14)
  39.    CALL G13WriteLn ("Full text & graphics support included. ")
  40.    FOR Y = 0 TO 31
  41.       CALL G13Color (Y + 16, 0)
  42.       CALL G13Box (Y, Y + 64, 319 - Y, (64 - Y) + 120, (Y = 100))
  43.       IF Y > 15 THEN
  44.          CALL G13Polygon (Y * 15 - 194, 112, 5, INT(RND * 6 + 1) + 2, .75 * 3.141593)
  45.          CALL G13Color (64 - Y, 0)
  46.          CALL G13Polygon (Y * 15 - 194, 136, 5, INT(RND * 6 + 1) + 2, 0)
  47.       END IF
  48.    NEXT
  49.    CALL G13Locate (25, 14)
  50.    CALL G13Color (15, 4)
  51.    CALL G13Write ("Press any key")
  52.  
  53.    DO
  54.    LOOP WHILE LEN(INKEY$)
  55.    DO
  56.       ky$ = INKEY$
  57.    LOOP UNTIL LEN(ky$)
  58.    IF ky$ = CHR$(27) THEN GOTO Done
  59.  
  60.    CALL GN0Mode (1)
  61.  
  62.    CALL GN0Color (C, 0)
  63.    CALL GN0Cls
  64.    CALL GN0Locate (60, 1)
  65.    CALL GN0Color (30, 4)
  66.    CALL GN0Write ("360x480 graphics mode. Press any key to exit")
  67.  
  68.    MaxX = 359
  69.    MaxY = 479 - 9
  70.    MaxColor = 255
  71.  
  72.    X = INT(RND * MaxX \ 2)
  73.    Y = INT(RND * MaxY \ 2)
  74.    C = INT(RND * (MaxColor - 1) + 1)
  75.  
  76.    DO
  77.       CALL GN0Plot (X, Y)
  78.       CALL GN0Plot (MaxX - X, Y)
  79.       CALL GN0Plot (MaxX - X, MaxY - Y)
  80.       CALL GN0Plot (X, MaxY - Y)
  81.       SELECT CASE INT(RND * 3)
  82.          CASE 0: X = X - 1: IF X < 0 THEN X = MaxX \ 2
  83.          CASE 1: X = X + 1: IF X > MaxX \ 2 THEN X = 0
  84.          CASE ELSE
  85.       END SELECT
  86.       SELECT CASE INT(RND * 3)
  87.          CASE 0: Y = Y - 1: IF Y < 0 THEN Y = MaxY \ 2
  88.          CASE 1: Y = Y + 1: IF Y > MaxY \ 2 THEN Y = 0
  89.          CASE ELSE
  90.       END SELECT
  91.       IF INT(RND * 20) = 1 THEN
  92.          C = INT(RND * (MaxColor - 1) + 1)
  93.          CALL GN0Color (C, 0)
  94.       END IF
  95.    LOOP UNTIL LEN(INKEY$)
  96.  
  97. Done:
  98.    CALL GN0Mode (0)                    ' restore text mode
  99.