Difference between revisions of "MODE 9"

From BeebWiki
Jump to: navigation, search
m (1 revision)
Line 1: Line 1:
 +
[[Category:Display]]
 
[[Image:MODE 9 (BBC) demonstration.png|right|Demonstration of 'MODE 9' (BBC)]]
 
[[Image:MODE 9 (BBC) demonstration.png|right|Demonstration of 'MODE 9' (BBC)]]
 
'''MODE 9''' is the unofficial title of an ultra-low resolution screen [[MODE]], developed by Ian Robertson and published in ''The Micro User'' magazine (November 1985, p.123).  It works on the BBC Micro but not the Electron or Master, or the Archimedes (where MODE 9 is officially a 16-colour version of [[MODE 1]]).
 
'''MODE 9''' is the unofficial title of an ultra-low resolution screen [[MODE]], developed by Ian Robertson and published in ''The Micro User'' magazine (November 1985, p.123).  It works on the BBC Micro but not the Electron or Master, or the Archimedes (where MODE 9 is officially a 16-colour version of [[MODE 1]]).
Line 99: Line 100:
 
|}
 
|}
  
-- [[User:Beardo|beardo]] 12:52, 20 September 2006 (BST)
+
 
[[Category:Display]]
+
[[Image:MODE 9 (BBC) demonstration.gif|right|Demonstration of 'MODE 9' (BBC)]]
 +
'''MODE 9''' is also the unofficial title of a medium-resolution screen [[MODE]],
 +
selectable with the *MODE command or the NewModes sideways ROM module.<ref
 +
name="newmodes">[http://mdfs.net/Apps/Graphics/NewModes/ NewModes]</ref>
 +
 
 +
The MODE 9 code adapts the [[MODE 2]] screen to provide a 4-colour version of
 +
MODE 1, 40 &times; 32 characters in 4 colours. It does this by redefining the
 +
character set to provide thin characters.
 +
 
 +
{| class="wikitable" style="text-align:left"
 +
|+'MODE 9'
 +
| Type
 +
| colspan="2" | Bitmapped
 +
|- style="vertical-align:top"
 +
| rowspan="2" | Resolution
 +
| Text
 +
| 40 &times; 32 characters
 +
|- style="vertical-align:top"
 +
| Graphics
 +
| 160 &times; 256
 +
|- style="vertical-align:top"
 +
| Character size
 +
| colspan="2" | 4 &times; 8 pixels
 +
|- style="vertical-align:top"
 +
| Pixel aspect
 +
| colspan="2" | 2:1 (wide)
 +
|- style="vertical-align:top"
 +
| Bits per pixel
 +
| 2
 +
|- style="vertical-align:top"
 +
| rowspan="5" | Default palette
 +
! Logical colour
 +
! Actual colour
 +
|- style="vertical-align:top"
 +
| 0
 +
| 0 (black)
 +
|- style="vertical-align:top"
 +
| 1
 +
| 1 (red)
 +
|- style="vertical-align:top"
 +
| 2
 +
| 3 (yellow)
 +
|- style="vertical-align:top"
 +
| 3
 +
| 7 (white)
 +
|- style="vertical-align:top"
 +
| rowspan="2" | Memory
 +
| allocated
 +
| 20480 bytes
 +
|- style="vertical-align:top"
 +
| on screen
 +
| 20480 bytes
 +
|- style="vertical-align:top"
 +
| rowspan="1" | Address range
 +
| Model B ''etc.''
 +
| &3000..&7FFF
 +
|- style="vertical-align:top"
 +
| rowspan="3" | Configuration
 +
| [[Video ULA]] control register
 +
| &D4
 +
|- style="vertical-align:top"
 +
| Video ULA palette register file
 +
| &07 &17 &26 &36<br> &47 &57 &66 &76<br> &84 &94 &A0 &B0<br> &C4 &D4 &E0 &F0
 +
|- style="vertical-align:top"
 +
| [[CRTC]] register file
 +
| &3F &28 &31 &24<br> &26 &00 &20 &22<br> &01 &07 &67 &08
 +
|}
 +
 
 +
MODE 9 can be created manually with the following code running in the I/O
 +
processor.
 +
 
 +
    BASIC:
 +
    MODE 2    :REM Base MODE
 +
    ?&30A=39  :REM Characters per line
 +
    ?&34F=8    :REM Bytes per character
 +
    *FX154,212
 +
   
 +
    6502:
 +
    LDA #22:JSR OSWRCH
 +
    LDA #02:JSR OSWRCH          \ Base MODE
 +
    LDA #&27:STA &30A            \ Characters per line
 +
    LDA #&08:STA &34F            \ Byte per character
 +
    LDA #154:LDX #212:JSR OSBYTE \ Cursor width
 +
 
 +
The character set needs to be redefined to be four pixels wide, such as with
 +
the one used with [http://mdfs.net/Apps/Graphics/NewModes/ NewModes].
 +
 
 +
==See Also==
 +
* [http://mdfs.net/Apps/Graphics/NewModes/ NewModes]
 +
 
 +
==References==
 +
<references/>
 +
 
 +
--
 +
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 17:22, 12 October 2016 (UTC)
 +
[[User:Beardo|beardo]] 12:52, 20 September 2006 (BST)

Revision as of 19:22, 12 October 2016

Demonstration of 'MODE 9' (BBC)

MODE 9 is the unofficial title of an ultra-low resolution screen MODE, developed by Ian Robertson and published in The Micro User magazine (November 1985, p.123). It works on the BBC Micro but not the Electron or Master, or the Archimedes (where MODE 9 is officially a 16-colour version of MODE 1).

The MODE 9 code adapts the MODE 6 screen to provide a 10 × 25 text display in 16 colours. The MOS does not allow complete support of this MODE and some bugs can be seen: for instance, text windows do not work correctly.

'MODE 9'
Type Bitmapped, text only ('ASCII')
Resolution Text 10 × 25 characters
Graphics n/a
Character size 8 × 10 pixels, top 8 lines user definable
Pixel aspect 4:1 (wide)
Bits per pixel 4
Default palette Logical colour Actual colour
0 0 (black)
1 1 (red)
2 2 (green)
3 3 (yellow)
4 4 (blue)
5 5 (magenta)
6 6 (cyan)
7 7 (white)
8 8 (flashing black/white)
9 9 (flashing red/cyan)
10 10 (flashing green/magenta)
11 11 (flashing yellow/blue)
12 12 (flashing blue/yellow)
13 13 (flashing magenta/green)
14 14 (flashing cyan/red)
15 15 (flashing white/black)
Memory allocated 8192 bytes
on screen 8000 bytes
Address range Model B etc. &6000..&7FFF
Configuration Video ULA control register &80
Video ULA palette register file &07 &16 &25 &34
&43 &52 &61 &70
&8F &9E &AD &BC
&CB &DA &E9 &F8
CRTC register file &3F &28 &31 &24
&1E &02 &19 &1B
&01 &09 &67 &09
(from table in MOS 1.20 at &C492..&C49D)


Demonstration of 'MODE 9' (BBC)

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

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

'MODE 9'
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 20480 bytes
on screen 20480 bytes
Address range Model B etc. &3000..&7FFF
Configuration Video ULA control register &D4
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 9 can be created manually with the following code running in the I/O processor.

   BASIC:
   MODE 2     :REM Base MODE
   ?&30A=39   :REM Characters per line
   ?&34F=8    :REM Bytes per character
   *FX154,212
   
   6502:
   LDA #22:JSR OSWRCH
   LDA #02:JSR OSWRCH           \ Base MODE
   LDA #&27:STA &30A            \ Characters per line
   LDA #&08:STA &34F            \ Byte per character
   LDA #154:LDX #212: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

-- Jgharston (talk) 17:22, 12 October 2016 (UTC) beardo 12:52, 20 September 2006 (BST)