OpenCores
URL https://opencores.org/ocsvn/thor/thor/trunk

Subversion Repositories thor

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 40 to Rev 41
    Reverse comparison

Rev 40 → Rev 41

/thor/trunk/software/c64/testfiles/ArrayTest1.cpp
0,0 → 1,109
 
extern int printf(char *, ...);
 
int AnArray[10][20][30][40][50];
 
typedef struct {
char *ptr;
int len;
} MyStruct;
 
MyStruct structArray[15][25][5][6];
 
class ATest
{
public:
int avar;
static int masterKey;
virtual int MyFunc();
int MyFunc(int a, int b);
int (*fncptr)();
int MyOtherFunc();
int avarb;
int Func3(int a,int b,int c);
int avarc;
};
 
class ATest2 : public ATest
{
int urvar;
int anothor_var;
int MyFunc();
};
 
int ATest::MyFunc()
{
if (this != 0) {
prolog {
asm { hi there };
}
printf("master=%d",masterKey);
printf("Hello World!");
printf("%d", avarc);
Func3(avarc);
}
}
 
int ATest2::MyFunc()
{
if (this != 0) {
printf("master=%d",masterKey);
printf("ATest2 Hello World!");
printf("%d", avarc);
}
}
 
int MyFunc(int a, int b)
{
printf("a=%d",a);
printf("b=%d",b);
}
 
int ATest::Func3(int b, int c, int d)
{
printf("%d", b);
printf("%d", avar);
}
 
 
int main()
{
ATest testvar;
ATest *p;
ATest2 tv2;
int ii,jj,kk,mm,nn;
int gg;
for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 20; jj++)
for (kk = 0; kk < 30; kk++)
for (mm = 0; mm < 40; mm++)
for (nn = 0; nn < 50; nn++)
printf("%d", AnArray[ii][jj][kk][mm][nn]);
 
for (ii = 0; ii < 15; ii++)
for (jj = 0; jj < 25; jj++)
for (kk = 0; kk < 5; kk++)
for (mm = 0; mm < 6; mm++)
printf("ptr:%p", structArray[ii][jj][kk][mm].ptr);
 
/*
for (ii = 0; ii < 10; ii++) {
for (jj = 0; jj < 20; jj++) {
gg = AnArray[ii][jj];
printf("%d", gg);
}
}
*/
printf("%d",testvar.avar);
testvar.MyFunc();
testvar.MyFunc(20 , 30);
testvar.MyOtherFunc();
testvar.Func3(10 , 15 , 25);
(*testvar.fncptr)();
printf("%d",testvar.avarb);
p->MyFunc();
printf("%d",tv2.avar);
}
 
 
/thor/trunk/software/c64/testfiles/TestZero.c
0,0 → 1,2
// Can't beat this for simple.
 
/thor/trunk/software/c64/testfiles/ATest.cpp
0,0 → 1,64
 
extern int printf(char *, ...);
 
class ATest
{
public:
int avar;
static int masterKey;
int MyFunc();
int MyFunc(int a, int b);
int (*fncptr)();
int MyOtherFunc();
int avarb;
int Func3(int a,int b,int c);
int avarc;
};
 
class ATest2 : public ATest
{
int urvar;
int anothor_var;
};
 
/*
int ATest::MyFunc(int g)
{
printf("master=%d",masterKey);
printf("Hello World!");
printf("%d", avarc);
Func3(avarc);
}
*/
 
int MyFunc(int a, int b)
{
printf("a=%d",a);
printf("b=%d",b);
}
 
int ATest::Func3(int b, int c, int d)
{
printf("%d", b);
printf("%d", avar);
}
 
 
int main()
{
ATest testvar;
ATest *p;
ATest2 tv2;
 
printf("%d",testvar.avar);
testvar.MyFunc();
testvar.MyFunc(20,30);
testvar.MyOtherFunc();
testvar.Func3(10,15,25);
(*testvar.fncptr)();
printf("%d",testvar.avarb);
p->MyFunc();
printf("%d",tv2.avar);
}
 
 
/thor/trunk/software/c64/testfiles/ATest2.cpp
0,0 → 1,19
 
class ATest
{
int avar;
int MyFunc(int a);
};
 
int ATest::MyFunc()
{
printf("Hello World!");
}
 
int main()
{
ATest testvar;
 
printf("%d", testvar.avar);
testvar.MyFunc(3);
}
/thor/trunk/software/c64/testfiles/ATest3.cpp
0,0 → 1,63
 
extern int printf(char *, ...);
 
class ATest
{
public:
int avar;
static int masterKey;
int MyFunc();
int MyFunc(int a, int b);
int (*fncptr)();
int MyOtherFunc();
int avarb;
int Func3(int a,int b,int c);
int avarc;
};
 
class ATest2 : public ATest
{
int urvar;
int anothor_var;
};
 
int ATest::MyFunc()
{
printf("master=%d",masterKey);
printf("Hello World!");
printf("%d", avarc);
Func3(avarc);
}
 
/*
int MyFunc(int a, int b)
{
printf("a=%d",a);
printf("b=%d",b);
}
 
int ATest::Func3(int b, int c, int d)
{
printf("%d", b);
printf("%d", avar);
}
*/
/*
int main()
{
ATest testvar;
ATest *p;
ATest2 tv2;
 
// printf("%d",testvar.avar);
// testvar.MyFunc();
// testvar.MyFunc(20,30);
// testvar.MyOtherFunc();
// testvar.Func3(10,15,25);
// (*testvar.fncptr)();
// printf("%d",testvar.avarb);
// p->MyFunc();
// printf("%d",tv2.avar);
}
*/
 
/thor/trunk/software/c64/testfiles/string.c
0,0 → 1,178
#define null 0
 
byte *memcpy(byte *d, byte *s, int size)
{
asm {
lw r1,40[bp]
lw r2,32[bp]
lw r3,48[bp]
tst p0,r3
p0.eq br .0002
subui r3,r3,#1
mtspr lc,r3
.0001:
lb r4,[r1]
sb r4,[r2]
addui r1,r1,#1
addui r2,r2,#1
loop .0001
.0002:
}
return d;
}
 
short int *memcpyH(short int *d, short int *s, int size)
{
asm {
lw r1,40[bp]
lw r2,32[bp]
lw r3,48[bp]
.0001:
lh r4,[r1]
sh r4,[r2]
addui r1,r1,#4
addui r2,r2,#4
subui r3,r3,#1
tst p0,r3
p0.gt br .0001
}
return d;
}
 
int *memcpyW(int *d, int *s, int size)
{
asm {
lw r1,40[bp]
lw r2,32[bp]
lw r3,48[bp]
.0001:
lw r4,[r1]
sw r4,[r2]
addui r1,r1,#8
addui r2,r2,#8
subui r3,r3,#1
tst p0,r3
p0.gt br .0001
}
return d;
}
 
byte *memset(byte *p, byte val, int size)
{
asm {
lw r1,32[bp]
lw r2,40[bp]
lw r3,48[bp]
.0001:
sb r2,[r1]
addui r1,r1,#1
subui r3,r3,#1
tst p0,r3
p0.gt br .0001
}
return p;
}
 
short int *memsetH(short int *p, short int val, int size)
{
asm {
lw r1,32[bp]
lw r2,40[bp]
lw r3,48[bp]
.0001:
sh r2,[r1]
addui r1,r1,#4
subui r3,r3,#1
tst p0,r3
p0.gt br .0001
}
return p;
}
 
int *memsetW(int *p, int val, int size)
{
asm {
lw r1,32[bp]
lw r2,40[bp]
lw r3,48[bp]
.0001:
sw r2,[r1]
addui r1,r1,#8
subui r3,r3,#1
tst p0,r3
p0.gt br .0001
}
return p;
}
 
byte *memchr(byte *p, byte val, int n)
{
byte *su;
 
for (su = p; n > 0; ++su, --n)
if (*su==val)
return su;
return null;
}
 
int strlen(char *p)
{
int n;
 
if (p==(char *)0) return 0;
for (n = 0; p[n]; n++)
;
return n;
}
 
char *strcpy(char *d, char *s)
{
int nn;
 
for (nn = 0; s[nn]; nn++)
d[nn] = s[nn];
d[nn] = '\0';
return d;
}
 
char *strncpy(char *d, char *s, int size)
{
int nn;
 
for (nn = 0; nn < size; nn++) {
d[nn] = s[nn];
if (s[nn]=='\0')
break;
}
for (; nn < size; nn++)
d[nn] = '\0';
return d;
}
 
int strncmp(unsigned char *a, unsigned char *b, int len)
{
unsigned char *ua;
unsigned char *ub;
 
ua = a;
ub = b;
if (ua==ub) // duh
return 0;
for (; len > 0; ua++, ub++, len--)
if (*ua != *ub)
return *ua < *ub ? -1 : 1;
else if (*ua == '\0')
return 0;
return 0;
}
 
char *strchr(char *p, char val, int n)
{
char *su;
 
for (su = p; n > 0; ++su, --n)
if (*su==val)
return su;
return null;
}
 
/thor/trunk/software/c64/testfiles/VirtualTest1.cpp
0,0 → 1,77
 
extern int printf(char *, ...);
 
class ATest
{
public:
int avar;
static int masterKey;
virtual int MyFunc();
int MyFunc(int a, int b);
int (*fncptr)();
int MyOtherFunc();
int avarb;
int Func3(int a,int b,int c);
int avarc;
};
 
class ATest2 : public ATest
{
int urvar;
int anothor_var;
int MyFunc();
};
 
int ATest::MyFunc()
{
if (this != 0) {
prolog {
asm { hi there };
}
printf("master=%d",masterKey);
printf("Hello World!");
printf("%d", avarc);
Func3(avarc);
}
}
 
int ATest2::MyFunc()
{
if (this != 0) {
printf("master=%d",masterKey);
printf("ATest2 Hello World!");
printf("%d", avarc);
}
}
 
int MyFunc(int a, int b)
{
printf("a=%d",a);
printf("b=%d",b);
}
 
int ATest::Func3(int b, int c, int d)
{
printf("%d", b);
printf("%d", avar);
}
 
 
int main()
{
ATest testvar;
ATest *p;
ATest2 tv2;
 
printf("%d",testvar.avar);
testvar.MyFunc();
testvar.MyFunc(20 , 30);
testvar.MyOtherFunc();
testvar.Func3(10 , 15 , 25);
(*testvar.fncptr)();
printf("%d",testvar.avarb);
p->MyFunc();
printf("%d",tv2.avar);
}
 
 
/thor/trunk/software/c64/testfiles/AFirstTest.cpp
0,0 → 1,6
// A first test
 
int main(int argc, char **argv)
{
}
 
/thor/trunk/software/c64/testfiles/NewTest.cpp
0,0 → 1,21
// Test the new operator
 
// These references will be non-mangled
 
int printf(char *, ...);
 
using name mangler; // use compiler name mangling facility
 
int main(int argc, char **argv)
{
void *obj;
obj = new int[100];
printf("object pointer is %p\n", obj);
delete obj;
}
 
// Back to using non-mangled names again
using real names;
 
 
/thor/trunk/software/c64/testfiles/AThirdTest.cpp
0,0 → 1,14
// A third test
 
extern int printf(const char *, ...);
 
int main(int argc, char **argv)
{
try {
printf("Hello world!");
}
catch(int errn) {
puts("Error in printf");
}
}
 
/thor/trunk/software/c64/testfiles/ASecondTest.cpp
0,0 → 1,9
// A second test
 
extern int printf(const char *, ...);
 
int main(int argc, char **argv)
{
printf("Hello world!");
}
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.