NAUG Ch13 — Video/Graphics System

Holmes & Dickens, The New Advanced User Guide, pp.172-224. The chapter has three layers:

  • §13.1 OS-level video support: VDU codes, OSWORD/OSBYTE calls relating to the screen, palette, vsync, character definitions.
  • §13.2 Zero page and page 3 VDU workspace.
  • §13.3 Video hardware: 6845 CRTC and Video ULA — direct register programming for fast scrolling, animation, raster effects.
  • §13.4 Screen memory maps (one diagram per MODE).

Key claims captured

  • Two video chips: 6845 CRTC at Sheila &FE00/&FE01 and Acorn Video ULA at Sheila &FE20/&FE21 (§13.3).
  • Vsync rate: 50 Hz on UK BBC (§13.1.10 p189).
  • OSBYTE &13 (call &FFF4, ind &20A) waits for vertical sync — *FX 19. User trapping of IRQ1 can break it (§13.1.10).
  • OSBYTE &9A (X=value) writes Video ULA control register (&FE20) AND keeps the OS shadow copy at &34A(?) consistent. Always use this rather than direct STA — required for Tube compatibility (§13.1.8 p187, §13.3.13).
  • OSBYTE &9B (X=value) writes Video ULA palette register (&FE21) AND keeps OS copy consistent. Value actually written is X EOR 7 (§13.1.8 p188).
  • VDU 23,0,R,V,0,0,0,0,0,0 writes V into 6845 register R via the VDU stream — works across Tube (§13.3.3 p196).
  • Hardware wrap-around: when the 6845 fetches video data at an address ≥ &8000, hardware adds an offset back into RAM. The offset is selected by 2 bits on the System VIA (§13.3.10 p200, points to §22.3).
  • R12,R13 contain screen_address / 8 — actual address divided by 8 because there are 8 lines per character cell (modes 0-6). MODE 7 uses a different correction: high_byte - &74 EOR &20 → R12; low byte → R13 (§13.3.11 p202).
  • Direct screen writes don’t work across the Tube; second processor cannot reach screen RAM. Direct writes also need shadow-screen handling on B+/Master (ACCCON register) — §13.3.1 p194-195.

Filed into

  • crtc-6845 — 6845 entity + register reference, with per-mode register values.
  • video-ula — Video ULA entity, control register, palette mechanics, mode encoding.
  • modes — Mode summary table + screen memory maps.
  • hardware-scrolling — Vertical/sideways scroll, wrap-around, MODE 7 quirk, vsync timing.
  • fast-animation — MODE 2 byte-move technique, MODE 0 shift, hardware-scroll as substrate.
  • os-workspace — Page 3 VDU workspace + zero-page VDU bytes captured here. zero-page has the page-0 detail.

Open follow-ups

  • §13.2 page-3 VDU workspace fully filed into os-workspace after Ch6 ingest.
  • §13.1.6 character-explosion (*FX 20) detail captured only at the headline level — write a dedicated exploding-font page if it comes up.
  • VDU 23,n function table (Master, n=2..16) summarised — full ECF pattern detail not extracted.
  • PLOT number table (§13.1.4) → filed into plot-codes (created from User Guide Ch 29 ingest 2026-05-16, with Master extensions from Master ARM Ch 6).

This wiki is curated by Claude following the LLM-Wiki methodology — a human curates source documents, the LLM compiles structured cross-linked markdown. Content may contain errors, omissions, or stale claims. For authoritative information refer to the original source documents in the bbc-documents GitHub archive.