Skip to content

Enhance documentation on screen modes and memory layout#280

Open
indigodarkwolf wants to merge 3 commits intomasterfrom
indigodarkwolf-screen-memory
Open

Enhance documentation on screen modes and memory layout#280
indigodarkwolf wants to merge 3 commits intomasterfrom
indigodarkwolf-screen-memory

Conversation

@indigodarkwolf
Copy link
Collaborator

Had a conversation with a user on Discord after they complained about the difficulty in finding documentation regarding the proper way to VPOKE memory for different SCREEN modes. The heart of their problem seemed to be understanding that the tilemaps from SCREEN all start at $1B000, followed by understanding the VERA memory layout for those tilemaps.

Added information about video memory addresses for text and bitmap modes.
Added details about tile mode dimensions for text modes.
@stople
Copy link
Contributor

stople commented Jan 11, 2026

Could it be an idea to also add a link to the memory map, instead of only mentioning their start addresses without any context? https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2009%20-%20VERA%20Programmer's%20Reference.md#vram-address-space-layout

Added references to relevant commands for editing text and bitmap data in screen modes.
@indigodarkwolf
Copy link
Collaborator Author

How does that look?

@stople
Copy link
Contributor

stople commented Jan 11, 2026

Looks good. One thing that may be still missing though, is which layer is used for bitmap and charset by default. E.g layer 0, rendered first, with 320x240 bitmap, and layer 1 with a 80x60 (128x64) tilemap for characters, rendered after and on top of bitmap, below sprites. (This is probably not accurate, please replace with the correct explanation). This could e.g be added to the vram memory map, and/or to the SCREEN command documentation. Sorry for feature-creeping your documentation effort though, I guess this can also be added later if relevant.

Copy link
Contributor

@mooinglemur mooinglemur left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can have the same effect (repo-relative) without hardcoding GitHub URLs. In fact within the same document, you don't even need the base, you can just start it with the anchor #.

Comment on lines +1524 to +1530
* [CHAR](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#char)
* [COLOR](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#color)
* [LOCATE](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#locate)
* [POS](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#pos)
* [TATTR](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#tattr)
* [TDATA](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#tdata)
* [TILE](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#tile)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* [CHAR](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#char)
* [COLOR](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#color)
* [LOCATE](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#locate)
* [POS](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#pos)
* [TATTR](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#tattr)
* [TDATA](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#tdata)
* [TILE](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#tile)
* [CHAR](X16%20Reference%20-%2004%20-%20BASIC.md#char)
* [COLOR](X16%20Reference%20-%2004%20-%20BASIC.md#color)
* [LOCATE](X16%20Reference%20-%2004%20-%20BASIC.md#locate)
* [POS](X16%20Reference%20-%2004%20-%20BASIC.md#pos)
* [TATTR](X16%20Reference%20-%2004%20-%20BASIC.md#tattr)
* [TDATA](X16%20Reference%20-%2004%20-%20BASIC.md#tdata)
* [TILE](X16%20Reference%20-%2004%20-%20BASIC.md#tile)

Comment on lines +1533 to +1538
* [FRAME](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#frame)
* [LINE](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#line)
* [OVAL](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#oval)
* [PSET](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#pset)
* [RECT](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#rect)
* [RING](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#ring)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* [FRAME](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#frame)
* [LINE](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#line)
* [OVAL](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#oval)
* [PSET](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#pset)
* [RECT](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#rect)
* [RING](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#ring)
* [FRAME](X16%20Reference%20-%2004%20-%20BASIC.md#frame)
* [LINE](X16%20Reference%20-%2004%20-%20BASIC.md#line)
* [OVAL](X16%20Reference%20-%2004%20-%20BASIC.md#oval)
* [PSET](X16%20Reference%20-%2004%20-%20BASIC.md#pset)
* [RECT](X16%20Reference%20-%2004%20-%20BASIC.md#rect)
* [RING](X16%20Reference%20-%2004%20-%20BASIC.md#ring)

* [RECT](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#rect)
* [RING](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#ring)

Direct writing of the VERA's memory can be performed via [VPOKE](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#vpoke).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Direct writing of the VERA's memory can be performed via [VPOKE](https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20BASIC.md#vpoke).
Direct writing of the VERA's memory can be performed via [VPOKE](X16%20Reference%20-%2004%20-%20BASIC.md#vpoke).

@stople
Copy link
Contributor

stople commented Feb 18, 2026

Please ignore my previous comment regarding increasing the scope of this PR to also document which layer is used for which screen mode. I have included this in #286

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants