Changes

Jump to: navigation, search

CRTC

1,105 bytes added, 26 October
/* Video Memory Address (VMA) */
| 1| 1| C000 - FFFF | | 1| 1| '''32KB''' |
'--'--'---------------' '--'--'--------------'
 
<br>
 
=== Screen split ===
 
Here are some rules of thumb [https://www.cpcwiki.eu/forum/programming/advice-on-split-screen-code/msg242186/ Source]:
* changes to the screen address have to be done anywhere in the previous split
* changes to the height of the split have to be done inside the current split (after it has started, in the area of the size of the previous split)
* changes to screen mode and colours are happening immediately
 
CRTC registers and screen splitting:
*reg 0 (63) = x-screenwidth (usually always 63)
*reg 1 (50) = x-splitwidth (e.g.50)
*reg 2 (51) = x-splitstart (e.g. 51)
*reg 3 (08) = x-finestart (maybe use this for half-char scrolling)
*reg 4 (##) = y-splitheight-1 (set this inside the current split)
*reg 5 (00) = y-finestart
*reg 6 (25) = y-max visible splitpart (same like 4)
*reg 7 (##) = inside last split -> set to 0; inside first split, but after vblank -> set to 255
*reg 9 (07) = y-lines/char-1
 
Set this inside the previous split:
*reg12 (##) = address high (char / 256 + block * 16)
*reg13 (##) = address low (char mod 256)
 
Total height of all splits must be 39.
<br>
8,338
edits