467 bytes added,
11:44, 25 December 2018 == Calculating xpos,ypos to screen address in assembly ==
The screen address at a given x,y position can be calculated as such:
[pre]
screenaddr = screenbase + (y AND 7)*&800 + int(y/8)*2*R1 + int(x/M)
[/pre]
where:
x and y your 2D coordinates
R1 = value of CRTC register 1 (eg. 40 with the default firmware settings)
M = 2 (for screen mode 0, 2 pixels/byte)
M = 4 (for screen mode 1, 4 pixels/byte)
M = 8 (for screen mode 2, 8 pixels/byte)
screenbase = &C000