BBS: Inland Empire Archive Date: 03-16-92 (23:00) Number: 196 From: STEVE HALKO Refer#: NONE To: MICHAEL MALLEY Recvd: NO Subj: Tri-d chess Conf: (2) Quik_Bas
MM>SH> Actually, direct screen writes are TONS faster than LOCATE/PRINT. QB
MM>SH> uses direct screen writes, but only after wading through all the
MM>SH> internal code for LOCATE and PRINT.
MM>Not if he's doing it in BASIC it's not. Try using PEEK and you'll see
MM>what I mean. Most of what BASIC does that slows it down is checking
I did try it, and POKEing to screen memory is mucho faster. My test
code fills the screen with characters 100 times using each method.
The results (all times in seconds):
QB IDE EXE
------ ---
LOCATE/PRINT 20.16 14.11
POKE 3.68 .23
Bottom line: using POKE is almost 7 times faster in the QB IDE
using POKE is almost 70 times faster in stand-alone EXE
Here be my test code:
DEFINT A-Z
CLS
Start# = TIMER
FOR k = 1 TO 100 'Do it 100 times
FOR i = 1 TO 25 'For each row
FOR j = 1 TO 80 'For each column
LOCATE i, j
PRINT CHR$(i + 64);
NEXT j
NEXT i
NEXT k
CLS
PRINT "LOCATE/PRINT:"; TIMER - Start# 'Print elapsed time
DO 'Wait for a key press
LOOP UNTIL LEN(INKEY$)
DEF SEG = &HB800 'Video screen memory segment
Start# = TIMER
FOR k = 1 TO 100 'Do it 100 times
FOR i = 1 TO 25 'For each row
FOR j = 1 TO 80 'For each column
POKE ((j - 1) + (i - 1) * 80) * 2, i + 64
NEXT j
NEXT i
NEXT k
CLS
PRINT "POKE:"; TIMER - Start# 'Print elapsed time
END
* SLMR 2.1a * Apathy Error - Strike any key ... or none for that matter
--- DB B1061/002487
* Origin: Gulf Coast BBS -QuickSHARE #2- (904)563-2547 HST/V.32bis (1:365/12)

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