# HG changeset patch # User John Tsiombikas # Date 1392627623 -7200 # Node ID c2815c765fea1a20e21e30daea498ceb23db6d77 # Parent e56d8b0eee4b17ac62941b52e6e199791f7b1d50 done diff -r e56d8b0eee4b -r c2815c765fea Makefile --- a/Makefile Mon Feb 17 10:17:17 2014 +0200 +++ b/Makefile Mon Feb 17 11:00:23 2014 +0200 @@ -4,7 +4,7 @@ bin = test.tap CC = zcc -CFLAGS = +zx -pragma-define=myzorg=28000 +CFLAGS = +zx -pragma-define=myzorg=28000 -O2 LDFLAGS = -create-app $(bin): $(obj) diff -r e56d8b0eee4b -r c2815c765fea test.c --- a/test.c Mon Feb 17 10:17:17 2014 +0200 +++ b/test.c Mon Feb 17 11:00:23 2014 +0200 @@ -13,9 +13,9 @@ for(i=0; i<192; i++) { unsigned int banky = i & 0x3f; - unsigned int cell = banky / 8; - unsigned int cline = banky % 8; - unsigned int memline = cell + cline * 8; + unsigned int cell = banky >> 3; + unsigned int cline = banky & 0x7; + unsigned int memline = cell + (cline << 3); unsigned char *ptr = FB_ADDR + (start + memline) * LINESKIP; for(j=0; j<32; j++) { /* 256 pixels, 8 pixels per byte */ @@ -44,6 +44,8 @@ { unsigned char i; int cx, cy, zx, zy, x, y, len; + int xop1, xop2, yop1, yop2; + int zxop1, zxop2, zyop1, zyop2; cx = int2fix8_8(px - 192) >> 6; cy = int2fix8_8(py - 96) >> 6; @@ -55,11 +57,25 @@ zy = cy; for(i=0; i<32; i++) { - x = fix_mul5_11(zx, zx) - fix_mul5_11(zy, zy) + cx; - y = fix_mul5_11(zy, zx) + fix_mul5_11(zx, zy) + cy; - len = fix_mul5_11(x, x) + fix_mul5_11(y, y); + /*x = fix_mul5_11(zx, zx) - fix_mul5_11(zy, zy) + cx; + y = fix_mul5_11(zy, zx) + fix_mul5_11(zx, zy) + cy;*/ + zxop1 = zx >> 5; + zxop2 = zxop1 >> 1; + zyop1 = zy >> 5; + zyop2 = zyop1 >> 1; - if(len > int2fix5_11(4)) return 0; + x = zxop1 * zxop2 - zyop1 * zyop2 + cx; + y = zyop1 * zxop2 + zxop1 * zyop2 + cy; + + /*len = fix_mul5_11(x, x) + fix_mul5_11(y, y);*/ + xop1 = x >> 5; + xop2 = xop1 >> 1; + yop1 = y >> 5; + yop2 = yop1 >> 1; + len = xop1 * xop2 + yop1 * yop2; + + /*if(len > int2fix5_11(4)) return 0;*/ + if(len > 8192) return 0; zx = x; zy = y;