sd:mode_10
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| sd:mode_10 [2026/09/07 08:24] – external edit 127.0.0.1 | sd:mode_10 [2026/09/07 10:22] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 74: | Line 74: | ||
| ==== Why stride is separate from columns ==== | ==== Why stride is separate from columns ==== | ||
| - | '' | + | '' |
| - | smaller it is silently raised to the column count. Making it **larger** is the | + | sets it that way when you select it — and if you set it smaller it is silently |
| + | raised to the column count. **Mode 10 is the exception: it leaves the stride | ||
| + | alone**, so a wider buffer survives being selected. Making it **larger** is the | ||
| interesting case: it gives you a text buffer wider than the screen, with the | interesting case: it gives you a text buffer wider than the screen, with the | ||
| extra columns sitting off-stage to the right. Advancing '' | extra columns sitting off-stage to the right. Advancing '' | ||
| Line 106: | Line 108: | ||
| * mode 6 — 80x25, 9x16 cells, 720x400 (see [[#three kinds of mode]]) | * mode 6 — 80x25, 9x16 cells, 720x400 (see [[#three kinds of mode]]) | ||
| - | From Stellar BASIC, '' | + | From Stellar BASIC, '' |
| - | ('' | + | same thing ('' |
| These presets write the whole descriptor for you. Everything below is about | These presets write the whole descriptor for you. Everything below is about | ||
| Line 114: | Line 116: | ||
| ===== Programming mode 10 ===== | ===== Programming mode 10 ===== | ||
| - | Mode 10 writes no preset. It renders | + | Mode 10 writes no preset |
| - | the sequence is always the same: | + | are left exactly as the program set them. Selecting |
| + | that is all it does. The sequence is always the same: | ||
| - fill in the descriptor registers | - fill in the descriptor registers | ||
| Line 174: | Line 177: | ||
| | '' | | '' | ||
| | '' | | '' | ||
| - | | '' | + | | '' |
| ===== Character and colour data ===== | ===== Character and colour data ===== | ||
| Line 385: | Line 388: | ||
| descriptor registers directly. | descriptor registers directly. | ||
| - | ===== Current status | + | ===== Current status ===== |
| - | + | ||
| - | What works today: | + | |
| * modes 1, 2 and 10 all run through the descriptor-driven renderer | * modes 1, 2 and 10 all run through the descriptor-driven renderer | ||
| - | * mode 10 is reachable | + | * mode 10 is selectable |
| - | | + | BASIC ('' |
| + | * every preset mode writes '' | ||
| * fonts may be relocated and redefined through '' | * fonts may be relocated and redefined through '' | ||
| * a text mode may draw with a host font file via '' | * a text mode may draw with a host font file via '' | ||
| + | * AH='' | ||
| - | What is not finished: | + | Still to come: |
| - | * **Mode 10 does not clear the screen.** '' | ||
| - | recognise 10 yet, so it stores the mode number and returns without running | ||
| - | the clear-and-home path. Clear the screen yourself after switching, or the | ||
| - | previous mode's characters will still be sitting there. | ||
| - | * **Only mode 1 writes '' | ||
| - | found it. Every current path still renders correctly because a stride | ||
| - | smaller than the column count is corrected up, but do not rely on it — | ||
| - | write the stride yourself when you write the rest of the descriptor. | ||
| - | * **AH='' | ||
| - | '' | ||
| - | cannot be used to recover the system font pointer. | ||
| - | * **Mode changes do not restore the font.** Only boot writes | ||
| - | '' | ||
| - | Whether presets should reset it is undecided. | ||
| * There is no single call that installs a whole descriptor. A convenience | * There is no single call that installs a whole descriptor. A convenience | ||
| function (AH='' | function (AH='' | ||
| - | | + | registers. |
| + | * Mode changes do not restore the font. Only boot writes | ||
| + | '' | ||
| + | Whether presets should reset it is undecided — see [[#the font base is sticky]]. | ||
| + | * Mode 6 still names its font inside the emulator rather than through the | ||
| + | descriptor. | ||
sd/mode_10.1788769492.txt.gz · Last modified: by 127.0.0.1
