making one line to reduce size

This commit is contained in:
Bjorn Einar Bjarntes 2021-12-19 19:41:46 +01:00
parent 3fad901873
commit 5a45ff1c36

View file

@ -29,20 +29,23 @@ void setAndClearHiRes(){
setHiRes(); setHiRes();
} }
void calcAdress(){
ad = 0x2000+((y & 0xf8) << 3) +((y & 0xf8) << 4) +((y & 0xf8) << 4) + (y & 7)+ (x&(0xfff8));
}
BYTE isPositionWhite() { BYTE isPositionWhite() {
ad = 0x2000+((y >> 3) << 6) +((y >> 3) << 7) +((y >> 3) << 7) + (y & 7)+ (x&(0xfff8)); calcAdress();
return *(short*)(ad) & 1 << ((7-(x & 7))); return *(short*)(ad) & 1 << ((7-(x & 7)));
} }
// https://archive.org/details/The_Graphics_Book_for_the_Commodore_65/page/n129/ // https://archive.org/details/The_Graphics_Book_for_the_Commodore_65/page/n129/
void setPositionWhite() { void setPositionWhite() {
ad = 0x2000+ ((y >> 3) << 6) +((y >> 3) << 7) +((y >> 3) << 7) + (y & 7)+(x&(0xfff8)); calcAdress();
*(short*)(ad) = *(short*)(ad) | 1 << ((7-(x & 7))); *(short*)(ad) = *(short*)(ad) | 1 << ((7-(x & 7)));
} }
void setPositionBlack() { void setPositionBlack() {
// TODO is it faster to somehow reuse y >> 3 than do it many times, and maybe add the same result twice... calcAdress();
ad = 0x2000+((y >> 3) << 6) +((y >> 3) << 7) +((y >> 3) << 7) + (y & 7)+ (x&(0xfff8));
*(short*)(ad) = (*(short*)(ad)) & ~(1 << ((7-(x & 7)))); *(short*)(ad) = (*(short*)(ad)) & ~(1 << ((7-(x & 7))));
} }