BBS: Inland Empire Archive Date: 03-02-94 (00:17) Number: 378 From: PETER MIKALAJUNAS Refer#: NONE To: JEFFREY ZAPATKA Recvd: NO Subj: .PCX 2/2 Conf: (2) Quik_Bas
>>> Continued from previous message SUB SelectScreen () SELECT CASE ASC(PCXheader.BitsPerPixel) CASE 1 IF ASC(PCXheader.NumPlanes) = 4 THEN IF MaxScrMode < 11 THEN ScrMode = 9 ScrMaxX = 639 ScrMaxY = 349 ScrMaxColor = 15 ScrBitsPerPixel = 1 ELSE ScrMode = 12 ScrMaxX = 639 ScrMaxY = 479 ScrMaxColor = 15 ScrBitsPerPixel = 1 END IF ELSE ScrMode = 11 ScrMaxX = 639 ScrMaxY = 479 ScrMaxColor = 1 ScrBitsPerPixel = 1 END IF CASE 2 ScrMode = 1 ScrMaxX = 319 ScrMaxY = 199 ScrMaxColor = 3 ScrBitsPerPixel = 2 CASE 8 ScrMode = 9 ScrMaxX = 639 ScrMaxY = 349 ScrMaxColor = 15 ScrBitsPerPixel = 8 END SELECT END SUB SUB SetPalette (pcxpal$) Version = ASC(PCXheader.Version) IF Version = 5 AND (ScrMode = 13 OR ScrMode = 12) THEN FOR I = 0 TO ScrMaxColor R = ASC(MID$(pcxpal$, I * 3 + 1, 1)) \ 4 G = ASC(MID$(pcxpal$, I * 3 + 2, 1)) \ 4 B = ASC(MID$(pcxpal$, I * 3 + 3, 1)) \ 4 PALETTE I, B * 65536 + G * 256 + R NEXT I ELSEIF Version = 5 AND ScrMode = 9 THEN FOR I = 0 TO ScrMaxColor R = ASC(MID$(pcxpal$, I * 3 + 1, 1)) \ 64 G = ASC(MID$(pcxpal$, I * 3 + 2, 1)) \ 64 B = ASC(MID$(pcxpal$, I * 3 + 3, 1)) \ 64 PALETTE I, R * 4 + G * 16 + B * 1 NEXT I ELSE PALETTE END IF END SUB STATIC SUB ShowPcx (PcxName$) MaxScrMode = 9 ON ERROR GOTO NoVGA SCREEN MaxScrMode ON ERROR GOTO 0 SCREEN 9 WIDTH 80 IF PcxName$ = "" THEN EXIT SUB IF 0 = LEN(DIR$(PcxName$)) THEN BEEP: EXIT SUB OpenPcxFile PcxName$, xsize, ysize, TotalBytes, pcxpal$ SEEK #PcxFile, LEN(PCXheader) + 1 SelectScreen SCREEN ScrMode SetPalette pcxpal$ REDIM ScanLine(TotalBytes + 1) pbits = xsize * ASC(PCXheader.BitsPerPixel) sbits = ScrMaxX * ScrBitsPerPixel IF pbits > sbits THEN ScanLine(0) = sbits + 1 ELSE ScanLine(0) = pbits END IF ScanLine(1) = 1 Y = 0 DO ReadPcxLine PcxFile, TotalBytes, ScanLine() 'changes here PUT (0, Y), ScanLine Y = Y + 1 LOOP WHILE Y < ysize OR Y < ScrMaxY CLOSE #PCXPile Y = TIMER \ 3 DO WHILE INT(TIMER \ 3) = Y: LOOP PALETTE END SUB $$65 * SLMR 2.1a * Back Up My Hard Drive? I Can't Find The Reverse Switch! --- GEcho 1.00 * Origin: The Hideaway BBS 708.748.1911 HST/V32bis (1:115/748)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET