Difference between revisions of "MODE 10"
m (Does work on Master.) |
m (Minor formatting.) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:Display]] | ||
[[Image:MODE 10 (BBC) demonstration.png|right|Demonstration of 'MODE 10' (BBC)]] | [[Image:MODE 10 (BBC) demonstration.png|right|Demonstration of 'MODE 10' (BBC)]] | ||
− | '''MODE 10''' is the unofficial title of a 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 the Archimedes | + | '''MODE 10''' is the unofficial title of a 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 the Archimedes where MODE 10 is the | |
+ | official 256-colour version of [[MODE 2]]. | ||
+ | The MODE 10 code adapts the [[MODE 6]] screen to provide a 20 × 25 text display | ||
+ | in 4 colours. The MOS does not allow complete support of this MODE and some bugs can be | ||
+ | seen: for instance, [[VDU 28|text windows]] do not work correctly. | ||
+ | <br><br><br><br><br> | ||
{| class="wikitable" style="text-align:left" | {| class="wikitable" style="text-align:left" | ||
|+'MODE 10' | |+'MODE 10' | ||
Line 57: | Line 63: | ||
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
| Video ULA palette register file | | Video ULA palette register file | ||
− | | &07 &17 &26 &36 | + | | &07 &17 &26 &36 &47 &57 &66 &76<br> &84 &94 &A0 &B0 &C4 &D4 &E0 &F0 |
|- style="vertical-align:top" | |- style="vertical-align:top" | ||
| [[CRTC]] register file | | [[CRTC]] register file | ||
− | | &3F &28 &31 &24 | + | | &3F &28 &31 &24 &1E &02<br> &19 &1B &01 &09 &67 &09<br> (from table in [[MOS 1.20]] at &C492..&C49D) |
|} | |} | ||
− | + | MODE 10 can be created manually with the following code running in the I/O | |
− | [[ | + | processor. |
+ | |||
+ | BASIC: | ||
+ | MODE 6 :REM Base MODE | ||
+ | ?&30A=19 :REM Characters per line | ||
+ | ?&34F=16 :REM Bytes per character | ||
+ | ?&360=3 :REM Number of colours | ||
+ | ?&361=2 :REM Pixels per byte | ||
+ | ?&362=&AA :REM Pixel left mask | ||
+ | ?&363=&55 :REM Pixel right mask | ||
+ | VDU 20 :REM Reset palette | ||
+ | *FX154,132 | ||
+ | |||
+ | 6502: | ||
+ | LDA #22:JSR OSWRCH | ||
+ | LDA #06:JSR OSWRCH \ Base MODE | ||
+ | LDA #&13:STA &30A \ Characters per line | ||
+ | LDA #&10:STA &34F \ Byte per character | ||
+ | LDA #&03:STA &360 \ Number of colours | ||
+ | LDA #&02:STA &361 \ Pixels per byte | ||
+ | LDA #&AA:STA &362 \ Pixel left mask | ||
+ | LDA #&55:STA &363 \ Pixel right mask | ||
+ | LDA #20:JSR OSWRCH \ Reset palette | ||
+ | LDA #154:LDX #132:JSR OSBYTE \ Cursor width | ||
+ | |||
+ | {{MODE}} | ||
+ | [[User:Beardo|beardo]] 12:59, 20 September 2006 (BST) | ||
+ | [[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 18:55, 12 October 2016 (UTC) |
Latest revision as of 02:24, 20 January 2023
MODE 10 is the unofficial title of a 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 the Archimedes where MODE 10 is the official 256-colour version of MODE 2.
The MODE 10 code adapts the MODE 6 screen to provide a 20 × 25 text display
in 4 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.
Type | Bitmapped, text only ('ASCII') | |
Resolution | Text | 20 × 25 characters |
Graphics | n/a | |
Character size | 8 × 10 pixels, top 8 lines user definable | |
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 | 8192 bytes |
on screen | 8000 bytes | |
Address range | Model B etc. | &6000..&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 &1E &02 &19 &1B &01 &09 &67 &09 (from table in MOS 1.20 at &C492..&C49D) |
MODE 10 can be created manually with the following code running in the I/O processor.
BASIC: MODE 6 :REM Base MODE ?&30A=19 :REM Characters per line ?&34F=16 :REM Bytes per character ?&360=3 :REM Number of colours ?&361=2 :REM Pixels per byte ?&362=&AA :REM Pixel left mask ?&363=&55 :REM Pixel right mask VDU 20 :REM Reset palette *FX154,132 6502: LDA #22:JSR OSWRCH LDA #06:JSR OSWRCH \ Base MODE LDA #&13:STA &30A \ Characters per line LDA #&10:STA &34F \ Byte per character LDA #&03:STA &360 \ Number of colours LDA #&02:STA &361 \ Pixels per byte LDA #&AA:STA &362 \ Pixel left mask LDA #&55:STA &363 \ Pixel right mask LDA #20:JSR OSWRCH \ Reset palette LDA #154:LDX #132:JSR OSBYTE \ Cursor width
Screen display MODEs |
---|
MODE 0 | MODE 1 | MODE 2 | MODE 3 | MODE 4 | MODE 5 | MODE 6 | MODE 7 |
beardo 12:59, 20 September 2006 (BST) Jgharston (talk) 18:55, 12 October 2016 (UTC)