need to move the ocmments to readme

This commit is contained in:
Bjorn Einar Bjarntes 2021-12-18 21:16:53 +01:00
parent 3badd74977
commit e9ff1405df

View file

@ -1,36 +1,21 @@
#include <stdio.h> #include <stdio.h>
#define BYTE unsigned char #define BYTE unsigned char
// bit-mapped graphics memory is located $2000-$3FFF (8192-16383)
// and that the video RAM lies at $0400-$07FF (1024-2047).
// This makes it impossible to work with text and graphics at the same time
// The C heap is located at the end of the program and grows towards the C runtime stack.
// https://cc65.github.io/doc/c64.html#ss4.1
// The C runtime stack is located at $CFFF (53247) and growing downwards.
// Should be plenty of stack space between the top of the graphics memory
short i; short i;
short x; // maybe if the ant does not go tooo far it could be an int.. short x;
short y; short y;
short direction; // 0 = right, 64 = up, 128 = left, 192 = down BYTE direction;
void setHiRes(void) { void setHiRes(void) {
*(BYTE*)0xd011 = *(BYTE*)0xd011 | 0xb0 ; // Graphics on *(BYTE*)0xd011 = *(BYTE*)0xd011 | 0xb0 ; // Graphics on
*(BYTE*)0xd016 = *(BYTE*)0xd016 & 240; //Multi color off *(BYTE*)0xd016 = *(BYTE*)0xd016 & 240; //Multi color off
*(BYTE*)0xd018 = *(BYTE*)0xd018 | 8 ; // Graphics to $2000 *(BYTE*)0xd018 = *(BYTE*)0xd018 | 8 ; // Graphics to $2000
} }
void clearHiRes(void) { void clearHiRes(void) {
// Hi-res is turned on by setting bits 5 and 6 (bit 6 must be set in any event)
// of register 17 of the VIC and clearing bit 4 of register 22.
// Clear memory
for (i =0;i< 8000; i++) for (i =0;i< 8000; i++)
{ {
*(BYTE*)(0x2000+i) = 0; *(BYTE*)(0x2000+i) = 0;
} }
// Clear colors
for (i =0;i< 1000; i++) for (i =0;i< 1000; i++)
{ {
*(BYTE*)(0x400+i) = 0xf0; *(BYTE*)(0x400+i) = 0xf0;
@ -38,9 +23,6 @@ void clearHiRes(void) {
} }
void fillHiRes(void) { void fillHiRes(void) {
// Hi-res is turned on by setting bits 5 and 6 (bit 6 must be set in any event)
// of register 17 of the VIC and clearing bit 4 of register 22.
// Clear memory
for (i =0;i< 8000; i++) for (i =0;i< 8000; i++)
{ {
*(BYTE*)(0x2000+i) = 0xff; *(BYTE*)(0x2000+i) = 0xff;
@ -53,7 +35,6 @@ void setAndClearHiRes(){
clearHiRes(); clearHiRes();
} }
// need to think
BYTE isPositionWhite(short x, BYTE y) BYTE isPositionWhite(short x, BYTE y)
{ {
short ra = (320 * (BYTE)(y/8)) + (y & 7); short ra = (320 * (BYTE)(y/8)) + (y & 7);
@ -99,14 +80,10 @@ void moveForward() {
void turnLeft(){ void turnLeft(){
direction = direction + 64; direction = direction + 64;
if (direction >= 255)
direction = 0;
} }
void turnRight(){ void turnRight(){
direction = direction - 64; direction = direction - 64;
if (direction <0)
direction = 192;
} }
@ -121,11 +98,7 @@ void makeMove() {
moveForward(); moveForward();
} }
unsigned short line;
unsigned short foo;
unsigned short j;
int main(void) { int main(void) {
setAndClearHiRes(); setAndClearHiRes();
x = 160; x = 160;
y = 100; y = 100;
@ -134,8 +107,5 @@ int main(void) {
{ {
makeMove(); makeMove();
} }
return 0; return 0;
}
}