forked from arti/vt1200
docs: the video RAM test draws characters then verifies; mapping alone cannot satisfy it
This commit is contained in:
1 parent
52744cbd03
commit
07997022ad
1 file changed
+28
-4
@@ -798,11 +798,35 @@ step. The bank walk observed so far steps in `0x400000` units (`>>4`), reaching
|
||||
**Honest status:** level 1 is NOT passing. Video memory is located and mapped correctly; the
|
||||
test's *requirement* is not yet understood.
|
||||
|
||||
## The video test DRAWS, then verifies (2026-10-16)
|
||||
|
||||
Reading the helper the test calls per bank — bit `0x3FDDFCB0`, file `0x17BF96` — shows it is
|
||||
**not** the check. It is the display:
|
||||
|
||||
```
|
||||
3fddfd60: ... loop building 8 hex digits from a9 ... ; format a9 as hex
|
||||
3fddff40: movk 7,a11 ; 8 characters
|
||||
3fddff50: movb *a5,a8 ; push char ; push a10 ; push 0xffff
|
||||
3fde0000: calla 0x3fdf97f0 ; plot the character at a10
|
||||
3fde0030: addk 12,a10 ; next cell, +12
|
||||
```
|
||||
|
||||
It formats the address in hex and **draws it on the screen**, 12 units per character, via the
|
||||
character plotter at `0x3fdf97f0`. That also explains the read PCs the catch-all saw inside
|
||||
the video region (`3FDF97A0`, `3FDF9A00` — the drawing code reading VRAM).
|
||||
|
||||
**Consequence for the diagnosis:** the level-1 "video RAM test" **draws characters and then
|
||||
verifies them**; it is not a raw memory walk. So the fact that mapping the memory does not
|
||||
make it pass is *expected* — the check is on the drawing path, which depends on the character
|
||||
generator, not merely on memory existing.
|
||||
|
||||
**Next:** find the verification — where the test compares what it drew against what it reads
|
||||
back. That comparison is what fails and reports error 22 at bit `0x040000C0`.
|
||||
|
||||
---
|
||||
|
||||
## Next steps
|
||||
|
||||
1. Read the check helper at bit 0x3FDDFCB0 (file 0x17BF96) to learn what the
|
||||
level-1 video RAM test actually requires.
|
||||
2. Map video memory at the full extent the bank walk reaches.
|
||||
3. Re-run the console check after each change.
|
||||
1. Find the VERIFY step of the video RAM test (what it compares after drawing).
|
||||
2. That comparison is what fails; it likely needs the character generator / font data.
|
||||
3. Re-run the console check (cap.lua) after each change.
|
||||
Reference in new issue
Block a user