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

  1. NewModes
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 &62 | MODE &63 | MODE &64 | MODE &65 | MODE &66 | MODE &67
MODE &68 | MODE &69 | MODE &6A | MODE &6B | MODE &6C | MODE &6D | MODE &6E | MODE &6F
MODE | VDU 22

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