37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
dx% = 320
|
|
dy% = 240
|
|
images% = 100000
|
|
VDU 23,22,dx%;dy%;8,8,16,0
|
|
|
|
REM Create a block of random data in memory:
|
|
DIM random% dx%*dy%+images%
|
|
FOR R% = random% TO random%+dx%*dy%+images%
|
|
?R% = RND(256)-1
|
|
NEXT
|
|
|
|
REM Create a BMP file structure:
|
|
DIM bmpfile{bfType{l&,h&}, bfSize%, bfReserved%, bfOffBits%, \
|
|
\ biSize%, biWidth%, biHeight%, biPlanes{l&,h&}, biBitCount{l&,h&}, \
|
|
\ biCompression%, biSizeImage%, biXPelsPerMeter%, biYPelsPerMeter%, \
|
|
\ biClrUsed%, biClrImportant%, biPalette%(255)}
|
|
bmpfile.biSize% = 40
|
|
bmpfile.biWidth% = dx%
|
|
bmpfile.biHeight% = dy%
|
|
bmpfile.biPlanes.l& = 1
|
|
bmpfile.biBitCount.l& = 8
|
|
FOR C% = 0 TO 255
|
|
bmpfile.biPalette%(C%) = C% OR C%<<8 OR C%<<16
|
|
NEXT
|
|
|
|
REM Display image at a random offset into the data:
|
|
frame% = 0
|
|
TIME = 0
|
|
REPEAT
|
|
bmpfile.bfOffBits% = random% - bmpfile{} + RND(images%)
|
|
OSCLI "MDISPLAY " + STR$~bmpfile{}
|
|
frame% += 1
|
|
IF TIME>10 THEN
|
|
SYS "SetWindowText", @hwnd%, "BBC BASIC: " + STR$(frame%*100 DIV TIME) + " fps"
|
|
ENDIF
|
|
UNTIL FALSE
|