f996c3cbcd
provisional maybe
...
old mode runs in 81-92 cycles
provisional code runs in 58-77 cycles
if it works ;)
2024-12-25 12:47:37 -08:00
405cec6d51
WIP imul8 via table experiments
...
planning to try a 64KB table of 8x7-bit multiplies in the high memory
on a 130XE or other high-memory-capable machine
not yet working or finished
too many cycles of overhead per invocation
2024-12-25 10:51:27 -08:00
05133aabdd
slightly faster handling of signed mul
...
previously we were flipping the inputs if negative, and then the
output if both inputs were negative
turns out you can just treat the whole thing as an unsigned mul
and then subtract each term from the high word if the other term
is negative.
https://stackoverflow.com/a/28827013
this saves a handful of cycles, reducing our runtime to a merge
14.211 ms/px \o/
2024-12-15 20:17:45 -08:00
5637783529
Faster imul16 routine
...
Improves runtime from 16.24 ms/px to 14.44 ms/px
This uses a routine found on Everything2:
https://everything2.com/title/Fast+6502+multiplication
which uses a lookup table of squares to do 8-bit imuls,
which are then composed into a 16-bit imul
2024-12-14 18:53:31 -08:00
29630c8887
update palette more smoothly
2024-08-19 13:21:44 -07:00
c559b6e76b
palette adjustment
2024-08-18 21:07:53 -07:00
6f05a9bbd0
basic palette cycling
2024-08-18 21:06:30 -07:00
8be03993ab
fix time of drawing of 'DONE' text
2024-08-18 20:29:39 -07:00
201d9bf15c
clear screen after zoom/scroll
2024-02-25 15:15:23 -08:00
c152c4346b
Progressive pixel layout
2024-02-04 14:25:15 -08:00
510457f97a
add a note to fix stats when changing zoom
2023-03-11 21:15:08 -08:00
3d792603db
keyboard nav sorta working
2023-03-11 20:45:32 -08:00
b1c26c1edd
WIP fix keyboard check
2023-03-05 16:57:41 -08:00
53336f7af1
WIP quick hack to check keyboard
...
this for some reason only works ONCE
though I can replicate the logic in BASIC
and it works over multiple keys
not sure what's wrong
2023-03-05 15:45:44 -08:00
24abc21b01
move speed to the right
2023-03-05 13:56:50 -08:00
9926ec28e7
clean up speed display now uses ms/px msg
2023-03-05 13:48:39 -08:00
0501a364c7
Check for repeated zx/zy values
...
These will never escape, so saves
some time in the lake
trick is taken from fractint
2023-02-12 11:56:20 -08:00
839330edb3
fixes
2023-02-05 15:14:24 -08:00
e9f8aa1512
WIP status bar updates
2023-02-05 14:26:58 -08:00
702f7b3598
WIP frame counter for speed readout
...
not yet doing any of the calc/output or calls :D
2023-01-29 18:50:04 -08:00
ca5db83e8f
rethought the rounding function
...
realized the top bits are not enough, that was a brainfart
doing comparisons now
2023-01-28 16:37:37 -08:00
b55015ff87
no this seems right
...
but it's still coming out different. wtf am i doing wrong
it's gotta be a brainfart
2023-01-28 14:34:52 -08:00
76715a6151
Adjust rounding, loop exits
...
Still slight differences between positive and negative Y halves
Not sure what's wrong
2023-01-28 13:34:50 -08:00
b6ddc0d50e
update readme & doc comments & vars
2023-01-22 14:34:30 -08:00
7009e16235
fix range checks
2023-01-22 13:56:19 -08:00
0afed893a6
whoops
...
now produces correct fractal but iterations outside are
sometimes wrong
probably range errrs in intermediate calc
2023-01-22 12:57:52 -08:00
8af3721308
tweaks
2023-01-22 12:47:24 -08:00
57975b7158
not sure what's wrong have to hceck over
2023-01-22 12:02:15 -08:00
1bef004ccd
precision cleanup
...
using 4.12 and 8.24 consistently
2023-01-22 11:17:51 -08:00
ae9dd0674d
corrupt! but it produces pixels
2023-01-22 10:42:37 -08:00
b4721ae46b
fix pixel shift
2023-01-22 09:37:37 -08:00
dbbec8ed6d
ok two things wrong:
...
1) bit masks are backwards
2) iter always returning 0
2023-01-22 09:34:42 -08:00
d36667938d
run it (fails)
2023-01-22 09:13:19 -08:00
efac8f4f62
now writes pixels sorta
2023-01-22 09:09:12 -08:00
a8872b4e66
hmm
2023-01-22 08:34:06 -08:00
2e5f91a0db
wip gfx
2023-01-22 08:20:59 -08:00
335c4d2c96
and use display list copy in aligned memory
2023-01-22 07:36:08 -08:00
6fc07b9e65
hmm
2023-01-22 07:23:46 -08:00
9cbcf1cb5a
strings fixed but .... something's corrupt in display
2023-01-22 06:35:41 -08:00
0c04e7ddc8
text but it fails cause not ascii lol
2023-01-22 06:12:40 -08:00
7cb879d110
fix graphics set
...
forgot that the OS copies shadow registers over lol
2023-01-22 05:54:50 -08:00
f22653bd87
wip loop
2023-01-21 19:17:30 -08:00
32bd5a540c
flesh out the mandelbrot iteration loop
...
some bits i missed increased total to:
1939 - 3007 cycles per iteration
probably still buggy, will test later :D
2023-01-06 17:18:13 -08:00
3d94a9b5d4
show range
2023-01-05 11:58:32 -08:00
c7e7129eb2
whoops missed a few cycs
2023-01-05 11:55:41 -08:00
2340f8210e
update round & sketch out the iter cycle count
2023-01-05 11:36:42 -08:00
7f70f14fc2
one last round sketch
...
combining copy and round
2023-01-05 11:17:13 -08:00
7ac0df0343
Added two version of 16-bit rounding
...
round16_incdec uses inc and dec
round16_addsub uses adc and sbc
the incdec version is the same when no rounding is needed
but saves about 8 cycles on the rounding cases, for an
average savings of 4.5 cycles for randomly distributed inputs
untested so far
2023-01-05 09:06:07 -08:00
373e1441d3
comment tweaks
2023-01-04 21:09:45 -08:00
efd722eeb2
update cycle count for imul16
2023-01-04 20:37:16 -08:00