MODE 12

From BeebWiki
Jump to: navigation, search
Demonstration of 'MODE 12' (BBC)

MODE 12 is the unofficial title of a low-resolution screen MODE, selectable with the *MODE command or the NewModes sideways ROM module.[1]

The MODE 12 code adapts the MODE 5 screen to provide a small-memory version of MODE 1, 40 × 32 characters in 4 colours. It does this by redefining the character set to provide thin characters.









'MODE 12'
Type Bitmapped
Resolution Text 40 × 32 characters
Graphics 160 × 256
Character size 4 × 8 pixels
Pixel aspect 2:1 (wide)
Bits per pixel 2
Default palette Logical colour Actual colour
0 0 (black)
1 1 (red)
2 3 (yellow)
3 7 (white)
Memory allocated 10240 bytes
on screen 10240 bytes
Address range Model B etc. &5800..&7FFF
Configuration Video ULA control register &84
Video ULA palette register file &07 &17 &26 &36 &47 &57 &66 &76
&84 &94 &A0 &B0 &C4 &D4 &E0 &F0
CRTC register file &3F &28 &31 &24 &26 &00
&20 &22 &01 &07 &67 &08

MODE 12 can be created manually with the following code running in the I/O processor.

   BASIC:
   MODE 5     :REM Base MODE
   ?&30A=39   :REM Characters per line
   ?&34F=8    :REM Bytes per character
   *FX154,132
   
   6502:
   LDA #22:JSR OSWRCH
   LDA #05:JSR OSWRCH          \ Base MODE
   LDA #&27:STA &30A           \ Characters per line
   LDA #&08:STA &34F           \ Byte per character
   LDA #154:LDX #84:JSR OSBYTE \ Cursor width

The character set needs to be redefined to be four pixels wide, such as with the one used with NewModes.

See Also

References

Screen display MODEs

MODE 0 | MODE 1 | MODE 2 | MODE 3 | MODE 4 | MODE 5 | MODE 6 | MODE 7
MODE 8 | MODE 9 | MODE 10 | MODE 11 | MODE 12 | MODE 13 | MODE 14
MODE &60 | MODE &61 | MODE &63 | MODE &64 | MODE &66
MODE &68 | MODE &69 | MODE &6B | MODE &6C | MODE &6E
MODE | VDU 22

Jgharston (talk) 13:04, 8 October 2016 (UTC)