TIP: Click on subject to list as thread! ANSI
echo: power_bas
to: ALL
from: DAVE NAVARRO
date: 1998-02-10 12:41:00
subject: PCX Slide Show

From: dave@powerbasic.com (Dave Navarro)
Subject: PCX Slide Show
 
'=============================================================================
'
'  PCX Slide Show by Dave Navarro (dave@powerbasic.com)
'
'  PCX decoder code by Greg Turgeon (76470.2417@compuserve.com)
'
'  Uses VESA to display PCX files in 256 colors at 640x480.
'
'=============================================================================
 
$OPTIMIZE SPEED
$LIB ALL OFF
 
'============
 
$LIB GRAPH ON
$LIB VGA ON
 
DECLARE FUNCTION GetStrLoc&( BYVAL AllocHandle% ) 'must be declared
 
DEFINT A - Z
%YES = - 1: %NO = 0: %ESC = 27
%MODE101h = &h101
%SCRNWIDTH = 640: %SCRNHEIGHT = 480
%PALSIZE = 768: %BPERPIXEL = 8: %COLORPLANES = 1
 
'-- Variable to hold VESA SVGA mode 101h data
TYPE VModeDatType
  attribs AS INTEGER
  winAattribs AS BYTE
  winBattribs AS BYTE
  wingranularity AS INTEGER
  winsize AS INTEGER
  winAseg AS WORD
  winBseg AS WORD
  winfunctionloc AS LONG  'will be used as unsigned
  bperscanline AS INTEGER 'bytes per scan line
  '-- Optional w/original VESA version (and often not provided):
  hres AS INTEGER         'horizontal / vertical resolution
  vres AS INTEGER
  wchar AS BYTE           'character width
  hchar AS BYTE           'character height
  nplanes AS BYTE         'number of planes
  bppixel AS BYTE         'bits per pixel
  nbanks AS BYTE          'number of banks
  mmodel AS BYTE          'memory model
  sbanks AS BYTE          'size of banks
  reserved AS STRING * 208
END TYPE
 
DIM VMODEINFO AS SHARED VModeDatType
 
'-- Create variable to hold PCX file header data
TYPE PCXheader
  Mfg AS BYTE
  Version AS BYTE
  Encoding AS BYTE
  BitsPerPixel AS BYTE
  Xmin AS INTEGER
  Ymin AS INTEGER
  Xmax AS INTEGER
  Ymax AS INTEGER
  HorizontalRes AS INTEGER
  VerticalRes AS INTEGER
  Pal AS STRING * 48
  Reserved AS BYTE
  NumColrPlanes AS BYTE
  BytesPerSLine AS INTEGER
  PalDat AS INTEGER
  Filler AS STRING * 58
END TYPE
 
DIM PIX1 AS SHARED PCXheader
DIM PalBuff AS SHARED STRING * 768
 
FOR f = 1 TO 18
  READ pcx$
 
  IF ISFALSE( LEN( DIR$( pcx$ ))) THEN
    PRINT "Cannot find PCX file "; pcx$
    END
  END IF
 
  ecode% = LoadPCX256%( PCX$, Xcol%, Yline% )
  IF ISTRUE( ecode% ) THEN
    SELECT CASE ecode%
      CASE 2
        t$ = "ERROR (DOS): drive not ready"
      CASE 5
        t$ = "ERROR (DOS): access denied"
 
Continued with next message...
 
*** QwkNews (tm) v2.1
 * [TN71] Internet Newsgroup: alt.lang.powerbasic
--- GEcho 1.20/Pro
---------------
* Origin: Toast House Remote (1:100/561)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.