Re:Solving differential equations on a 6502 with Woz's float...
by pvg on Friday August 02, 2019 @12:00AM
(#20590580)
I liked this piece for the attempt to imagine what using an early personal computer was like and getting it wrong in good and interesting ways - statistically nobody had an Apple I and everything later had BASIC and higher level (i.e. not just monitor) CLIs - that was the big selling point. Later there's a bit about maybe using a decimal FP representation and my first thought was 'no, that's nuts' but your mention of the 800XL sent me to the wikipedia page:
"The first is that all numeric values in [Atari] BASIC are stored in floating-point binary coded decimal (BCD) format"
Re:Solving differential equations on a 6502 with Woz's float...
by cmrdporcupine on Friday August 02, 2019 @09:07AM
(#20592628)
Having spent many hours recently futzing writing code for the 65816, including writing an emulator for a machine based around it, and spending many hours investigating writing a C compiler for it...
I think I might have cured myself of my 6502 nostalgia. I don't want to look at one again for a while.
Re:Solving differential equations on a 6502 with Woz's float...
by markrages on Thursday August 01, 2019 @10:52PM
(#20590378)
Were you using a CORDIC algorithm? Bit shifts and adds, no multiplies required.
Re:Solving differential equations on a 6502 with Woz's float...
by djmips on Thursday August 01, 2019 @11:19PM
(#20590476)
You don't need CORDIC to draw a circle. BTW, I implemented a CORDIC routine in 6502. It would really benefit from a barrel shifter which the 6502 does not have.
https://atariage.com/forums/blogs/entry/3385-atan2-in-6502/
In gist form https://gist.github.com/djmips/29a8fa9099bf92b31a7259da65915...
Re:Solving differential equations on a 6502 with Woz's float...
by pascal_cuoq on Friday August 02, 2019 @06:39AM
(#20591917)
Using a CORDIC algorithm would mean having many iterations to compute trigonometric functions for each drawn point (well, for each 8 points considering the symmetries). A variant of the Bresenham line algorithm for circles lets you draw a circle using only a few operations per 8 points (and the operations are also limited to add and shift):
Having said that, I do like this stuff in hindsight :)