Difference between revisions of "MODE 13"
m (Minor formatting.) |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:Display]] | [[Category:Display]] | ||
− | [[Image:MODE 13 (BBC) demonstration.gif | + | [[Image:MODE 13 (BBC) demonstration.gif|right|Demonstration of 'MODE 13' (BBC)]] |
'''MODE 13''' is the unofficial title of a low-resolution screen [[MODE]], | '''MODE 13''' is the unofficial title of a low-resolution screen [[MODE]], | ||
− | selectable with the *MODE command or the NewModes sideways ROM module.<ref | + | selectable with the '''*MODE''' command or the NewModes sideways ROM module.<ref |
name="newmodes">[http://mdfs.net/Apps/Graphics/NewModes/ NewModes]</ref> | name="newmodes">[http://mdfs.net/Apps/Graphics/NewModes/ NewModes]</ref> | ||
The MODE 13 code adapts the [[MODE 5]] screen to provide a small-memory | The MODE 13 code adapts the [[MODE 5]] screen to provide a small-memory | ||
− | version of MODE | + | version of MODE 2, 20 × 32 characters in 16 colours. It does this by |
redefining the character set to provide thin characters. | redefining the character set to provide thin characters. | ||
− | + | <br><br><br><br><br><br><br><br><br><br> | |
{| class="wikitable" style="text-align:left" | {| class="wikitable" style="text-align:left" | ||
|+'MODE 13' | |+'MODE 13' | ||
Line 16: | Line 16: | ||
| rowspan="2" | Resolution | | rowspan="2" | Resolution | ||
| Text | | Text | ||
− | | | + | | 20 × 32 characters |
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
| Graphics | | Graphics | ||
− | | | + | | 80 × 256 |
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
| Character size | | Character size | ||
Line 25: | Line 25: | ||
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
| Pixel aspect | | Pixel aspect | ||
− | | colspan="2" | | + | | colspan="2" | 4:1 (ultra wide) |
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
| Bits per pixel | | Bits per pixel | ||
− | | | + | | 4 |
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
− | | rowspan=" | + | | rowspan="17" | Default palette |
! Logical colour | ! Logical colour | ||
! Actual colour | ! Actual colour | ||
Line 41: | Line 41: | ||
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
| 2 | | 2 | ||
+ | | 2 (green) | ||
+ | |- style="vertical-align:top" | ||
+ | | 3 | ||
| 3 (yellow) | | 3 (yellow) | ||
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
− | | | + | | 4 |
+ | | 4 (blue) | ||
+ | |- style="vertical-align:top" | ||
+ | | 5 | ||
+ | | 5 (magenta) | ||
+ | |- style="vertical-align:top" | ||
+ | | 6 | ||
+ | | 6 (cyan) | ||
+ | |- style="vertical-align:top" | ||
+ | | 7 | ||
| 7 (white) | | 7 (white) | ||
+ | |- style="vertical-align:top" | ||
+ | | 8 | ||
+ | | 8 (flashing black/white) | ||
+ | |- style="vertical-align:top" | ||
+ | | 9 | ||
+ | | 9 (flashing red/cyan) | ||
+ | |- style="vertical-align:top" | ||
+ | | 10 | ||
+ | | 10 (flashing green/magenta) | ||
+ | |- style="vertical-align:top" | ||
+ | | 11 | ||
+ | | 11 (flashing yellow/blue) | ||
+ | |- style="vertical-align:top" | ||
+ | | 12 | ||
+ | | 12 (flashing blue/yellow) | ||
+ | |- style="vertical-align:top" | ||
+ | | 13 | ||
+ | | 13 (flashing magenta/green) | ||
+ | |- style="vertical-align:top" | ||
+ | | 14 | ||
+ | | 14 (flashing cyan/red) | ||
+ | |- style="vertical-align:top" | ||
+ | | 15 | ||
+ | | 15 (flashing white/black) | ||
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
| rowspan="2" | Memory | | rowspan="2" | Memory | ||
Line 59: | Line 95: | ||
| rowspan="3" | Configuration | | rowspan="3" | Configuration | ||
| [[Video ULA]] control register | | [[Video ULA]] control register | ||
− | | & | + | | &C0 |
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
| Video ULA palette register file | | Video ULA palette register file | ||
− | | &07 & | + | | &07 &16 &25 &34 &43 &52 &61 &70<br> &8F &9E &AD &BC &CB &DA &E9 &F8 |
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
| [[CRTC]] register file | | [[CRTC]] register file | ||
− | | &3F &28 &31 &24 | + | | &3F &28 &31 &24 &26 &00<br> &20 &22 &01 &07 &67 &08<br> (from table in [[MOS 1.20]] at &C486..&C491) |
|} | |} | ||
Line 73: | Line 109: | ||
BASIC: | BASIC: | ||
MODE 5 :REM Base MODE | MODE 5 :REM Base MODE | ||
− | ?&30A= | + | ?&30A=19 :REM Characters per line |
− | ?&34F= | + | ?&34F=16 :REM Bytes per character |
− | *FX154, | + | ?&361=1 :REM Pixels per byte |
+ | ?&362=&AA :REM Pixel left mask | ||
+ | ?&363=&55 :REM Pixel right mask | ||
+ | *FX154,192 | ||
6502: | 6502: | ||
LDA #22:JSR OSWRCH | LDA #22:JSR OSWRCH | ||
− | LDA #05:JSR OSWRCH | + | LDA #05:JSR OSWRCH \ Base MODE |
− | LDA #& | + | LDA #&13:STA &30A \ Characters per line |
− | LDA #& | + | LDA #&10:STA &34F \ Byte per character |
− | LDA #154:LDX # | + | LDA #&01:STA &361 \ Pixels per byte |
+ | LDA #&AA:STA &362 \ Pixel left mask | ||
+ | LDA #&55:STA &363 \ Pixel right mask | ||
+ | LDA #154:LDX #192:JSR OSBYTE \ Cursor width | ||
The character set needs to be redefined to be four pixels wide, such as with | The character set needs to be redefined to be four pixels wide, such as with | ||
Line 92: | Line 134: | ||
==References== | ==References== | ||
<references/> | <references/> | ||
− | + | {{MODE}} | |
− | |||
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 13:04, 8 October 2016 (UTC) | [[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 13:04, 8 October 2016 (UTC) |
Latest revision as of 02:29, 20 January 2023
MODE 13 is the unofficial title of a low-resolution screen MODE, selectable with the *MODE command or the NewModes sideways ROM module.[1]
The MODE 13 code adapts the MODE 5 screen to provide a small-memory
version of MODE 2, 20 × 32 characters in 16 colours. It does this by
redefining the character set to provide thin characters.
Type | Bitmapped | |
Resolution | Text | 20 × 32 characters |
Graphics | 80 × 256 | |
Character size | 4 × 8 pixels | |
Pixel aspect | 4:1 (ultra 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 | 10240 bytes |
on screen | 10240 bytes | |
Address range | Model B etc. | &5800..&7FFF |
Configuration | Video ULA control register | &C0 |
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 &26 &00 &20 &22 &01 &07 &67 &08 (from table in MOS 1.20 at &C486..&C491) |
MODE 13 can be created manually with the following code running in the I/O processor.
BASIC: MODE 5 :REM Base MODE ?&30A=19 :REM Characters per line ?&34F=16 :REM Bytes per character ?&361=1 :REM Pixels per byte ?&362=&AA :REM Pixel left mask ?&363=&55 :REM Pixel right mask *FX154,192 6502: LDA #22:JSR OSWRCH LDA #05:JSR OSWRCH \ Base MODE LDA #&13:STA &30A \ Characters per line LDA #&10:STA &34F \ Byte per character LDA #&01:STA &361 \ Pixels per byte LDA #&AA:STA &362 \ Pixel left mask LDA #&55:STA &363 \ Pixel right mask LDA #154:LDX #192: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 |