VPOKE
This page was last modified 13:12, 17 May 2020 by Gdx. Based on work by Mars2000you and NYYRIKKI.

Contents

Effect

Writes a value to a byte of the video memory (VRAM).

Syntax

VPOKE <Address>,<Value>

Parameters

<Address> must be in the range -32768 to 65535 (&H0000 to &HFFFF).

On MSX1 the usable VRAM area is 0-16383.

On MSX2 and up the usable VRAM area is 0-65535. In order to address all of the 128kB VRAM, SET PAGE instruction must be used. Please note that VRAM addressing is different (interleaved) in SCREEN modes 7, 8, 10, 11 and 12. However this is important to notice only if you switch between these two addressing modes between reading / writing.

<Value> is a decimal number between 0 and 255.

Example

10 SC=PEEK(&HFCAF) ' Current screen mode (= 0/1 for text)
11 A=ASC("!")*8+BASE(SC*5+2) ' VRAM address for "!"-font outlook
12 FOR I=0 TO 7: READ D$: VPOKEA+I,VAL("&B"+D$): NEXT I
13 'New look (Note: Two last columns are not in use in screen 0)
14 DATA 00110000
15 DATA 01111000
16 DATA 01111000
17 DATA 00110000
18 DATA 00000000
19 DATA 00110000
20 DATA 00110000
21 DATA 00000000

Related to

BASE(), SCREEN, SET PAGE, VDP(), VPEEK()

Compatibility

MSX-BASIC 1.0 or higher