line is working

This commit is contained in:
Bjorn Einar Bjarntes 2021-12-18 17:38:39 +01:00
parent 8f40d18f9a
commit 6468a122df

View file

@ -34,7 +34,7 @@ void setAndClearHiRes(void) {
// Clear colors // Clear colors
for (i =0;i< 1000; i++) for (i =0;i< 1000; i++)
{ {
*(BYTE*)(0x400+i) = 0x0F; *(BYTE*)(0x400+i) = 0xF0;
} }
} }
@ -44,18 +44,28 @@ int isPositionWhite(long x, int y)
return 0; // 0 er false... return 0; // 0 er false...
} }
// https://archive.org/details/The_Graphics_Book_for_the_Commodore_64/page/n129/ int power(int base, int exponent)
void setPositionBlack(unsigned short x, BYTE y)
{ {
int ra = 320 * (int)(y/8) + (y & 7); int result=1;
int ba = 8 * (int)(x/8); for (exponent; exponent>0; exponent--)
int ma = 2^(7-(x & 7)); {
int sa = 0x2000; result = result * base;
int ad = sa+ra+ba; }
*(BYTE*)(ad) = *(BYTE*)(ad) | ma; return result;
} }
void setPositionWhite(long x, int y) // https://archive.org/details/The_Graphics_Book_for_the_Commodore_64/page/n129/
void setPositionWhite(unsigned short x, BYTE y)
{
unsigned short ra = (320 * (BYTE)(y/8)) + (y & 7);
unsigned short ba = 8 * (BYTE)(x/8);
unsigned short ma = power(2,(7-(x & 7)));
unsigned short sa = 0x2000;
unsigned short ad = sa+ra+ba;
*(unsigned short*)(ad) = *(unsigned short*)(ad) | ma;
}
void setPositionBlack(long x, int y)
{ {
} }
@ -65,10 +75,9 @@ void setPositionWhite(long x, int y)
int main(void) { int main(void) {
x = 160; x = 160;
y = 100; y = 100;
printf("%d", direction);
setAndClearHiRes(); setAndClearHiRes();
while (1) { while (1) {
setPositionBlack(x,y); setPositionWhite(x,y);
x = x+1; x = x+1;
y = y + 1; y = y + 1;
} }