Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 243

Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 246

Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 243

Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 246

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 104

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 104

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 105

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 105

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 106

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 106
Programming:Calculating xpos,ypos to screen address in assembly - CPCWiki
Last modified on 25 December 2018, at 14:48

Programming:Calculating xpos,ypos to screen address in assembly

Revision as of 14:48, 25 December 2018 by Fgbrain (Talk | contribs)

Calculating xpos,ypos to screen address

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